主页 > 下载imtoken官方网站 > [区块链]比特币RAW传输

[区块链]比特币RAW传输

下载imtoken官方网站 2023-08-10 05:12:17

[区块链]比特币RAW传输

简介转移分为以下几个步骤:

首先我们需要将比特币从地址 A 转移到地址 B,

地址 A

bcrt1q7e2pdzpr50eftum29h9rtvfcj763hwq02jjlhr

地址 B

bcrt1qp9gq52muvdzdmlhdd9xtg22vz7rfd033zewz4v

PS:这里是比特币私链地址

如果发件人的地址是在这个钱包中创建的,如果没有,则必须导入到钱包中。

导入网址

./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 importaddress bcrt1q7e2pdzpr50eftum29h9rtvfcj763hwq02jjlhr "test label" true

导入私钥

./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 importprivkey            cU8Q2jGeX3GNKNa5etiC8mgEgFSeVUTRQfWE2ZCzszyqYNK4Mepy "test label" true

转账查询发送地址的UTXO

./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 listunspent 6 9999999 '["bcrt1q7e2pdzpr50eftum29h9rtvfcj763hwq02jjlhr"]'

PS:6是查询到的最近块比特币区块链地址查询,9999999是最远的块,因为比特币网络中确认的块数是6,所以查询到的块号和最新块号的距离大于6个块算作确认区块。上面的地址是发件人的地址。如果发件人的地址是在这个钱包中创建的,如果没有,则必须导入到钱包中。

返回信息

[
  {
    "txid": "cd76be7e039384750e88acfb3c3a51d9b25b51252aa3c266663a6cac642373f4",
    "vout": 0,
    "address": "bcrt1q7e2pdzpr50eftum29h9rtvfcj763hwq02jjlhr",
    "label": "",
    "scriptPubKey": "0014f654168823a3f295f36a2dca35b13897b51bb80f",
    "amount": 50.00000000,
    "confirmations": 149,
    "spendable": true,
    "solvable": true,
    "desc": "wpkh([df77b868/0'/0'/0']0366adfb9c537c67710e5f38b1e0d186daad0c020c8adaa21c259bcaa242fdb176)#clkfw4rc",
    "safe": true
  },
  ...
]

选择大于转账金额的余额,因为还要考虑矿工费。选择一个 utxo 后,使用 txid、vout 和 amount。

创建交易

./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 createrawtransaction '''[{"txid":"cd76be7e039384750e88acfb3c3a51d9b25b51252aa3c266663a6cac642373f4","vout" : 0}]''' '''[{"bcrt1qp9gq52muvdzdmlhdd9xtg22vz7rfd033zewz4v": 10.0 },{"bcrt1q7e2pdzpr50eftum29h9rtvfcj763hwq02jjlhr": 39.99999 }]'''

这里的txid和vout是上一步查询到的utxo中的txid和vout,后面分成两组地址和金额,一组是收款地址和转账金额,一组是找零地址和金额,这里有两部分金额之和为49.99999,0.00001小于上一步获得的50.000000的金额为预留矿工费.

如下返回

0200000001f4732364ac6c3a6666c2a32a25515bb2d9513a3cfbac880e758493037ebe76cd0000000000ffffffff0200ca9a3b0000000016001409500a2b7c6344ddfeed694cb4294c178696be31f0006bee00000000160014f654168823a3f295f36a2dca35b13897b51bb80f00000000

签名交易

./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 signrawtransactionwithwallet 0200000001f4732364ac6c3a6666c2a32a25515bb2d9513a3cfbac880e758493037ebe76cd0000000000ffffffff0200ca9a3b0000000016001409500a2b7c6344ddfeed694cb4294c178696be31f0006bee00000000160014f654168823a3f295f36a2dca35b13897b51bb80f00000000

signrawtransactionwithwallet 后面是最后创建的交易。

如下返回

{
  "hex": "02000000000101f4732364ac6c3a6666c2a32a25515bb2d9513a3cfbac880e758493037ebe76cd0000000000ffffffff0200ca9a3b0000000016001409500a2b7c6344ddfeed694cb4294c178696be31f0006bee00000000160014f654168823a3f295f36a2dca35b13897b51bb80f0247304402202401e626f7f00f4e2cc3e5a11f846c05cc319c48f2c76dd570cf7cd72dbd7d350220352a8e524a7cfa0e9da2e5f3a24e7d9dc554e8bc545f24d058e4009622c394ea01210366adfb9c537c67710e5f38b1e0d186daad0c020c8adaa21c259bcaa242fdb17600000000",
  "complete": true
}

此处的十六进制用于稍后发送交易。

发送交易

./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 sendrawtransaction 02000000000101f4732364ac6c3a6666c2a32a25515bb2d9513a3cfbac880e758493037ebe76cd0000000000ffffffff0200ca9a3b0000000016001409500a2b7c6344ddfeed694cb4294c178696be31f0006bee00000000160014f654168823a3f295f36a2dca35b13897b51bb80f0247304402202401e626f7f00f4e2cc3e5a11f846c05cc319c48f2c76dd570cf7cd72dbd7d350220352a8e524a7cfa0e9da2e5f3a24e7d9dc554e8bc545f24d058e4009622c394ea01210366adfb9c537c67710e5f38b1e0d186daad0c020c8adaa21c259bcaa242fdb17600000000

此处使用上一步签署交易的十六进制。

如下返回

0648acd662854e0bb6f231ccc8888207c1318e3f2b67fd2bb09f580d028c511e

作为交易的 txid 返回。

查询交易

可以查询交易信息

./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 gettransaction 0648acd662854e0bb6f231ccc8888207c1318e3f2b67fd2bb09f580d028c511e

如下返回

{
  "amount": 0.00000000,
  "fee": -0.00010000,
  "confirmations": 0,
  "trusted": true,
  "txid": "0648acd662854e0bb6f231ccc8888207c1318e3f2b67fd2bb09f580d028c511e",
  "walletconflicts": [
  ],
  "time": 1574932189,
  "timereceived": 1574932189,
  "bip125-replaceable": "no",
  "details": [
    {
      "address": "bcrt1qp9gq52muvdzdmlhdd9xtg22vz7rfd033zewz4v",
      "category": "send",
      "amount": -10.00000000,
      "label": "",
      "vout": 0,
      "fee": -0.00010000,
      "abandoned": false
    },
    {
      "address": "bcrt1q7e2pdzpr50eftum29h9rtvfcj763hwq02jjlhr",
      "category": "send",
      "amount": -39.99990000,
      "label": "",
      "vout": 1,
      "fee": -0.00010000,
      "abandoned": false
    },
    {
      "address": "bcrt1qp9gq52muvdzdmlhdd9xtg22vz7rfd033zewz4v",
      "category": "receive",
      "amount": 10.00000000,
      "label": "",
      "vout": 0
    },
    {
      "address": "bcrt1q7e2pdzpr50eftum29h9rtvfcj763hwq02jjlhr",
      "category": "receive",
      "amount": 39.99990000,
      "label": "",
      "vout": 1
    }
  ],
  "hex": "02000000000101f4732364ac6c3a6666c2a32a25515bb2d9513a3cfbac880e758493037ebe76cd0000000000ffffffff0200ca9a3b0000000016001409500a2b7c6344ddfeed694cb4294c178696be31f0006bee00000000160014f654168823a3f295f36a2dca35b13897b51bb80f0247304402202401e626f7f00f4e2cc3e5a11f846c05cc319c48f2c76dd570cf7cd72dbd7d350220352a8e524a7cfa0e9da2e5f3a24e7d9dc554e8bc545f24d058e4009622c394ea01210366adfb9c537c67710e5f38b1e0d186daad0c020c8adaa21c259bcaa242fdb17600000000"
}

这里的confirmations为0表示交易没有被矿工打包,-1表示交易失败。

gettransaction 只能查询该钱包的交易。要查询其他交易,请使用 getrawtransaction。

./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 getrawtransaction 0648acd662854e0bb6f231ccc8888207c1318e3f2b67fd2bb09f580d028c511e

需要注意的是,如果要查询不在这个钱包里的交易,也就是链上的其他交易比特币区块链地址查询,需要在启动节点开启txindex和reindex。开启方式见

如下返回

02000000000101f4732364ac6c3a6666c2a32a25515bb2d9513a3cfbac880e758493037ebe76cd0000000000ffffffff0200ca9a3b0000000016001409500a2b7c6344ddfeed694cb4294c178696be31f0006bee00000000160014f654168823a3f295f36a2dca35b13897b51bb80f0247304402202401e626f7f00f4e2cc3e5a11f846c05cc319c48f2c76dd570cf7cd72dbd7d350220352a8e524a7cfa0e9da2e5f3a24e7d9dc554e8bc545f24d058e4009622c394ea01210366adfb9c537c67710e5f38b1e0d186daad0c020c8adaa21c259bcaa242fdb17600000000

使用decoderawtransaction进行解码,得到具体的交易信息。

./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 decoderawtransaction 02000000000101f4732364ac6c3a6666c2a32a25515bb2d9513a3cfbac880e758493037ebe76cd0000000000ffffffff0200ca9a3b0000000016001409500a2b7c6344ddfeed694cb4294c178696be31f0006bee00000000160014f654168823a3f295f36a2dca35b13897b51bb80f0247304402202401e626f7f00f4e2cc3e5a11f846c05cc319c48f2c76dd570cf7cd72dbd7d350220352a8e524a7cfa0e9da2e5f3a24e7d9dc554e8bc545f24d058e4009622c394ea01210366adfb9c537c67710e5f38b1e0d186daad0c020c8adaa21c259bcaa242fdb17600000000

如下返回

{
  "txid": "0648acd662854e0bb6f231ccc8888207c1318e3f2b67fd2bb09f580d028c511e",
  "hash": "bd86e1d9357faa7a83707730120764d2d4db1d77a07dd538e9a1824fe4cb8940",
  "version": 2,
  "size": 222,
  "vsize": 141,
  "weight": 561,
  "locktime": 0,
  "vin": [
    {
      "txid": "cd76be7e039384750e88acfb3c3a51d9b25b51252aa3c266663a6cac642373f4",
      "vout": 0,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "304402202401e626f7f00f4e2cc3e5a11f846c05cc319c48f2c76dd570cf7cd72dbd7d350220352a8e524a7cfa0e9da2e5f3a24e7d9dc554e8bc545f24d058e4009622c394ea01",
        "0366adfb9c537c67710e5f38b1e0d186daad0c020c8adaa21c259bcaa242fdb176"
      ],
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 10.00000000,
      "n": 0,
      "scriptPubKey": {
        "asm": "0 09500a2b7c6344ddfeed694cb4294c178696be31",
        "hex": "001409500a2b7c6344ddfeed694cb4294c178696be31",
        "reqSigs": 1,
        "type": "witness_v0_keyhash",
        "addresses": [
          "bcrt1qp9gq52muvdzdmlhdd9xtg22vz7rfd033zewz4v"
        ]
      }
    },
    {
      "value": 39.99990000,
      "n": 1,
      "scriptPubKey": {
        "asm": "0 f654168823a3f295f36a2dca35b13897b51bb80f",
        "hex": "0014f654168823a3f295f36a2dca35b13897b51bb80f",
        "reqSigs": 1,
        "type": "witness_v0_keyhash",
        "addresses": [
          "bcrt1q7e2pdzpr50eftum29h9rtvfcj763hwq02jjlhr"
        ]
      }
    }
  ]
}