Якщо ви хоч раз здійснювали транзакцію в BTC, ви стикалися з тим, що час від відправки до отримання становить до 10 хвилин. У момент завантаженості мережі це могли бути години, а іноді і дні. Можливо, ви також чули фразу «Транзакція застрягла в мемпулі». Це саме те місце, де зберігаються дані в очікуванні обробки нодами. У мережі біткойну дані – це транзакції, тому мемпул також можна назвати пул транзакцій.
Якщо розмір мемпулу збільшується, це означає, що транзакцій в черзі стає більше. Підтвердження буде займати більше часу, а для прискорення транзакції доведеться доплачувати комісію.
Мемпул біткойну – це місце, де транзакції чекають, коли їх візьмуть майнери, щоб додати в блок на блокчейні.
Mempool є частиною BIP 35. Ідея полягала в тому, що зовнішні вузли зможуть отримати доступ до мемпулів інших вузлів. Це важливо для наступного:
- гаманці можуть дізнатися про швидкість проведення транзакцій до відправки (розмір мемпулу поділити на розмір блоку = скільки блоків чекати приблизно по 10 хвилин кожен);
- майнери можуть приоритезувати обробку транзакцій по комісіях;
- спостерігач може діагностувати мережу.
Де дивитися розмір мемпулу
Хоча блокчейн і мемпул пов’язані один з одним, але сам мемпул не є якоюсь частиною на блокчейні. У нього немає єдиного місця. Швидше, у кожної ноди біткойну є власний мемпул з об’ємом пам’яті. Нодами керують майнери і оператори повних нод, які запускають на своїх пристроях копії блокчейну.
Щоб дізнатися розмір мемпулу біткойна, потрібно скористатися онлайн-сервісом: https://www.blockchain.com/ru/charts або http://bitcointicker.co/networkstats/
Як транзакції потрапляють в мемпул, як виходять з нього і як зберігаються в блокчейні?
Для потрапляння в мемпул транзакція повинна бути ініційована.
- Відправник відкриває свій гаманець, вводить адресу призначення і суму.
- Коли натиснута кнопка відправки, перший етап запущений. Для побудови транзакції вибираються невитрачені виходи і проводяться деякі перевірки.
- Після цього переказ потрапляє в список непідтверджених біткойн-транзакцій.
- У мемпулі транзакція приєднується до тисяч інших. Кожна транзакція чекає вказаної кількості підтверджень, зазвичай шість. Черга формується за часом надходження і розміром комісії.
- Коли перше підтвердження приходить, воно додає транзакцію в блок.
- Коли транзакція проходить, вона очищається з мемпулу.
Якщо транзакція не приймається протягом довгого часу, її можна повернути з буфера. В даний час встановлено термін в 2 тижні. Після їх закінчення, якщо транзакція не пройшла, вона відправляється назад відправнику. Це зроблено для того, щоб мемпул не засмічувався непідтвердженими транзакціями з нульовою комісією і дрібними відправленнями.
Що піднімає транзакцію в черзі
Що потрібно зробити, щоб транзакція пройшла за 10 хвилин? Є кілька істотних факторів, найбільш важливі ці два:
- велика комісія (коли мемпул порожній, можна проводити транзакції майже без комісій, так як майнерам все одно, але коли конкуренція велика — ціна зростає);
- кількість відправлень (на хайпі люди переводять BTC швидше, ніж їх можуть обробити майнери), транзакції нижче мінімальної комісії видаляються.
Через рішення з масштабування поза блокчейном, типу Lightning Network, невеликі платежі стало легше проводити. З ними не потрібно стежити за мемпулом і напруженістю в мережі.