Восстанавливаются ли пропущенные транзакции в мемпуле после перезапуска узла? (v0.14.1)

Начиная с версии 0.14.0 , мемпул теперь сохраняется при закрытии узла и перезагружается после запуска. Если узел был недоступен менее 20 минут, скажем, пытается ли биткойн-узел восстановить пропущенные транзакции или ждет, пока не увидит их в блоке, прежде чем запрашивать пропущенные транзакции у партнера?

Спасибо!

Ответы (1)

Bitcoin Core (v0.14+) не пытается активно узнать о пропущенных транзакциях.

Исторически этого не делалось, потому что это излишне и непреднамеренно продлевало бы время жизни транзакций в мемпуле. Это больше не проблема, потому что мемпул ограничен и корректно работает с истечением срока действия и вытеснением.

Однако эффективного протокола для выполнения синхронизации мемпула не существует. Мы могли бы запросить все txid от всех пиров, но это составило бы несколько сотен МБ данных, большая часть которых является избыточной (поскольку она была бы одинаковой для всех пиров). Некоторые исследования были проведены по установленным протоколам согласования, которые эффективно находят различия между мемпулами и просто передают различия. Однако ничто из этого не близко к развертыванию.

Я так и думал. Есть ли необходимость в протоколе, который бы активно синхронизировал мемпулы, когда узлы перезапускаются после разумного времени простоя (например, 20-120 минут), чтобы мемпул еще не был полностью перевернут. Не могли бы вы также указать мне на любое исследование, проведенное по согласованию наборов мемпулов. Спасибо
Я описал протоколы высокого уровня для синхронизации на bitcointalk.org/index.php?topic=1377345.0 и более подробные технические подробности на people.xiph.org/~greg/mempool_sync_relay.txt Биткойн не нуждается в активной синхронизации . но я надеюсь, что мы сможем использовать его для снижения пропускной способности, используемой реле.