Cómo agregar una firma a una transacción que puedo transmitir

Estoy usando libro mayor y firma múltiple para firmar una transacción. Obtuve un hash de firma donde ambas partes firmaron la transacción. ¿Cómo puedo adjuntar esta firma a la transacción para poder transmitirla a la red? Cualquier referencia de código será bienvenida. Actualmente estoy haciendo referencia al código electrum.

Respuestas (1)

¿Cómo puedo adjuntar esta firma a la transacción para poder transmitirla a la red?

Esto es más independiente de cualquier software de billetera en particular, pero espero que sea útil. Cuando firma una transacción , coloca las firmas en el scriptSigcampo inputcorrespondiente (el tx puede tener múltiples entradas).

Para una transacción m-of-n multisig, el scriptSigformato es:

0 <sig1> ... OP_m <pubKey1> ... OP_n OP_CHECKMULTISIG

Para transmitirlo a la red, puede usar el comando de transmisión en electrum:

cat signed.txn | electrum broadcast -

If successful, the command will return the ID of the transaction.

Alternativamente, puede usar el en un nodo que ejecuta el núcleo de Bitcoin.sendrawtransaction RPC

sendrawtransaction "cadena hexadecimal" (permitir tarifas altas)

Submits raw transaction (serialized, hex-encoded) to local node and network.

Also see createrawtransaction and signrawtransaction calls.

Arguments:
1. "hexstring"    (string, required) The hex string of the raw transaction)
2. allowhighfees    (boolean, optional, default=false) Allow high fees

Result:
"hex"             (string) The transaction hash in hex

Examples:

Create a transaction
> bitcoin-cli createrawtransaction "[{\"txid\" : \"mytxid\",\"vout\":0}]" "{\"myaddress\":0.01}"
Sign the transaction, and get back the hex
> bitcoin-cli signrawtransaction "myhex"

Send the transaction (signed hex)
> bitcoin-cli sendrawtransaction "signedhex"

As a json rpc call
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "sendrawtransaction", "params": ["signedhex"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/