3. P2PManager

P2PManager用于分配不同namespace中的PeerManager,它在全局中只有一个实例。

PeerManager

PeerManager主要负责以下几个部分:

  • 对外提供不同的消息发送服务接口;
  • 提供相应的消息向上推送服务;
  • 使用PeerManagerEventHub这个消息中间件对PeerManager的控制消息进行分发管理,进行整个逻辑网络的状态维护,同时承担较为复杂的消息处理逻辑。

在整个网络中,节点可称为NodePeer,下面来看这两者的区别。

Peer

逻辑上的所有remote节点都称为peer, 一个远端节点对应一个peer,peer主要用于处理逻辑上的消息发送请求。其主要工作就是对消息进行加密,然后调用Hypernet Client的对应的消息发送方法,并且消息中需要附着namespace信息。

Node

Node即本地节点,它也是逻辑上的server,主要负责逻辑上的节点消息处理,对从网络中接收到的消息进行解密然后抛给Hyperchain消息中间件eventhub,由消息中间件识别这是哪一类消息应该交给哪一个模块去处理,比如共识模块、执行模块。

数据传输加密

数据传输加密是指对网络上传输的交易信息和通信消息的加密,根据用户的需求可以对所有在Hyperchain上传输的信息进行加密,其加密方案同TLS类似,先通过ECDH算法协商对应的会话密钥,然后利用该会话密钥对业务信息进行加密,对端进行解密。所有的节点之间的通信都会利用不同的会话密钥进行加密。这是对传输层安全的一个补充。目前hyperchain的消息可以通过配置进行对称加密,如果有更加复杂的消息加密需求可以使用该方式进行处理。