我正在修改比特币源代码,并试图了解对等发现机制在testnet
我进行了以下更改的模式下的确切工作方式:
禁用 DNS 种子发现以强制 bitcoind 回退以连接到硬编码节点。
将默认硬编码节点更改为我已知的 4 个地址,比如 A、B、C 和 D,我确保它们始终在线。
现在,当我运行 bitcoind 客户端(称为 E)时,它连接到 A、B、C 或 D 之一,运行相同的修改版本的 bitcoind。getaddr
它通过交换和消息从它首先连接到的硬编码节点获取对等地址,addr
但我不确定之后它是如何进行的。我有以下查询:
一个。如果一个节点回退到连接到硬编码节点,它应该只连接到一个硬编码节点,就像在我的情况下发生的那样,还是可以连接到多个硬编码节点?
湾。通过addr
消息获取对等地址后,节点 E 什么时候开始连接这些对等点?
如果可能,请指出相关的代码文件/部分。谢谢