2015-10-28 13 views
2

Я мастерить с исходным кодом Bitcoin и пытаюсь понять точную работу механизма обнаружения сверстников в режиме testnet, для которого я сделал следующие изменения:Как работает обнаружение сверток биткойнов после подключения к жестко закодированным узлам?

  1. Disabled открытие семян DNS для того, чтобы заставить биткойн для резервного копирования для подключения к жестко закрепленным узлам.

  2. Изменил жестко установленные по умолчанию узлы на мои известные 4 адреса, скажем, A, B, C и D, которые я гарантирую, всегда в сети.

Теперь, когда я бегу bitcoind клиента (назовем его E), он подключается к одному из A, B, C или D, под управлением той же модифицированной версии bitcoind. Он получает адреса одноранговых узлов из жестко закрепленного узла, к которому он сначала подключается, обмениваясь сообщениями getaddr и addr, но я не уверен, как это происходит после этого. У меня есть следующие вопросы:

a. Если узел подключается к жестко привязанным узлам, предполагается ли он подключаться только к одному из жестко установленных узлов, как это происходит в моем случае, или может подключаться к нескольким жестко закодированным узлам?

b. После получения адреса peer через сообщение addr, когда узел E начнет соединяться с этими одноранговыми узлами?

Укажите, пожалуйста, соответствующие файлы/разделы кода, если это возможно. Спасибо

ответ

-1

A. Отсутствуют «Узлы с жесткой кодировкой», есть только семена узлов DNS, когда вы запускаете их через запрос DNS, вы получите новый узел для каждого запроса.

B. Если узел не подключен к нему максимальное значение мощности узлов (это 8 активных узлов и 125 неактивных узлов) будет пытаться подключиться к новым узлам второго он будет получить addr сообщение
вы можете найти их здесь:

livenet: https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L102
testnet: https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L181

+1

Есть жестко закодированные узлы. Жестко закодированные узлы являются механизмом резервного копирования, если DNS терпит неудачу. См. Https://github.com/bitcoin/bitcoin/blob/v0.13.1/src/chainparamsseeds.h –