区块链系统探索之路:比特币核心的编译和探索

前几节我们研究了椭圆曲线,有限域等比特币和区块链所依赖的底层算法。问题在于这些算法不是独立存在,而是作为模块嵌入到整个区块链的体系之中。因此不了解区块链的体系组成或应用场景,那么我们就很难理解这些算法衍生出来的概念或者基于他们的作用,所以本节我们把区块链最原始的模态,也就是比特币核心编译和运行起来,先获得初步感性体验,然后在后面的章节中,我们能更好的明白椭圆曲线,有限域,如何组成钱包地址,为何数据在区块链系统中传输还需要各种奇奇怪怪的数据压缩等问题。

首先我们使用ubuntu系统,然后通过git clone https://github.com/bitcoin/bitcoin.git 获取比特币内核代码,注意我们需要使用v0.21.0版本,因为更早以前的版本会因为莫名其妙的原因难以编译通过,使用下面代码进行分支切换:
git checkout v0.21.0

首先我们需要安装一些编译依赖库,使用如下命令进行安装:
sudo apt install libevent-dev libboost-system-dev libboost-filesystem-dev libboost-test-dev libboost-thread-dev

sudo apt install libdb-dev libdb+±dev

sudo apt install libminiupnpc-dev

sudo apt install libzmq3-dev

sudo apt install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools

sudo apt install libqrencode-dev

代码下载后我们进入目录bitcoin,由于比特币内核需要依赖伯克利db4因此我们需要预先安装,我们所下载的代码就包含了对应的安装脚步,进入下载代码的根目录bitcoin,然后执行如下命令:
$ ./contrib/install_db4.sh `pwd`
改命令把db4的依赖库就安装在当前目录。上面代码运行完成后,它会输出如下提示:

 export BDB_PREFIX='/home/ubuntu/bitcoin/db4'
 ./configure BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include"

这是在设置环境变量,使得比特币内核在编译时知道怎么获取db4代码库所在位置,因此我们也分别执行上面两行代码对应的命令:
export BDB_PREFIX=‘/home/ubuntu/bitcoin/db4’
./configure BDB_LIBS=“-LBDBPREFIX/lib−ldbcxx−4.8"BDBCFLAGS="−I{BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-IBDBPREFIX/libldb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值