如何在regtest模式下向bitcoind送出非標準的scriptPubKey交易?
我正在嘗試複製我在測試網事務的 scriptPubKey 中看到的代數難題:
OP_2DUP OP_ADD 6e OP_EQUAL
我認為目的是讓這個輸出可以被 的 scriptSig 使用
0x37
,但作者使用OP_2DUP
而不是OP_DUP
. 我認為你應該仍然可以用 scriptSig 來使用它0x37 0x37
,儘管執行後的堆棧將有1 0x37 0x37
而不是僅僅1
.我無法送出測試網事務來嘗試花費輸出,因為
bitcoin-cli sendrawtransaction
強制執行non-mandatory-script-verify-flag
(執行後堆棧大小必須恰好為 1)。所以我的下一個想法是在 regnet 伺服器上複製這個謎題,看看我是否可以在那里花費硬幣。我使用更正的腳本創建了一個原始交易(由不同的 regnet 輸出提供資金):
010000000001013675d91ee12f196835c019afec15f8975bc1bcca23f50e0329376ae93e5bc15b0000000000ffffffff01c808e30500000000057693016e870247304402207f369a50b6deecaf6fc0ee15037ffe460eea9d9093d8e889def1ad93f173d11b022042dac5b3db93aa665b4d45073a3c397e4cdbdbd25880d6a8a15f97cc70b0228f0121029972f24e39b359e5e29267fab7d4cf752982f95e3428b0ef14f38937e6084c3f00000000
{ "txid": "4c56e2c6626e23f8d3afe7862332f3dbdef5e271f9931ecac8d8ffa67c43bf0b", "hash": "07662570c30e5505f35a328342ca6d0a3219ff2198814af44bfcc3dfad20d649", "version": 1, "size": 174, "vsize": 93, "weight": 369, "locktime": 0, "vin": [ { "txid": "5bc15b3ee96a3729030ef523cabcc15b97f815ecaf19c03568192fe11ed97536", "vout": 0, "scriptSig": { "asm": "", "hex": "" }, "txinwitness": [ "304402207f369a50b6deecaf6fc0ee15037ffe460eea9d9093d8e889def1ad93f173d11b022042dac5b3db93aa665b4d45073a3c397e4cdbdbd25880d6a8a15f97cc70b0228f01", "029972f24e39b359e5e29267fab7d4cf752982f95e3428b0ef14f38937e6084c3f" ], "sequence": 4294967295 } ], "vout": [ { "value": 0.98765000, "n": 0, "scriptPubKey": { "asm": "OP_DUP OP_ADD 110 OP_EQUAL", "desc": "raw(7693016e87)#tcc664ka", "hex": "7693016e87", "type": "nonstandard" } } ] }
但我也無法將此事務送出到我的 regnet 伺服器,因為:
% bitcoin-cli sendrawtransaction 010000000001013675d91ee12f196835c019afec15f8975bc1bcca23f50e0329376ae93e5bc15b0000000000ffffffff01c808e30500000000057693016e870247304402207f369a50b6deecaf6fc0ee15037ffe460eea9d9093d8e889def1ad93f173d11b022042dac5b3db93aa665b4d45073a3c397e4cdbdbd25880d6a8a15f97cc70b0228f0121029972f24e39b359e5e29267fab7d4cf752982f95e3428b0ef14f38937e6084c3f00000000 error code: -26 error message: scriptpubkey
我是否必須編寫自己的送出者才能與 regnet 節點對話?(也許無論如何我都需要它來送出應答/支出交易。)
(我想我可以通過 P2SH 送出非標準腳本,但這不是我想要的,因為拼圖腳本本身需要在區塊鏈中,而不僅僅是答案腳本的雜湊。這就是拼圖/獎勵/挑戰的全部意義:任何人都可以閱讀問題陳述,如果他們能解決問題,他們可以送出腳本推送答案的交易。我知道這不安全,礦池可以竊取答案並送出他們自己的付費地址作為輸出,但這是另一天的問題。)
幫助!
你必須告訴比特幣核心允許非標準交易,這可以通過以
-acceptnonstdtxn
.