作为一名很早就知道BitCoin的一名程序员实在很惭愧,从13年了解了Bitcoin,也买了些Bitcoin,到现在都没有去下载过Bitcoin的源码来学习。今年下定决心要在这上面花费一些时间,不懂的东西不投,虽然大家都说Bitcoin是个好东西,区块链会改变世界,但是我们业界有一名话叫:
Talk is cheap. Show me the code.
想要查看代码,第一步就是要搭建环境,话不多说,看下文。
01 准备环境:
- 环境: 至少2核4G内存(别问我是怎么知道的)
- 硬盘20G
- 操作系统:Ubuntu16.04 Desktop
我用的是VM虚拟机安装的Ubuntu 16.04
安装所依赖的库:
sudo apt-get update
sudo apt-get install build-essential libtool autotools-dev autoconf automake libssl-dev libboost-all-dev libdb-dev libdb++-dev pkg-config libevent-dev git-core
02 下载源代码
Bitcore的源码目前在github上.
clone https://github.com/bitcoin/bitcoin
cd bitcoin
Bitcore 的核心是Bitcoin Core, 基于这个Core,Bitcoin有两个实现,一个是Bitcoin-qt, 一个是Bitcoind, 其中Bitcoind 是没有界面GUI,而Bitcoin-qt 是有界面的实现。
下面进入核心的编译环节。
03 编译
首先编译没有界面的Bitcoind:
./autogen.sh
./configure --without-gui --with-incompatible-bdb
make
make 可能时间比较久,用上面的配置大概花了差不多20分钟
成功后在Src目录下面生成三个可执行文件:
- bitcoind
- bitcoin-tx
- bitcoin-cli
在Bitcoind里面包括了所有的Bitcoin核心的功能,只有生成了这三个文件,就可以开始玩Bitcoin了。
我们可以通过bitcoin-cli或者RPC协议来调用bitcoind里面的功能。
下面我来看如何生成有界面的Gui,即Bitcoin-qt.
首先要安装依赖库:
sudo apt-get install libqt4-dev pkg-config libprotobuf-dev protobuf-compiler
编译:
./autogen.sh
./configure -with-gui --with-incompatible-bdb
make
编译成功后会有src/qt目录下面生成 bitcoin-qt, 界面如下:
基于此,我们已经成功编译出来了Bitcoin 钱包了,只要把里面的参数进行修改,我们完全可以发布一个新的币种了,这也是我后面要研究的。
如果想要生成Windows 环境的钱包,可以参考官方文档。