Я запускаю частный блокчейн Ethereum. Когда я настраиваю один из узлов на майнинг, этот узел постоянно создает блоки, даже если внутри него нет транзакций. Какова цель этого?
Преимущество блокчейна в том, что на практике он поддерживает только добавление неизменяемых прошлых блоков.
Эти прошлые блоки неизменяемы, потому что очень сложно (через доказательство работы) создать конкурирующий блок, который «переписывает историю». Кроме того, вы должны учитывать тот факт, что последующие блоки добавляют свою сложность. Таким образом, чтобы изменить блок в прошлом и быть принятым другими узлами, вам нужно изменить этот прошлый блок и все последующие блоки.
Итак, возвращаясь к вашему вопросу, эти пустые блоки постоянно добавляют новые уровни сложности, чтобы обеспечить практическую неизменность прошлых блоков.
Выдача новых эфиров призвана стимулировать майнеров защищать прошлые блоки.
В общедоступной цепочке имеет смысл продолжать создавать блоки, потому что майнер все равно получит награду за блок в 5 ETH, с транзакциями внутри или без них. Таким образом, geth будет непрерывно майнить до тех пор, пока ему будет сказано об этом. Он не знает, что цепочка не является общедоступной. Можно написать скрипт для управления майнингом гета. Смотрите этот вопрос.
Если вы ищете частный блокчейн для тестирования децентрализованных приложений, симулятор, такой как testrpc , вероятно, будет более подходящим, чем настоящий полный узел. testrpc «майнит» только тогда, когда есть транзакция, и этот майнинг имитируется — фактического хеширования не происходит.
В блокчейне ethereum мы создаем блоки каждые N раз (15 с), проверьте https://etherscan.io/charts/blocktime
мы делаем это для 2 целей:
1-включить транзакции.
2-генерировать новые эфиры.
Если нет транзакций для включения или майнер отказывается их включать, то он создает новый блок без транзакций, но содержащий вознагражденные эфиры.
поэтому блок может не содержать транзакций внутри себя, но имейте в виду, что проверенный блок нуждается в некоторых подтверждениях (дополнительных блоках после него), чтобы быть более надежным [12 подтверждений для внесения «необратимых» изменений в данные].
Томас Джей Раш
Ксавье Лепретр B9lab