Я не могу расшифровать транзакцию в Bitcoin-QT.
Ошибка: TX decode failed (code -22)
. Но сайт blockexplorer расшифровывает его.
Затем я пытаюсь отправить транзакцию с сайта blockcypher.com, и возникает ошибка:Error validating transaction: Error running script for input 0 referencing c806c9ae2ac9c71fad307c9fedeca2133edb195cae9e924424885f57a63ba9a9 at 0: Script was NOT verified successfully..
Пожалуйста, помогите, что не так. Я проверяю структуру транзакции вручную и проверяю подписи. Это все нормально.
Я загружаю подписанные и неподписанные транзакции на pastebin.
Неподписанная транзакция: https://pastebin.com/XfE73U57
Расшифрованная неподписанная транзакция: https://pastebin.com/RH2tNrNn
Подписанная транзакция: https://pastebin.com/K15c29tK
Расшифрованная подписанная транзакция: https://pastebin.com/Mfs0bXgR
Я проверяю подписи и структуру транзакции вручную, и все они верны. Вклады не израсходованы. Так в чем проблема? Пожалуйста, помогите мне.
Ваша транзакция имеет 4 дополнительных байта в конце. Просто удалите 01000000, и тогда все будет в порядке.
Я думаю, что неподписанная необработанная транзакция настроена неправильно. Неподписанный tx имеет в 5 раз больше сценария публичного ключа в разделе tx_in[0-4]. Он должен иметь только один для каждой подписи. Насколько я понял систему, путь состоит в том, чтобы отключить все сценарии ввода и запустить цикл для каждого из пяти входов, создав 5 отдельных подписей.
Первый цикл будет иметь сценарий публичного ключа для tx_in[0]. Все остальные остаются пустыми. Затем вы вычисляете действительную подпись для tx_in[0]. Затем в следующем цикле вы снова ставите все на нуле, и только для tx_in 1 скрипт pubkey. И так далее... Я пытаюсь отобразить это так:
set all scriptSig fields to empty, and length of field to 0
Loop 1
only tx_in[0] with pubkey script, generate sig[0]
Loop 2
only tx_in[1] with pubkey script, generate sig[1]
Loop 3
only tx_in[2] with pubkey script, generate sig[2]
Loop 4
only tx_in[3] with pubkey script, generate sig[3]
Loop 5
only tx_in[4] with pubkey script, generate sig[4]
Это даст вам подписи, теперь вы помещаете каждую подпись в свое поле scriptsig и соответствующим образом принимаете поля длины.
пебвиндкрафт
чупакабра
пебвиндкрафт
чупакабра
c806c9ae2ac9c71fad307c9fedeca2133edb195cae9e924424885f57a63ba9a9
. Выходы этой транзакции не израсходованы (5 выходов). Я пытаюсь отредактировать свой вопрос, чтобы прояснить проблему, которую я действительно неправильно понимаю.Алексей Муравьёв