比特币bitcoin-cli转账与交易的api使用总结

比特币bitcoin-cli转账与交易的api使用总结

    序(唠叨)
接触比特币半个月里,查看了很多教程,一直被转账不能指定转出账户所困扰,昨天在官方API说明中看到有sendfrom \ sendmany才顿悟(捶胸顿足那种)。 所以写下此篇博客,顺便把几种转账交易的api 使用记录总结一下,其中有一些现象也许没理解清楚,欢迎留言指出。
    开发环境
客户端A window10 + BitcoinCore(testnet,64bit) 0.16.2 下载地址
客户端B ubuntu16.04 + BitcoinCore 0.16.2 安装教程
    转账与交易的api
1 sendtoaddress方法
1.1命令格式:sendtoaddress “address” amount ( “comment” “comment_to” subtractfeefromamount replaceable conf_target “estimate_mode”)
1.2例子(以下例子都是在客户端B):
bitcoin-cli sendtoaddress “1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd” 0.1 “donation” “seans outpost”
返回交易id或者错误信息。
1.3个人理解:很多教程都提到了sendtoaddress,字面意思是对一个地址转账,但是没有设置转出账号或者转出地址的参数, 个人认为是以整个钱包的余额为转出的。
2 使用utxo 创建交易方法
需要使用到3个api,分别是 createrawtransaction(创建交易),signrawtransaction (签名交易),sendrawtransaction(广播交易),
2.1命令格式:
createrawtransaction [{“txid”:”id”,”vout”:n},…] {“address”:amount,”data”:”hex”,…} ( locktime ) ( replaceable )
signrawtransaction “hexstring” ( [{“txid”:”id”,”vout”:n,”scriptPubKey”:”hex”,”redeemScript”:”hex”},…] [“privatekey1”,…] sighashtype )
sendrawtransaction “hexstring” ( allowhighfees )
2.2例子:参见这里
2.3个人理解:需要先列出utxo,如果列出太多项可以在listunspent 后面加地址筛选utxo, 例如
bitcoin-cli listunspent 6 9999999 “[\”1PGFqEzfmQch1gKD3ra4k18PNj3tTUUSqg\”,\”1LtvqCaApEdUGFkpKMM4MstjcaL4dKg8SP\”]”
把1PGF…和1Ltvq…地址的6到9999999确认数的utxo列出来。
然后选择utxo的输出作为 createrawtransaction这次输入,随后填写转账的地址和金额,最后在签名和广播。
但是在regtest环境中确认数已经达到6,我遇到转账的地址收到金额后,listunspent还能列出作为本次输入的uxto还能的问题,个人认为这次的utxo应该不再出现,
打个比喻:我有一张面额10元的支票,我要购买一个5元的物品,我应该创建两张面额5元支票,一张给商家,一张作为找零给我自己,同时把原来10元的支票撕毁。回到例子中作为输入的utxo就是10元的支票,不明白为什么还能列出来。
3 sendfrom
官方介绍提示下个版本要删除了
这里写图片描述
3.1命令格式 sendfrom “fromaccount” “toaddress” amount ( minconf “comment” “comment_to” )
3.2 例子:bitcoin-cli sendfrom “tabby” “1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd” 0.01 6 “donation” “seans outpost”
3.3个人理解:就如用上面的例子,从账户tabby转给地址1M72…..0.01 比特币,确认数6,标题捐赠给肖恩前哨。 除了不能转个多个地址外,对我来说没啥缺点了。
4 sendmany
在sendfrom的基础上增加了多个转账地址
4.1命令格式:sendmany “fromaccount” {“address”:amount,…} ( minconf “comment” [“address”,…] replaceable conf_target “estimate_mode”)
4.2 例子: bitcoin-cli sendmany “tabby” “{\”1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\”:0.01,\”1353tsE8YMTA4EuV7dgUXGjNFf9KpVvKHz\”:0.02}” 6
4.3 个人理解: 上面的例子是从账户tabby转给地址1D1Z…..0.01 比特币,给地址1353t…..转0.02比特币,确认数6。
对此api很满意,但是看官方介绍,账户参数要删除了 :(
这里写图片描述
展开阅读全文

没有更多推荐了,返回首页