Насколько мне известно, процесс майнинга выглядит следующим образом:
шаг 1: соберите серию транзакций и создайте блок, заполнив необходимую информацию, такую как хэш предыдущего блока, корень дерева Меркла и т. д.
шаг 2: решение головоломки путем постоянного изменения поля «nonce» блока, чтобы сделать хэш заголовка блока меньше цели.
Когда майнер построил блок (шаг 1) и пытается решить головоломку (шаг 2), приходит очень привлекательная транзакция с высокой комиссией, может ли майнер отказаться от проделанной работы, реконструировать блок и возобновить решение головоломки? головоломка?
Современная система майнинга будет делать и то, и другое.
Сегодня майнеры и майнинговые пулы имеют больше вычислительной мощности, чем требуется для проверки всех итераций nonce и extraNonce для шаблона одного блока. Они обходят это, последовательно работая с несколькими шаблонами блоков, обычно варьируя отметку времени блока, данные в транзакции Coinbase и список выбранных транзакций.
Эти обновленные шаблоны блоков постоянно генерируются параллельно с фактическими операциями хеширования — по мере обнаружения более привлекательных транзакций следующий набор сгенерированных шаблонов блоков будет обновляться, чтобы содержать эти транзакции. Как только оборудование для майнинга завершит работу с текущим шаблоном блока, оно возьмет новый, вероятно, оптимальный шаблон из пула.
Если один рабочий обнаружит действительный блок с неоптимальным шаблоном, майнеры будут транслировать этот блок — нет большого смысла отбрасывать блок из-за относительно небольшого увеличения комиссии и отказываться от всего вознаграждения за блок.
Шаблон блока обновляется (возможно) каждые несколько секунд, пополняется новыми транзакциями.
откажется ли шахтер от работы, которую он сделал
Каждый блок с хешем, удовлетворяющим цели, распространяется. Но если блок не был создан, помните, что майнинг — это процесс Пуассона, наиболее важным свойством которого является отсутствие памяти . Если добыча блока занимает в среднем 10 минут, а после 5 минут добычи изменение шаблона блока не уменьшит ожидаемое время до следующего блока (поэтому «сдаться» — не лучшее слово).
восстановить блок и заново решить головоломку?
Да.
Когда майнер построил блок (шаг 1) и пытается решить головоломку (шаг 2), приходит очень привлекательная транзакция с высокой комиссией, может ли майнер отказаться от проделанной работы, реконструировать блок и возобновить решение головоломки? головоломка?
Либо эта работа произвела блок, либо нет. Если он произвел блок, он обязательно будет транслировать этот блок. Если он не произвел блок, то он ничего не теряет, отказываясь от него. Так что нет никакой «работы, которую он сделал», от которой он мог бы «бросить».
Работа, которую выполняют майнеры, либо создает блок, либо нет. Невозможно пройти часть пути к созданию блока только для того, чтобы начать сначала.
Дэвид Шварц
Лучше