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的共识服务,交易执行存储,模块间异步交互,节点间通讯、身份认证、交易处理等功能。

image1

具体而言:

  • 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。

image2