3.节点架构
加入分区共识机制之后的Hyperchain
单节点将包含一个 NamespaceManager
对象。NamespaceManager
是分区共识机制的关键管理组件,负责namespace的注册、启动、停止、注销等一系列的生命周期状态操作。NamespaceManager中包含多个namespace,此外还包含JvmManager和BloomFilter。
具体而言:
JvmManager
负责管理jvm执行器,JvmManager是否开启需要在配置文件中进行配置;BloomFilter
为交易的布隆过滤器,主要负责重复交易的检测,防止重放攻击;
分区共识中的一个分区被称为一个namespace
,每个namespace之间互相隔离,包括执行空间以及数据存储空间均做到完全隔离。每个节点默认加入到名为global的namespace中。每个namespace
包含consenter
,executor
,eventHub
,peerManager
,caManager
,requestProcessor
等关键组件,这几个关键组件实现各自namespace的共识服务,交易执行存储,模块间异步交互,节点间通讯、身份认证、交易处理等功能。
具体而言:
Consenter
提供共识服务,目前支持RBFT算法,负责对交易进行定序,保证同一namespace内的hyperchain节点的账本一致性;Executor
为执行器,执行器主要负责namespace中的智能合约的调用以及账本状态的维护;EventHub
为事件总线,是namespace内各关键组件间事件进行异步交互的消息中转中心;PeerManager
提供节点通讯管理,负责namespace成员之间网络通信;CaManager
为证书认证中心,负责进行互联网上的身份认证;RequestProcessor
为请求处理组件。负责处理JSON-RPC消息,最终通过反射调用相应api。
Namespace的生命周期如下图所示。首先在namespaceManager中进行注册,创建并初始化此namespace。之后start此namespace,启动namespace中所有组件的功能,进行Running状态。Stop将停止此namespace中所有组件,最后在namespaceManager注销此namespace。
当前内容版权归 Hyperchain 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Hyperchain .