Bitcoin-Cli

應該在“createrawtransaction”rpc 命令的參數欄位中插入什麼“數據”

  • December 11, 2021

資源指出“data”: “hex”,(string, required) 一個鍵值對。鍵必須是“數據”,值是十六進制編碼的數據


問題

  1. 它說該欄位是**“必需的”,但究竟應該是什麼data**?
  2. 如果**data**沒有提供,這是否會使 coinbase 交易無效(即使塊高度被編碼到 scriptSig 中)?

我在這裡問了這個問題,但沒有提供答案。所以我決定把它作為一個獨立的問題。


目標

  1. 確認**data**應在此數據欄位中插入的內容

數據欄位僅適用於您要創建攜帶數據的事務(具有 OP_RETURN 的事務)。這在正常交易中通常是不需要的(甚至它的使用也有一些爭議)。對於 coinbase 交易,如果你想在你的區塊中包含隔離見證交易,你確實需要一個 OP_RETURN 輸出以及 BIP141 中指定的見證承諾。

但是,您不應該使用createrawtransaction相關的 RPC 來建構 coinbase 交易,因為它們會失去必要的 scriptSig 內容。即使可以,它也很可能太慢以至於毫無用處(像 AntMiner S17 這樣的現代礦機每秒需要 13000 個幣基)。因此,礦工韌體使用硬編碼邏輯建構它們。

該欄位在此類輸出的 RPC 文件中標記為必填項。如果您不想要攜帶數據的輸出,那麼該對像根本就不存在。

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