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.
¿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 scriptSig
campo input
correspondiente (el tx puede tener múltiples entradas).
Para una transacción m-of-n multisig, el scriptSig
formato 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/