Ubuntu搭建Bitcoin源码阅读环境

这是区块链系列的开篇文章,随后会陆续写一些blog。
看了两本区块链的书,有了一些初步的了解,最近打算实践下,就想着先弄个读代码的环境,本以为挺简单但也折腾了好久,所以就打算备注下。

两本区块链相关的书分别是区块链开发指南和精通比特币,随后会写些读后感

虽然网上也有很多相关的文章但大都比较笼统或者记录的比较含糊,导致像我这样的新手得花大量的时间去摸索去踩坑。下面就开始流水账了。。。

build bitcoin

  • 从github上clone源码,git clone https://github.com/bitcoin/bitcoin.git
  • clone到本地的代码是最新的代码也就是master分支上的,前人一般都推荐阅读0.12版本的代码,所以在build代码之前要切换下tag,命令git checkout v0.12.0

选择tag为v0.12.0进行build之后,在qt文件中并不出会出现bitcoin-qt这个文件,随后切换到branch为remotes/origin/0.12的版本进行build成功出现,所以这里应该切换的代码版本是git checkout remotes/origin/0.12

  • 按照代码目录doc文件中build相关的文件(build-*.md)中介绍的步骤进行build

我用的系统是ubuntu-14.04-desktop-amd64.iso

按照build-unix.md中的步骤去build代码,build之前需要安装一些依赖的软件,如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
# 如果上面安装boost的命令没有成功,则使用下面的命令进行安装
sudo apt-get install libboost-all-dev
# 下面三条命令是安装BerkeleyDB,wallet需要用到
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
sudo apt-get install libminiupnpc-dev
sudo apt-get install libzmq3-dev
#我安装QT的大版本是4,所以执行下面的命令(QT后面会进行介绍)
sudo apt-get install libqt4-dev libprotobuf-dev protobuf-compiler
sudo apt-get install libqrencode-dev

OK,依赖的lib基本安装结束了,可以执行build命令了

1
2
3
4
5
# 在bitcoin源码根目录下
./autogen.sh
./configure # autogen.sh 执行成功之后会生成此文件
make # configure 执行成功之后,会乘车MakeFile文件,供make使用
make install

上述命令不出错就说明build成功了,可以运行代码了。

build成功之后会出现6个可执行文件,分别为bitcoin-cli、bitcoind、bitcoin-tx、bitcoin-qt和两个test文件test_bitcoin、test_bitcoin-qt

此时你就想如果有个IDE就好了,我就可以Debug代码了。那我们就安装个吧,IDE一般用QT Creator,因为比特币钱包是用这个开发的。

IDE踩坑

关于QT Creator比较坑,完全是一脸的懵逼呀,只知道这个是跨平台的,Linux下开发c++用这个,还可以用来开发界面。一开始安装了个4.6版本的,将bitcoin导入后就不知道要干啥了,于是就想着新建个c++的demo项目熟悉下这个IDE吧,当我在创建c++项目的时候就真的懵逼了,完全不知道怎么回事,具体就不在这丢人了。

懵逼就只好各种google了,看到一篇文章说QT Creator要结合QT来使用,原来QT和QT Creator不是一个东西,我一直以为QT是QT Creator的简称。。。。

下载了QT 4.8.1 qt-everywhere-opensource-src-4.8.1.tar.gz,不过在Linux下是源码包,不是安装包,得需要进行编译安装。

解压进入目录之后执行

1
2
3
./configure
make # 次过程较长
make install

安装成功之后需要配置环境变量

1
2
PATH=/usr/local/Trolltech/Qt-%VERSION%/bin:$PATH
export PATH

QT准备就绪之后再次打开QT Creator还是不知道怎么创建c++程序,不知道怎么运行,又是一通google,一些文章中的IDE和我的界面有所不同,C++的教程也比较少。

搜了很多文章虽然没有明确的教程单对QT Creator有了更新的认识,就只能使出杀手锏–换IDE的版本,从新下载了个2.8的版本,再次打开IDE,瞬间感觉春天来了,2.8.1的界面是这样的

C++ Demo

新建项目和大多IDE步骤类似,点击 File -> New File or Project,然后出现如下页面:

安装图中的选项进行选择就ok,接下来进行第二步

选择项目名称和存放的目录,继续Next

这里不能使用默认生成的目录,会有问题,需要将目录改成常规目录名,如下图:

继续Next,这里选下版本管理工具,随性来就好

点击Finish,就可以进入项目界面,查看编辑新建的项目了:

IDE默认会生成一个Hello World的文件,点击运行看下效果

QT Creator运行Bitcoin

将bitcoin导入IDE并运行bitcoin钱包。
点击 File -> New File or Project,选择Import project中的Import Existing Project,如下图:

点击Choose,选择源码所在目录,我的目录信息如下:

继续Next,默认Next就好,界面如图:

还有一步Summary,主要选下版本管理工具,点击Finish就导入成功了。

导入成功之后,首先运行个bitcoin-qt验证下,
点击IDE左侧的Project按钮,在Desktop选项中点击run标签,如下图:

配好之后点击运行就会出现钱包页面,如图:

附加

有人比较悲催的话,并没有顺利执行成功,可能Kits有问题,Kits是在编辑文件目录中选择的Desktop,我的Desktop的配置如图:

最后祝大家六一快乐。。。。

您的肯定,是我装逼的最大的动力!