Скорость транзакции ethereum сейчас

Содержание
  1. Суть и особенности транзакций в блокчейне Эфириума
  2. Транзакции блокчейна Ethereum
  3. Газ или gas: что это за параметр и как он рассчитывается
  4. Как газ тратится на хранение данных?
  5. Для каких целей удерживаются комиссии?
  6. Транзакции Эфириума: как их проверить и отследить?
  7. Можно ли отменить транзакции Эфириума? — Да
  8. Что включают транзакции и их сообщения?
  9. О блоках с инфоданными по всей совокупности транзакций блокчейна Ethereum
  10. Оммеры: суть и роль
  11. Заголовок блока: его содержание
  12. Логи с инфоданными о транзакционных шагах и сообщениях
  13. Квитанции транзакций: что она содержит?
  14. Как сделать перевод без финансовых трат?
  15. Как сложность блока связана с временем подтверждения транзакции?
  16. Сколько времени может длиться транзакция в сети Ethereum?
  17. Проблемы с криптовалютными транзакциями
  18. О размере комиссии для проведения транзакций в сети Etehereum
  19. От чего зависит время прохождения транзакции в сети Ethereum и как его оптимизировать?
  20. Можно ли отправить ETH-транзакцию с размером комиссии, равным одному Gwei?
  21. Сколько времени может «болтаться» в сети неподтвержденная транзакция?

Суть и особенности транзакций в блокчейне Эфириума

Транзакции, то есть переводы Эфириума между адресами кошельков получателей и отправителей, совершаются с уплатой комиссионных. Цифра платы транзакции Эфириума плавающая — зависит от нагрузки на систему, исчисляется в единицах газ.

Транзакции блокчейна Ethereum

Платёж в структуре Эфириума означает отправку пакета с инфоданными с одного адреса на другой. Транзакция включает:

  • Подпись отправителя.
  • Адрес получателя Эфириума.
  • Стоимость, заполняется в строке VALUE.
  • Сумма монет — в строке wei.
  • DATA — комментарий.
  • GASLIMIT — всё число вычислений данной операции Эфириума.
  • GASPRICE — комиссию, которую согласен оплатить отправитель за 1 ед газа.
  • To — адрес криптокошелька пользователя, получающего перевод.

Газ или gas: что это за параметр и как он рассчитывается

Газ в Эфириуме, в количестве 1 единицы, сопоставим с запуском одной неделимой, иначе, атомарной, операции или вычисления.

Что такое ценность газа в блокчейне Эфириума? Зависит от готовности пользователя заплатить долю Эфира за расчёт 1 газа и измеряется в единицах Gwei, где:

  • Wei — микродоля Эфира, а один ETH=1⁰¹⁸ в Wei.
  • Gwei равен миллиарду Wei.

Человек, который совершает транзакцию — отправляет деньги, устанавливает и лимит, и стоимость газа. Произведение этих составляющих равняется максимальному Wei Эфириума.

  • пользователь ставит gas limit 40 тыс. при цене 25 Gwei;
  • следовательно, готов потратить тысячу триллионов Wei или 0,001 ETH.

При этом, лимит газа означает лишь максимальное количество, которое пользователь готов оплатить.

Практически, операция может обойтись дешевле, тогда неизрасходованный газ вернётся на счёт отправителя Эфириума, а обратный обмен совершится по ставке первого обмена — Эфира в газ.

Если же отправитель оформил транзакцию, но не смог предоставить газ для оплаты — операция в экосистеме Ethereum считается недействительной, а потраченный на попытку перевести средства газ не возвращается.

Перевести определённое количество газа в ETH можно на калькуляторе Эфириума, например, заглянув на ru.investing.com/crypto/gas/gas-eth-converter.

Как газ тратится на хранение данных?

Поняв, что такое gas, уплаченный за передачу средств в системе Ethereum, следует узнать, что газ, тратится на хранение данных Сети.

  1. Увеличение объёма хранилища влечёт расширение БД всех нод.
  2. Поэтому, протоколом экосистемы Эфириум предусмотрена стимуляция пользователей уменьшать данные до минимума.
  3. Когда, по итогам транзакции, объём данных получается сократить, то комиссионное удержание за операцию не начисляется и пользователю поступает компенсация за освобождение места.

Для каких целей удерживаются комиссии?

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

Поэтому, когда есть необходимость ускорить транзакцию, владельцы Эфириума назначают повышенную комиссию.

Операции с минимальной платой могут оставаться в Сети довольно долго, пока не найдётся желающий обработать платёж. Одновременно, майнеры вправе публично заявить о минимальной желаемой стоимости платежа.

Транзакции Эфириума: как их проверить и отследить?

Отследить и выполнить проверку транзакций в Сети Эфириума можно с помощью сервисов:

Когда требуется узнать id транзакции в блокчейне Ethereum или проверить состояние транзакции в Сети Ethereum, перечисленные сайты выполняют проверку по одинаковым алгоритмам и выводят равнозначную информацию.

Какой сервис использовать для проверки рекомендаций и транзакций Ethereum зависит от личных предпочтений к интерфейсу сайтов.

В окно поиска вводятся параметры платежа Эфириума — адрес криптокошелька, или токен, код операции, то есть, TxHash или номер блока хэша.

Поиск выведет данные, которые пользователь хочет узнать о платеже Ethereum:

  • id то есть, идентификатор;
  • статус перевода;
  • объём;
  • номер кошелька получателя;
  • предельное количество газа, назначенное отправителем;
  • фактически потраченный газ.

Кроме этого, станут доступны дополнительные параметры сделки.

Можно ли отменить транзакции Эфириума? — Да

Если загруженность blockchain Ethereum высока, а цена транзакции Эфириума назначена маленькая, то перевод может зависнуть на срок от нескольких часов до нескольких недель. Чтобы избежать подобной ситуации, нужно проверить на сайте ethgasstation.info статус Сети и рекомендуемую оплату.

Для отмены транзакции, также, потребуются данные с указанного сайта:

  1. Оптимальная текущая стоимость операции.
  2. № криптокошелька Эфириума, откуда был отправлен неудачный перевод.
  3. Nonce зависшего перевода.
  1. Во вкладке Send Offline, нужно выбрать тот номер кошелька Эфириума From Adress, с которого была отправлена зависшая транзакция и № адреса, куда будет отправлен новый перевод — этот номер To Adress может быть любым.
  2. Затем, в строке Value/Amound to Send указывается сумма Эфириума к отправке 0 (ноль) и в строке Gas Price комиссия в GWei.
  3. Следует учитывать, что, задавая комиссию в Wei, к сумме в GWei нужно добавить девять нулей. Например, 55 GWei = 55000000000 Wei.

Важно! В строке Nonce следует внести параметр именно той транзакции Ethereum, которую нужно изменить, иначе, операция отмены не получится.

После авторизации, останется нажать Send Transaction и зависший платёж Эфириума отменится.

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

Что включают транзакции и их сообщения?

Нередко, в интернете встречается понятие Машина Эфириум. Эта виртуальная структура функционирует за счёт транзакций — подписанных команд, которые генерируются внешним аккаунтом и отправляются в блокчейн.

Читайте также:  Как обналичить деньги с майнинга

Транзакции делятся на 2 типа:

  1. Просто сообщения.
  2. Создающие контракты.

Каждая транзакция охватывает уже описанные выше nonce, gasPrice, Wei, gasLimit и to.

Если транзакция Эфириума создаёт контракт, то его адрес остаётся пустым, а value, объём Wei — значит начальный баланс. Кроме этого, только здесь присутствует init — команда, представляющая фрагмент кода транзакции — EVM-code, которая совершается лишь раз.

Data является необязательной строкой, так как может как содержать комментарии, так и не заполняться.

Если речь идёт, например, о смарт контракте Эфириума, который регистрирует доменные имена, то сообщение будет содержать IP-address и имя.

О блоках с инфоданными по всей совокупности транзакций блокчейна Ethereum

Кроме внешних транзакций, поступающих в blockchain и представляющих собой мостики между внешними структурами и системой Эфириум. Есть и контракты, которые сообщаются только внутри машины — через уведомления или, так называемые, внутренние транзакционные передачи.

  1. Операции внутреннего типа производятся непосредственно смарт-контрактами, не связаны с внешними счетами и не отмечены таким параметром, как gasLimit.
  2. Узлы с данными обо всех переводах, объединены в криптоблоки и blockchain Эфириума, который представляет собой цепочку объединённых узлов.

В результате, block Ethereum складывается из заголовка, сведений о типах операций в Сети Эфириума — внешних и/или внутренних, заголовков прочих узлов, в частности, оммеров конкретного блока.

Оммеры: суть и роль

Оммером, на английском ommer, называется узел, чей исходный блок тождественен исходному блоку исходного узла конкретного блока. Интервал между узлами в Эфириуме около 15 секунд, что обеспечивает более высокую, чем, например, у Биткоина, обработку транзакций.

Однако в этом моменте кроется проблема. Майнеры Эфириума вычисляют много блоков-конкурентов, которые называются орфанами/потерянными, то есть, найденными, но не попавшими в цепочку blockchain.

Оммеры дают возможность майнерам включить орфан-block в общую цепь и получить вознаграждение. Для этого, оммер должен быть не старше, чем шестой от текущего узла. На оммер большего порядка ссылаться нельзя, поскольку он считается устаревшим, а связанные с ним транзакции усложняют сетевые операции Машины Эфириум.

Награда майнеру за оммер меньше, чем за обычный блок.

Заголовок блока: его содержание

Структура заголовка узла довольно сложная, складывается из:

  • Parent Hash — № хэша исходного заголовка, то есть, непосредственно родительского блока.
  • Ommers Hash — хэша перечня оммеров настоящего блока.
  • Beneficiary — веб-адреса, куда зачисляется комиссия за вычисление узла Эфириума.
  • State Root — хэша главного блока, так называемого, trie/дерева состояний, которое, в свою очередь, находится в заголовке и обеспечивает лёгким программным клиентам возможность проводить верификацию.
  • Transaction Root – хэша trie/корневого узла Эфириума, охватывает все пересылки, записанные в этот блок.
  • Receipts Root — хэша главного узла trie, с отчётами о всех транзакционных операциях рассматриваемого блока Эфириума.
  • Logs Bloom/фильтра Блума — принципа построения информации, представляющего собой логи записей.
  • Difficulty/сложности расчётов в Сети Эфириума, относящихся к текущему блоку.
  • Number/номеру, принадлежащему конкретному узлу, при этом, № генезис-block равен 0, а каждый за ним следующий возрастает на единицу.
  • Gas Limit — лимита газа, затраченного на этот блок.
  • Gas Used — весь объём газа, потраченный на транзакции этого узла.
  • Time stamp: UNIX — метку о времени рождения block.
  • Extra Data: допданные для узла.
  • Mix Hash — хэша Эфириума, который, одновременно с nonce, удостоверяет, что для конкретного блока было сделано необходимое число расчётов.
  • Nonce — хэша, который вместе с mixHash, подтверждает достаточное число вычислений для узла.

Кроме этого, в заголовке каждого block присутствуют 3 структуры trie — статуса Рут(state), транзакций Рут(transactions) и отчётных квитанций Рут(receipts). Эти три структуры именуются patricia-деревьями Меркла — однонаправленными хеш-функциями.

Логи с инфоданными о транзакционных шагах и сообщениях

Логи помогают в отслеживании инфоданных транзакций и комментариев, генерируются при каждой операции. Включают:

  1. Адрес счёта.
  2. Темы действий, которые применялись при выполнении транзакций.
  3. Регистратора самого лога.
  4. Любые иные данные, связанные с отправкой.
  5. Место хранения логов — фильтр Блума.

Квитанции транзакций: что она содержит?

Для квитанций данные извлекаются из логов, содержат информацию об операции — № и хеш блока, хеш самой транзакции, потраченный газ, объём газа, задействованного в формировании узла, логи и другие данные.

Как сделать перевод без финансовых трат?

Единицы оплаты перевода допускается выставлять самостоятельно. Поэтому, установив не Gwei, а wei и назначив стоимость перевода в 1 wei за 1 gas, пользователь расплатится ничтожно малой суммой, стремящейся к нулю.

При цене 0 wei платёж не пройдёт, а при 1 wei осуществится с высокой вероятностью.

Такая ситуация обусловлена частичной наполненностью блоков максимально допустимым объёмом транзакций, эквивалентных 6,7 млн gas. Чтобы воспользоваться описанным приёмом — в MyEtherWallet следует открыть вкладку Send Offline/Оффлайн-перевод и выбрать единицы оплаты wei.

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

Как сложность блока связана с временем подтверждения транзакции?

Вычислительная трудность/сложность — термин, для описания времени, необходимого для подтверждения конкретного узла Эфириума.

  1. Генезис-блоку/первому, соответствовала сложность 131072.
  2. Для подсчёта всех последующих применяется спецформула. И если отдельно взятый узел прошёл валидацию быстрее предшествующего, то система Эфира корректирует сложность его расчёта в большую сторону.
  3. Аналогично происходит и при обратной ситуации. Если подтверждение очередного узла Эфириума должно занять больше времени, чем запланировано протоколом, сложность, автоматически уменьшается.

В результате, поддерживается постоянная скорость майнинга Эфириума, при которой один блок появляется в среднем, раз в 15 секунд.

Источник

Сколько времени может длиться транзакция в сети Ethereum?

При использовании любой платежной системы одним из важнейших показателей эффективности является значение максимальной скорости проведения транзакций. Одними из лучших в этом контексте являются американские платежные системы Visa и Mastercard. В них транзакции производятся почти мгновенно, например, пропускная способность системы Visa превышает 65,000 операций в секунду.

Читайте также:  Эффект масштаба закон убывающей доходности это

Возможности платежной системы Visa согласно их рекламе в «Visa Fact Sheet» (информация за 2018 год):

На практике процесс проведения транзакций в платежных системах типа Visa/Mastercard занимает намного больше времени, что связано с необходимостью проведения всех этапов проведения банковского платежа (авторизация клиента, собственно транзакция и окончательное проведение платежа, занимающее до несколько дней).

Этапы проведения платежа Mastercard:

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

Иллюстрация упрощенного механизма прохождения биткоин-транзакции, при котором используется transaction pool (по другому называется mempool):

Прохождение транзакции, созданной в кошельке MyEtherWallet в сети Etehreum (необработанные транзакции находятся в одноименном пуле):

Возможности криптовалютных платежных систем не безграничны. Они используются в качестве платежного средства всего несколько лет (биткоин появился только в январе 2009 года), поэтому не лишены недостатков.

Самыми большими проблемами популярных криптовалют являются: низкая скорость проведения транзакций (малая пропускная способность) и высокие комиссии при большой загруженности сети.

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

За сутки в сети Etehreum обрабатывается более 1.7 млн. транзакций (19.7 tx/s):

Сравнение пропускной способности разных платежных систем (Visa в настоящее время имеет еще большую скорость — не менее 65 тысяч транзакций в секунду ):

Проблемы с криптовалютными транзакциями

В связи с постоянным притоком новых пользователей, использующих авторитетные цифровые активы (например, биткоин, Ethereum и т.д.), все сильнее проявляется малая пропускная способность их сетей (низкая масштабируемость). Малое быстродействие приводит к замедлению времени проведения транзакций, а также увеличению издержек, связанных с оплатой транзакций.

Чтобы избежать зависания транзакций нужно устанавливать размер комиссии (Txn Fee) на уровне, соответствующем загруженности сети. Соответствующие данные для сети Ethereum есть на страницах с данными по Gas Price, например, на Ethereum Gas Tracker сайта Etherscan. Здесь приводятся данные по прогнозируемому времени подтверждения транзакции с минимальным, средним и высоким уровнем оплаты:

В большинстве случаев установка среднего значения fee в кошельке обеспечивает достаточно быстрое проведение транзакции.

Для биткоина при выборе размера комиссии можно воспользоваться данными с авторитетных Bitcoin Fee-калькуляторов (подробнее в статье «Как уменьшить стоимость транзакции в сети Bitcoin»).

Иногда происходят анекдотические ситуации, когда пользователи случайно или умышленно (например, хакеры мстят недобросовестной бирже) устанавливают размер комиссии больше суммы самой транзакции. При этом сумма потраченных на оплату комиссии сети может достигать фантастических значений (некоторые примеры таких случаев рассматриваются в статье «Никогда такого не было и вот опять: перевод одного доллара с комиссией в 80 тысяч»). Для борьбы с этим в сети Ethereum были внедрены некоторые обновления во время хардфорка Berlin, а также планируется реализация ряда других изменений.

О размере комиссии для проведения транзакций в сети Etehereum

В большинстве случаев значение комиссии, которое автоматически устанавливает кошелек, например, MyEtherWallet, обеспечивает приемлемое время проведения транзакции. Иногда все же стоит внимательнее изучить текущий размер комиссии на одном из онлайн-ресурсов (например, Etherscan) и подкорректировать ее, сэкономив средства (уменьшив размер потраченного газа) или обеспечить ее быстрое включение в блокчейн (увеличить gas fee).

Если выставить размер газа меньше рекомендуемого, появится риск попадания транзакции в длинную очередь ожидающих (иначе говоря, попасть в мемпул (Mempool), TX-Pool или TX-Queue). Это происходит из-за того, что майнеры в первую очередь обрабатывают транзакции с наибольшим размером комиссии, которая сейчас полностью отдается им. Ситуация изменится после реализации обновления EIP-1559, но пока дела обстоят именно так.

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

Низкая пропускная способность сети Ethereum приводит к огромным задержкам в виде десятков и сотен тысяч «зависших» транзакций:

Учитывая пропускную способность сети (16.5 txs/s после хардфорка Berlin), время обработки всех pending-транзакций в приведенном выше примере займет не менее 180,000/16.5= 10,909 секунд (три часа), даже если в Mempool не будут добавляться новые транзакции. На практике зависшая транзакция может «гулять» по сети и более длительный период времени.

Пример Ethereum-транзакции, ожидающей подтверждения более пяти дней:

Что делать для отмены зависших (pending) транзакций в сети Ethereum можно узнать в статье «Как отменить или заменить транзакцию, зависшую в сети Ethereum».

При работе с криптовалютами желательно использовать холодные кошельки, например, MyEtherWallet для Ethereum (подробнее в статье «Работа с кошельком MEW в «холодном» режиме») и Electrum для Bitcoin (подробнее в статье «Использование кошелька Electrum для холодного хранения биткоинов»).

Рассмотрим подробнее причины зависания транзакций в сети Ethereum и попробуем разобраться с максимальным временем их пребывания в подвешенном состоянии.

От чего зависит время прохождения транзакции в сети Ethereum и как его оптимизировать?

Подписанная кошельком транзакция в сети Etehreum подтверждается и включается в блокчейн несколькими путями, большинство из которых предусматривает пребывание в течение некоторого времени в статусе ожидания (pending). Если сеть мало загружена и выставлен достаточный размер комиссии, то транзакция может быть включена в ближайший блок и проведена в течение нескольких секунд. В противном случае ее ожидает долгое «пребывание в нирване».

Читайте также:  Ethereum berlin upgrade is scheduled to go live on the ethereum mainnet at block 12244000

Возможные пути подтверждения Ethereum-транзакции:

Время прохождения транзакций в сетях Ethereum, Bitcoin (а также у ряда других криптовалют со схожими блокчейнами) в основном зависит от двух факторов:

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

Частота генерации блоков в PoW-блокчейнах регулируется с помощью изменения сложности майнинга. В сети биткоина целевое время между блоками равно 10 минутам, в сети Ethereum — 13-15 секунд. Чем меньше время между блоками, тем больше пропускная способность сети. Время между блоками не может быть слишком малым из-за проблем с обеспечением синхронной работы такой сети на глобальном уровне.

Количество информации, которую может вместить один блок ограничено его (максимально возможным) размером и набором включаемых в него данных. Таким образом, для увеличения быстродействия (без сокращения времени между блоками) проще всего увеличить размер блока. Кроме того, увеличить количество обрабатываемых транзакций можно за счет оптимизации, удаления и/или вынесения определенной служебной информации за пределы блока. Такая хитрость (вынесение подписей транзакций вне содержимого основного блока) используется в сети биткоин после обновления SegWit 24.08.2017 года. После форка Taproot уменьшиться количество подписей в одном блоке, что дополнительно увеличит быстродействие BTC-транзакций и снизит комиссии.

Еще одним способом увеличения быстродействия является разгрузка сети путем введения в систему дополнительных каналов связи, позволяющих осуществлять практически мгновенное проведение платежей, например, технология Lighting Network. В основной сети биткоина заранее создаются хеш-контракты блокировки сумм, которые затем используются для мгновенного проведения транзакций с помощью долговых расписок через дополнительный канал связи с помощью Lightning-протокола. Блокчейн биткоина при этом используется только для фиксации факта выделения средств в выделенный канал, а также для фиксации итогового баланса после закрытия канала.

В сети Ethereum значительное увеличение масштабируемости произойдет после добавления в сеть дополнительных цепочек, связанных с основным блокчейном. Развертывание сети с PoW и PoS-сегментами полностью решит проблему быстродействия, но пока у Ethereum используется только PoW-блокчейн, pending-транзакции будут успешно существовать.

В PoW-сети Ethereum майнинг-пулы (либо крупные соло-майнеры, имеющие свои full nodes) сами решают, какие транзакции будут включены в блок.

Взаимодействие пользователей, полных узлов (майнинг-пулов) и PoW-майнеров при работе с транзакциями:

До включения в блок транзакции хранятся в общем pending-пуле, из которого самые «жирные» транзакции отбираются майнинг-узлами (пулами) в свой собственный список (уменьшенную копию всего мемпула).

Иллюстрация, поясняющая суть работы майнеров по отбору транзакций для последующего создания блоков:

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

Чем выше размер gas price подписанной кошельком транзакции, тем больше вероятность, что она будет включена в блок:

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

Можно ли отправить ETH-транзакцию с размером комиссии, равным одному Gwei?

Транзакции, имеющие мизерный размер комиссии, теоретически могут попасть в список какого-нибудь узла, но будут обработаны (включены в блок) в последнюю очередь.

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

Пример транзакции с минимальным размером комиссии (Gas Price равен 1 Gwei), созданной и включенной в блок пулом Ethermine:

В этот же блок Ethermine включил и другие транзакции с минимальной комиссией:

Созданные «экономными» пользователями транзакции даже если и попадут в список кандидатов на включение в блок конкретного узла (TX-queue), через несколько часов из него исключаются, уступая место более выгодным и сползая все дальше в конец общего pending-списка всей сети. Транзакция Ethereum может быть исключена из мемпула (ее баланс будет возвращен на кошелек пользователя за вычетом комиссии) по следующим причинам:

  • изменились значения, ранее заложенные в транзакцию (например, nonce и баланс кошелька);
  • достигнут лимит количества (length limit) транзакций-кандидатов (tx-queue-size) в списке узла;
  • достигнут лимит максимального количества транзакций, установленный для одного отправителя (tx-queue-per-sender);
  • достигнут лимит памяти узла (tx-queue-mem-limit);
  • появилась другая транзакция с тем же самым nonce с того же адреса отправителя, при этом ее gas price больше, чем у предыдущей. В этом случае новая транзакция заменит старую. Это условие позволяет решить вопрос с «зависшими» транзакциями (подробнее в статье «Как отменить или заменить транзакцию, зависшую в сети Ethereum»).

Сколько времени может «болтаться» в сети неподтвержденная транзакция?

Невозможно точно узнать, когда транзакция будет обработана или исключена из общего мемпула как в сети биткоина, так и Ethereum, так как на это влияет слишком много факторов. Во время нахождения в мемпуле какого-либо узла транзакция может быть обработана (включена в блок), либо исключена узлом из списка (dropped), либо снова передана в сеть (re-broadcasted), где ее может подхватить другой узел и все-таки включить в блок.

В сети биткоин имеется таймаут, согласно которому любая транзакция после нахождения в мемпуле более 336 часов (14 дней) будет из него удалена (верно для версий Bitcoin Core 0.14+).

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

Источник

Оцените статью