Raw-Transaction
getnewaddress 對比獲取原始更改地址
我正在使用 Golang btcsuite/btcd 庫編寫一個在區塊鏈中創建自定義
OP_RETURN
TX 的比特幣應用程序。我從高層次理解比特幣(工作證明共識、Merkle 樹、成員資格、簽名等),但我迷失在(不必要的?)其 RPC 介面的複雜細節中。
我正在用 Go 編寫程式碼來創建一個具有 1 個輸入和 2 個輸出(一個 OP_RETURN 輸出和一個更改輸出)的自定義事務。以下是我的問題:
- 這是否被視為原始交易?(如果是,究竟什麼是原始交易?是不是所有交易都不是通過
sendfrom/sendmany/sendtoaddress
RPC 創建的?)getnewaddress
和getrawchangeaddress
在語義層面有什麼區別?似乎兩者都生成了一個密鑰對,但是為什麼需要兩個不同的呼叫呢?- 如果我正在創建如上所述的原始
getnewaddress
事務,我應該將更改發送到密鑰還是getrawchangeaddress
密鑰?謝謝你,
阿林
- rawtransaction介面接受並返回“原始”十六進制編碼的 p2p 兼容事務。使用非 rawtransaction 方法(如
sendtoaddres
, 不會讓您檢查或更改創建的字節數組。- 該**
getrawchangeaddress
方法將從密鑰池中檢索密鑰並返回其 pubkey(編碼為 p2pkh 地址)。與 不同getrawchangeaddress
,gewnewaddress
**將創建一個地址簿條目,使您可以更好地檢查/區分您從該地址收到的資金,從而增加重複使用地址的機會。- **
getrawchangeaddress
**如果您想使用給定地址作為原始交易的更改輸出,您應該使用。