signrawtransaction расходов P2SH-P2WPKH кажется нарушенным?

Я пытаюсь провести вывод SegWit в тестовой сети, используя RPC-команды ядра Биткойн. Без импорта закрытого ключа в мой кошелек (т.е. без адреса addwitness). Интересно, кому-нибудь посчастливилось тратить выходы SegWit таким образом? Возможно, в этом случае транзакция signraw нарушена? Вот команды и мои результаты. Что странно, так это то, что, хотя сама signrawtransaction прошла успешно, транзакция недействительна (отклонена sendrawtransaction и отклонена обозревателями блоков, поскольку я также пытаюсь ее протолкнуть).

(Обратите внимание: каждый раз, когда я импортирую ключ в кошелек и выполняю «addwitnessaddress», все работает нормально).

./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

код ошибки: -26 сообщение об ошибке: 64: необязательный флаг проверки сценария (подпись должна быть нулевой для неудачной операции CHECK (MULTI) SIG)

Ответы (2)

Кошелек не знает, как подписывать SegWit, пока вы не используете addwitnessaddress. Это связано с тем, что он отслеживает только выходные данные P2PKH для этого ключа. Вы должны явно указать ему отслеживать выходные данные свидетеля для ключа с помощью addwitnessaddress.

Спасибо. На самом деле я хотел запустить узел с отключенным кошельком. Любые быстрые идеи о том, как это можно было бы сделать (в будущем)? Я все еще копаюсь в коде, это, кажется, ключевая часть: pwalletMain->AddCScript(witscript);
В кошельке для Bitcoin Core 0.15.1 планируется реализовать поддержку segwit. Текущий план состоит в том, чтобы просто сделать это addwitnessaddressдля всех новых адресов и выдать эти адреса segwit.
Обновленное примечание: поддержка кошелька segwit нацелена на 0.16.0, потому что график был немного сдвинут из-за драмы S2X.
Нужно ли указывать «addwitnessaddress», и если да, то как?
@Peter addwitnessaddress— это команда, а не что-то конкретное.

Проблема отсутствовала amountв utxo, указанном для signrawtransaction. Я прикрепил поле в конце:

signrawtransaction  
020000000117017d17e296b4cd41cd63758bff8aadf214410505ccaeddb4252579ccffa4030000000000ffffffff0100b4c404000000001976a914ac19d3fd17710e6b9a331022fe92c693fdf6659588ac00000000  
'[{"txid":"03a4ffcc792525b4ddaecc05054114f2ad8aff8b7563cd41cdb496e2177d0117","vout":0,"scriptPubKey":"a91421ce1507d06ed2742be0bf18a018bbcdd812a26487","redeemScript":"00149835f2e0dff9d7f6a4060140696bc7e00b12edd5","amount":0.85}]' 
'["cMahea7zqjxryy6NWaKxmhDyb1JzuNKCZAg8sxaJoXSBkRXjnib9"]'

Тратить на59fdf1c39236498debdab39302e57b370e0e4d94d856d52d923868cfe5ef4f1b