где код об отправке команды getblocks в исходном коде биткойна

Я читаю протокольную часть. Один глупый вопрос. Я нашел часть, обрабатывающую часть getblocks, но я не нашел, когда и куда отправлять команду getblocks. Или она удалена в новой редакции биткойнов. Любая идея, я буду очень признателен.

Ответы (1)

Вы правы: главная ветвь Bitcoin Core больше не отправляет getblocksсообщение, потому что она использует синхронизацию заголовков для получения всех заголовков (с getheadersсообщением), позволяя ей хешировать сами заголовки, проверять их доказательство работы и запрашивать соответствующие блоки параллельно от нескольких пиров с getdataсообщениями. Я считаю, что грядущая ветка версии 0.10 должна быть отделена от основной ветки сегодня. (Будет обновлен ответ со ссылкой, когда это произойдет.)

Вот несколько прямых ссылок на код:

Как вы заметили, Bitcoin Core версии 0.10 будет продолжать обрабатывать getblocksсообщения от удаленных пиров.

Я очень ценю ваш ответ. Большое спасибо, Дэвид.
Привет Дэвид, меня смутил один момент. Параллельно ли запрашиваются соответствующие блоки с сообщениями getdata. Я думаю, что это в одном потоке. Мы можем получить не более 16 блоков от одного пира, а затем повторить другой пир. Это правильно? Спасибо
@Eleven В первом извлечении заголовков, связанном с ответом, говорится: «Блоки извлекаются параллельно со всех доступных исходящих одноранговых узлов с использованием ограниченного движущегося окна. Когда один одноранговый узел останавливает движение окна, он отключается». Я еще не просматривал этот код, но если вы найдете что-то, что противоречит этому утверждению, дайте мне знать, и я обновлю ответ. Спасибо!