#discovery #p2p #networking

已删除 tentacle-discovery

p2p 发现协议主要参考比特币

0.2.9 2019年11月28日
0.2.8 2019年10月23日
0.2.7 2019年9月23日
0.2.5 2019年5月23日
0.1.0 2019年3月14日

#120 in #discovery

40 次每月下载

MIT 许可证

190KB
5K SLoC

发现

节点发现(主要与比特币相同,用于区块链项目)

发现行为

在当前的NAT转发网络环境中,无论是自我发现还是对方的发现行为均不完全准确,可以肯定的是,用户收到的地址并非100%可用。

本协议中有两个动作

  • 当连接建立时,请求者(客户端)将主动请求响应者(服务器)请求响应者存储的可用地址列表。 警告:此行为只允许一次,否则将被其他节点断开连接。

  • 每个节点定期向其邻居节点广播热点地址。热点地址是指节点持续通信的邻居节点的监听地址,这意味着活跃连接。

消息类型

/// request for address list
GetNodes {
    version: Uint32,
    count: Uint32,
    listen_port: PortOpt,
}

/// response address list
Nodes {
    announce: Bool,
    items: NodeVec,
}

依赖关系

~21MB
~477K SLoC