Код:
// Не релейные блоки, если обрезка - может привести к пэру, чтобы попытаться загрузить, в результате чего
// в остановившейся загрузки, если файл блок обрезается до запроса.
если (nLocalServices & NODE_NETWORK) {
БЛОКИРОВКА (cs_vNodes);
BOOST_FOREACH (CNode * pnode, vNodes)
если (chainActive.Height () > (pnode->nStartingHeight! = -1? pnode->nStartingHeight - 2000: nBlockEstimate))
pnode->PushInventory (CINV (MSG_BLOCK, hashNewTip));
}
Когда новый блок добавляется / подключен, каждый узел информирует своих коллег о новом блоке.
С помощью этого кода, подрезка узлы не будут делать. Я не думаю, что это хорошая идея. Когда в начальной загрузке, узел не должен информировать узлы о новых блоках, но когда-то синхронизируется, нет никакой причины не делать этого.
Правило может быть, что если заголовок блока расширяет основную цепь, основная цепь прошла окончательную контрольную точку (или имеет POW > some_threshold) и (медиана 11) временная метка для заголовка составляет менее 6 часов, то старая узел обрезки должен информировать свои коллега о блоке. Оставив их в темноте о новом блоке кажется хуже.