当前位置:首页 » 区块链精品文章 » 正文

4.8 多通道的支持

1512 人参与  2018年10月15日 10:54  分类 : 区块链精品文章  评论

创建通道是为了限制信息传播的范围,是和某一个账本关联的。每个交易都是和唯一的通道关联的。这会明确地定义哪些实体(组织及其成员)会关注这个交易。

客户端SDK通过发送一个CONFIGURATION的交易背书(Endorsement)请求来创建一个通道,然后通过排序服务广播给其他节点。创建通道的请求包含组成通道的组织(Organization)列表,即哪些组织可以加入到这个通道中。

一旦创建好了通道,客户端SDK就可以通知组织内的节点加入到新创建的通道中。节点的Gossip模块就会给这通道内的组织广播一个消息:它属于这个通道了。

Gossip要在多通道环境下还能正常工作,成员管理需要对通道内的成员节点进行维护,也就是说通道内的所有节点 都需要知道其他节点的存在。代表一个组织和排序服务进行连接的节点会接收到哪些节点属于这个通道,会根据需要调用Deliver()接口。排序服务能够保 证代表一个组织参与到这个通道的节点能够接收到区块数据。连接节点会分发新收到的区块数据给加入到这个通道的节点。当成员管理建立起来后,Gossip模 块就会在隧道内部分发数据。不属于这个通道的数据项会在通道外传输,包括交易信息和与Gossip相关的会员管理信息。通道信息不会在通道外的节点间传 播。

一旦一个节点加入到一个通道中,它需要获取最新的通道配置信息,用来识别参与的组织。节点加入通道的时候,客户端 SDK就会提供通道最新的配置交易信息,里面会包含参与的组织。对于新创建的通道,这会是一个创世区块(Genesis Block);对于老的通道来说,这是一个最新的重新配置的块。

节点获取到这些信息后,Gossip模块就会在通道允许的组织范围内分享这些信息。这样,通道的成员管理信息是在Gossip服务允许的范围内进行维护的。这些信息都建立起来以后,Gossip就会基于这些信息进行工作,就像只有一个通道一样。

通道内Gossip的工作方式和标准的Gossip是一样的。需要注意的是,成员管理是每个通道独立的,因而所有 的操作都在这个通道的成员管理范围内。特别地,一个节点可以选择通道内的一些节点来进行区块转发,再选通道内的其他一些节点来进行状态同步。注意,状态可 能会在不同的组织之间同步,只要它们是同一个通道的成员。

从通道中删除一个组织的过程和创建一个通道是类似的。客户端SDK会发送一个CONFIGURATION的交易背 书请求。通道内的Peer节点背书完成后,删除组织和成员的交易就会发送给排序服务节点。然后,其他节点会收到一个更正过组织列表的通道消息。每个收到消 息的Gossip模块都会移除被删掉的节点,因而,和通道相关的信息只会在剩下的通道成员之间传输。

被通道删掉的Peer节点最终会发现自己被删除了。因为Peer节点的Gossip成员管理模块会继续发送心跳信息,但是这些信息不会发送给已删除的节点。所以,过了一段时间以后,节点就知道自己不再属于这个通道了。


来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=1074

区块链是什么  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!