Почему так много пустых блоков?

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

введите описание изображения здесь

График был создан путем вызова web3.eth.getBlockTransactionCount(n)и построения экспоненциально взвешенной скользящей средней с диапазоном 5760.

Ответы (1)

Вкратце: пустые блоки распространяются по сети быстрее, чем непустые блоки.

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

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

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

Было бы интересно сравнить ваш график с другим, показывающим, насколько заполнены блоки для каждого номера блока, и посмотреть, коррелируют ли они.

Это имеет смысл, но почему после 4 миллионов блоков практически нет пустых блоков? Скорость 100% продолжается до самого последнего блока в ~ 5M. Я был бы счастлив представить, насколько заполнены блоки, но я не уверен, как это измерить — сколько «пространства» занимает каждая транзакция?
Хороший вопрос. Я не знаю. Возможно, переменные в игре, в которую они играли, каким-то образом изменились? Чтобы рассчитать заполненность блока, вы должны посмотреть, сколько газа было использовано ( gasUsed) по сравнению с лимитом газа ( gasLimit). (Etherscan также показывает использованный газ в процентах для справки.) Обратите внимание, что лимит газа не является постоянным и менялся в различных точках. (Что может коррелировать с изменениями в количестве пустых блоков? Более высокий лимит газа, более высокие потенциальные комиссии за транзакции? Интересный вопрос.)
Возможно, стоит бегло просмотреть их: etherscan.io/charts .
Хм. В районе блока №3950000 лимит газа повышен с 4,7 млн ​​до 6,7 млн... (конец июня прошлого года).
@RichardHorrocks: Что касается условий майнинга пустых блоков и отказа от комиссий за транзакции, vbuterin описывает работу, которую он проделал, чтобы определить справедливые цены для различных операций на EVM: blog.ethereum.org/2016/10/31/… . Майнеры могут использовать это/моделировать, чтобы решить, должны ли они включать транзакции. Я считаю (через мысль expt), что майнерам с дисками и процессорами медленнее, чем в среднем, следует избегать включения tx. До атаки раздувания состояния жесткий диск был в порядке для хранения blkchain, но я думаю, что это поставило бы майнера в невыгодное положение, если бы он использовал жесткий диск и обрабатывал txes.
Спасибо @lungj - моя окраска «посещенная ссылка» предполагает, что я был на этой странице раньше, но я не помню, чтобы читал ее :-) Я посмотрю. Ваши рассуждения о жестком диске, безусловно, имеют смысл.