說明:本編譯過程的ubuntu版本為ubuntu16.04LTS,源碼下載來自Github網(wǎng)站的開源地址:https://github.com/bitcoin/bitcoin,版本為最近版本v0.15.1。下面的教程將默認(rèn)已下載好源碼??梢詤⒖肌毒ū忍貛胖形陌妗稰31-34。
第一步:環(huán)境裝備
通過下面的的命令安裝編譯bitcoind所需要的依賴庫:
sudo apt-get install build-essential libtool autotools-dev autoconf automake libssl-dev libboost-all-dev libdb-dev libdb++-dev pkg-config
(下圖出現(xiàn)了我在執(zhí)行命令時(shí)出現(xiàn)的問題,如果沒有遇到可忽視次部分)

解決方案:
強(qiáng)制解鎖--命令:
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
說明:libevent-devgit-core庫會(huì)提示“無法定位軟件包”,要單獨(dú)安裝libevent。
libevent安裝過程:
1)進(jìn)入官網(wǎng)http://libevent.org/
2)下載libevent安裝包:libevent-X.X.XX-stable.tar.gz,(最新版就行),然后解壓。
3)切換到解壓后的 libevent 主目錄:cd libevent-X.X.XX-stable
4)依次執(zhí)行:
sudo ./configure -prefix=/usr (或 sudo ./configure --program-prefix=/usr)?
sudo? make?
sudo? make install?
? 注意:
a)執(zhí)行 make install 時(shí)需要 root 權(quán)限。
b)libevent會(huì)安裝到 /usr/lib 或 /usr/local/lib 下
5)測(cè)試libevent是否安裝成功:
ls -al /usr/lib | grep libevent(或 ls -al /usr/local/lib | grep libevent)
出現(xiàn)類似下圖結(jié)果則表示安裝成功:
6)如果libevent的安裝目錄為/usr/local/lib下,則還需要建立 libevent-X.X.so.X 到 /usr/lib 的軟連接,這樣其他程序運(yùn)行時(shí)才能找到libevent庫:
ln -s /usr/local/lib/libevent-X.X.so.X? /usr/lib/libevent-X.X.so.X
注意:要把命令中的X換成對(duì)應(yīng)數(shù)字。比如本教程的完整命令為:
ln -s /usr/local/lib/libevent-2.1.so.6.0.2 /usr/lib/libevent-2.1.so.6.0.2
安裝成功后的壓縮文件和解壓文件可以刪除。
第二步:編譯bitcoin
1)解壓下載的源碼,并終端進(jìn)入解壓后的文件夾中;
2)編譯源碼所需要的庫配置:
./autogen.sh
3)生成makefile文件:
./configure --without-gui --with-incompatible-bdb
若禁用錢包界面功能,僅提供比特幣網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)現(xiàn)功能,可以使用以下命令:
./configure --without-gui? --disable-wallet
當(dāng)出現(xiàn)類似下面界面說明makefile文件生成成功。
此時(shí)在源碼的src/config/ 文件夾下會(huì)有如下圖所示的文件:
其中圈出來的bitcoin-config.h文件在bitcoin源碼解析中常用到,是個(gè)重要參考文件。
4)利用make進(jìn)行編譯:
sudo make
如果在執(zhí)行命令時(shí)出現(xiàn)如下圖所示的問題,則用添加虛擬內(nèi)存的方法解決。(如果沒有此問題可跳過此部分)

內(nèi)存過低的錯(cuò)誤
問題分析:在網(wǎng)上查詢?cè)?,發(fā)現(xiàn)是由于是在虛擬機(jī)中,我只分配了1G的內(nèi)存,導(dǎo)致內(nèi)存太少。
解決辦法:在網(wǎng)上找一些教程,添加虛擬內(nèi)存,最終解決這個(gè)問題。方法如下:
①創(chuàng)建SWAP文件(我的/HOME比較大,所以就放在HOME下了),命令如下:
mkdir swap
cd swap
sudo?dd?if=/dev/zero?of=swapfile?bs=1024?count=4066544
備注:count為swap文件的大小,我在這里設(shè)置成4G的大小,可以根據(jù)自己需要設(shè)置不同大小。
②把生成的文件轉(zhuǎn)換成SWAP文件:
sudo mkswap swapfile
③激活swap文件(可以用 free -M 先查看現(xiàn)有swap的大下,完成后再查看激活新的大?。?/p>
sudo swapon swapfile
④修改/etc/fstab,實(shí)現(xiàn)自動(dòng)掛載:
sudo gedit /etc/fstab
在文件中后面加入:
/home/username/swap/swapfile ? swap ? ? swap ? defaults ?0 ?0
到此這個(gè)內(nèi)存過低提醒沒有出現(xiàn)過了!然后重新make就好了。
make過程是很慢的,此時(shí)可以有機(jī)會(huì)放松一會(huì)兒。
編譯好的bitcoind、bitcoin-tx和bitcoin-cli這些可執(zhí)行文件在src目錄下。
5)(可選擇不操作此步)安裝編譯好的二進(jìn)制文件,命令如下:
sudo make install
好了,到這兒編譯就基本結(jié)束了,還可以用查詢命令來確認(rèn)bitcoin是否安裝成功。
6)檢查bitcoin是否安裝成功:
which bitcoind
會(huì)出現(xiàn):/usr/local/bin/bitcoind
which bitcoin-cli
會(huì)出現(xiàn):/usr/local/bin/bitcoin-cli
則表示bitcoin安裝成功。