关于bitcoind如何使用curl进行交互

细数bitcoind中的curl的坑

首先我声明一下执行curl的注意事项(被某些文章绕进去了 浪费很多时间)

1.不需要翻墙 完完全全不需要翻墙好吗!

2.testnet网络环境与mainnett网络环境(主网)在curl的调用上一致 除端口外

3.开启curl访问RPC后 无法使用bitcoin-cli进行RPC交互

先贴图看几个命令

通过getwalletinfo获取钱包信息

通过getbestblockhash获取哈希值 

通过哈希值获取区块的信息 

最后总结步骤及注意事项

1.开启测试网络的curl

-rpcuser指定rpc名字 -rpcpassword指定每次curl交互的密码

可以在配置文件bitcoin.conf中设定 需要的同学百度一下即可

./bitcoind -testnet -server -rpcuser=user -rpcpassword=123456 

 2.通过关键字curl进行交互

--user是你在上一步启动网络时指定的名字 这里我们改为指定名字user

jsonrpc是版本号 不需要修改

id可以修改 id的作用是返回相同id进行确认

method是命令 

params是参数这里为空

其他参数不需要动

curl --user user --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getwalletinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/

这是curl返回值 注意输入id与输出id相同  通过id确认由谁调用的命令

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

3.调用带有参数的curl

params为具体参数 注意要加"" 

测试情况下需要改动的有:user  method  params 及端口号

 curl --user user --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblock", "params": ["000000000000e2727cf1395bf45bc7c4889ebbb11510915f00d1c3338a6b9f3f"] }' -H  'content-type: text/plain;' http://127.0.0.1:18332/

至此bitcoind的curl调用实验成功完成

参考文献

https://en.bitcoin.it/wiki/API_reference_(JSON-RPC) API reference (JSON-RPC)

https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list 原始比特币客户端/ API调用列表

https://blog.csdn.net/u011583927/article/details/81234688  探索比特币源码4-JSON-RPC接口的其他调用方法

https://bitcoin.stackovernet.com/cn/q/12217 curl returns empty output when json-rpc

https://github.com/abbshr/abbshr.github.io/issues/13 Biter loggers 4:bitcoind JSON-RPC #13

http://book.8btc.com/books/6/masterbitcoin2cn/_book/ch03.html 精通比特币第二版

https://mistydew.github.io/blog/2018/06/bitcoin-rpc-command-gettxoutproof.html 比特币 RPC 命令剖析 "gettxoutproof"

猜你喜欢

转载自blog.csdn.net/weixin_42654444/article/details/83997959
今日推荐