Я пытаюсь провести вывод 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)
Кошелек не знает, как подписывать SegWit, пока вы не используете addwitnessaddress
. Это связано с тем, что он отслеживает только выходные данные P2PKH для этого ключа. Вы должны явно указать ему отслеживать выходные данные свидетеля для ключа с помощью addwitnessaddress
.
Проблема отсутствовала amount
в utxo, указанном для signrawtransaction. Я прикрепил поле в конце:
signrawtransaction
020000000117017d17e296b4cd41cd63758bff8aadf214410505ccaeddb4252579ccffa4030000000000ffffffff0100b4c404000000001976a914ac19d3fd17710e6b9a331022fe92c693fdf6659588ac00000000
'[{"txid":"03a4ffcc792525b4ddaecc05054114f2ad8aff8b7563cd41cdb496e2177d0117","vout":0,"scriptPubKey":"a91421ce1507d06ed2742be0bf18a018bbcdd812a26487","redeemScript":"00149835f2e0dff9d7f6a4060140696bc7e00b12edd5","amount":0.85}]'
'["cMahea7zqjxryy6NWaKxmhDyb1JzuNKCZAg8sxaJoXSBkRXjnib9"]'
Тратить на59fdf1c39236498debdab39302e57b370e0e4d94d856d52d923868cfe5ef4f1b
тби
Эндрю Чоу
addwitnessaddress
для всех новых адресов и выдать эти адреса segwit.мешколлайдер
Питер
Эндрю Чоу
addwitnessaddress
— это команда, а не что-то конкретное.