Я пытаюсь использовать метод из этой ссылки на Reddit , чтобы отправить необработанную транзакцию в сеть bcc, но продолжаю получать сообщение об ошибке: «16: сбой обязательного сценария-проверки-флага (скрипт оценивается без ошибок, но завершается с ошибкой). false/пустой верхний элемент стека) (код -26)"
Есть ли что-то отличное от этого метода при отправке транзакции в сеть bcc? Все работает нормально, пока я не попытаюсь выполнить sendrawtransaction.
Чтобы процитировать ссылку выше, это шаги, которые я делаю:
создать необработанную транзакцию:
createrawtransaction '[{"txid":"0cb0c97c206bf2229fac8800fe05410d23bbc5afe2b243ff921ef2065b210b34","vout":1,"scriptPubKey":"76a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac"}]' '{"mtRWdkBpAyz8pUoCYobABvnEe1xFPqvkJN":0.36972432}'
результат:
0100000001340b215b06f21e92ff43b2e2afc5bb230d4105fe0088ac9f22f26b207cc9b00c0100000000ffffffff0280969800000000001976a9148d9222948aff2a22c6c0fe7a05f7edd3c1b0ab9f88ac10919b01000000001976a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac00000000
затем подпишите необработанную транзакцию:
signrawtransaction '0100000001340b215b06f21e92ff43b2e2afc5bb230d4105fe0088ac9f22f26b207cc9b00c0100000000ffffffff0280969800000000001976a9148d9222948aff2a22c6c0fe7a05f7edd3c1b0ab9f88ac10919b01000000001976a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac00000000' '[{"txid":"0cb0c97c206bf2229fac8800fe05410d23bbc5afe2b243ff921ef2065b210b34","vout":1,"scriptPubKey":"76a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac"}]' '["cUhHXQLPaNSPNh2rRiWSarn5jEoJ26HvrAYjLCfxnDsAYZenTthe"]'
результат:
{ "hex" : "0100000001340b215b06f21e92ff43b2e2afc5bb230d4105fe0088ac9f22f26b207cc9b00c010000006a47304402200d3f8a6430f952199d7f4550328ae980f9926b13f7c78f8a5640ecd445aa20bf022074a7e1ec5d27d83da6bb19a8fe9ef9757e40fa86a9b1437c27031be015d82db40121032effa843ad1052540de3ae323a165101bc2e980c76b69bdc69444e3ef599054effffffff0280969800000000001976a9148d9222948aff2a22c6c0fe7a05f7edd3c1b0ab9f88ac10919b01000000001976a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac00000000", "complete" : true }
затем отправить транзакцию:
sendrawtransaction '0100000001340b215b06f21e92ff43b2e2afc5bb230d4105fe0088ac9f22f26b207cc9b00c010000006a47304402200d3f8a6430f952199d7f4550328ae980f9926b13f7c78f8a5640ecd445aa20bf022074a7e1ec5d27d83da6bb19a8fe9ef9757e40fa86a9b1437c27031be015d82db40121032effa843ad1052540de3ae323a165101bc2e980c76b69bdc69444e3ef599054effffffff0280969800000000001976a9148d9222948aff2a22c6c0fe7a05f7edd3c1b0ab9f88ac10919b01000000001976a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac00000000'
результат:
16: mandatory-script-verify-flag-failed (Script evaluated without error but finished with a false/empty top stack element) (code -26)
Поскольку я уверен, что другие столкнутся с той же проблемой, решение состоит в том, что BCC требует, чтобы вы вводили тег суммы при подписании транзакции. Вы должны ввести полную сумму, указанную в команде listunspent-command, иначе вы не сможете отправить транзакцию.
У меня была такая же ошибка, но, возможно, другая проблема. См.: Попытка необработанной транзакции BCC/BCH с ошибкой CHECK(MULTI)SIG. Что не так?
Важно, чтобы хэш, используемый для подписи, был основан на тех же данных, которые фактически отправляются + сигскрипт. Любое различие приведет к другой подписи. Также для подписи необходимо использовать количество минусов и некоторые отличия по сравнению с BTC, такие как И-сложение сигхэша, используемого с 0x40 и Bip143SignatureHash.
Беглый обзор ваших шагов говорит мне, что вы делаете это правильно. Но входы, которые вы пытаетесь потратить, уже потрачены (Testnet/ https ://www.blocktrail.com/tBTC/tx/0cb0c97c206bf2229fac8800fe05410d23bbc5afe2b243ff921ef2065b210b34 ).
Ошибка, с которой вы столкнулись, не очень точна, но в конечном итоге будет означать, что вы пытаетесь потратить и уже потратили монету.
Попробуйте выполнить regtest (вашу собственную локальную сеть биткойнов), запустив Bitcoin-Core в -regtest
режиме. Там вы можете получить монеты для игры, позвонив generate 101
(мойте 100 блоков == получите доступный баланс 50 BTC) в своей консоли (или с помощью RPC).
Торка Мэй
Торка Мэй