最近想研究下比特币源码,首先得安装下编译环境,我首先按源码中build-osx.md文档中在mac中设置了下环境。过程一点也不顺利。好不容易把该下载的文件下载完了。并且安装后。在编译源码过程中。出现了各种错误。
后来通过 菜菜子 的文章 http://www.jianshu.com/p/8b4ebd0e4b3d?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-friends 开始在linux平台中进行设置.
步骤一:
结果在 sudo apt-get install build-essential libtoolautotools-dev autoconf pkg-config libssl-dev 这条命令出了错,错误信息是"无法定位软件包 libtoolautotools"。这种问题对于linux小白的我来说,还是很郁闷的。但是通过网上找些问题 发现了其中了问题 。原来菜菜子把 libtool autotools 写连了,分开即可。
步骤二:
按上面步骤安装完了之后。开始下载源码。发现没安装git..安装git的命令行是:
sudo apt install git.
步骤三:
然后下载比特币源码:git clone https://github.com/bitcoin/bitcoin.git 。我装源码安装在了文档目录下.
步骤四:
开始安装berkeley-db(伯克利 数据库):Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤。
在bitcoin目录下建立文件夹db4:
cd bitcoin
mkdir db4
然后下载berkeley-db安装包:
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
我安装这个版本的berkeley挺顺利的。如果不顺利,可以尝试下载
wget 'http://download.oracle.com/berkeley-db/db-6.2.32.NC.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=/home/theusername/bitcoin/db4/
make install
我在 make install 的时候出现了错误信息: mkdir:无法创建目录"home/theusername":权限不够 makefile:933:recipe for target 'install_setup' failed。这就郁闷了。百度查了一下。结果也不能解决这个问题。最后还是问了下“菜菜子”老师。其实非常简单。这个“权限不够”,是要用管理员权限。改为:
sudo make install .
完美解决,心里有点小激动。接下来就要装比特币的客户端了。首先进入bitcoin目录下。
cd ..
cd ..
cd ..
./autogen.sh
./configure LDFLAGS="-L/home/theusername/bitcoin/db4/lib/" CPPFLAGS="-I/home/theusername/bitcoin/db4/include/"
结果这个命令又出问题了。报出的错误信息是:configure:error:openssl not found
没找到openssl,但我是有安装的。百度查了下。说是要安装开发版。接着执行下面的命令:
sudo apt-get install libsll-dev
安装成功后接着执行上面的配置命令,又报出了一个 “libevent not found"的错误。真是不顺利呀。接着安装这个库吧:sudo apt-get install libevent-dev。安装成功后,接着执行配置命令:./configure LDFLAGS="-L/home/theusername/bitcoin/db4/lib/" CPPFLAGS="-I/home/theusername/bitcoin/db4/include/" 这次终于顺利执行完了。眼泪都快出来了。平复下心情。接着执行下面的命令。
make
sudo make install
终于顺利完成。眼泪哗哗的。
步骤五:
那怎样证明安装成功了呢。我们通过以下两个命令行进行验证:
$ which bitcoind
/usr/local/bin/bitcoind
$ which bitcoin-cli
/usr/local/bin/bitcoin-cli
结果正常输出了。终于完成了进入比特币源码世界的第一步了。
区块链研习社比特币源码研读班,black