Как собрать общее Bitcoin-предложение из разных входов

В учебном сценарии regtest два участника могут объединить самостоятельно подготовленные неподписанные транзакции в общее предложение до начала подписания.

Соедините предложения до сбора подписей

Запишите неподписанные пакеты base64 в LEFT и RIGHT. Их входы должны ссылаться на разные выходы. Передайте полученный пакет декодеру и изучите итоговую транзакцию.

parts=$(jq -cn --arg a "$LEFT" --arg b "$RIGHT" '[$a,$b]')
joint=$(bitcoin-cli joinpsbts "$parts")
bitcoin-cli decodepsbt "$joint" | jq '.tx | {vin, vout}'

Сверьте вклад каждого участника

Повторяющийся вход означал бы двойное расходование одной монеты, поэтому Core отклоняет пересекающиеся предложения. При успешном объединении сверьте итоговые входы и все выходы с договорённостями участников. Проверять и подписывать нужно получившуюся общую транзакцию: её состав изменился.

bitcoincore.org joinpsbts · bitcoincore.org decodepsbt