Voici comment envoyer une transaction brute BTC en utilisant la commande Bitcoin-cli

Scénario:

Michael reçoit 0,05000000 BTC De Pablo et un autre 0,01000000 BTC de Kuradang. Michael veut aussi envoyer 0,02500000 BTC à Berteng. Chaque montant que Michael reçoit a le txid correspondant et d'autres détail. Permet de vérifier cela à l'aide de listunspent commande puis créer un transaction brute utilisant createrawtransaction après cela, signez en utilisant signrawtransaction et envoyer cette transaction brute en utilisant sendrawtransaction.

étant donné:

  • Michael's Bitcoin adresse: mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zafe
  • Berteng's Bitcoin adresse: mxh3H416KCRoBDiweSESew5YJyAk1nxLrn
  • Envoyer à Berteng: 0.02500000 mBTC

Étape 1)

listunspent

Format:

$ bitcoin-cli listunspent [misconf=1] [max_number_confirmation=99999999] '''["<wallet_address>"]'''

permet de vérifier la liste de Michael de l'unspent en utilisant avec son adresse.

Exécuter:

$ bitcoin-cli listunspent 1 99999999 '''["mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe"]'''

Résultat:

[{
    "txid": "12b8e7ede4992f4d30f93idj3085746951d945e39f40becebd7c290af8c2e7ad",
    "vout": 1,
    "address": "mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe",
    "account": "micz",
    "scriptPubKey": "76a9143aa28e1740a6a5a2190975b6e7f1ad67aaec9a3988ac",
    "amount": 0.05000000,
    "confirmations": 94,
    "spendable": true
}, {
    "txid": "8443bc63b65d569ff9ekwm37sy3b67b9c7c6f8f386c3cdf372b260961b64ec9fc",
    "vout": 1,
    "address": "mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe",
    "account": "micz",
    "scriptPubKey": "76a9143aa28e1740a6a5a2190975b6e7f1ad67aaec9a3988ac",
    "amount": 0.01000000,
    "confirmations": 93,
    "spendable": true
}]

ce que nous voyons ici sont les résultats qui ont assigné 50 et 10 mBTC à notre adresse mkrz.... Pour dépenser cet extrant, nous allons créer une nouvelle transaction.

Étape 2)

createrawtransaction

nous avons besoin de choisir quelques blocs avec une quantité suffisante du résultat de listunspent. Puisque nous avons seulement besoin d'envoyer 0.02500000 mBTC je pense que le premier bloc a le montant suffisant pour faire la transaction.

Format:

$ bitcoin-cli createrawtransaction
    '[{
        "txid" : "<txid_of_selected_block>",
        "vout" : <vout>
    }]'
    '{"<recipient_address>": <amount_to_send>, "<sender_address>": <amount_change>}'

pour payer les frais, nous réduirons la production de changement de 0.5 millibits comme vous pouvez voir ci-dessous.

Exécuter:

$ bitcoin-cli createrawtransaction
    '[{
        "txid" : "12b8e7ede4992f4d30f93idj3085746951d945e39f40becebd7c290af8c2e7ad",
        "vout" : 0
    }]'
    '{"mxh3H416KCRoBDiweSESew5YJyAk1nxLrN": 0.025, "mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe": 0.0245}'

Résultat

0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c0000000000ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000

la commande createrawtransaction produit brut hex chaîne code les détails de la transaction que nous avons fournis. Si vous voulez décoder le hex utilise la commande decoderawtransaction.

Etape 3)

signrawtransaction

signe le mouvement dans le format de transaction sérialisé en utilisant clés privées stockées dans le porte-monnaie ou fournies dans le appeler.

Format:

$ bitcoin-cli signrawtransaction <hex_createrawtransaction>

Exécuter:

$ bitcoin-cli signrawtransaction 0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c0000000000ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000

Résultat:

{
   "hex" : "0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c000000006a47304402203e8a16522da80cef66bacfbc0c800c6d52c4a26d1d86a54e0a1b76d661f020c9022010397f00149f2a8fb2bc5bca52f2d7a7f87e3897a273ef54b277e4af52051a06012103c9700559f690c4a9182faa8bed88ad8a0c563777ac1d3f00fd44ea6c71dc5127ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000",
   "complete" : true
}

maintenant la commande signrawtransaction renvoie un autre raw encodé hex transaction.

Étape 4)

sendrawtransaction

RPC valide une transaction et la retransmet à l'pair-à-pair réseau.

Format:

$ bitcoin-cli sendrawtransaction <hex_signrawtransaction>

Exécuter:

$ bitcoin-cli sendrawtransaction 0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c000000006a47304402203e8a16522da80cef66bacfbc0c800c6d52c4a26d1d86a54e0a1b76d661f020c9022010397f00149f2a8fb2bc5bca52f2d7a7f87e3897a273ef54b277e4af52051a06012103c9700559f690c4a9182faa8bed88ad8a0c563777ac1d3f00fd44ea6c71dc5127ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000

Résultat:

ae74538baa914f3799081ba78429d5d84f36a0127438e9f721dff584ac17b346

la commande sendrawtransaction renvoie un hachage de transaction (txid) tel qu'il soumet la transaction sur le réseau. Pour vérifier l'opération de hachage, vous pouvez aller à tbtc.blockr.io

pour plus d'information voir ce site mastering bitcoin

12
demandé sur Michael Blanza 2016-07-21 05:27:45

2 réponses

encore une autre façon plus simple avec un supplément fundrawtransaction. Les Docs nous disent quelles entrées et sorties tous les champs requis. Mais n'oubliez pas la liste vide est un objet trop:

Étape 1)

$ bitcoin-cli createrawtransaction '[]' \
    '{"mxh3H416KCRoBDiweSESew5YJyAk1nxLrN": 0.025}'

Étape 2)

$ bitcoin-cli fundrawtransaction <hex_createrawtransaction> \
    '{"changeAddress": "mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe"}'

Après la deuxième étape, vous pouvez regarder les frais générés par votre porte-monnaie. Et de le modifier avec feeRate option de fundrawtransaction la commande. Tout cela peut être fait avant de signer et d'envoyer au réseau votre transaction.

1
répondu Sergey Voronezhskiy 2017-10-08 23:30:44

Multisig la mise en œuvre d'envoyer rawtransaction dans regtest de l'environnement)

1)Créer un rawtransaction

syntaxe:

bitcoin-cli-regtest createrawtransaction ' [{"txid":"", "vout":}]' '{"receive_address":montant}'

Exemple:

 > bitcoin-cli -regtest createrawtransaction
    > '[{"txid":"eee0de90e9878c039f87c9eedbdf5b9a5da157b19e5354a51ff3b2f84c8a901b","vout":0},]'
    > '{"2MxieCJNTKiiBj6U3SjghQaatZYbM7Qn6GW":30}'

2)signer le mouvement brut

syntaxe

<hexstring> [{"txid":txid,"vout":n,"scriptPubKey":hex},...] [<privatekey1>,...]
bitcoin-cli -regtest signrawtransaction "0200000001a1c33ebb12d94f96effc70c9dd4488faf32dc15269d6a41d115ac956033cadbb0100000000ffffffff0100e1f505000000001976a9145768a869521bb01af8bdd787e6e1e65ec3d9870e88ac00000000" '''
        [
          {
            "txid":"bbad3c0356c95a111da4d66952c12df3fa8844ddc970fcef964fd912bb3ec3a1",
            "vout":1,
            "scriptPubKey":"a91401a8f0509da2396f58d3f9948a76331964524c9687",
            "redeemScript": "5221022d6f957dd76773432d2493edb5601b2d0791286e31c83483ab299672c3d44fc921022dd9c36eece99cc308986a8334c3a0bf24d7ef8b842dacebf56f2477b0f6daab21030544c9613bf27c9773e6fcd79c7786a297188a2647d346da0c3305e22d3e28da53ae"
          }
        ] 
    ''' '''
    [
    "cUdhE3NvePyjqksgJTc5BQfXGDJckPgEKfoRT72x2BRoG2uMS81H"
    ]
    '''

o/p sera un hex qui je store

rawtransaction

bitcoin-cli -regtest sendrawtransaction $signed_raw_txn
1
répondu cryptoKTM 2018-01-19 09:26:54