Bitcoin-Core

是否可以在比特幣區塊鏈中創建批量交易?

  • July 12, 2018

場景: 假設我必須同時向 Alice、Bob 和 Claudia 進行三筆交易。現在的條件是,如果任何一項交易失敗,其他兩項也不能通過。

查詢: 如何在 BTC 區塊鏈中實現這一點?BTC 是否提供任何功能來批量交易以保持其原子性?

如果您對 Alice、Bob 和 Claudia 彼此認識沒有問題,您可以創建一個具有 3 個輸出的單個事務,每個輸出一個。在這種情況下,他們三個都將獲得比特幣,或者三個都不會獲得比特幣(因為實際上這將是 1 筆交易,它將進入區塊鏈,或者不會)。

寄件人

我可以向您展示使用 bitcoin-cli 製作它的方法。為此,您需要在您的機器上執行完整的節點 ( bitcoind)。該節點必須擁有您的資金(您資金賬戶的私鑰必須在其 wallet.dat 中)。如果是這種情況,那麼您需要sendmany方法。

跑步:

# Unlock the wallet (If your wallet is unencrypted, skip this step)
bitcoin-cli walletpassphrase "passphrase" 10
# Send all funds to everybody you need
bitcoin-cli sendmany "" '{"2N8hwP1WmJrFF5QWABn38y63uYLhnJYJYTF": 0.05, "2N5zxMH53RX3JLWbV5csmZrAhWY1R7Fr1SA": 0.05}'
# Lock the wallet
bitcoin-cli walletlock

作為 sendmany 呼叫的結果,您將獲得事務 ID:

3a2addb48252889711a74f7e131816c8becfb112910342faefd17a8913ac2de7

(這是比特幣測試網中的真實交易)

要獲取有關 sendmany 方法的更多資訊,您可以執行bitcoin-cli help sendmany,您將看到可用參數列表以及將其與 curl 一起使用的範例。或者你可以去官方文件

創建原始交易

如果您可以訪問比特幣節點,但該節點沒有您的資金,您可以使用createrawtransaction 節點上的方法創建新的未簽名交易,然後在您的錢包中籤署該交易並發送,使用sendrawtransaction

引用自:https://bitcoin.stackexchange.com/questions/77122