Если блок действует как реестр транзакций, сколько транзакций может поместиться в блоке?
Мне нужно настроить частную тестовую сеть, в которой только одной машине разрешено майнить, в то время как (многие) другие выполняют транзакции в своей цепочке блоков (майнер также устанавливает блок генезиса). Что произойдет, если количество транзакций превысит максимально допустимое количество транзакций в блоке?
Ниже приведено упрощенное объяснение того, что делает geth.
Есть два основных места, где могут находиться транзакции: в блоке или в пуле транзакций (txpool).
Когда узел впервые узнает о транзакции, он помещает ее в txpool. По сути, это транзакции с нулевым подтверждением. Есть несколько способов получить к нему доступ, особенно «ожидающий» псевдоблок в web3.
Когда узел начинает майнить, он будет брать самые высокооплачиваемые транзакции в txpool, одну за другой, и выполнять их. Когда у него заканчивается gasLimit или количество транзакций в пуле, он обязуется майнить этот конкретный блок. (Это отображается в консоли как что-то вроде «зафиксировать новую работу над блоком X с помощью Y txs...»). Затем он продолжает хеширование этого блока, пока не найдет хэш, достаточно редкий, чтобы блок мог быть принят сетью.
Каждая другая транзакция, была ли она получена до начала работы над блоком, но не смогла его использовать по какой-то причине, или получена после, остается в txpool до тех пор, пока не будет добыта, или становится навсегда недействительной по какой-либо другой причине.
Обычно в приватной тестовой сети периодически добываются пустые блоки. Максимальное количество транзакций в блоке зависит от максимального размера блока. О максимальном размере блока в Эфириуме просто перейдите по этой ссылке
пользователь1870400
Мэтью Шмидт