Createrawtransaction
“操作在目前堆棧大小下無效”是什麼意思?
我問這個問題是為了幫助遇到我遇到的同樣問題的其他人。該錯誤至少有時具有誤導性,並且可能不准確。
與此錯誤相關的上下文是簽署您使用比特幣軟體創建的原始交易。對於像我這樣偏執的人來說,這是一種常見的做法。這是基本程序:
- 確定您想要花費的 TxOuts(txid 和 vout 對)。
- 使用<https://chainquery.com/bitcoin-api/createrawtransaction>或類似的東西來創建一個十六進製字元串。
- 使用<https://chainquery.com/bitcoin-api/signrawtransaction>以及花費那些未使用的 TxOuts 所需的私鑰。
在第三步中,您可能會收到“目前堆棧大小的操作無效”錯誤。
signrawtransaction
RPC 會在簽名後驗證交易的輸入腳本。如果交易尚未完全簽署(即未完成),則腳本驗證將失敗並產生此錯誤。多重簽名交易也會發生這種情況。當您沒有足夠的簽名時,腳本將無法驗證您看到的錯誤。
我遇到了同樣的問題,我試圖用錯誤的 Vout(1 而不是 0)創建原始交易
bitcoin-cli createrawtransaction "[{\"txid\": \"cd32cc233298662131dab1c2f5fa7b0407879b51bfaa7e26afa4abf453951b09\", \"vout\": 1}]" "{\"data\":\"68656c6c6f20776f726c64\",\"mpCALgNebBXBJByCG7W5XPXe2NvuQCD8au\":1.10000000}"
所以通過修復 vout 我已經完美地簽署了