Почему Эфириум создает новый блок даже без единой транзакции? [дубликат]

Я запускаю частный блокчейн Ethereum. Когда я настраиваю один из узлов на майнинг, этот узел постоянно создает блоки, даже если внутри него нет транзакций. Какова цель этого?

Ответы (3)

Преимущество блокчейна в том, что на практике он поддерживает только добавление неизменяемых прошлых блоков.

Эти прошлые блоки неизменяемы, потому что очень сложно (через доказательство работы) создать конкурирующий блок, который «переписывает историю». Кроме того, вы должны учитывать тот факт, что последующие блоки добавляют свою сложность. Таким образом, чтобы изменить блок в прошлом и быть принятым другими узлами, вам нужно изменить этот прошлый блок и все последующие блоки.

Итак, возвращаясь к вашему вопросу, эти пустые блоки постоянно добавляют новые уровни сложности, чтобы обеспечить практическую неизменность прошлых блоков.

Выдача новых эфиров призвана стимулировать майнеров защищать прошлые блоки.

Этот ответ настолько хорош, насколько мог бы быть, но вы могли бы объяснить причину, по которой сейчас это происходит чаще, чем в прошлом, из-за недавних Dos-атак. Я не уверен, почему это так. Возможно, вы можете добавить объяснение, почему сейчас это происходит чаще, чем раньше.
Когда майнеры получают новый действительный блок, им нужно переключиться на майнинг следующего блока. Однако, прежде чем они смогут начать добычу, им нужно решить, что добавить в следующий блок. Это занимает ненулевое количество времени. Таким образом, в это время майнеры либо продолжают майнить на старом блоке в надежде получить вознаграждение дяди, либо сразу же начинают майнить на пустом следующем блоке в надежде получить полное вознаграждение. Когда новый непустой блок готов к майнингу, они могут начать майнить на нем. Но вполне могло случиться так, что пустой блок был добыт за это время.

В общедоступной цепочке имеет смысл продолжать создавать блоки, потому что майнер все равно получит награду за блок в 5 ETH, с транзакциями внутри или без них. Таким образом, geth будет непрерывно майнить до тех пор, пока ему будет сказано об этом. Он не знает, что цепочка не является общедоступной. Можно написать скрипт для управления майнингом гета. Смотрите этот вопрос.

Если вы ищете частный блокчейн для тестирования децентрализованных приложений, симулятор, такой как testrpc , вероятно, будет более подходящим, чем настоящий полный узел. testrpc «майнит» только тогда, когда есть транзакция, и этот майнинг имитируется — фактического хеширования не происходит.

В блокчейне ethereum мы создаем блоки каждые N раз (15 с), проверьте https://etherscan.io/charts/blocktime

мы делаем это для 2 целей:

1-включить транзакции.

2-генерировать новые эфиры.

Если нет транзакций для включения или майнер отказывается их включать, то он создает новый блок без транзакций, но содержащий вознагражденные эфиры.

поэтому блок может не содержать транзакций внутри себя, но имейте в виду, что проверенный блок нуждается в некоторых подтверждениях (дополнительных блоках после него), чтобы быть более надежным [12 подтверждений для внесения «необратимых» изменений в данные].