Если Вы когда-либо выполняли криптовалютную транзакцию, например, отправляли средства на другой адрес кошелька, Вы могли заметить задержку. Эти отложенные транзакции обычно хранятся в так называемом "пуле памяти".
В этом руководстве подробно описано, что такое мемпул, как он работает и почему он является важной частью криптовалютной транзакции.
)
Мемпул - это своего рода "комната ожидания" на узле блокчейна, где хранятся не майнингованные транзакции. Термин "mempool" представляет собой комбинацию двух слов - "память" и "пул" и обозначает пространство, где ожидающие транзакции ждут своей очереди, прежде чем их добавят в блокчейн.
Биткойн стал первым блокчейном, в котором была представлена и использована концепция пула памяти транзакций (mempool). Другие блокчейны, такие как Ethereum, также позже приняли этот термин. Все блокчейны имеют тот или иной тип мемпула, хотя они могут называть его по-разному. Например, блокчейн Parity использует термин "Очередь транзакций" для обозначения мемпулов в своей цепи.
Mempool'ы играют важную роль в работе узлов блокчейна. Чтобы транзакция была завершена и записана в блокчейн, она должна быть сначала добавлена в блок. Однако не все узлы в сети блокчейн могут создать новый блок. Например, в блокчейнах, работающих по механизму proof-of-work, таких как Bitcoin, только майнеры могут добавлять транзакции в новый блок. Что касается блокчейнов, использующих механизм proof-of-stake, таких как Ethereum, то только валидаторы или предлагающие могут добавлять транзакции в блок.
После инициирования транзакции пользователи должны зависеть от майнера или валидатора, который одобрит транзакцию и добавит ее в блокчейн. Это не происходит мгновенно. Вместо этого существует задержка между моментом, когда транзакция была начата, и моментом, когда она будет завершена. В это время транзакция хранится в пуле памяти, ожидая подтверждения.
Во-первых, Вам следует обратить внимание на то, что у блокчейн не бывает только одного мемпула. Напротив, каждый узел в конкретной сети блокчейн имеет свой собственный пул памяти для транзакций. Например, каждый узел в блокчейне Биткойна имеет свой собственный пул транзакций, ожидающих добавления в публичную бухгалтерскую книгу. Вместе мемпулы на отдельных узлах образуют коллективный мемпул.
Когда пользователь инициирует транзакцию, она отправляется на узел. Затем узел добавит транзакцию в свой mempool и поставит ее в очередь, ожидая подтверждения. Как только транзакция будет подтверждена, она будет помечена как "ожидающая". Майнеры могут добавлять в новый блок только транзакции, помеченные как "отложенные".
Чтобы проиллюстрировать динамику mempool и жизненный цикл транзакций, предположим, что Вы хотите отправить 0,01BTC другу.
Сначала Вы введете адрес кошелька Вашего друга, согласитесь с комиссией за транзакцию в блокчейне, а затем нажмете кнопку "Отправить".
Транзакция будет добавлена в ближайший mempool как транзакция "в очереди".
Далее транзакция будет передана другим узлам сети, но в блокчейн она пока не попадет. Вместо этого каждый узел выполняет индивидуальные тесты, чтобы убедиться в подлинности транзакции.
Если узлы одобрят транзакцию, ее статус изменится с "в очереди" на "в ожидании".
В конце концов, отложенная транзакция будет выбрана майнером и добавлена в новый блок.
Затем майнер транслирует этот блок всем узлам. В результате все узлы теперь будут иметь доступ ко всем транзакциям, включенным в новый блок.
На этом этапе узлы, в мемпулах которых всё ещё хранится Ваша транзакция, удалят её.
Наконец, Ваша транзакция завершена, и Ваш друг получает 0,01 BTC.
Заторы в мемпуле транзакций возникают, когда спрос на транзакции превышает количество транзакций, которые могут поместиться в одном блоке. Несколько факторов могут спровоцировать отставание mempool. К ним относятся:
График средних транзакций биткоина на блок: Ycharts.com
Понимание этих факторов и того, как они влияют на перегруженность мемпула, важно для пользователей и разработчиков. Это позволит им предвидеть возможные задержки и внести необходимые коррективы, чтобы сэкономить на оплате бензина и избежать задержек.
Поскольку одновременно происходит много транзакций, существует несколько факторов, определяющих, какие транзакции получат приоритет в пуле памяти. Ниже мы приводим некоторые из них.
Одним из основных факторов, определяющих порядок выполнения транзакций в mempool, является плата, взимаемая с каждой транзакции. Майнерами и валидаторами движет прибыль, и они сами выбирают, какие транзакции добавлять в новый блок. Неудивительно, что они отдают предпочтение операциям с более высокими комиссионными, поскольку это приводит к большим вознаграждениям.
Поэтому комиссии, связанные с транзакцией, сильно влияют на ее шансы быть включенной в блокчейн. Майнеры обычно организуют транзакции внутри своих mempool'ов с точки зрения платы за единицу данных транзакции, обычно представляемую как сатоши/байт. После этого они устанавливают приоритет транзакций с самыми высокими комиссионными сборами до тех пор, пока блок не будет заполнен.
Такой подход, основанный на оплате, создает конкурентный рынок внутри mempools. Это вынуждает пользователей выбирать между более высокой платой за быстрое завершение транзакции и более низкой платой за счет более длительного ожидания.
Тем не менее, пользователи могут определить оптимальную плату, которая не будет слишком дорогой, но при этом обеспечит своевременное подтверждение. Этого можно достичь, учитывая некоторые факторы, такие как исторические данные, объем транзакций, перегруженность сети и распределение платы в пуле памяти. Большинство популярных платформ, таких как криптокошельки и биржи, имеют инструменты, которые могут проанализировать текущее состояние мемпула и порекомендовать наиболее подходящие комиссии.
Тем не менее, составление точных оценок гонораров не является точной наукой, и проблемы остаются. Например, условия в сети могут быстро меняться, делая исторические данные ненадежными. Кроме того, в периоды высокого спроса плата может быть очень нестабильной, что приводит к неожиданным колебаниям платы.
Перегруженность сети по-разному влияет на обработку транзакций и динамику газовых сборов:
Мемпулам не нужно вести список всех транзакций, ожидающих добавления в блок. Однако они должны знать, какие транзакции уже были добавлены в блокчейн, чтобы иметь возможность удалить их из своего мемпула, если они все еще там хранятся. Когда майнер передает новый блок узлам, они могут проверить эту информацию и таким образом добиться синхронизации mempool. Это гарантирует, что в mempool'ах будут храниться только незавершенные транзакции.
С другой стороны, пространство блока - это емкость, доступная для включения транзакций в новый блок. Поскольку это пространство ограничено, майнеры или валидаторы отдают предпочтение транзакциям с более высокой газовой комиссией, а остальные отправляются в мемпулы в ожидании подтверждений.
Каждая транзакция, добавленная в mempool, - это фрагмент данных размером не более нескольких килобайт (kb). Сумма всех байтов, составляющих транзакции, и есть размер mempool. Больший размер пула памяти указывает на то, что множество транзакций ожидают подтверждения. Это также может означать всплеск сетевого трафика.
Таблица размеров Mempool. Источник: Blockchain.com
Хотя у mempool'ов нет заранее определенного максимального размера, узлы могут устанавливать ограничения на размер своих mempool'ов. Для Bitcoin этот параметр обычно составляет 300 МБ. Когда пул памяти достигает этого порога, узлы могут ввести требование минимальной платы за транзакцию. Все транзакции с комиссией ниже этого лимита исключаются из mempool. Таким образом, узлы могут избежать сбоев из-за перегрузки ожидающих транзакций.
Понимание того, как размер пула памяти влияет на стоимость и время проведения транзакций, очень важно, поскольку это позволяет пользователям выбирать лучшее время для проведения транзакций. Существует несколько сайтов, отслеживающих глобальный размер мемпула в сети Биткойн, например, mempool.space и BitcoinTicker.co.
Теперь давайте посмотрим, как функционируют мемпулы в Bitcoin и Ethereum, двух крупнейших блокчейнах мира.
Все действительные транзакции, отправленные по сети Биткойн, не добавляются в блокчейн мгновенно. Они должны ждать в мемпуле Bitcoin.
Изначально плата за транзакции в Биткойне измерялась в количестве сатоши за байт транзакции. Однако это изменилось после обновления SegWit. Теперь транзакции в мемпуле Биткойна измеряются в весовых единицах. Это обновление ввело так называемую функцию SegWit.
В результате обновления блоки Биткойна теперь могут вмещать до четырех раз больше транзакций.
Как и Биткойн, блокчейн Ethereum изначально использовал мемпул Ethereum для временного хранения транзакций, ожидающих добавления в блок майнерами. Однако после того, как Ethereum перешел от механизма консенсуса proof-of-work к механизму proof-of-stake, в сети появилось понятие блокчейн-конструктора.
Создатели блоков - это специализированные сторонние организации, которые компилируют транзакции для создания оптимизированного пакета транзакций, который может образовать блок. Они делают это путем переупорядочивания или включения определенных транзакций в пакет из пула памяти транзакций. В конце концов, они предлагают пакеты провайдерам/валидаторам для включения в блок за определенную плату.
Ценность блока зависит от содержащихся в нем транзакций. Таким образом, это стимулирует создателей блоков к созданию наиболее прибыльных блоков, поскольку они, скорее всего, будут приоритетны и быстрее подтверждены валидаторами. Следовательно, как и в других блокчейнах, чем больше комиссионных Вы платите в Ethereum, тем выше шансы, что Ваша транзакция будет подтверждена раньше.
Мемпул - это жизненно важный компонент транзакций в блокчейне. Он действует как своего рода "комната ожидания", где неподтвержденные транзакции ожидают проверки и, в конечном итоге, включения в новый блок. Понимание механики работы мемпула, такой как очередь транзакций, проверка и определение приоритетности платежей, очень важно для пользователей криптовалют.
Compartilhar
Если Вы когда-либо выполняли криптовалютную транзакцию, например, отправляли средства на другой адрес кошелька, Вы могли заметить задержку. Эти отложенные транзакции обычно хранятся в так называемом "пуле памяти".
В этом руководстве подробно описано, что такое мемпул, как он работает и почему он является важной частью криптовалютной транзакции.
)
Мемпул - это своего рода "комната ожидания" на узле блокчейна, где хранятся не майнингованные транзакции. Термин "mempool" представляет собой комбинацию двух слов - "память" и "пул" и обозначает пространство, где ожидающие транзакции ждут своей очереди, прежде чем их добавят в блокчейн.
Биткойн стал первым блокчейном, в котором была представлена и использована концепция пула памяти транзакций (mempool). Другие блокчейны, такие как Ethereum, также позже приняли этот термин. Все блокчейны имеют тот или иной тип мемпула, хотя они могут называть его по-разному. Например, блокчейн Parity использует термин "Очередь транзакций" для обозначения мемпулов в своей цепи.
Mempool'ы играют важную роль в работе узлов блокчейна. Чтобы транзакция была завершена и записана в блокчейн, она должна быть сначала добавлена в блок. Однако не все узлы в сети блокчейн могут создать новый блок. Например, в блокчейнах, работающих по механизму proof-of-work, таких как Bitcoin, только майнеры могут добавлять транзакции в новый блок. Что касается блокчейнов, использующих механизм proof-of-stake, таких как Ethereum, то только валидаторы или предлагающие могут добавлять транзакции в блок.
После инициирования транзакции пользователи должны зависеть от майнера или валидатора, который одобрит транзакцию и добавит ее в блокчейн. Это не происходит мгновенно. Вместо этого существует задержка между моментом, когда транзакция была начата, и моментом, когда она будет завершена. В это время транзакция хранится в пуле памяти, ожидая подтверждения.
Во-первых, Вам следует обратить внимание на то, что у блокчейн не бывает только одного мемпула. Напротив, каждый узел в конкретной сети блокчейн имеет свой собственный пул памяти для транзакций. Например, каждый узел в блокчейне Биткойна имеет свой собственный пул транзакций, ожидающих добавления в публичную бухгалтерскую книгу. Вместе мемпулы на отдельных узлах образуют коллективный мемпул.
Когда пользователь инициирует транзакцию, она отправляется на узел. Затем узел добавит транзакцию в свой mempool и поставит ее в очередь, ожидая подтверждения. Как только транзакция будет подтверждена, она будет помечена как "ожидающая". Майнеры могут добавлять в новый блок только транзакции, помеченные как "отложенные".
Чтобы проиллюстрировать динамику mempool и жизненный цикл транзакций, предположим, что Вы хотите отправить 0,01BTC другу.
Сначала Вы введете адрес кошелька Вашего друга, согласитесь с комиссией за транзакцию в блокчейне, а затем нажмете кнопку "Отправить".
Транзакция будет добавлена в ближайший mempool как транзакция "в очереди".
Далее транзакция будет передана другим узлам сети, но в блокчейн она пока не попадет. Вместо этого каждый узел выполняет индивидуальные тесты, чтобы убедиться в подлинности транзакции.
Если узлы одобрят транзакцию, ее статус изменится с "в очереди" на "в ожидании".
В конце концов, отложенная транзакция будет выбрана майнером и добавлена в новый блок.
Затем майнер транслирует этот блок всем узлам. В результате все узлы теперь будут иметь доступ ко всем транзакциям, включенным в новый блок.
На этом этапе узлы, в мемпулах которых всё ещё хранится Ваша транзакция, удалят её.
Наконец, Ваша транзакция завершена, и Ваш друг получает 0,01 BTC.
Заторы в мемпуле транзакций возникают, когда спрос на транзакции превышает количество транзакций, которые могут поместиться в одном блоке. Несколько факторов могут спровоцировать отставание mempool. К ним относятся:
График средних транзакций биткоина на блок: Ycharts.com
Понимание этих факторов и того, как они влияют на перегруженность мемпула, важно для пользователей и разработчиков. Это позволит им предвидеть возможные задержки и внести необходимые коррективы, чтобы сэкономить на оплате бензина и избежать задержек.
Поскольку одновременно происходит много транзакций, существует несколько факторов, определяющих, какие транзакции получат приоритет в пуле памяти. Ниже мы приводим некоторые из них.
Одним из основных факторов, определяющих порядок выполнения транзакций в mempool, является плата, взимаемая с каждой транзакции. Майнерами и валидаторами движет прибыль, и они сами выбирают, какие транзакции добавлять в новый блок. Неудивительно, что они отдают предпочтение операциям с более высокими комиссионными, поскольку это приводит к большим вознаграждениям.
Поэтому комиссии, связанные с транзакцией, сильно влияют на ее шансы быть включенной в блокчейн. Майнеры обычно организуют транзакции внутри своих mempool'ов с точки зрения платы за единицу данных транзакции, обычно представляемую как сатоши/байт. После этого они устанавливают приоритет транзакций с самыми высокими комиссионными сборами до тех пор, пока блок не будет заполнен.
Такой подход, основанный на оплате, создает конкурентный рынок внутри mempools. Это вынуждает пользователей выбирать между более высокой платой за быстрое завершение транзакции и более низкой платой за счет более длительного ожидания.
Тем не менее, пользователи могут определить оптимальную плату, которая не будет слишком дорогой, но при этом обеспечит своевременное подтверждение. Этого можно достичь, учитывая некоторые факторы, такие как исторические данные, объем транзакций, перегруженность сети и распределение платы в пуле памяти. Большинство популярных платформ, таких как криптокошельки и биржи, имеют инструменты, которые могут проанализировать текущее состояние мемпула и порекомендовать наиболее подходящие комиссии.
Тем не менее, составление точных оценок гонораров не является точной наукой, и проблемы остаются. Например, условия в сети могут быстро меняться, делая исторические данные ненадежными. Кроме того, в периоды высокого спроса плата может быть очень нестабильной, что приводит к неожиданным колебаниям платы.
Перегруженность сети по-разному влияет на обработку транзакций и динамику газовых сборов:
Мемпулам не нужно вести список всех транзакций, ожидающих добавления в блок. Однако они должны знать, какие транзакции уже были добавлены в блокчейн, чтобы иметь возможность удалить их из своего мемпула, если они все еще там хранятся. Когда майнер передает новый блок узлам, они могут проверить эту информацию и таким образом добиться синхронизации mempool. Это гарантирует, что в mempool'ах будут храниться только незавершенные транзакции.
С другой стороны, пространство блока - это емкость, доступная для включения транзакций в новый блок. Поскольку это пространство ограничено, майнеры или валидаторы отдают предпочтение транзакциям с более высокой газовой комиссией, а остальные отправляются в мемпулы в ожидании подтверждений.
Каждая транзакция, добавленная в mempool, - это фрагмент данных размером не более нескольких килобайт (kb). Сумма всех байтов, составляющих транзакции, и есть размер mempool. Больший размер пула памяти указывает на то, что множество транзакций ожидают подтверждения. Это также может означать всплеск сетевого трафика.
Таблица размеров Mempool. Источник: Blockchain.com
Хотя у mempool'ов нет заранее определенного максимального размера, узлы могут устанавливать ограничения на размер своих mempool'ов. Для Bitcoin этот параметр обычно составляет 300 МБ. Когда пул памяти достигает этого порога, узлы могут ввести требование минимальной платы за транзакцию. Все транзакции с комиссией ниже этого лимита исключаются из mempool. Таким образом, узлы могут избежать сбоев из-за перегрузки ожидающих транзакций.
Понимание того, как размер пула памяти влияет на стоимость и время проведения транзакций, очень важно, поскольку это позволяет пользователям выбирать лучшее время для проведения транзакций. Существует несколько сайтов, отслеживающих глобальный размер мемпула в сети Биткойн, например, mempool.space и BitcoinTicker.co.
Теперь давайте посмотрим, как функционируют мемпулы в Bitcoin и Ethereum, двух крупнейших блокчейнах мира.
Все действительные транзакции, отправленные по сети Биткойн, не добавляются в блокчейн мгновенно. Они должны ждать в мемпуле Bitcoin.
Изначально плата за транзакции в Биткойне измерялась в количестве сатоши за байт транзакции. Однако это изменилось после обновления SegWit. Теперь транзакции в мемпуле Биткойна измеряются в весовых единицах. Это обновление ввело так называемую функцию SegWit.
В результате обновления блоки Биткойна теперь могут вмещать до четырех раз больше транзакций.
Как и Биткойн, блокчейн Ethereum изначально использовал мемпул Ethereum для временного хранения транзакций, ожидающих добавления в блок майнерами. Однако после того, как Ethereum перешел от механизма консенсуса proof-of-work к механизму proof-of-stake, в сети появилось понятие блокчейн-конструктора.
Создатели блоков - это специализированные сторонние организации, которые компилируют транзакции для создания оптимизированного пакета транзакций, который может образовать блок. Они делают это путем переупорядочивания или включения определенных транзакций в пакет из пула памяти транзакций. В конце концов, они предлагают пакеты провайдерам/валидаторам для включения в блок за определенную плату.
Ценность блока зависит от содержащихся в нем транзакций. Таким образом, это стимулирует создателей блоков к созданию наиболее прибыльных блоков, поскольку они, скорее всего, будут приоритетны и быстрее подтверждены валидаторами. Следовательно, как и в других блокчейнах, чем больше комиссионных Вы платите в Ethereum, тем выше шансы, что Ваша транзакция будет подтверждена раньше.
Мемпул - это жизненно важный компонент транзакций в блокчейне. Он действует как своего рода "комната ожидания", где неподтвержденные транзакции ожидают проверки и, в конечном итоге, включения в новый блок. Понимание механики работы мемпула, такой как очередь транзакций, проверка и определение приоритетности платежей, очень важно для пользователей криптовалют.