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