比特幣源碼研讀1——下載與編譯

身為一個程序猿,面對用高手編程實現(xiàn)的比特幣,不研究下源碼實在說不過去。廢話少說,直奔主題。第一節(jié)是關(guān)于比特幣源碼的下載與編譯。

本文的操作都是基于Linux環(huán)境進行的。


一 ?基本環(huán)境搭建

虛擬機:Oracle VM VirtualBox

Linux版本:ubuntu-16.04.3-desktop-amd64

當(dāng)然其他版本也行,只要能安裝成功即可。

至于安裝教程,網(wǎng)上一搜一大堆,這里就不給你做伸手黨的機會了。

直接進入第二步源碼下載


二 源碼下載

1. 軟件更新

新下載的Linux系統(tǒng),建議登錄系統(tǒng)后,先更新下軟件。

左上角search your computer, 輸入 terminal,或者快捷鍵Ctrl+Alt+T, 打開命令行終端,輸入以下命令:

sudo apt-get update

sudo apt-get upgrade

基礎(chǔ)依賴庫下載,輸入以下命令,如果怕打錯,可以直接復(fù)制粘貼。

tips: 第三句不要換行執(zhí)行。

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 libqt5core5 libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler

sudo apt-get install libqrencode-dev

sudo apt-get install libminiupnpc-dev

2. 安裝git 工具

比特幣的源碼都是放在Github網(wǎng)站上面的。需要通過git工具下載到本地。執(zhí)行下面的語句,如果報錯說明系統(tǒng)沒有該工具,需要安裝,已下載的可跳過。

sudo apt install git

3. 下載源碼

接下來就是下載源碼了,

cd ~

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


3. 安裝 berkeley-db4

? ? ? 接著安裝 berkeley-db4,注意路徑是在個人Home目錄,需要進入使用命令 “cd ~”即可。這里用的是4.8版本。

cd ~

mkdir bitcoin/db4/

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

下載完成后執(zhí)行下面語句進行安裝

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

此時出現(xiàn)了錯誤,Permission denied,沒有權(quán)限創(chuàng)建目錄/home/theusername

所以需要改用root用戶權(quán)限來執(zhí)行

sudo make install

4. 編譯比特幣源碼

cd ~/bitcoin/

./autogen.sh

./configureLDFLAGS="-L/home/theusername/bitcoin/db4/lib/" CPPFLAGS="-I/home/theusername/bitcoin/db4/include/"

make -s -j5

以下截圖是執(zhí)行前面兩個語句的結(jié)果

但是在執(zhí)行第三條語句的時候報錯了

看錯誤是libevent沒找到,看來是少了libevent庫,上網(wǎng)搜索了下,發(fā)現(xiàn)是缺了libevent-dev,安裝上即可。

sudo apt-get install libevent-dev

執(zhí)行成功

但是執(zhí)行最后一條語句的時候又報錯了

這個錯誤只是說內(nèi)部編譯器錯誤,不好定位問題,那就再執(zhí)行一遍該語句。這次錯誤就很明顯了:Virtual memoryexhausted: Cannot allocate memory. 內(nèi)存不足,看來是我分配的內(nèi)存空間不夠。退出Ubuntu后重新分配2G內(nèi)存。

啟動后進入系統(tǒng)重新執(zhí)行以下語句:

cd ~/bitcoin/

./autogen.sh

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

make

sudo make install

tips: 第四個語句"make"執(zhí)行了25分鐘左右,需要耐心點哦,這時不妨泡杯茶或沖杯咖啡喝喝,權(quán)當(dāng)中場休息。

5. 檢查結(jié)果

我們可以通過詢問系統(tǒng)下面2個可執(zhí)行文件的路徑,來確認bitcoin是否安裝成功。

$ which bitcoind

正確結(jié)果: /usr/local/bin/bitcoind

$ which bitcoin-cli

正確結(jié)果:/usr/local/bin/bitcoin-cli

如果是以上兩個都與正確結(jié)果相符合,恭喜,比特幣客戶端安裝成功!

啟動客戶端, 看到彈出的Welcome窗口,心情十分雞凍呀。。。

bitcoin-qt

tips: 只打算體驗一下,不打算同步所有數(shù)據(jù)(畢竟有153G),就不要點擊OK。

區(qū)塊鏈研習(xí)社源碼研讀班 Jacky

參考資料:

比特幣源碼的編譯及環(huán)境搭建

ubuntu下從源碼編譯比特幣(Bitcoin)客戶端

聊聊比特幣(Bitcoin)客戶端源碼編譯那些事

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 了解底層的技術(shù),能夠更好的理解區(qū)塊鏈。因此,決定跟隨菜菜子的腳步,從代碼的角度,看看比特幣的實現(xiàn)原理。 比特幣客戶...
    electroman閱讀 2,500評論 0 9
  • Ubuntu 下開始準(zhǔn)備編譯比特幣 Ubuntu 16.04.我是裝在了虛擬機上,參考菜菜子的文章來配置的 聊聊比...
    孤隨風(fēng)閱讀 6,239評論 1 2
  • 眨眼之間,親愛的,你已經(jīng)從1個小屁孩成長為能扛動飲水罐的女漢子,當(dāng)年瘋起來翻天覆地的假小子現(xiàn)在束起高高馬尾。...
    朵鹿閱讀 200評論 0 0
  • 不知不覺21天又過去了,時間總是過得這么快,仿佛昨天的才開始的打卡,今天就要結(jié)束。 打卡讓我了解到了世界這么大,優(yōu)...
    藍月雪谷閱讀 58,291評論 0 2
  • 二十六歲的他獨自生活,在一家室內(nèi)設(shè)計的外包公司工作。 二十八歲的她是一家雜志的美工,偶爾會寫些文章,養(yǎng)了一只叫...
    了己薰閱讀 343評論 0 0