Back

[**] btc - bitcoin 多个account(账户)的余额查询和转账的研究

发布时间: 2018-12-16 06:22:00

我们之前有个钱包, 里面有2个account:  "" (默认)  和 "kitty_btc_account" 

$ curl --user coiex:levelUP8 --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getbalance", "params": []}' -H 'content-type:text/plain;' http://127.0.0.1:8332/ | json_pp

{
   "error" : null,
   "result" : 0.00907136,
   "id" : "curltest"
}
(注意,下面的 params的参数的值, 现在是 ["*"], 之前是 [""])
$ curl --user coiex:levelUP8 --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getbalance", "params": ["*"]}' -H 'content-type:text/plain;' http://127.0.0.1:8332/ | json_pp

{
   "id" : "curltest",
   "result" : 0.00586136,
   "error" : null
}

$ curl --user coiex:levelUP8 --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getbalance", "params": ["kitty_btc_account"]}' -H 'content-type:text/plain;' http://127.0.0.1:8332/ | json_pp

{
   "id" : "curltest",
   "result" : 0.00321,
   "error" : null
}

接下来我们发起一笔转账:

$ curl --user coiex:levelUP8899 --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "sendtoaddress", "params": ["34shDKnPjUzLvFuVn2y1wGGfsuMNFrCHAK", 0.008]}' -H 'content-type:text/plain;' http://10.146.0.3:8332/

{"result":"1cc3ca1f06305d56f804a07f0169499dbf8b290d8a506c1ee6f646d703b86553","error":null,"id":"curltest"}

可以看到, 转账已经成功了, 在这里可以查询到: https://www.blockchain.com/btc/tx/1cc3ca1f06305d56f804a07f0169499dbf8b290d8a506c1ee6f646d703b86553

但是具体是从哪个account的address 转到目标钱包的呢? 我们再查询一下本地节点的balance: 

(分别是3个account:  1. 默认"",  2. kitty_btc_account , 3 总的account) 

# 先查询总的account 
$ curl --user coiex:levelUP8899 --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getbalance", "params": []}' -H 'content-type:text/plain;' http://10.146.0.3:8332/  -vvv

{"result":0.00114488,"error":null,"id":"curltest"}

# 再查询默认钱包
$ curl --user coiex:levelUP8899 --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getbalance", "params": [""]}' -H 'content-type:text/plain;' http://10.146.0.3:8332/

{"result":-0.00214212,"error":null,"id":"curltest"}

# 最后查询 kitty 钱包
$ curl --user coiex:levelUP8899 --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getbalance", "params": ["kitty_btc_account"]}' -H 'content-type:text/plain;' http://10.146.0.3:8332/
{"result":0.00328700,"error":null,"id":"curltest"}

转账费用大约是 0.0005 , 所以我们做个比较的表格:
总费用  0.008  :  
		total			默认			kitty
转账前		0.00907136		0.00586136		0.00321            
转账后		0.00114488		-0.00214212		0.00328700     
实际转出		0.00792648		0.00800348		-0.000077        

子钱包转出总和?     0.00800348 - 0.000077 = 0.00800271

总钱包转出总和:        0.00792648   

差额:       0.00007623    (这个是矿工费用吗?)

Back