signrawtransaction einer P2SH-P2WPKH Ausgabe scheint defekt zu sein?

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)

Antworten (2)

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.

Danke schön. Eigentlich wollte ich den Knoten mit deaktivierter Brieftasche ausführen. Irgendwelche schnellen Ideen, wie das (in Zukunft) gemacht werden könnte? Ich grabe immer noch durch Code, das scheint das Schlüsselstück zu sein: pwalletMain->AddCScript(witscript);
Es ist geplant, Segwit-Unterstützung in der Brieftasche für Bitcoin Core 0.15.1 zu implementieren. Der aktuelle Plan sieht vor, es im Wesentlichen addwitnessaddressfür alle neuen Adressen zu tun und diese Segwit-Adressen herauszugeben.
Aktualisierter Hinweis: Die Segwit-Wallet-Unterstützung wird für 0.16.0 angestrebt, da der Zeitplan durch das S2X-Drama leicht verschoben wurde
Muss die 'addwitnessaddress' angegeben werden und wenn ja wie?
@Peter addwitnessaddressist ein Befehl, nicht etwas, das angegeben wird.

Das Problem fehlte amountim 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