У меня есть необработанная транзакция вручную с использованием битовой библиотеки , чтобы отправить транзакцию с использованием тестовой сети Litecoin. После настройки платы и других сетевых переменных я получил следующую ошибку, указанную в теме поста. Эта транзакция не является мультиподписной. Это шестнадцатеричное значение необработанной транзакции.
0100000001d0e0112dd6bf2b44c44895d5363f2d2b940d4aff8d7fc2852a4c751e90200a5e000000006b483045022100ac91b8da716668553088da2da32c596a03973fffcbc36d2a7f3ecb8e93c3de07022040b7015c065e74d6f5fc30c9458c0631ddfb2d72feae3bb699c6ce835cd0ba54012102d41b76393d5f82b1856343623974684ff2bf03b26ec6bc2d0391ae0768cd9ebdffffffff0200286bee000000001976a914df918d7a0efe546d0284e217a3a322bb09f37f3988acb0a69a3b000000001976a914f2ebf3c5642abf069b4197a08e116937503d13e488ac00000000
После декодирования этого шестнадцатеричного кода получается следующее:
{
"txid": "2915435fbfb199670280d564b948d5a52fb4002f238f2980effef10818a84fc5",
"hash": "2915435fbfb199670280d564b948d5a52fb4002f238f2980effef10818a84fc5",
"version": 1,
"size": 226,
"vsize": 226,
"locktime": 0,
"vin": [
{
"txid": "5e0a20901e754c2a85c27f8dff4a0d942b2d3f36d59548c4442bbfd62d11e0d0",
"vout": 0,
"scriptSig": {
"asm": "3045022100ac91b8da716668553088da2da32c596a03973fffcbc36d2a7f3ecb8e93c3de07022040b7015c065e74d6f5fc30c9458c0631ddfb2d72feae3bb699c6ce835cd0ba54[ALL] 02d41b76393d5f82b1856343623974684ff2bf03b26ec6bc2d0391ae0768cd9ebd",
"hex": "483045022100ac91b8da716668553088da2da32c596a03973fffcbc36d2a7f3ecb8e93c3de07022040b7015c065e74d6f5fc30c9458c0631ddfb2d72feae3bb699c6ce835cd0ba54012102d41b76393d5f82b1856343623974684ff2bf03b26ec6bc2d0391ae0768cd9ebd"
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 40.00000000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 df918d7a0efe546d0284e217a3a322bb09f37f39 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a914df918d7a0efe546d0284e217a3a322bb09f37f3988ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"n1u5M1NRi1VGDrAQujjzaRhRsfWBtvsVLA"
]
}
},
{
"value": 9.99990960,
"n": 1,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 f2ebf3c5642abf069b4197a08e116937503d13e4 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a914f2ebf3c5642abf069b4197a08e116937503d13e488ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"n3fQUj2SSLcuAQjeL97WWuLm3n5DvjNYA8"
]
}
}
]
}
Заранее спасибо! :)
Я не уверен на 100%, относится ли это и к Litecoin, так как это клон Bitcoin. Но я понимаю, что схема подписи такая же... Так что должна быть возможность использовать openssl или любую библиотеку ECDSA для проверки подписи. Поэтому необходимо создать двойное море беззнакового tx в соответствии с этими шагами в ответе амаклина :
1) Удалить сценарий ввода из транзакции
2) Замените его pubkeyscript предыдущего TX
3) Добавить SIGHASH_ALL
4) Дважды хэшируйте с помощью SHA256.
Я пытаюсь воспроизвести его и получаю следующие значения:
sig: 3045022100ac91b8da716668553088da2da32c596a03973fffcbc36d2a7f3ecb8e93c3de07022040b7015c065e74d6f5fc30c9458c0631ddfb2d72feae3bb699c6ce835cd0ba54
pubkey: 02d41b76393d5f82b1856343623974684ff2bf03b26ec6bc2d0391ae0768cd9ebd
double hash: c54fa81808f1feef80298f232f00b42fa5d548b964d580026799b1bf5f431529
Это возвращает ошибку проверки подписи. У этого может быть несколько основных причин... Вы сказали, "после корректировки комиссий и других сетевых переменных": комиссии связаны с суммами в структуре вывода, и они подписаны. В любое время что-то из подписанного tx изменяется, делает подпись недействительной. Это может быть основной причиной... Можем ли мы увидеть неподписанную транзакцию?