当前位置: 代码迷 >> 综合 >> bitcoin 交易初识
  详细解决方案

bitcoin 交易初识

热度:52   发布时间:2024-02-10 03:47:40.0

bitcoind: 挖矿节点(服务器)

bitcoin-cli:客户端,通过rpc命令调用 bitcoind功能 (命令不熟的话记得 -help 功能多用)

本地测试链第一次交易(win):

1:启动本地区块链:bitcoind.exe -regtest

2:  生成一个钱包地址(用来接收即将挖出的币):bitcoin-cli.exe  -regtest getnewaddress  wystan(随便取个名字),   得到地址 bcrt1qc9xnws43p3mfqayddejslk472vcfkp328fl44j

3: 生成500币(精通比特币书上的generate方法被弃用了):bitcoin-cli.exe -regtest generatetoaddress 500  bcrt1qc9xnws43p3mfqayddejslk472vcfkp328fl44j(上一步产生的地址)

4:生成另外一个钱包地址用来接收交易:bitcoin-cli.exe  -regtest getnewaddress  alika ->  bcrt1qqf7war6d9y9qff9vcf655ywcnjagaefh56eegv

5:创建交易步骤:

①:首先查看 bcrt1qc9xnws43p3mfqayddejslk472vcfkp328fl44j 钱包的币的 txid:  bitcoin.exe -regtest  listunspent , 在返回的里面随意选取一个txid: 1be178afc8054ff08cb9d77ca835e13515a36896d5944de2d15a9ddba39deeff (我选的这个里面有50个币)

②:创建交易 bitcoin-cli.exe -regtest createrawtransaction "[{\"txid\":\"1be178afc8054ff08cb9d77ca835e13515a36896d5944de2d15a9ddba39deeff\",\"vout\":0}]" "[{\"bcrt1qqf7war6d9y9qff9vcf655ywcnjagaefh56eegv\":10.0},{\"bcrt1qc9xnws43p3mfqayddejslk472vcfkp328fl44j\":39.9999}]" ,(ps:这里特别注意 输出的币加起来一定不能小于 输入txid里面 的币 太少,10 + 39.9999 < 50 这里至少一点点,缺省的算交易费,如果交易费高了(1个也不行),后续的这个交易是不能广播的,会提示absurdly-high-fee 错误)> 0200000001ffee9da3db9d5ad1e24d94d59668a31535e135a87cd7b98cf04f05c8af78e11b0000000000ffffffff0200ca9a3b00000000160014027cee8f4d290a04a4acc2754a11d89cba8ee537f0006bee00000000160014c14d3742b10c7690748d6e650fdabe53309b062a00000000

6: 签名交易步骤:

①: 首先获取 输入钱包的私钥:bitcoin-cli.exe dumpprivkey bcrt1qc9xnws43p3mfqayddejslk472vcfkp328fl44j -> cR3aJwfQ2bg3vRVwTifkwuZmRpz267djwEASXXdxfHFVZwMhMSce

②: 签名交易 bitcoin-cli.exe -regtest signrawtransactionwithkey 0200000001ffee9da3db9d5ad1e24d94d59668a31535e135a87cd7b98cf04f05c8af78e11b0000000000ffffffff0200ca9a3b00000000160014027cee8f4d290a04a4acc2754a11d89cba8ee537f0006bee00000000160014c14d3742b10c7690748d6e650fdabe53309b062a00000000  "[\"cR3aJwfQ2bg3vRVwTifkwuZmRpz267djwEASXXdxfHFVZwMhMSce\"]"

->02000000000101ffee9da3db9d5ad1e24d94d59668a31535e135a87cd7b98cf04f05c8af78e11b0000000000ffffffff0200ca9a3b00000000160014027cee8f4d290a04a4acc2754a11d89cba8ee537f0006bee00000000160014c14d3742b10c7690748d6e650fdabe53309b062a024730440220437807c4868bc784e77e49d091078d133b7c8dd436c1a31a927ba0ca252585b702203007c163117ab80ec3c614f8466969314d41b2c2c68a020e21665dc78d9c5db1012102430f4841771cd0605bca2283e998cfeb86100d0d6edeef795e4f8e81a451f95200000000

7:广播交易:

bitcoin-cli.exe -regtest sendrawtransaction 02000000000101ffee9da3db9d5ad1e24d94d59668a31535e135a87cd7b98cf04f05c8af78e11b0000000000ffffffff0200ca9a3b00000000160014027cee8f4d290a04a4acc2754a11d89cba8ee537f0006bee00000000160014c14d3742b10c7690748d6e650fdabe53309b062a024730440220437807c4868bc784e77e49d091078d133b7c8dd436c1a31a927ba0ca252585b702203007c163117ab80ec3c614f8466969314d41b2c2c68a020e21665dc78d9c5db1012102430f4841771cd0605bca2283e998cfeb86100d0d6edeef795e4f8e81a451f95200000000
-> ec8172fd0a35ab758f26bee3f4ead6eb2b9a8a47574305150f7bdee7f0b3eca2(这步成功后通过bitcoin-cli.exe -regtest getrawmempool 这个命令就可以查询到待写入区块的交易了)

8:将交易写入区块步骤:

①:创建一个新地址bitcoin-cli.exe  -regtest getnewaddress  ak -> bcrt1qp2cxnejk65sa78z8kdfj30jrc3wx753k2xpvpn(当然也可以不创建就复用前面两个地址也可以)

②:生成一个新块:bitcoin-cli.exe -regtest generatetoaddress 1  bcrt1qp2cxnejk65sa78z8kdfj30jrc3wx753k2xpvpn(当此块成功生成的时候就会把上面广播了待写入的交易写入区块了)

9:查询最后结果:bitcoin.exe -regtest  listunspent 这个返回里面就能看到 wystan 39.9 ,alika 10 余额信息了

 

 

 

  相关解决方案