区块链学习(二)—Centos7下的比特币源码编译
系统环境
代码获取
git clone https://github.com/bitcoin/bitcoin.git
编译过程
1,安装依赖库
yum install -y boost-devel qt-devel protobuf-devel qrencode-devel libevent-devel libtool openssl-devel libdb-devel
2,编译
1,./autogen.sh //生成configure文件
2,./configure -with-gui --with-incompatible-bdb //configure命令带-with-gui说明我需要带界面的客户端。如果不需要可以用-without-gui。
3,make
4,make install# optional
3,报错
checking for Berkeley DB C++ headers... no
configure: error: libdb_cxx headers missing,Bitcoin Core requires this library for wallet functionality (--disable-wallet to disable wallet functionality)
看了下文档,提示需要libdb5.1。查查问题的时候都是关于bitcoin的,提到的都是要使用BerkeleyDb4.8NC。CentOS没有libdb,只能手动安装BerkeleyDb5.1。在doc/build-unix.md文档里有详细的说明,按说明操作安装即可。我上面是安装过libdb-devel的,所以我选择了和libdb-devel同样的版本:
yumdownloader --source libdb
rpm -ivh libdb-5.3.21-21.el7_4.src.rpm // 安装完之后会在~/rpmbuild/Specs目录下面生成libdb.spec文件
rpmbuild -bp libdb.spec // 解压并打patches文件
cd db-5.3.21/build_unix/
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=/usr/local
make install
编译结果
编译完成后在/usr/local/bin目录下会生成7个可执行文件
bench_bitcoin:根据https://github.com/bitcoin/bitcoin/issues/829 解释,作用是编译系统更新,也就是检查系统使用的一些加密算法是否有新的更新。 bitcoin-cli:是bitcoind的一个功能完备的RPC客户端,包括查询区块,交易信息等等,具体将在相应章节介绍。 bitcoind:是比特币运行的核心程序俗称bitcoin core。 bitcoin-qt:比特币钱包。 bitcoin-tx:比特币交易处理模块,支持交易的查询和创建。 test_bitcoin:运行各个模块的测试代码。 test_bitcoin-qt:运行钱包的模块测试代码。