Intentando enviar bcc con bitcoin-qt pero obteniendo "16: mandato-script-verify-flag-failed" - error

Estoy tratando de usar el método de este enlace de reddit para enviar una transacción sin procesar a la red bcc, pero sigo recibiendo el error: "16: mandato-script-verify-flag-failed (Script evaluado sin error pero terminado con un elemento de pila superior falso/vacío) (código -26)"

¿Hay algo diferente a ese método al enviar una transacción a la red BCC? Todo funciona bien hasta que intento hacer la transacción sendraw.

Para citar del enlace de arriba, estos son los pasos que estoy haciendo:

creartransacción en bruto:

createrawtransaction '[{"txid":"0cb0c97c206bf2229fac8800fe05410d23bbc5afe2b243ff921ef2065b210b34","vout":1,"scriptPubKey":"76a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac"}]' '{"mtRWdkBpAyz8pUoCYobABvnEe1xFPqvkJN":0.36972432}'

resultado:

0100000001340b215b06f21e92ff43b2e2afc5bb230d4105fe0088ac9f22f26b207cc9b00c0100000000ffffffff0280969800000000001976a9148d9222948aff2a22c6c0fe7a05f7edd3c1b0ab9f88ac10919b01000000001976a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac00000000

luego signrawtransaction:

signrawtransaction '0100000001340b215b06f21e92ff43b2e2afc5bb230d4105fe0088ac9f22f26b207cc9b00c0100000000ffffffff0280969800000000001976a9148d9222948aff2a22c6c0fe7a05f7edd3c1b0ab9f88ac10919b01000000001976a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac00000000' '[{"txid":"0cb0c97c206bf2229fac8800fe05410d23bbc5afe2b243ff921ef2065b210b34","vout":1,"scriptPubKey":"76a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac"}]' '["cUhHXQLPaNSPNh2rRiWSarn5jEoJ26HvrAYjLCfxnDsAYZenTthe"]'

resultado:

{ "hex" : "0100000001340b215b06f21e92ff43b2e2afc5bb230d4105fe0088ac9f22f26b207cc9b00c010000006a47304402200d3f8a6430f952199d7f4550328ae980f9926b13f7c78f8a5640ecd445aa20bf022074a7e1ec5d27d83da6bb19a8fe9ef9757e40fa86a9b1437c27031be015d82db40121032effa843ad1052540de3ae323a165101bc2e980c76b69bdc69444e3ef599054effffffff0280969800000000001976a9148d9222948aff2a22c6c0fe7a05f7edd3c1b0ab9f88ac10919b01000000001976a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac00000000", "complete" : true }

luego enviar la transacción:

sendrawtransaction '0100000001340b215b06f21e92ff43b2e2afc5bb230d4105fe0088ac9f22f26b207cc9b00c010000006a47304402200d3f8a6430f952199d7f4550328ae980f9926b13f7c78f8a5640ecd445aa20bf022074a7e1ec5d27d83da6bb19a8fe9ef9757e40fa86a9b1437c27031be015d82db40121032effa843ad1052540de3ae323a165101bc2e980c76b69bdc69444e3ef599054effffffff0280969800000000001976a9148d9222948aff2a22c6c0fe7a05f7edd3c1b0ab9f88ac10919b01000000001976a9144e03fd2b3eff32ee90d29524eb6f058719f3b50f88ac00000000'

resultado:

16: mandatory-script-verify-flag-failed (Script evaluated without error but finished with a false/empty top stack element) (code -26)

Respuestas (3)

Como estoy seguro de que otros encontrarán el mismo problema, la solución es que BCC requiere que ingrese la etiqueta de cantidad al firmar una transacción. Sin embargo, debe ingresar el monto total que se muestra en el comando listunspent, de lo contrario no podrá enviar la transacción.

Tuve el mismo error, pero quizás un problema diferente. Consulte: Probar la transacción sin procesar BCC/BCH con CHECK(MULTI)SIG fallido. ¿Lo que está mal?

Es importante que el hash utilizado para firmar se base en los mismos datos que se envían actualmente + sigscript. Cualquier diferencia dará como resultado una firma diferente. También para la firma, se deben usar las cantidades de los puntos de salida y algunas diferencias en comparación con BTC, como AND'ing the sighash usado con 0x40 y Bip143SignatureHash.

Una revisión rápida de tus pasos me dice que lo estás haciendo bien. Pero las entradas que intenta gastar ya están gastadas (Testnet / https://www.blocktrail.com/tBTC/tx/0cb0c97c206bf2229fac8800fe05410d23bbc5afe2b243ff921ef2065b210b34 ).

El error que está encontrando no es muy preciso, pero eventualmente significará que está tratando de gastar y ya gastó monedas.

Pruebe regtest (su propia red local de bitcoin) iniciando Bitcoin-Core en -regtestmodo. Allí puede obtener algunas monedas para jugar llamando generate 101(minar 100 bloques == obtener 50 BTC de saldo disponible) en su consola (o por RPC).

Esas entradas son solo un ejemplo del enlace de reddit, no mi transacción real. No quería arriesgarme a exponer ninguna información sobre la clave privada que estaba usando, por lo que solo mostré los pasos con una transacción de ejemplo. Tienes que probar con regtest entonces. ¿Podría ser que el error se deba a que he importado la dirección desde la que estoy tratando de enviar solo para ver? ¿O eso no importaría?
Ok, descargué bitcoin abc ahora y lo inicié en modo de registro. Hice todos los pasos para crear una transacción y enviarla y obtuve el mismo error después de enviar la transacción: 16: mandato-script-verificar-bandera-fallida (La firma debe ser cero para la operación CHECK(MULTI)SIG fallida) (código -26) . ¿Qué me estoy perdiendo?