Основная функция mempool - хранить транзакции перед их проверкой.
Биткоин и Ethereum являются примерами блокчейнов, которые используют mempools.
Перегруженность блокчейна является основной причиной застревания транзакций на длительное время.
Если вы хотите, чтобы транзакция прошла быстро, используйте подходящие газовые комиссии.
Мы часто осуществляем транзакции на различных блокчейнах, таких как Ethereum и Биткоин, но мы можем не полностью понимать некоторые из их технических аспектов. Тем не менее, знание того, как работают некоторые компоненты блокчейнов, может помочь нам ускорить наши транзакции или снизить их стоимость.
В этом анализе мы обсудим Mempool в блокчейне и как он работает. Мы также объясним, как вы можете обработать ожидающие или задержанные транзакции в сетях Bitcoin и Ethereum.
Читайте также: Что такое блокчейн-эксплорер?
Mempool, сокращенная форма пула памяти - это узел пространства для хранения информации, такой как неподтвержденные транзакции. Он действует как комната ожидания для транзакций, которые еще не были подтверждены или утверждены. Помните, что транзакции включаются в блок только тогда, когда они проверены или утверждены.
Другими словами, пул памяти - это место, где ожидающие транзакции ждут, прежде чем они будут добавлены в блок.
После проверки транзакции это означает, что все участники блокчейна могут получить доступ к информации. Однако перед тем, как транзакция будет одобрена, несколько узлов проверяют подпись, проверяют, чтобы вывод не был больше ввода и чтобы система еще не отправляла цифровые активы. Если хотя бы одно из этих условий не выполняется, валидаторы или майнеры отклоняют транзакцию.
Важно понимать, что для блокчейна не существует единого пула транзакций. Каждый узел в сети блокчейна имеет свой собственный пул памяти, который также называется пулом транзакций. Таким образом, пулы памяти различных узлов составляют общий пул памяти блокчейна.
Например, транзакции, которые осуществляются на Биткоин Сеть не добавляет транзакции непосредственно в блокчейн. Каждый узел хранит транзакции во временном хранилище для транзакций, называемом памятью или пулом транзакций. В результате они образуют очередь, которую необходимо проверить и подтвердить.
Таким образом, мы можем просто определить мемпул как организованную очередь транзакций, которые необходимо отсортировать и добавить в блок.
Пул памяти (Mempool) в узле - Babypips
Помните, что транзакции существуют только в память-бассейне, прежде чем они будут подтверждены или упакованы в блоки. На приведенной выше диаграмме синяя секция представляет собой пространство память-бассейна, которое существует внутри узла. На следующей диаграмме показано распределение память-бассейнов в сети.
Полные узлы в сети Биткойна имеют Mempools - Babypips
Как видно на приведенной выше картинке, у каждого полного узла в сети, такой как биткойн или Эфириум, есть мемпул. Однако каждая транзакция будет транслироваться по узлам сети, как показано на следующей схеме.
Сеть Bitcoin Nodes - Babypips
Как указано на диаграмме, пользователь в фиолетовом цвете инициирует транзакцию биткойна, которая хранится в памяти перед утверждением. Важно отметить, что после проверки транзакции она добавляется в блок, как показано на следующей иллюстрации.
Транзакция добавлена в файл (блок) - Babypips
Синяя стрелка на диаграмме показывает, что происходит, когда транзакция подтверждается, она перемещается из пула транзакций в блок. На этом этапе все компьютеры будут иметь обновленный файл подтвержденной транзакции.
Как правило, Mempools не работают точно так же. Как они работают, зависит от архитектуры каждого блокчейна. Другими словами, они работают по-разному в зависимости от типов консенсус-механизмов сетей. Транзакции либо проверяются валидаторами, либо майнерами в зависимости от сетей.
На примере транзакций на биткоин-блокчейне можно увидеть, что они проверяются майнерами, поскольку он использует механизм консенсуса proof-of-work. С другой стороны, транзакции на сети Ethereum подтверждаются валидаторами, потому что блокчейн использует механизм консенсуса proof-of-stake.
Читайте также: Переформатирование Ethereum и потенциальные проблемы сети здоровья
Сеть биткоина требует не менее шести подтверждений для каждой транзакции, в то время как блокчейн Ethereum требует не менее семи подтверждений. В основном, каждая транзакция в пуле ожидающих имеет определенный статус. Он либо ожидает, либо в очереди. Когда проверяющий или майнер проверяет транзакцию в очереди, она становится ожидающей.
Читайте также: Что такое Bitcoin Lightning Network?
Давайте рассмотрим простой пример того, что происходит, когда вы отправляете ETH другу. Процедура включает ввод адреса кошелька, установку комиссии за газ и подтверждение транзакции.
После выполнения этих действий ваша транзакция становится в очередь ожидания верификации. На этом этапе она транслируется всей сети узлов, но пока не является частью любого блока.
Если валидаторы проверяют транзакцию и обнаруживают, что она соответствует всем условиям, она перемещается из статуса в очереди в ожидающий один, ожидая подтверждения. Затем один из валидаторов выбирает транзакцию из мемпула и добавляет ее в новый блок.
На этом этапе несколько валидаторов одобряют его, что позволяет вашему другу получить ETH.
Шаг 1: Отправитель вводит адрес назначения, принимает комиссию за сетевую транзакцию и нажимает «ОТПРАВИТЬ»
ШАГ 2: Транзакция добавляется в ближайший пул транзакций и ставится в очередь.
ШАГ 3: Данные о mempool передаются другим узлам в сети.
ШАГ 4: Узел утверждает транзакцию, и ее статус изменяется с Очередь на Ожидание.
ШАГ 5: Шахтер выбирает ожидающую транзакцию и добавляет ее в блок.
ШАГ 6: Остальные узлы удаляют транзакцию из своих мемпулов.
ШАГ 7: Транзакция завершена, и актив попадает в целевой кошелек.
Теперь, когда вы понимаете, что задерживает вашу транзакцию при ее обработке, давайте рассмотрим причины застревания некоторых транзакций и какие меры вы можете принять.
Основная причина застревания транзакций в мемпуле - сетевая перегрузка. Когда объем транзакций высок, давление на доступное блок-пространство возрастает, что вызывает задержку в мемпуле. Это происходит, если количество ожидающих транзакций больше, чем среднее количество транзакций в блоке.
Некоторые события и новости, которые влияют на уровень трафика в блокчейне, могут вызвать перегрузку сети. Например, раздачи монет, листинг на дополнительных биржах или новые партнерства могут привести к перегрузке. Однако существуют факторы, которые позволяют узлам приоритезировать определенные транзакции.
Комиссия за транзакцию: Количество комиссий, прикрепленных к различным транзакциям, определяет те, которые будут одобрены в первую очередь. Поскольку шахтеры и валидаторы мотивированы прибылью, они отдают предпочтение транзакциям с более высокими комиссиями, потому что это позволяет им получить большие награды.
Поэтому майнеры и валидаторы организуют транзакции в своих мемпулах на основе платы за единицу, такой как сатоши/байт. В конце концов, они добавляют в блоки транзакции с наибольшей платой первыми. Эта система заставляет пользователей устанавливать высокие платежи за свои транзакции.
Тем не менее, в зависимости от сетевого трафика пользователи могут установить оптимальные газовые сборы и все равно иметь подтверждение своих транзакций вовремя. Для пользователей важно проверить такие факторы, как исторические данные, сетевая перегруженность, объем транзакций и распределение сборов в мемпуле, прежде чем устанавливать свои собственные газовые сборы.
Время подтверждения: Пользователям также может потребоваться проверить время подтверждения перед установкой своих комиссий. Когда времена подтверждения высоки, это означает, что майнеры и валидаторы отдают предпочтение транзакциям с высокими комиссиями. По сути, когда мемпул перегружен, это означает, что транзакции с более низкими комиссиями займут гораздо больше времени, чтобы пройти.
Пространство блока Пространство блока также определяет количество времени, которое проходит, прежде чем транзакции будут подтверждены. Поскольку пространство блока всегда ограничено, майнеры и валидаторы отдают предпочтение транзакциям с более высокими комиссиями. Это означает, что транзакции с более низкими комиссиями тратят много времени в mempool.
Размер памяти и выселение Mempool: Каждая транзакция, которую необходимо добавить в блок, представляет собой набор данных размером в килобайтах. Поэтому большие пулы памяти могут вмещать много транзакций. Обычно узлы задают размеры своих пулов памяти, которые часто составляют 300 МБ для Bitcoin. Когда пул памяти достигает порога, узел может установить минимальную комиссию за транзакцию.
Когда пользователи понимают такую динамику, им легко устанавливать свои комиссии за транзакции и получать их одобрение в разумный срок. Например, они могут избежать переплаты в периоды низкой пропускной способности или недоплаты в пиковые времена, когда у них есть срочные транзакции. Они также могут делать приближенно правильные образованные предположения о том, насколько быстро будут подтверждены их транзакции.
Часто транзакции застревают в мемпуле по нескольким причинам, но большинство из них связаны с газовыми сборами. Однако, главная причина, по которой некоторые транзакции застревают в мемпуле, - это сетевая перегрузка. Когда происходит перегрузка, транзакции с высокими комиссиями проходят первыми, оставляя остальные застрятыми там.
Поэтому лучше всего делать во время пика сети - это увеличивать комиссию за транзакции. Это связанно с тем, что во время перегрузки газовые комиссии вырастают. Таким образом, если вы обрабатываете транзакцию во время перегрузки, вы должны соответствовать комиссии, которую платят другие пользователи сети.
Другая причина, почему транзакции застревают в mempool, - это снижение хешрейта. Мы говорим, что хешрейт снижается, когда сети не хватает физической вычислительной мощности для выполнения большого количества ожидающих транзакций.
У вас есть несколько вариантов, когда ваша транзакция застряла в памяти. Первый вариант - отменить транзакцию. В этом случае вам придется заплатить еще один комиссионный сбор за транзакцию. Например, вы можете повторно отправить транзакцию с тем же номером.
Во-вторых, вы можете выбрать ускорение транзакции, подключив свой Ledger к кошельку третьей стороны, такому как MetaMask или Electrum. Тем не менее, вам придется заплатить больше за это.
Третий вариант - подождать немного дольше, чтобы транзакция прошла. Таким образом, вы ждете уменьшения сетевого трафика, что позволит вашей транзакции пройти без дополнительных затрат.
Транзакции, отправленные в сеть Bitcoin, не добавляются мгновенно в блокчейн. Сначала они попадают в память пула транзакций (mempool). Раньше такие транзакции требовали только комиссии, измеряемой в сатоши на байт.
Однако это изменилось после обновления SegWit, которое позволяет измерять транзакции в весовых единицах. Хорошо то, что функции сегвита позволяют добавлять больше данных в блок, чем раньше. Конкретно, в блоке может быть 2 МБ данных, хотя это может увеличиться до 4 МБ.
Изначально сеть Ethereum требовала, чтобы транзакции попадали в мемпул перед проверкой. Тем не менее, когда блокчейн перешел от механизма консенсуса proof-of-work к proof-of-stake, было введено понятие блок-строителя.
В основном, строители блоков - это сторонние игроки, которые компилируют транзакции в оптимизированный пакет транзакций, который формирует блок. В данном случае сторонние субъекты компилируют или переупорядочивают определенные транзакции из mempool в пакеты. Затем они предлагают пакеты транзакций валидаторам для включения их в блоки. Сторонние субъекты получают вознаграждение за выполнение этих задач.
В заключение, пул памяти - это пространство, в котором узел блокчейна временно сохраняет транзакции до их проверки. Продолжительность пребывания транзакции в пуле памяти в Ethereum зависит от нескольких факторов, таких как перегруженность сети и газовая плата. Обе блокчейна Bitcoin и Ethereum используют пулы транзакций.
Mempool - это пространство, где ожидающие транзакции ждут, прежде чем они будут добавлены в блок. После того как транзакция будет проверена, она добавляется в блок, который существует на блокчейне.
Когда некоторые транзакции находятся в mempool, некоторые валидаторы или майнеры выбирают их и добавляют в блоки. Однако некоторые из транзакций могут оставаться в очереди или ожидании в течение длительного времени, если сеть перегружена.
Mempool BTC - это комната ожидания для транзакций, которые обрабатываются в сети биткойна. Обычно у каждого узла блокчейна биткойна есть свой собственный mempool.
Mempool в Ethereum - это пространство для хранения транзакций на узлах Ethereum до их подтверждения. Время, которое проходит до подтверждения этих транзакций, зависит от трафика сети Ethereum в течение определенного периода.