Итак, на днях я попытался собрать около 100 транзакций с одного и того же аккаунта и отправить их в Эфириум. Я программно создавал много txs, соответственно увеличивал одноразовый номер, подписывал их и отправлял (все через web3js 1.0).
В конце концов все они были обработаны, но я редко видел, чтобы 2 или более транзакций попадали в один и тот же блок. в основном они добывались каждый второй блок по одному. даже когда я сильно увеличил gasPrice, я не заметил улучшения в скорости добычи партии.
Кто-нибудь знает, почему это происходит?
Перед переходом в основную сеть я протестировал ropsten, и вся партия из 30 транзакций была добыта в одном блоке. Связано ли это с тем, как майнер выбирает, какие tx помещать в блоки? Я понимаю, почему майнер не включает в блок транзакцию, у которой есть одноразовый номер в будущем, но я не понимаю, почему он не будет включать больше транзакций с той же учетной записи, если они имеют последовательные одноразовые номера, они действительны, а gasPrice высок. . Забавно, что время от времени блок выходил с 2 или более последовательными транзакциями, но это было редко.
Я предполагаю, что майнеры обычно не хранят транзакции, которые они не могут выполнить, в своем пуле транзакций. Таким образом, майнер может получить их не по порядку и просто удалить, оставив только ту, которую он может выполнить, а затем один из их пиров отправляет ему следующие транзакции. Поскольку в сети так много узлов, ваши транзакции обычно остаются на узле в течение длительного времени, поэтому не проблема, если некоторые узлы их удалят.
Михаил Владимиров