比特币(Bitcoin)客户端源码编译流程

本文安装编译的环境:

  • 阿里云 Ubuntu 16.04 64位 镜像
  • 比特币核心版本 0.16.0
  • 内存2G以上
  • 磁盘空间150G以上
  • 安装目录 /root

 安装步骤:

1、安装依赖

sudo apt-get update
 
sudo apt-get upgrade
 
sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev
 
sudo apt-get install libboost-all-dev
 
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
 
sudo apt-get install libqrencode-dev
 
sudo apt-get install libminiupnpc-dev
 
sudo apt-get install libsll-dev

2、安装git

sudo apt-get install git

3、下载比特币源码

git clone https://github.com/bitcoin/bitcoin.git

4、安装berkeley-db(伯克利 数据库)

Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤。
在bitcoin目录下建立文件夹db4:

cd bitcoin

mkdir db4

wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz' 

tar -xzvf db-4.8.30.NC.tar.gz

cd db-4.8.30.NC/build_unix/

../dist/configure --enable-cxx --disable-shared --with-pic --prefix=/root/bitcoin/db4/

make install

5、安装比特币客户端

cd /root/bitcoin

./autogen.sh

./configure LDFLAGS="-L/root/bitcoin/db4/lib/" CPPFLAGS="-I/root/bitcoin/db4/include/"

make

sudo make install

6、测试安装结果

根据《精通比特币》第3章介绍的,我们可以通过询问系统下面2个可执行文件的路径,来确认bitcoin是否安装成功。

root@iZ2zef7i92a07a9z7ydxdcZ:~/bitcoin# which bitcoind
/usr/local/bin/bitcoind

root@iZ2zef7i92a07a9z7ydxdcZ:~/bitcoin# which bitcoin-cli
/usr/local/bin/bitcoin-cli

总结:

安装依赖不是一件很容易的事情,其中可能会遇到不少问题,需要根据报错的内容去寻找解决方案。这是均益根据网上的内容,在当时环境下整理出的可行方法,希望对你有用。
比特币的依赖对照表

Dependency Version used Minimum required CVEs Shared Bundled Qt library
Berkeley DB 4.8.30 4.8.x No
Boost 1.64.0 1.47.0 No
Clang 3.3+ (C++11 support)
D-Bus 1.10.18 No Yes
Expat 2.2.5 No Yes
fontconfig 2.12.1 No Yes
FreeType 2.7.1 No
GCC 4.8+
HarfBuzz-NG
libevent 2.1.8-stable 2.0.22 No
libjpeg Yes
libpng Yes
MiniUPnPc 2.0.20180203 No
OpenSSL 1.0.1k Yes
PCRE Yes
protobuf 2.6.3 No
Python (tests) 3.4
qrencode 3.4.4 No
Qt 5.7.1 4.7+ No
XCB Yes (Linux only)
xkbcommon Yes (Linux only)
ZeroMQ 4.2.3 No
zlib 1.2.11 No

 

 

参考链接

https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md

https://github.com/bitcoin/bitcoin/blob/master/doc/dependencies.md

https://www.jianshu.com/p/0d3a32a0a973

Leave a Reply

Your email address will not be published. Required fields are marked *