细数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"