Към съдържанието
ДаретеEN

Майнинг с доказателство за работа

Мемпулът, който пази всеки нод

Мемпул биткойн: как нодът пази чакащите трансакции, с 300 MB по подразбиране, 14-дневен срок и минимална такса за препращане.

От Dimitar Zurnov · Обновено на 4 ноември 2026
Адаптирано от Learn Me a Bitcoin на Greg Walker.

Мемпулът на биткойн (memory pool) е чакалнята на всеки нод за валидни трансакции, които още никой блок не е потвърдил. Всеки нод държи своя в RAM и задава собствени лимити. Тези лимити решават кои трансакции нодът приема, кои изхвърля, когато мястото свърши, и колко дълго ги пази. Тази страница описва тези правила. За кратко определение вижте страницата за мемпул.

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

Нодът пази мемпула си в рамките на 300 MB, 14-дневен срок и минимална такса за препращане. Лимит за размер: 300 MB maxmempool: мемпулът е в RAM. Когато е пълен, първи излизат най-евтините. 336 часа срок mempoolexpiry: 14 дни, след което трансакцията се изхвърля от нода. 0.1 sat/vB минимална такса minrelaytxfee: прагът за влизане. Расте, докато мемпулът е пълен. Включена или заменена: излиза Блок, който я потвърждава, или по-скъпа замяна, я премахва от мемпула на всеки нод.
Стойностите по подразбиране в актуалния Bitcoin Core. Вашият нод може да е настроен различно.

Колко голям може да стане мемпулът на нода?

По подразбиране Bitcoin Core ограничава мемпула до 300 MB. Настройката се казва maxmempool и се дава в мегабайти. Нод с повече RAM може да вдигне лимита, за да пази повече трансакции.

Лимитът брои и метаданните на всяка трансакция, а не само суровите ѝ байтове, така че мемпулът побира по-малко сурови данни, отколкото числото подсказва. Въпреки това 300 MB побират повече от цял блок трансакции.

Защо мемпулът се пази в RAM?

Нодът проверява новите трансакции спрямо мемпула много пъти в секунда. Проверява и всеки нов блок спрямо мемпула, а повечето трансакции от блока често вече са там. Майнърите подреждат мемпула, когато строят блока кандидат. Пазенето в паметта прави и трите задачи бързи.

Диск би бил много по-бавен. RAM пък е далеч по-малка от диска на обикновен компютър, затова стойността по подразбиране е скромна.

Как трансакция влиза в мемпула?

Трансакция стига до мемпула на нода по един от три начина.

1. Вие я изпращате

Портфейлът ви праща трансакцията към собствения ви нод. Нодът я проверява, добавя я в мемпула и я препраща към нодовете, с които е свързан.

2. Друг нод я препраща

Нодовете съобщават на съседите си за трансакциите, които държат. Ако съсед обяви трансакция, която вашият нод няма, той я изисква, проверява я и я пази, ако е валидна. Само валидни трансакции влизат в мемпула или се препращат.

3. Пренареждане на веригата я връща

Ако нод превключи към друга верига, трансакции от отпадналите блокове могат да се върнат в мемпула. Връщат се само ако новата верига още не ги включва. След това нодът ги препраща отново.

Каква такса изисква нодът?

Всеки нод задава и най-ниската такса, която приема в мемпула. Настройката minrelaytxfee е твърдият праг. От Bitcoin Core 29.1 насам стойността по подразбиране е 0.1 sat/vB, или 100 sat/kvB. По-старите версии са ползвали 1 sat/vB. Ако някой по-стар текст посочва тази цифра, той описва по-старите версии.

Действащият минимум никога не е по-нисък от minrelaytxfee, но може да е по-висок. Когато мемпулът се напълни, нодът изхвърля трансакциите с най-ниска такса, а минимумът се вдига до таксата на последната изхвърлена. Когато мемпулът се изпразни, минимумът пада отново. Той се разполовява на около 12 часа и пада по-бързо, когато мемпулът е под половината или една четвърт пълен. Нод с малко място затова отказва евтини трансакции за известно време.

Кога трансакцията излиза от мемпула?

Трансакция напуска мемпула на нода по една от пет причини.

1. Тя се включва в блок

Това е нормалният край. Когато пристигне блок, трансакциите му преминават от мемпула във веригата, а нодът ги премахва от мемпула.

2. Тя е в конфликт с включена трансакция

Ако блок съдържа трансакция, която харчи същите монети, записът в мемпула е двойно харчене и се премахва. Всяка трансакция, която зависи от нея, също излиза, защото родителят ѝ е изчезнал.

3. Тя е заменена

Нова версия, която харчи същите монети и плаща по-висока обща такса, може да замени оригинала. От Bitcoin Core 28.0, излязла през октомври 2024 г., нодът приема такава замяна, дори когато оригиналът не е сигнализирал replace-by-fee. Версия 29.0 на Bitcoin Core е премахнала възможността това да се изключи. Замяната трябва да плати и за собствения си допълнителен размер, по инкрементната такса за препращане (incremental relay fee) на нода.

4. Тя изтича

Всеки нод държи трансакцията само определено време. Стойността по подразбиране mempoolexpiry е 336 часа, което са 14 дни. По-старите версии са ползвали 3 дни. Версия 0.14.0 на Bitcoin Core е вдигнала стойността по подразбиране на две седмици през 2017 г. След изтичане трансакцията напуска мемпула, а вие винаги можете да я изпратите отново.

5. Изхвърля се заради място

Когато мемпулът е пълен, първи излизат трансакциите с най-ниска такса. Нодът не съди трансакцията само по нейната такса. Гледа descendant feerate, тоест средната такса на байт на трансакцията и на всички трансакции, които зависят от нея.

Как нодът избира какво да изхвърли?

Да вземем родител с ниска такса и дете с висока такса, което харчи един от изходите му. Детето не може да се включи в блок без родителя, а средната такса на двойката може да е достатъчно висока, за да запази и двете. Нодът ги пази, и така трябва.

Ако трансакцията има ниска такса и няма по-скъпи потомци, descendant feerate ѝ е ниска. Тогава нодът може да я изхвърли заедно с всичко, което зависи от нея. Нито едно от тях не може да се включи в блок без нея, така че нодът не губи нищо, което скоро би се потвърдило.

Какво са предшественици и потомци?

Предшественик (ancestor) е непотвърдена трансакция, от която друга трансакция харчи. Потомък (descendant) е трансакция, която харчи от една, намираща се в мемпула. Трансакцията не може да бъде включена в блок, преди всичките ѝ непотвърдени предшественици да са включени, затова мемпулът следи тези семейства.

Bitcoin Core ограничава колко голямо може да стане едно семейство, за да не може една трансакция да натрупа огромно дърво в мемпула. До версия 31.0 лимитите са важали за всяка трансакция поотделно: най-много 25 предшественици и 25 потомъка, като всяко семейство е било ограничено до 101 kvB.

Версия 31.0 на Bitcoin Core е заменила тези лимити с клъстерни. Клъстер (cluster) е група свързани непотвърдени трансакции, а по подразбиране в него могат да влизат 64 трансакции и 101 kvB. Тези лимити са политика (policy), а не консенсусно правило, затова могат да се променят между версиите. Проверете документацията за версията, която ползвате.

Предшествениците важат и за майнинга. Майнърът оценява трансакция по ancestor feerate, тоест по средната такса на трансакцията и на предшествениците ѝ заедно. Скъпо дете може да вдигне евтин родител в следващия блок. Така работи child pays for parent, защото родителят така или иначе не може да се включи сам.

Всички нодове ли споделят един и същи мемпул?

Не. Няма един-единствен мемпул, в който влиза всяка трансакция. Всеки нод държи свой и те се различават малко: заради различни настройки, заради времето, в което пристигат препратените трансакции, и заради конфликтни трансакции, които са в обращение. Мемпулите се припокриват толкова много, че хората говорят за „мемпула“ като за едно нещо. Това е разумно съкращение за общото състояние на мрежата.

С кои команди се вижда мемпулът?

Bitcoin Core има три команди, с които да надникнете в мемпула си.

  • bitcoin-cli getmempoolinfo дава обобщението: броя трансакции, общия им размер, лимита за размер и текущата минимална такса.
  • bitcoin-cli getrawmempool изброява идентификаторите (txid) на трансакциите в мемпула.
  • bitcoin-cli getmempoolentry <txid> показва размера, таксите, броя предшественици и потомъци на една трансакция и дали може да бъде заменена.

Всеки запис носи тези метаданни. Мемпулът няма фиксирана структура отвъд тях: това е набор от непотвърдени трансакции, всяка със свой размер, такса, време на влизане и връзки към родителите и децата си.

Нашият експлорър чете същия вид данни от нашия нод. Потърсете идентификатора на трансакция, за да видите дали е потвърдена или още чака. Ако вашата не се е появила, вижте дали не е била изхвърлена, преди да платите отново.

Какво да запомните?

Мемпулът е набор от локални правила, а не обещание. Два нода могат за известно време да имат различно мнение за една трансакция. Ако чакате плащане, единственият окончателен резултат е потвърждение в блок. Дотогава трансакцията още чака реда си. Вижте потвърждението за това колко блока да изчакате.

В този раздел: Майнинг с доказателство за работа

Целият курс „Биткойн от нулата“

Нещо не изглежда наред? Кажете ни