Я пытаюсь создать необработанную транзакцию и отправить ее в тестовую сеть.я использую ключи testnet.и слышать - это упрощенный читаемый вывод из моего скрипта:
decoded private key: SOME_KEY
testnet private ky = SOME_KEY
Receiver public key: a4842eed5a2c6fd7b71a238632f268d5831dacc0
out1Script: 76a914a4842eed5a2c6fd7b71a238632f268d5831dacc088ac
out1 script length in bytes = 25
My public key: 2431e05399f655c52f2e7ab6227837c94d450312
out2Script: 76a9142431e05399f655c52f2e7ab6227837c94d45031288ac
out2 script length in bytes = 25
Message to sign: f1c7146e665f9b59a6cce31526d85abb2d76859ba13219e9f8cf8e0d51051e45
my pub k without 04 part added: be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881
pub k len: 128 that is 64 byte long
signatureeeee: 30450221008eaa588a4037a1cd87115853ad28fc215b0ba2cfa7b1327675563bbd971939e302204d245c9092f0c28f3f31ad1bcccb4aef5c7fe718d2a20c39a94358eb8b61845c
signature lenght: 142
verify signatureeeee with pub key without '04' added that is derived directly from private key: True
wif pub ky: 2431e05399f655c52f2e7ab6227837c94d450312
pub ky from pr ky: be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881
sigscript: 4830450221008eaa588a4037a1cd87115853ad28fc215b0ba2cfa7b1327675563bbd971939e302204d245c9092f0c28f3f31ad1bcccb4aef5c7fe718d2a20c39a94358eb8b61845c014104be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881
sigscript lennn: 278
pubky len in sigscript: 65
formatting or real transaction:
version------------------- 01000000
transaction used---------- 01
transaction out Hex------ 245d84ae31c473495d2ba9b3a57b44196d634acf8a8d689960550345422a01fd
transaction out index----- 00000000
signing script size------- 8b
sigScript----------------- 4830450221008eaa588a4037a1cd87115853ad28fc215b0ba2cfa7b1327675563bbd971939e302204d245c9092f0c28f3f31ad1bcccb4aef5c7fe718d2a20c39a94358eb8b61845c014104be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881
-----sigscript formatting----
sig size---- 48
signature--- 30450221008eaa588a4037a1cd87115853ad28fc215b0ba2cfa7b1327675563bbd971939e302204d245c9092f0c28f3f31ad1bcccb4aef5c7fe718d2a20c39a94358eb8b61845c
how this script applies----- 01
pub ky len--- 41
pub key-- 04be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881
this pub key is 65 byte long dueto '04' added
---end sigscript formatting----
sequence------------------ ffffffff
no. of out trxn----------- 02
out1 value---------------- 00c4090000000000
out1 script len----------- 19
out1 Script--------------- 76a914a4842eed5a2c6fd7b71a238632f268d5831dacc088ac
out2 value---------------- c0cf6a0000000000
out2 script len----------- 19
out2 script--------------- 76a9142431e05399f655c52f2e7ab6227837c94d45031288ac
lock time----------------- 00000000
Транзакция в шестнадцатеричной строке:
0100000001245d84ae31c473495d2ba9b3a57b44196d634acf8a8d689960550345422a01fd000000008b4830450221008eaa588a4037a1cd87115853ad28fc215b0ba2cfa7b1327675563bbd971939e302204d245c9092f0c28f3f31ad1bcccb4aef5c7fe718d2a20c39a94358eb8b61845c014104be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881ffffffff0200c40900000000001976a914a4842eed5a2c6fd7b71a238632f268d5831dacc088acc0cf6a00000000001976a9142431e05399f655c52f2e7ab6227837c94d45031288ac00000000
Я использую транзакцию в шестнадцатеричной строке для трансляции с использованием https://live.blockcypher.com/btc-testnet/pushtx/который показывает эту ошибку:
Error validating transaction: Error running script for input 0 referencing fd012a424503556099688d8acf4a636d19447ba5b3a92b5d4973c431ae845d24 at 0: Script was NOT verified successfully..
индекс 0 в этой транзакции:
OP_DUP OP_HASH160 2431e05399f655c52f2e7ab6227837c94d450312 OP_EQUALVERIFY OP_CHECKSIG
попытался передать с использованием: https://testnet.blockexplorer.com/tx/send, который показывает эту ошибку:
16: mandatory-script-verify-flag-failed (Script evaluated without error but finished with a false/empty top stack element). Code:-26
когда я декодирую транзакцию, используя: https://live.blockcypher.com/btc-testnet/decodetx/, это показывает:
{
"addresses": [
"mipLNRZc9oo2fKFzhfwJVNy1t29VsqHRvS",
"mvWqTmhjEyMkymTm4VMFWLPQhzGwo6RPGM"
],
"block_height": -1,
"block_index": -1,
"confirmations": 0,
"double_spend": false,
"fees": 6499,
"hash": "28aa9b738ec668c62280c7d7cb19c1b907ec10427050902609a54264774c77ca",
"inputs": [
{
"addresses": [
"mipLNRZc9oo2fKFzhfwJVNy1t29VsqHRvS"
],
"age": 1489541,
"output_index": 0,
"output_value": 7646499,
"prev_hash": "fd012a424503556099688d8acf4a636d19447ba5b3a92b5d4973c431ae845d24",
"script": "4830450221008eaa588a4037a1cd87115853ad28fc215b0ba2cfa7b1327675563bbd971939e302204d245c9092f0c28f3f31ad1bcccb4aef5c7fe718d2a20c39a94358eb8b61845c014104be13acda02dc89ebd1ab87030750b694563c7dac7ebc53b541178e6d04cda33215d712406ff8b705607312d5fea471e9855dbcb963efb63a54e7efeb36382881",
"script_type": "pay-to-pubkey-hash",
"sequence": 4294967295
}
],
"outputs": [
{
"addresses": [
"mvWqTmhjEyMkymTm4VMFWLPQhzGwo6RPGM"
],
"script": "76a914a4842eed5a2c6fd7b71a238632f268d5831dacc088ac",
"script_type": "pay-to-pubkey-hash",
"value": 640000
},
{
"addresses": [
"mipLNRZc9oo2fKFzhfwJVNy1t29VsqHRvS"
],
"script": "76a9142431e05399f655c52f2e7ab6227837c94d45031288ac",
"script_type": "pay-to-pubkey-hash",
"value": 7000000
}
],
"preference": "low",
"received": "2019-05-02T00:31:23.148760954Z",
"relayed_by": "54.162.99.128",
"size": 258,
"total": 7640000,
"ver": 1,
"vin_sz": 1,
"vout_sz": 2
}
До сих пор я обнаружил, что в части sigscript есть некоторая путаница, потому что адрес гдеотправлено монет: 2431e05399f655c52f2e7ab6227837c94d450312, которое добавлено к ключу паба '04' и применено sha256 к этому новому ключу, а затем к palemd160, но подпись может быть проверена только с использованием открытого ключа без 04 части.
Итак, теперьЯ не уверен, как действовать дальше.Если кому-то нужен код для поиска, я с радостью его предоставлю.Пожалуйста, помогите мне!