以下是使用Bitcoin-cli命令发送原始事务BTC的方法

Mic*_*nza 24 transactions bitcoind bitcoin-testnet

场景:

迈克尔从Pablo获得了0.05亿BTC,从Kuradang获得了另外0.01亿BTC.迈克尔还希望向贝腾发送0.02500000 BTC.迈克尔收到的每笔金额都有相应的txid和其他详细信息.让我们使用listunspent命令检查出来,然后使用命令创建一个原始事务,然后使用createrawtransaction它来 signrawtransaction发送原始事务 sendrawtransaction.

鉴于:

  • 迈克尔的比特币地址:mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe
  • Berteng的比特币地址:mxh3H416KCRoBDiweSESew5YJyAk1nxLrN
  • 发送至Berteng:0.02500000 mBTC

步骤1)

listunspent

格式:

$ bitcoin-cli listunspent [misconf=1] [max_number_confirmation=99999999] '''["<wallet_address>"]'''
Run Code Online (Sandbox Code Playgroud)

让我们检查迈克尔未使用的地址列表.

执行:

$ bitcoin-cli listunspent 1 99999999 '''["mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe"]'''
Run Code Online (Sandbox Code Playgroud)

结果:

[{
    "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
}]
Run Code Online (Sandbox Code Playgroud)

我们在这里看到的是将50和10 mBTC分配给我们的地址mkrz的结果.... 要花费此输出,我们将创建一个新事务.

第2步)

createrawtransaction

我们需要从结果中选择一些具有足够数量的块listunspent.由于我们只需要发送0.02500000 mBTC,我认为第一个块有足够的金额来进行交易.

格式:

$ bitcoin-cli createrawtransaction
    '[{
        "txid" : "<txid_of_selected_block>",
        "vout" : <vout>
    }]'
    '{"<recipient_address>": <amount_to_send>, "<sender_address>": <amount_change>}'
Run Code Online (Sandbox Code Playgroud)

要支付费用,我们会将变化输出减少0.5毫米,如下所示.

执行:

$ bitcoin-cli createrawtransaction
    '[{
        "txid" : "12b8e7ede4992f4d30f93idj3085746951d945e39f40becebd7c290af8c2e7ad",
        "vout" : 0
    }]'
    '{"mxh3H416KCRoBDiweSESew5YJyAk1nxLrN": 0.025, "mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe": 0.0245}'
Run Code Online (Sandbox Code Playgroud)

结果

0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c0000000000ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000
Run Code Online (Sandbox Code Playgroud)

createrawtransaction命令生成一个原始十六进制字符串,用于对我们提供的事务详细信息进行编码.如果要解码十六进制,只需使用decoderawtransaction命令.

第3步)

signrawtransaction

使用存储在钱包中或在呼叫中提供的私钥以序列化交易格式签署交易.

格式:

$ bitcoin-cli signrawtransaction <hex_createrawtransaction>
Run Code Online (Sandbox Code Playgroud)

执行:

$ bitcoin-cli signrawtransaction 0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c0000000000ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000
Run Code Online (Sandbox Code Playgroud)

结果:

{
   "hex" : "0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c000000006a47304402203e8a16522da80cef66bacfbc0c800c6d52c4a26d1d86a54e0a1b76d661f020c9022010397f00149f2a8fb2bc5bca52f2d7a7f87e3897a273ef54b277e4af52051a06012103c9700559f690c4a9182faa8bed88ad8a0c563777ac1d3f00fd44ea6c71dc5127ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000",
   "complete" : true
}
Run Code Online (Sandbox Code Playgroud)

现在,signrawtransaction命令返回另一个十六进制编码的原始事务.

第4步)

sendrawtransaction

RPC验证事务并将其广播到对等网络.

格式:

$ bitcoin-cli sendrawtransaction <hex_signrawtransaction>
Run Code Online (Sandbox Code Playgroud)

执行:

$ bitcoin-cli sendrawtransaction 0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c000000006a47304402203e8a16522da80cef66bacfbc0c800c6d52c4a26d1d86a54e0a1b76d661f020c9022010397f00149f2a8fb2bc5bca52f2d7a7f87e3897a273ef54b277e4af52051a06012103c9700559f690c4a9182faa8bed88ad8a0c563777ac1d3f00fd44ea6c71dc5127ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000
Run Code Online (Sandbox Code Playgroud)

结果:

ae74538baa914f3799081ba78429d5d84f36a0127438e9f721dff584ac17b346
Run Code Online (Sandbox Code Playgroud)

sendrawtransaction命令在网络上提交事务时返回事务哈希(txid).要检查事务哈希,可以转到tbtc.blockr.io

有关更多信息,请参阅此网站掌握比特币

Ser*_*kiy 4

还有另一种更简单的方法,需要一些额外的fundrawtransaction. 文档告诉我们什么输入和输出所有必填字段。但不要忘记空列表也是对象:

步骤1)

$ bitcoin-cli createrawtransaction '[]' \
    '{"mxh3H416KCRoBDiweSESew5YJyAk1nxLrN": 0.025}'
Run Code Online (Sandbox Code Playgroud)

第2步)

$ bitcoin-cli fundrawtransaction <hex_createrawtransaction> \
    '{"changeAddress": "mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe"}'
Run Code Online (Sandbox Code Playgroud)

第二步后您可以查看您的钱包产生的费用。并使用命令feeRate选项更改它fundrawtransaction。这一切都可以在签署交易并将其发送到网络之前完成。