通道

超级账本Fabric“通道”是两个或两个以上特定网络成员之间通信的专用“子网”,用于进行私有和机密的交易。通道由成员(组织)、每个成员的锚点peer节点、共享账本、链码应用程序和排序服务节点定义。网络上的每个交易都在一个通道上执行,在这个通道上,每一方都必须经过身份认证和授权才能在该通道上进行交易。加入通道的每个peer节点都有自己的身份,由成员服务提供者(MSP)提供,MSP向其通道peer节点和服务认证每个peer节点。

要创建一个新通道,客户端SDK调用配置系统链码并引用属性,如“锚点节点”和成员(组织)。这个请求为通道账本创建一个“创世区块”,它存储关于通道策略、成员和锚点peer节点的配置信息。当将新成员添加到现有通道时,可以与新成员共享这个创世区块,如果适用,也可以共享最近的重配置区块。

注解

有关配置交易的属性和原型结构的更多细节,请参见:doc:`configtx`部分。

为通道上的每个成员选择一个“领导peer节点”,确定哪个peer节点代表该成员与排序服务通信。如果没有识别出领导,可以使用算法来识别领导。共识服务对交易进行排序,并将它们以一个区块的形式交付给每个领导peer节点,然后由每个领导peer节点将该区块分发给它的成员peer节点,并使用``gossip``协议跨通道分发。

尽管任何一个锚点peer节点都可以属于多个通道,因此可以维护多个账本,但是没有账本数据可以从一个通道传递到另一个通道。这种按通道划分的账本是由配置链码、身份成员服务和gossip数据传播协议定义和实现的。数据的传播,包括交易、账本状态和通道成员的信息,仅限于通道上拥有可验证成员资格的peer节点。这种按通道隔离peer节点和账本数据的方法,允许需要私有和机密交易的网络成员与业务竞争对手和其他受限制的成员在同一个区块链网络上共存。