Hyperledger Fabric:多组织设置中的客户端签名验证

Hyperledger Fabric: Client signature validation in a multi org setup

我正在尝试了解 Fabric 网络中多组织设置中的事务流。我正在经历 official document

基本上,它解释了客户端创建交易提案并将其发送给背书节点。背书节点验证、模拟和背书该交易。在验证阶段,背书节点使用 MSP 验证客户端的签名。

因此,在单个组织的情况下,我知道将有一个 MSP,所有背书节点都通过该 MSP 验证签名。另外,在这种情况下,客户端的身份是由同一个 MSP 颁发的。

但是,在多组织设置中,每个组织都维护自己的 MSP。比如说,我们有 Org1,它有背书节点(EP1、EP2)和 MSP1。在 Org2 中,我们有背书节点(EP3、EP4)和 MSP2。背书政策是所有 EP 都应该背书交易。

在这种情况下,客户端的身份是由Org1 的MSP1 颁发的。那么当这个客户端向所有背书节点提交交易提案时,EP3 和 EP4 将如何用他们的 MSP2 验证这个客户端的签名?

不同组织的这些 MSP 如何相互通信以进行签名验证?

关于联盟和 MSP 身份的信息被编码在区块链的 genesis.block(用于 bootstrap 排序者的文件)中。

当节点加入通道时,首先向排序节点请求获取创世块的信息。在这个创世块的帮助下,对等方开始了解联盟、通道和参与者(及其 MSP)

检查此引用:https://github.com/hyperledger/fabric-samples/blob/release-1.2/balance-transfer/app/join-channel.js#L48