Сколько времени занимает проверка полного блока?

Мне интересно узнать, сколько времени требуется для проверки блока биткойнов на среднем домашнем компьютере. Меня меньше интересует точное число. Я прекрасно понимаю, что на разных машинах может быть по-разному. Меня больше интересует оценка. В предыдущих ответах не было ни числа, ни даже приблизительного расчета.

Ответы (1)

Ваш вопрос на самом деле не дает достаточного контекста даже при условии, что вам все равно, какая именно машина.

Вы имеете в виду холодный кеш во время начальной загрузки блока или вы имеете в виду в конце цепочки на работающем узле? Разница в этом моменте, вероятно, составляет два порядка в скорости.

Обычно в конце почти не выполняется проверка транзакций, за исключением согласованности двойной траты во время принятия блока: все транзакции уже получены и проверены.

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

Вы можете запустить биткойн-ядро с параметром -debug=bench, чтобы он регистрировал подробные тайминги для различных частей проверки, чтобы увидеть проверку в вашей собственной системе.

Числа по порядку величины находятся в диапазоне от пары миллисекунд для обычного случая полного кэширования на кончике до пары секунд для холодного кэширования и сброса. Потенциально минуты, если блок был построен противником.

Спасибо за ответ, я буду более конкретным: я запускаю грубую симуляцию, которая вычисляет время, необходимое для распространения блока. Для простоты я хотел бы сделать все узлы одинаковыми. Это означает равную пропускную способность и равную задержку распространения между каждыми двумя узлами. Я также хотел бы использовать грубую оценку времени, необходимого для проверки блока. Я знаю, что часть сделок уже одобрена, а часть нет. Поэтому меня интересует оценка, которая учитывает: среднее количество новых транзакций на блок, вычислительную мощность и т.д.
В биткойнах блоки не проверяются перед распространением в подавляющем большинстве случаев. (С BIP152 они распространяются до проверки, если все данные известны заранее, с FIBER они всегда распространяются до проверки) В недавнем диапазоне из 288 блоков я вижу 11 блоков, в которых была 1 или более неизвестная транзакция с средняя скорость 0,059 неизвестных транзакций на блок. Кроме того, сеть Биткойн использует неравные задержки для более быстрого распространения.