Я попробовал простой перевод эфира между двумя аккаунтами с помощью geth, но установил довольно низкую цену на газ (2 gwei). Через два часа транзакция все еще отображалась в geth under eth.pendingTransactions
— я предположил, что это связано с отсутствием спроса на майнинг по такой цене на газ.
Однако в этот момент я проверил обе учетные записи на Etherscan , чтобы установить, не транслировалась ли транзакция с моей локальной машины. Транзакция отображалась как ожидающая, но с возрастом всего 40 минут . Примерно через десять минут я обновился, и транзакция исчезла с обеих страниц Etherscan, но все еще отображалась в geth. Через несколько минут транзакция снова появилась на Etherscan, но возраст был сброшен до 2 минут . С этого момента я периодически проверял, пока транзакция в конечном итоге не завершилась (через четыре часа после отправки), без повторного сброса Etherscan.
Поскольку я был обеспокоен в течение короткого времени, когда транзакция исчезла, я хотел бы немного лучше понять основной процесс. Мое понимание будет примерно таким:
Однако мой сегодняшний опыт показывает, что это может быть не так просто, поскольку моя ожидающая транзакция исчезла, а затем снова появилась в Etherscan (один узел?). Какая была бы более точная последовательность событий?
Насколько я понимаю, ваше понимание правильное, за исключением того, что вы упускаете одно конкретное свойство программного обеспечения узла Ethereum. А именно, как часть #3, транзакция хранится в пуле транзакций узла (см. мемпул Биткойн). Обычно транзакции живут там до тех пор, пока не будут добыты, но поскольку компьютеры имеют конечную память и вычислительную мощность, пул транзакций по необходимости также имеет конечный размер. Транзакции, которые не были добыты, могут быть вытеснены из памяти, если пул транзакций заполнен (я предполагаю, что порядок зависит от реализации - предположительно сохраняются транзакции с более высокой стоимостью). Таким образом, ваша транзакция, вероятно, была исключена из пула транзакций Etherscan, но была «рециркулирована» другим узлом после того, как пул транзакций Etherscan освободил часть памяти.
Ричард Хоррокс