Введение
Мемпул — это версия комнаты ожидания для еще не одобренных транзакций узла блокчейна . После запуска, ваша транзакция автоматически присоединяется к очереди в мемпуле перед обработкой в блокчейне.
Для чего нужен мемпул?
Мемпулы являются неотъемлемой частью функционирования узла блокчейна. Т.е.: одобрение транзакции блокчейна предполагает включение ее в новый блок блокчейна. Однако не все участники сети могут создавать новые блоки. Например, в блокчейнах с доказательством работы, таких как Биткоин, только криптомайнеры могут создавать блоки. В блокчейнах с доказательством доли, таких как Ethereum, только валидаторы могут создавать блоки.Таким образом, когда вы подписываете транзакцию, вам приходится полагаться на то, что майнер или валидатор добавят ее в блок и транслируют в сеть. Однако между одобрением транзакции и ее трансляцией в сеть может пройти определенное время. Тем временем транзакции необходимо место для ожидания, и это место ожидания называется мемпулом.
Как работает мемпул?
Важно отметить, что для каждой блокчейна есть несколько мемпула. Фактически, в каждом узле каждого блокчейна есть мемпул, и каждый из них получает разные транзакции в разное время. Итак, как именно это работает?
Итак, транзакции в мемпуле имеют два возможных состояния: в очереди или в ожидании. Транзакции в очереди становятся ожидающими транзакциями, когда узлы проверяют их. Тогда майнеры смогут добавлять в блок только ожидающие транзакции.
Представьте, что вы решили отправить 1 ETH другу. Вы вводите адрес кошелька вашего друга, устанавливаете комиссию за газ и нажимаете «Отправить». На этом этапе ваша транзакция попадает в ваш мемпул в раздел «в очереди». Оттуда он транслируется по системе узлов. Но он пока не добавлен в блокчейн.
Вместо этого каждый узел выполняет проверки, чтобы убедиться, что транзакция в очереди действительна. Если узлы не обнаруживают проблему, транзакция переходит из состояния «в очереди» в состояние «ожидание». В какой-то момент майнер или валидатор возьмет ожидающую транзакцию из мемпула своего узла и добавит ее в новый блок. Затем ваша транзакция будет одобрена, и ваш друг получит 1ETH. Затем остальные узлы связываются друг с другом, чтобы удалить транзакцию из своих мемпулов.
Почему моя транзакция все еще находится в мемпуле?
Есть несколько основных причин, по которым ваша транзакция может зависнуть. Среди них:
Перегрузка сети
Основная причина, по которой транзакции застревают в мемпуле, — это перегрузка сети.
Помните, как майнеры и валидаторы в конечном итоге добавляют в блок действительную транзакцию? Ну, тысячи транзакций отправляются в любой момент. Итак, как же они выбирают, какую транзакцию обрабатывать первой?
Проще говоря, майнеры и валидаторы предпочитают в первую очередь обрабатывать транзакции с наибольшим вознаграждением. Таким образом, когда сеть перегружена, комиссии резко возрастают, поскольку некоторые участники более готовы платить более высокие комиссии за транзакции за более быструю их обработку. Это означает, что если вы отправляете транзакцию в загруженный период, вы должны соответствовать цене, которую готовы заплатить другие участники сети.
По сути, это мало чем отличается от того, как работают цены на такси в некоторых странах. Если вечер пятницы напряженный, ваше такси может оказаться дорогим и вам придется долго ждать. В тихий полдень то же расстояние будет в два раза дешевле и в два раза быстрее. Что касается блокчейна, этот таксист является вашим майнером или валидатором, и он получает право принимать транзакции, за которые хочет получить вознаграждение.
Хотя создатели блоков могут показаться жадными, система устроена именно так. Когда система слишком загружена, она автоматически расставляет приоритеты транзакциям, предлагающим самые большие вознаграждения. Это означает, что транзакции со слишком низкой комиссией могут быть отложены до уменьшения загрузки сети. Даже транзакция, которая в какой-то момент была вытолкнута из мемпула, может быть подхвачена узлом и воспроизведена позднее.
Слишком низкая плата за газ
Другая причина, по которой ваша транзакция может застрять в мемпуле, заключается в том, что вы случайно установили слишком низкую комиссию за газ. Если вы предложите что-то неприлично дешевое, сеть никогда не будет достаточно тихой, чтобы обработать вашу транзакцию.
Падение скорости хэширования
Если вы совершаете транзакции в сети Биткойн, иногда транзакции застревают из-за падения скорости хэширования. Проще говоря, в таких ситуациях у сети нет физической вычислительной мощности для выполнения такого количества ожидающих транзакций.
Итак, теперь у вас есть представление о причинах, рассмотрим некоторые решения этой проблемы.
Как можно освободить свою транзакцию из мемпула
Освободить транзакцию из мемпула может быть непросто. У вас есть несколько вариантов, и это определенно не универсальная операция. То, что вы решите выбрать, будет зависеть в первую очередь от причины застревания траннзакции в мемпуле.
На выбор есть три основных варианта, но важно отметить, что их точные методы будут варьироваться от блокчейна к блокчейну.
Отменить транзакцию
Вы можете отменить свои транзакции в блокчейнах. Однако для этого потребуется еще одна комиссия за транзакцию. Это невозможно напрямую через Ledger Live.
Вы также можете отменить транзакции Ethereum, используя более продвинутый метод. Это предполагает отправку транзакции с тем же nonce.
Ускорить транзакцию
Вы также можете ускорить транзакции как в Ethereum, так и в Bitcoin, подключив свой Ledger к сторонним кошелькам, таким как Metamask и Electrum соответственно. Однако это будет стоить вам больше вашей криптовалюты.
Немного подождать
Последний вариант — подождать еще немного. Если ваша плата за газ не была слишком низкой, а сеть просто перегружена, ваша транзакция в конечном итоге должна пройти. В худшем случае вам, возможно, придется подождать несколько дней.
Заключение
Итак, теперь вы знаете все о мемпулах и о том, как они участвуют в обработке транзакций. Хотя об этом не часто говорят, мемпулы обеспечивают основную функцию сетей блокчейнов; они действуют как своего рода промежуточный пункт для транзакций, которые еще находятся в обработке. Вот почему так важно знать, как они функционируют. То, как ваша транзакция ведет себя в мемпуле, определяет формат ее дальнейшей обработки.
Комментарии
Комментарии для сайта Cackle