bitconin-cli 私有链搭建及jsonrpc-api

精通比特币第三章,讲了如何编译等

最后搭建成功之后执行:bitcoind -regtest -daemon后台运行私有链,不加-regtest默认公有链,包括之后对私有链操作,加上-regtest即可

如果为了以后方便,修改配置文件也可以,具体位置~/.bitcoin/bitcoin.conf,我的配置:

# This config should be placed in following path:
# ~/.bitcoin/bitcoin.conf

# [rpc]
# Accept command line and JSON-RPC commands.
server=1
txindex=1

# 设定默认为私有链
regtest=1
#gen=1 表示节点可以挖矿
gen=1

#交易费
fallbackfee=0.0002

 

钱包

每次重启服务要loadwallet

bitcoin-cli loadwallet testwallet

 

创建一个钱包

bitcoin-cli -regtest createwallet testwallet_1

 

显示钱包列表

bitcoin-cli -regtest listwallets

 

查询指定钱包信息

-rpcwallet=xxx表示在某个钱包上具体操作

bitcoin-cli -regtest -rpcwallet=testwallet_1 getwalletinfo

给钱包创建一个地址

bitcoin-cli  -regtest -rpcwallet=wallet_money getnewaddress wallet_money

 

wallet_money :bcrt1q4nxt5sp8vk0t8hwaem0lkua0jax9u9638c0aar

testwallet_2:bcrt1q4pcr3y523qjhxuxzua0w8ekhhz3t4cueuck2rc

testwallet_3:bcrt1qyhf50pzvvn824dqd7lgjsr0jdylx0jy3ganrwy

                     bcrt1q3hy7f6we0fvdlcuj4gytkfk6vxxga3sh6g2zxv

testwallet_4:bcrt1qj8fjv7mcy9wweszn369hq542r6r60a78lmc3q2

查询指定地址详细信息

bitcoin-cli -regtest -rpcwallet=wallet_money getaddressinfo bcrt1q4nxt5sp8vk0t8hwaem0lkua0jax9u9638c0aar

查看钱包交易信息

要指定钱包查看

bitcoin-cli -regtest -rpcwallet=testwallet_3 gettransaction 4775ad41657cb73cf4fe42495ce546c4752fa3cf79a686722d47b8f97cd79c0a

查看钱包金额

由于前100个区块没有奖励,查看testwallet_3的金额

bitcoin-cli -regtest -rpcwallet=testwallet_3 getbalance

查看钱包未确认收益总和

bitcoin-cli -regtest -rpcwallet=wallet_money getunconfirmedbalance

 

查询某个地址收到的币

bitcoin-cli getreceivedbyaddress 地址

以下文交易实例中钱包2的地址为例

 

钱包2的某个具体地址收到了500

区块

创建区块

需要指定某个钱包,相当于指定一个节点,这个节点作为矿工要添加收益

1、测试链前100个区块没有btc奖励

2、区块奖励需要100个区块确认,第101个区块产生才会发出前第101个区块的奖励

由testwallet_3创建一个区块

bitcoin-cli -regtest -rpcwallet=testwallet_3 -generate 1

 

Blocks:74d058e00a0cead4bdd5014dc0e4f5232eee7e5c463543fbe7c684b977eaafce

查看区块高度

bitcoin-cli -regtest getblockcount

返回2(因为中间进行了其他操作,没记录上)

 

再查看区块链信息

bitcoin-cli -regtest getblockchaininfo

返回这个区块链的一系列信息,bestblockhash表示最高的块的hash,就是刚才创建的区块

也可以通过bitcoin-cli -regtest getbestblockhash查看最新区块hash

 

查看区块信息

bitcoin-cli -regtest getblock

5711455ed00eede7560300114e1f728b8780ae0241095ea2feceffca8b196a28

 

创建区块,奖励给指定地址

bitcoin-cli -regtest -rpcwallet=wallet_money generatetoaddress 1

bcrt1q4nxt5sp8vk0t8hwaem0lkua0jax9u9638c0aar

 

 

。。。。。。。。。

中间随便创建了多个区块后,忘了是哪些钱包创建的了,最后两个钱包的钱就这样了

 

最后以一个交易实例运用这些命令,并看看与理论是否一样

交易实例

这个例子中涉及到三方,支付者,收款者,矿工

钱包2为空,钱包3 1700个币,

 

目前钱包2为确认收益总和0

 

矿工为wallet_money:bcrt1q4nxt5sp8vk0t8hwaem0lkua0jax9u9638c0aar

testwallet_2:bcrt1q4pcr3y523qjhxuxzua0w8ekhhz3t4cueuck2rc

testwallet_3:bcrt1qyhf50pzvvn824dqd7lgjsr0jdylx0jy3ganrwy

                     bcrt1q3hy7f6we0fvdlcuj4gytkfk6vxxga3sh6g2zxv

现在转500个去钱包2

bitcoin-cli -regtest -rpcwallet=testwallet_3 sendtoaddress bcrt1q4pcr3y523qjhxuxzua0w8ekhhz3t4cueuck2rc 500

返回交易hash:582bfcc664cd35782fd7f7ac14d4bc56d88c1f1c22a2c69224a9a0545ee4006d

 

此时查看钱包2未确认收益

 

钱包2余额

 

需要生成6个区块才能确认

由矿工wallet_money生成,也就是挖矿

 

再看钱包2的金额,钱收到

 

查看刚才的交易582bfcc664cd35782fd7f7ac14d4bc56d88c1f1c22a2c69224a9a0545ee4006d

着重关注下面画框的内容,确认数,接收地址,金额这些都吻合

 

查看这个区块

bitcoin-cli getblock

7d358c3c40490c88132c3f1714c4d6b0cffaed5318cb59b9203913ad0206a688

 

查看coinbase

根据地址可以发现是刚才的wallet_money的钱包,金额为25.000163,后面的是手续费,再检查转账者钱包3的金额来验证是不是手续费

钱包3余额

可见支付了手续费

目前就用了下这些简单的,如果后续涉及到签名utxo的继续更新,用来自己随时翻阅

完整的rpcjson-api参考:https://www.jianshu.com/p/2209bd03b960

或者精通比特币第三章.....但是都要自己去敲,因为有些命令好像我的主机上无法识别,比如getaddressesbyaccount

posted @ 2022-11-22 17:17  励志成为蔡徐坤  阅读(448)  评论(0编辑  收藏  举报