节点启动流程

邻居发现
- Kademilia: 是DHT的一种实现, 是P2P中最核心的一种路由寻址技术,可以在无中心服务器的情况下,在网络中快速找到目标节点;
- 节点距离: 节点ID进行XOR后的结果
- K 桶: Kad路由表,对应距离节点保存在对应编号桶中
- 四种消息:Ping, Pong, FindNeighbours, Neighbours
- 初始化:将种子节点和邻居节点加入到路由器中
节点发现流程:

节点状态机:

TCP连接
TCP 会以间隔3.6s的频率维护TCP连接池。
HandShake
TCP连接后,会进行Handshake, 用以确认节点间的链路信息是否一致,以及是否需要进行区块同步;
区块同步
- 区块链同步请求
- 区块链清单
- 获取清单数据
- 区块数据

区块和交易广播

FastForward
未处理先转发,降低网络延迟; SR直接与FastForward节点连接,缩短转发链路
网友评论