Я мастерить с исходным кодом Bitcoin и пытаюсь понять точную работу механизма обнаружения сверстников в режиме testnet
, для которого я сделал следующие изменения:Как работает обнаружение сверток биткойнов после подключения к жестко закодированным узлам?
Disabled открытие семян DNS для того, чтобы заставить биткойн для резервного копирования для подключения к жестко закрепленным узлам.
Изменил жестко установленные по умолчанию узлы на мои известные 4 адреса, скажем, A, B, C и D, которые я гарантирую, всегда в сети.
Теперь, когда я бегу bitcoind клиента (назовем его E), он подключается к одному из A, B, C или D, под управлением той же модифицированной версии bitcoind. Он получает адреса одноранговых узлов из жестко закрепленного узла, к которому он сначала подключается, обмениваясь сообщениями getaddr
и addr
, но я не уверен, как это происходит после этого. У меня есть следующие вопросы:
a. Если узел подключается к жестко привязанным узлам, предполагается ли он подключаться только к одному из жестко установленных узлов, как это происходит в моем случае, или может подключаться к нескольким жестко закодированным узлам?
b. После получения адреса peer через сообщение addr
, когда узел E начнет соединяться с этими одноранговыми узлами?
Укажите, пожалуйста, соответствующие файлы/разделы кода, если это возможно. Спасибо
Есть жестко закодированные узлы. Жестко закодированные узлы являются механизмом резервного копирования, если DNS терпит неудачу. См. Https://github.com/bitcoin/bitcoin/blob/v0.13.1/src/chainparamsseeds.h –