Как проверить, примет ли Bitcoin-нода подписанную транзакцию

Перед передачей байтов сервису отправки можно проверить подписанную транзакцию по текущим правилам мемпула regtest-ноды.

Передайте байты локальной проверке

Запишите в RAW подписанную regtest-транзакцию в hex. RPC принимает массив даже для одной транзакции. Посмотрите первый результат и сохраните причину отказа.

payload=$(jq -cn --arg tx "$RAW" '[$tx]')
bitcoin-cli -regtest testmempoolaccept "$payload" | jq '.[0] | {txid, allowed, reason: .["reject-reason"]}'

Правильно трактуйте успешную проверку

Значение true у allowed означает, что при текущих условиях нода приняла бы транзакцию. Сам вызов не добавляет её в мемпул. До отправки другая операция может потратить вход, а соседняя нода может применять иные правила ретрансляции. Сохраняйте время проверки вместе с последующим результатом отправки.

bitcoincore.org testmempoolaccept