До блока транзакцию видят узлы, но каждый — по-своему
Узел проверяет consensus rules и собственную relay policy, прежде чем добавить операцию в memory pool и передать peers. Другой узел может ещё не получить её, уже удалить при нехватке памяти или применять иной минимальный fee rate. Поэтому «есть в одном explorer» означает наблюдение конкретной инфраструктуры, а не запись в реестре всех участников сети.
| Наблюдение | Что подтверждает | Что проверить дальше |
|---|---|---|
| Есть в mempool источника | Источник принял неподтверждённую версию | Другие узлы и fee rate |
| Не найден | У источника нет записи | Broadcast, replacement, eviction или неверную сеть |
| Включён в блок | Транзакция получила первое подтверждение | Block hash и последующие confirmations |
| Conflicted / replaced | Те же inputs потратила другая версия | Новый txid и outputs |
- Наблюдение
- Есть в mempool источника
- Что подтверждает
- Источник принял неподтверждённую версию
- Что проверить дальше
- Другие узлы и fee rate
- Наблюдение
- Не найден
- Что подтверждает
- У источника нет записи
- Что проверить дальше
- Broadcast, replacement, eviction или неверную сеть
- Наблюдение
- Включён в блок
- Что подтверждает
- Транзакция получила первое подтверждение
- Что проверить дальше
- Block hash и последующие confirmations
- Наблюдение
- Conflicted / replaced
- Что подтверждает
- Те же inputs потратила другая версия
- Что проверить дальше
- Новый txid и outputs
Майнер сравнивает ставку за место, а не только общую fee
Абсолютная transaction fee равна разнице между суммой inputs и outputs. Для сравнения затрат на block space её делят на virtual size: получается sat/vB. Транзакция с fee 4 000 sat и размером 400 vB даёт 10 sat/vB; другая с fee 3 000 sat и размером 150 vB — 20 sat/vB. Вторая платит меньше satoshi, но предлагает больше за единицу места.
Неподтверждённые переводы образуют семьи
Если B тратит output ещё неподтверждённой A, B становится descendant, а A — ancestor. Узел хранит эти зависимости; block builder может оценивать связанную группу, потому что child нельзя включить раньше parent. Это и объясняет CPFP: новая дочерняя транзакция с высокой fee делает суммарный package экономически привлекательнее.
| Часть | Virtual size | Fee | Отдельный fee rate |
|---|---|---|---|
| Parent | 200 vB | 400 sat | 2 sat/vB |
| Child | 100 vB | 5 600 sat | 56 sat/vB |
| Вместе | 300 vB | 6 000 sat | 20 sat/vB |
- Часть
- Parent
- Virtual size
- 200 vB
- Fee
- 400 sat
- Отдельный fee rate
- 2 sat/vB
- Часть
- Child
- Virtual size
- 100 vB
- Fee
- 5 600 sat
- Отдельный fee rate
- 56 sat/vB
- Часть
- Вместе
- Virtual size
- 300 vB
- Fee
- 6 000 sat
- Отдельный fee rate
- 20 sat/vB
Пример показывает арифметику, а не гарантию включения. Узел и miner policy ограничивают цепочки, размер и правила package acceptance; конкретный кошелёк должен контролировать подходящий output и уметь построить child. Получатель иногда способен применить CPFP к полученному output, отправитель — к change output, но это определяется фактической структурой транзакции.
RBF меняет конфликтующую версию, CPFP оставляет parent
| Механизм | Что появляется | Какой факт меняется |
|---|---|---|
| RBF | Replacement, конфликтующий хотя бы по одному input и проходящий policy fee | У перевода новый txid; inputs и outputs нужно сверить заново |
| CPFP | Child, расходующий output parent | Исходный txid остаётся, добавляется связанный txid |
- Механизм
- RBF
- Что появляется
- Replacement, конфликтующий хотя бы по одному input и проходящий policy fee
- Какой факт меняется
- У перевода новый txid; inputs и outputs нужно сверить заново
- Механизм
- CPFP
- Что появляется
- Child, расходующий output parent
- Какой факт меняется
- Исходный txid остаётся, добавляется связанный txid
В общей RBF-модели replacement конфликтует хотя бы по одному input и должен пройти актуальные policy fee constraints; он не обязан сохранять весь исходный набор inputs. Конкретный RPC Bitcoin Core bumpfee, напротив, включает все original inputs, может добавить новые и возвращает новый txid. Современная документация Core не требует, чтобы исходная транзакция обязательно сигнализировала opt-in RBF, а policy самого Core эволюционирует. Но кошельки, сервисы и другие node implementations могут поддерживать разные действия и версии правил. Практический вопрос звучит не «RBF существует?», а «может ли этот кошелёк сейчас заменить именно эту транзакцию и какие outputs будут в replacement?».
Исчезновение из mempool не возвращает inputs отдельной операцией
Неподтверждённая запись может быть evicted или забыта конкретным узлом. В блокчейне при этом не возникает «refund transaction». Если inputs исходной транзакции были подтверждёнными неизрасходованными выходами и их не потратил подтверждённый конфликт, удаление записи из mempool не уничтожает эти UTXO. Но output, созданный только неподтверждённым parent, не входит в подтверждённый набор неизрасходованных выходов (UTXO set), пока parent не попадёт в блок. Wallet может временно показывать confirmed inputs как занятые из-за своей локальной истории, поэтому abandon, rebroadcast и rebuild — разные действия, зависящие от приложения.
Минимальный разбор перед любым fee bump
- зафиксировать исходный txid и полную сеть Bitcoin;
- проверить confirmations и не появился ли confirmed conflict;
- прочитать fee, virtual size и fee rate, а не только одну сумму;
- посмотреть ancestors, descendants и доступные outputs;
- узнать, предлагает ли исходный wallet RBF, CPFP или rebroadcast;
- после действия сохранить новый txid и не считать старую ссылку доказательством результата.
Результат диагностики — не обещание времени, а новая проверяемая запись: либо исходный txid включён в блок, либо replacement получил собственный txid, либо parent и child образуют видимый package. До одного из этих исходов pending остаётся наблюдением, а обычная повторная отправка рискует создать отдельный платёж.
Источники
Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.
- Bitcoin Core 31.0 — getmempoolentry Bitcoin Core · Проверено 15 августа 2026 г. в 03:02 GMT+5
- Bitcoin Core 31.0 — bumpfee Bitcoin Core · Проверено 15 августа 2026 г. в 03:02 GMT+5
- Bitcoin Core 31.0 — estimatesmartfee Bitcoin Core · Проверено 15 августа 2026 г. в 03:02 GMT+5
- Bitcoin Core — mempool replacement policy Bitcoin Core · Проверено 15 августа 2026 г. в 03:02 GMT+5
- Bitcoin Core 31.0 — getmempoolcluster Bitcoin Core · Проверено 15 августа 2026 г. в 03:02 GMT+5
- Bitcoin Core 31.0 — getmempoolinfo Bitcoin Core · Проверено 15 августа 2026 г. в 03:02 GMT+5
