Почему я не могу получить больше транзакций из пакета в одном блоке?

Итак, на днях я попытался собрать около 100 транзакций с одного и того же аккаунта и отправить их в Эфириум. Я программно создавал много txs, соответственно увеличивал одноразовый номер, подписывал их и отправлял (все через web3js 1.0).

В конце концов все они были обработаны, но я редко видел, чтобы 2 или более транзакций попадали в один и тот же блок. в основном они добывались каждый второй блок по одному. даже когда я сильно увеличил gasPrice, я не заметил улучшения в скорости добычи партии.

Кто-нибудь знает, почему это происходит?

Перед переходом в основную сеть я протестировал ropsten, и вся партия из 30 транзакций была добыта в одном блоке. Связано ли это с тем, как майнер выбирает, какие tx помещать в блоки? Я понимаю, почему майнер не включает в блок транзакцию, у которой есть одноразовый номер в будущем, но я не понимаю, почему он не будет включать больше транзакций с той же учетной записи, если они имеют последовательные одноразовые номера, они действительны, а gasPrice высок. . Забавно, что время от времени блок выходил с 2 или более последовательными транзакциями, но это было редко.

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

Ответы (1)

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

Я не учел, что майнер может получить их не по порядку. И я предполагаю, что это зависит от политики майнера отбрасывать определенные txs или даже не распространять определенные txs. Я где-то читал, что некоторые реализации узла отбрасывают ненайденные txs через некоторое время, и я думаю, что слишком долгое сохранение некоторых txs не является хорошей стратегией, поскольку можно спамить узел с большим количеством unminable (однократно в далеком будущем), чтобы заставить его работать закончилась память или память. Но я думаю, что было бы не так уж плохо хранить те, у которых одноразовые номера рядом с текущим.