今天给你们介绍一个学习比特币的有利工具——Bitcoin-explorer,简称BX,中文直译过来是「比特币浏览器」,这个名字很容易让人产生误解,它其实和咱们平时上网使用的浏览器、以及以Web站点形式存在的区块浏览器(https://blockexplorer.com/)仍是有很大区别的,BX的定义是程序员
The Bitcoin Command Line Tool
BX is a general purpose Bitcoin command line utility that supports Linux, OSX and Windows. The application can be built an distributed as a single file binary with no run time dependencies apart from the operating system.算法
它是一个独立的、跨平台的比特币命令行工具docker
这是什么意思?定义得确实比较抽象,由于它没有解释这个工具是用来作什么的。从我对这个工具的了解来看,它实现了钱包的各类功能,包括密钥算法、交易签名、帐号余额、交易流水等。如下是用BX产生比特币地址的命令,是否是很是简单。浏览器
下面的密钥流程图来自BX的文档,是否是以为很强大。网络
如今咱们都知道BX是什么了,但这对咱们学习比特币又何帮助呢?比特币学习算是一种研究,作一门研究,使用工具和不使用工具仍是有很大差别的,这就比如咱们读书时,上完物理、化学课,还要作相应的实验,不然光看书本中的知识,是很难内化的。app
若是把整个比特币系统拆成不一样的模块,核心功能可能包括如下几个:工具
其中第1点和第2点都是由比特币网络实现的——俗称「挖矿」,这不是BX所擅长的,咱们不在这里讨论;而第3点运行在用户的钱包中,但钱包是不会告诉你全部这些功能的实现细节的,相反,隐藏这些细节才是它的目的。因而咱们就须要求助于其余路径,而今天咱们介绍的BX,就是这样的方案,它能够帮助咱们深刻学习比特币中,帐户管理相关的细节。学习
既然利用工具学习比特币颇有效,但有那么多的开源工具,咱们为何要采用这一个呢?在我看来,选择这个工具备3个缘由区块链
bitcoin-cli
,这个咱们之后会提到,而搭建一个比特币全节点的工做量已经很大了,这会提高学习门槛,下降学习热情。在我看来,没有依赖是一件很是美好的事情。因此,这个工具很是好,这也是为何我会在年前,把它推荐到个人小密圈的缘由。ui
在使用这个工具的过程当中,我也遇到了一些问题,在这里写出来,但愿对你从此「作实验」有帮助。主要问题有两个
这个项目大概会产生2个多GB的程序和库文件,编译一次大概须要1-2个小时,因此它也不是那么「即用即走」的,但编译这个工做是一次性的,因此若是能作到我编译了以后,你不用再编译就行了。
另外,当你的操做系统中安装了多个密码学区块链项目时,可能会产生动态连接库的冲突,例如:两个项目都使用了椭圆曲线算法,后安装的项目所带的椭圆曲线代码库覆盖了前一个项目的,致使前一个项目不可用。我就是这样的受害者,在安装完EOS.IO以后,BX就没法使用了,这又会浪费我2个小时的编译时间。
为了节省无数个两个小时,我把这个工具作成了Docker镜像,Docker是一个相似虚拟机的沙盒容器,经过Docker包装的程序,能够运行在任何操做系统中,且它和其余程序彻底隔离。既无需二次编译,也不用担忧它和别的项目产生冲突,一石二鸟的解决了上述我提到的两个问题。
你有两种方法使用使用Docker化的BX,在此以前,你须要先在你的计算机里安装Docker(http://t.cn/RE4144o),而后选择下面两项中的任意一项,我推荐是使用第1种方法
上述两种方法要达到的目的是同样的,即在本地生成一个BX的Docker镜像。若是你下载镜像很慢的话,能够看一下我之间的文章《从ELKa谈一下docker化的思路》,其中谈到了如何提高在国内使用Docker的效率。
运行下面的命令,你即可以进入Docker化的BX的环境,若是你本地没有镜像的话,该命令会先下载镜像,再运行Docker容器,也即上面说的第1步
以后你就能够自如的使用BX了,下图输出比特币地址的BX程序就运行在Docker容器中,至此,have fun!
本文介绍了什么是Bitcoin Explorer这个工具?它是一个具有钱包的基本功能的命令行工具。咱们为何要使用它?这对咱们在学习比特币的过程当中,可以更好的帮助咱们内化其中的知识,同时咱们了解到了如何才能更高效的使用这个工具。
若是你认为这篇文章颇有用,能够分享给其余有须要的同窗,若是你有任何疑问,请随时跟我联系。
做者:程序员在深圳 连接:https://www.jianshu.com/p/ebdfff04feab 来源:简书 简书著做权归做者全部,任何形式的转载都请联系做者得到受权并注明出处。