So fügen Sie einer Transaktion eine Signatur hinzu, die ich übertragen kann

Ich verwende Ledger und Multi-Sig, um eine Transaktion zu signieren. Ich habe einen Signatur-Hash erhalten, bei dem beide Parteien die Transaktion signiert haben. Wie kann ich diese Signatur an die Transaktion anhängen, damit ich sie an das Netzwerk senden kann? jede Code-Referenz ist willkommen. Derzeit beziehe ich mich auf Elektroncode.

Antworten (1)

Wie kann ich diese Signatur an die Transaktion anhängen, damit ich sie an das Netzwerk senden kann?

Dies ist unabhängiger von einer bestimmten Wallet-Software, aber ich hoffe, es ist hilfreich. Wenn Sie eine Transaktion signieren , fügen Sie die Signaturen in das entsprechende scriptSigFeld ein (der tx kann mehrere Eingaben haben).input

Für eine m-von-n-Multisig-Transaktion scriptSiglautet das Format:

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

Um es an das Netzwerk zu senden, können Sie den Befehl broadcast in electrum verwenden :

cat signed.txn | electrum broadcast -

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

Alternativ können Sie den Bitcoin-Kern auf einem Knoten verwenden, auf dem Bitcoin ausgeführt wird.sendrawtransaction RPC

senddrawtransaction "hexstring" (allowhighfees)

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/