1LSGO软件技术团队
贡献人:马燕鹏
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。
If you like the content here, the greatest helpyou can give meis forwarding, so tell your friends and encourage them to learn together.
上一文
探索比特币源码3 -- 熟悉RPC接口
中练习了使用 客户端调用 JSON-RPC 接口的方法。
本文探索 JSON-RPC 接口的其他调用方法,包括:
curl (命令行 HTTP 客户端)
其他语言的封装的 API 库(以 python 为例)
使用命令行 HTTP 客户端 curl 调用 RPC 接口
之前从未接触过 curl,所以这部分仅作简单了解和练习。
curl 是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面
如下是两个不错的资料:
curl网站开发指南 (http://www.ruanyifeng.com/blog/2011/09/curl.html)
curl命令介绍 (http://man.linuxde.net/curl)
当我们使用 获取某个具体 RPC 命令的帮助时,它会提供一个使用 curl 调用接口的示例:
按照提示,我们使用 curl 来完成一次简单的 JSON-RPC 调用:
其中 myusername 是 配置文件中所填的用户名
我在调用时,访问失败了,应该是科学上网的原因,我没有再深入研究。
现在让我们来进入下面更重要的部分,使用其他编程语言的封装库来访问 JSON-RPC 接口。
使用 python-bitcoinlib 库调用 RPC 接口
我们平时可能会产生一些需求,需要我们批量的调用 JSON-RPC 来对比特币区块链的数据进行一些分析。
这时候,使用编程的方式调用封装好的 RPC 接口是相当方便的。
大多数语言都提供了对于比特币核心 JSON-RPC 接口的封装,这里尝试了 精通比特币第三章 (http://book.8btc.com/books/6/masterbitcoin2cn/_book/ch03.html) 介绍的 python-bitcoinlib 库
安装python-bitcoinlib
首先安装依赖库:
然后安装python-bitcoinlib库
调用练习
我们先创建一个 rpc 调用练习文件 rpc_example.py:
运行python脚本
表明我的比特币节点目前同步了384204个区块
由于我的全节点区块链同步出了问题,这里仅做一个简单的测试,后面争取在这个小节补充更多的示例。
从当前来看,我觉得对编程爱好者最友好的就是区块链领域了,因为这个领域中所有的代码都是开源的,代码决定一切!哪怕项目方牛皮吹得天花乱坠,也不可能忽悠到我们,只有代码最可靠!为了更好的了解区块链这个领域,目前 LSGO软件技术团队 的一个小组,正在看BTC的源码,这是他们提交的学习成果!如果你对区块链领域感兴趣,可以加入进来,大家一起学习!
经过8年多的发展,LSGO软件技术团队在地理信息系统、数据统计分析、计算机视觉领域积累了丰富的研发经验,也建立了人才培养的完备体系。
欢迎对算法设计与实现感兴趣的同学加入,与我们共同成长进步。
本微信公众平台长期系统化提供有关机器学习、软件研发、教育及学习方法、数学建模的知识,并将以上知识转化为实践。拒绝知识碎片化、耐心打磨技能、解决实际问题是我们的宗旨和追求。
领取专属 10元无门槛券
私享最新 技术干货