区块链-比特币浏览器(bitcoin-explorer)

今天给你们介绍一个学习比特币的有利工具——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. 发行货币
  3. 帐户(钱包)管理
    3.1 私钥管理
    3.2 发送和接收交易
    3.3 帐户余额及流水

其中第1点和第2点都是由比特币网络实现的——俗称「挖矿」,这不是BX所擅长的,咱们不在这里讨论;而第3点运行在用户的钱包中,但钱包是不会告诉你全部这些功能的实现细节的,相反,隐藏这些细节才是它的目的。因而咱们就须要求助于其余路径,而今天咱们介绍的BX,就是这样的方案,它能够帮助咱们深刻学习比特币中,帐户管理相关的细节。学习

既然利用工具学习比特币颇有效,但有那么多的开源工具,咱们为何要采用这一个呢?在我看来,选择这个工具备3个缘由区块链

  1. BX的文档(http://t.cn/RE4H5TM)很详细
    开源项目都有个通病,就是文档少,或文档更新不及时;但这个项目的文档很是详细,高质量的文档下降了探索成本
  2. 功能比较全
    BX几乎包含了钱包应该具有的全部功能,它是跨平台的,能够在Windows、MacOS等主流平台上运行;
  3. 没有依赖
    不少工具都须要依赖比特币全节点,例如bitcoin-cli,这个咱们之后会提到,而搭建一个比特币全节点的工做量已经很大了,这会提高学习门槛,下降学习热情。在我看来,没有依赖是一件很是美好的事情。

因此,这个工具很是好,这也是为何我会在年前,把它推荐到个人小密圈的缘由。ui

 

如何更方便的使用这个工具

在使用这个工具的过程当中,我也遇到了一些问题,在这里写出来,但愿对你从此「作实验」有帮助。主要问题有两个

  1. 项目比较大,编译的时间长
  2. 使用的代码库和其余项目产生冲突

这个项目大概会产生2个多GB的程序和库文件,编译一次大概须要1-2个小时,因此它也不是那么「即用即走」的,但编译这个工做是一次性的,因此若是能作到我编译了以后,你不用再编译就行了。

另外,当你的操做系统中安装了多个密码学区块链项目时,可能会产生动态连接库的冲突,例如:两个项目都使用了椭圆曲线算法,后安装的项目所带的椭圆曲线代码库覆盖了前一个项目的,致使前一个项目不可用。我就是这样的受害者,在安装完EOS.IO以后,BX就没法使用了,这又会浪费我2个小时的编译时间。

为了节省无数个两个小时,我把这个工具作成了Docker镜像,Docker是一个相似虚拟机的沙盒容器,经过Docker包装的程序,能够运行在任何操做系统中,且它和其余程序彻底隔离。既无需二次编译,也不用担忧它和别的项目产生冲突,一石二鸟的解决了上述我提到的两个问题。

你有两种方法使用使用Docker化的BX,在此以前,你须要先在你的计算机里安装Docker(http://t.cn/RE4144o),而后选择下面两项中的任意一项,我推荐是使用第1种方法

  1. 直接从DockerHub上把这个镜像(http://t.cn/RE4g17F)下载下来,先别着急动手,后面还会继续介绍
  2. 下载我写好的Dockerfile(http://t.cn/RE439qu),在你的本机构建镜像

上述两种方法要达到的目的是同样的,即在本地生成一个BX的Docker镜像。若是你下载镜像很慢的话,能够看一下我之间的文章《从ELKa谈一下docker化的思路》,其中谈到了如何提高在国内使用Docker的效率。

运行下面的命令,你即可以进入Docker化的BX的环境,若是你本地没有镜像的话,该命令会先下载镜像,再运行Docker容器,也即上面说的第1步

以后你就能够自如的使用BX了,下图输出比特币地址的BX程序就运行在Docker容器中,至此,have fun!

总结

本文介绍了什么是Bitcoin Explorer这个工具?它是一个具有钱包的基本功能的命令行工具。咱们为何要使用它?这对咱们在学习比特币的过程当中,可以更好的帮助咱们内化其中的知识,同时咱们了解到了如何才能更高效的使用这个工具。

若是你认为这篇文章颇有用,能够分享给其余有须要的同窗,若是你有任何疑问,请随时跟我联系。

做者:程序员在深圳 连接:https://www.jianshu.com/p/ebdfff04feab 来源:简书 简书著做权归做者全部,任何形式的转载都请联系做者得到受权并注明出处。