Ich versuche, mit den RPC-Befehlen des Bitcoin-Kerns eine SegWit-Ausgabe im Testnetz auszugeben. Ohne den privaten Schlüssel in mein Wallet zu importieren (also ohne addwitnessaddress). Ich frage mich, ob jemand Glück hatte, SegWit-Ausgaben auf diese Weise auszugeben? Vielleicht ist die signrawtransaction in diesem Fall kaputt? Hier sind die Befehle und meine Ergebnisse. Seltsam ist, dass, obwohl die signrawtransaction selbst erfolgreich ist, die Transaktion nicht gültig ist (von senddrawtransaction abgelehnt und von Block-Explorern abgelehnt, da ich versuche, sie ebenfalls zu pushen).
(Bitte beachten Sie: Jedes Mal, wenn ich den Schlüssel in die Brieftasche importiere und eine "addwitnessaddress" mache, funktioniert alles einwandfrei).
./bitcoin-cli -testnet createrawtransaction '[{"txid":"03a4ffcc792525b4ddaecc05054114f2ad8aff8b7563cd41cdb496e2177d0117","vout":0}]' '{"mwCwTceJvYV27KXBc3NJZys6CjsgsoeHmf":0.8}'
020000000117017d17e296b4cd41cd63758bff8aadf214410505ccaeddb4252579ccffa4030000000000ffffffff0100b4c404000000001976a914ac19d3fd17710e6b9a331022fe92c693fdf6659588ac00000000
./bitcoin-cli -testnet signrawtransaction 020000000117017d17e296b4cd41cd63758bff8aadf214410505ccaeddb4252579ccffa4030000000000ffffffff0100b4c404000000001976a914ac19d3fd17710e6b9a331022fe92c693fdf6659588ac00000000 '[{"txid":"03a4ffcc792525b4ddaecc05054114f2ad8aff8b7563cd41cdb496e2177d0117","vout":0,"scriptPubKey":"a91421ce1507d06ed2742be0bf18a018bbcdd812a26487","redeemScript":"00149835f2e0dff9d7f6a4060140696bc7e00b12edd5"}]' '["cMahea7zqjxryy6NWaKxmhDyb1JzuNKCZAg8sxaJoXSBkRXjnib9"] '
{ "hex": "0200000000010117017d17e296b4cd41cd63758bff8aadf214410505ccaeddb4252579ccffa40300000000171600149835f2e0dff9d7f6a4060140696bc7e00b12edd5ffffffff0100b4c404000000001976a914ac19d3fd17710e6b9a331022fe92c693fdf6659588ac024730440220452a58cf56c45edaffb952acccd2f6f2cea523cf82e73b82f8eb5e3b3b1b17c4022011de26884cf693b12f16fdd8fa6c1d96dacb97050907353852895d9b80b3fae101210206f4bad90006f70112129815b25ba585484f1bb4f8b88f8ebaec2c76f543794300000000", "complete": true }
./bitcoin-cli -testnet sendrawtransaction 0200000000010117017d17e296b4cd41cd63758bff8aadf214410505ccaeddb4252579ccffa40300000000171600149835f2e0dff9d7f6a4060140696bc7e00b12edd5ffffffff0100b4c404000000001976a914ac19d3fd17710e6b9a331022fe92c693fdf6659588ac024730440220452a58cf56c45edaffb952acccd2f6f2cea523cf82e73b82f8eb5e3b3b1b17c4022011de26884cf693b12f16fdd8fa6c1d96dacb97050907353852895d9b80b3fae101210206f4bad90006f70112129815b25ba585484f1bb4f8b88f8ebaec2c76f543794300000000
Fehlercode: -26 Fehlermeldung: 64: non-mandatory-script-verify-flag (Signatur muss null sein für fehlgeschlagene CHECK(MULTI)SIG-Operation)
Die Brieftasche weiß nicht, wie sie für SegWit-Sachen signieren soll, bis Sie verwenden addwitnessaddress
. Dies liegt daran, dass nur die P2PKH-Ausgänge für diesen Schlüssel verfolgt werden. Sie müssen es explizit anweisen, die Zeugenausgaben für den Schlüssel zu verfolgen, indem Sie verwenden addwitnessaddress
.
Das Problem fehlte amount
im utxo, das an signrawtransaction übergeben wurde. Ich habe das Feld am Ende angehängt:
signrawtransaction
020000000117017d17e296b4cd41cd63758bff8aadf214410505ccaeddb4252579ccffa4030000000000ffffffff0100b4c404000000001976a914ac19d3fd17710e6b9a331022fe92c693fdf6659588ac00000000
'[{"txid":"03a4ffcc792525b4ddaecc05054114f2ad8aff8b7563cd41cdb496e2177d0117","vout":0,"scriptPubKey":"a91421ce1507d06ed2742be0bf18a018bbcdd812a26487","redeemScript":"00149835f2e0dff9d7f6a4060140696bc7e00b12edd5","amount":0.85}]'
'["cMahea7zqjxryy6NWaKxmhDyb1JzuNKCZAg8sxaJoXSBkRXjnib9"]'
Verbringen bei59fdf1c39236498debdab39302e57b370e0e4d94d856d52d923868cfe5ef4f1b
tbee
Andreas Chow
addwitnessaddress
für alle neuen Adressen zu tun und diese Segwit-Adressen herauszugeben.meshcollider
Peter
Andreas Chow
addwitnessaddress
ist ein Befehl, nicht etwas, das angegeben wird.