Bitcoin-Core

創建自定義交易

  • April 1, 2020

我目前正在學習如何創建原始交易。我已經可以使用比特幣核心(0.19.1)創建標準,但是當我想使用這樣的自定義操作碼創建時:

asm: OP_HASH160 d0c3f50336b5f109207d722c692191ff86263e96 OP_EQUAL OP_DROP 1
hex: a914d0c3f50336b5f109207d722c692191ff86263e96877551
  1. 我創建了原始交易
createrawtransaction '[{"txid":"1c164f99a7cd0fe6dba9a7fe10ad3c2be132a9260d4ccdeaf7e279073946ac52","vout":0}]' '{"2MxmdfXx8rKGUmWUwQu59GksMNRdnQiRRM2":0.195}'

020000000152ac46390779e2f7eacd4c0d26a932e12b3cad10fea7a9dbe60fcda7994f161c0000000000ffffffff01e08b29010000000017a9143c98df42d7a69c7fd165aeb6128d45f21eeeac4d8700000000
  1. 但是當我想簽署這個交易時,我發生了一個錯誤(我也嘗試從第一步修改原始交易)這是上面修改過的原始交易的結果,但它仍然不起作用
signrawtransactionwithkey '020000000152ac46390779e2f7eacd4c0d26a932e12b3cad10fea7a9dbe60fcda7994f161c0000000000ffffffff0130c11d000000000019a914d0c3f50336b5f109207d722c692191ff86263e9687755100000000' '["$privkey"]' '[{"txid":"1c164f99a7cd0fe6dba9a7fe10ad3c2be132a9260d4ccdeaf7e279073946ac52","vout":0,"scriptPubKey":"a914d0c3f50336b5f109207d722c692191ff86263e96877551","redeemScript":"001453352afbbaa8cad22304201de8fbcc29e83fb2db","amount":0.02}]'

Previous output scriptPubKey mismatch:
OP_HASH160 d0c3f50336b5f109207d722c692191ff86263e96 OP_EQUAL
vs:
OP_HASH160 d0c3f50336b5f109207d722c692191ff86263e96 OP_EQUAL OP_DROP 1 (code -22)

現在我知道我做錯了什麼,但我不知道是什麼,我找不到任何關於如何正確做的資訊。這就是為什麼我有問題:

  1. 我究竟做錯了什麼?
  2. 如果可以,我可以使用比特幣核心創建自定義交易嗎?
  3. 如果我不能使用這個錢包,我該怎麼辦?我會很感激一個例子

在您的腳本中,之前的 ScriptPubKey 是不同的。如果您想創建自定義腳本,您需要手動簽署交易,您不能使用signrawtransactionwithkey. 比特幣核心僅簽署標準交易

問題是我更改了 scriptPubKey,我將其誤解為未來交易的 scriptOutput。這是一個錯誤,最後一個參數的 scriptPubKey 指的是 scriptPubKey UTXO。

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