Как проверить, примет ли 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 означает, что при текущих условиях нода приняла бы транзакцию. Сам вызов не добавляет её в мемпул. До отправки другая операция может потратить вход, а соседняя нода может применять иные правила ретрансляции. Сохраняйте время проверки вместе с последующим результатом отправки.