Bitcoin-Core
是否可以在比特幣區塊鏈中創建批量交易?
場景: 假設我必須同時向 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
。