比特幣原始碼研讀1——下載與編譯
身為一個程式猿,面對用高手程式設計實現的比特幣,不研究下原始碼實在說不過去。廢話少說,直奔主題。第一節是關於比特幣原始碼的下載與編譯。
本文的操作都是基於Linux環境進行的。
一 基本環境搭建
虛擬機器:Oracle VM VirtualBox
Linux版本:ubuntu-16.04.3-desktop-amd64
當然其他版本也行,只要能安裝成功即可。
至於安裝教程,網上一搜一大堆,這裡就不給你做伸手黨的機會了。
直接進入第二步原始碼下載
二 原始碼下載
1. 軟體更新
新下載的Linux系統,建議登入系統後,先更新下軟體。
左上角search your computer, 輸入 terminal,或者快捷鍵Ctrl+Alt+T, 開啟命令列終端,輸入以下命令:
sudo apt-get update
sudo apt-get upgrade
基礎依賴庫下載,輸入以下命令,如果怕打錯,可以直接複製貼上。
tips: 第三句不要換行執行。
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網站上面的。需要通過git工具下載到本地。執行下面的語句,如果報錯說明系統沒有該工具,需要安裝,已下載的可跳過。
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'
下載完成後執行下面語句進行安裝
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
此時出現了錯誤,Permission denied,沒有許可權建立目錄/home/theusername
所以需要改用root使用者許可權來執行
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
以下截圖是執行前面兩個語句的結果
但是在執行第三條語句的時候報錯了
看錯誤是libevent沒找到,看來是少了libevent庫,上網搜尋了下,發現是缺了libevent-dev,安裝上即可。
sudo apt-get install libevent-dev
執行成功
但是執行最後一條語句的時候又報錯了
這個錯誤只是說內部編譯器錯誤,不好定位問題,那就再執行一遍該語句。這次錯誤就很明顯了:Virtual memoryexhausted: Cannot allocate memory. 記憶體不足,看來是我分配的記憶體空間不夠。退出Ubuntu後重新分配2G記憶體。
啟動後進入系統重新執行以下語句:
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"執行了25分鐘左右,需要耐心點哦,這時不妨泡杯茶或衝杯咖啡喝喝,權當中場休息。
5. 檢查結果
我們可以通過詢問系統下面2個可執行檔案的路徑,來確認bitcoin是否安裝成功。
$ which bitcoind
正確結果: /usr/local/bin/bitcoind
$ which bitcoin-cli
正確結果:/usr/local/bin/bitcoin-cli
如果是以上兩個都與正確結果相符合,恭喜,比特幣客戶端安裝成功!
啟動客戶端, 看到彈出的Welcome視窗,心情十分雞凍呀。。。
bitcoin-qt
tips: 只打算體驗一下,不打算同步所有資料(畢竟有153G),就不要點選OK。
區塊鏈研習社原始碼研讀班 Jacky
參考資料:
相關文章
- 比特幣原始碼研讀(0)bitcoin本地編譯與使用比特幣原始碼編譯
- 原始碼的下載與編譯原始碼編譯
- 比特幣原始碼研讀(1)bitcoin原始碼結構比特幣原始碼
- Ubuntu下Android原始碼以及核心下載與編譯UbuntuAndroid原始碼編譯
- 比特幣原始碼研讀之一比特幣原始碼
- HarmonyOS單模組編譯與原始碼導讀編譯原始碼
- Android 11 原始碼下載+編譯教程Android原始碼編譯
- 初始化編譯環境 下載原始碼編譯原始碼
- Vue 原始碼解讀(8)—— 編譯器 之 解析(下)Vue原始碼編譯
- 設定編譯比特幣原始碼-linux編譯比特幣原始碼Linux
- Android原始碼閱讀-編譯8.0原始碼Android原始碼編譯
- Elasticsearch6.1.2原始碼下載和編譯構建Elasticsearch原始碼編譯
- ubuntu 16.04 LTS 核心原始碼下載編譯流程Ubuntu原始碼編譯
- Kubernetes原始碼學習之一:下載和編譯原始碼原始碼編譯
- Android 原始碼的下載和編譯環境的安裝及編譯Android原始碼編譯
- Ceph原始碼編譯與打包原始碼編譯
- 比特幣原始碼研讀(3)資料結構-交易Transaction比特幣原始碼資料結構
- 比特幣原始碼研讀(2)資料結構-區塊Block比特幣原始碼資料結構BloC
- 比特幣原始碼研讀(4)資料結構-交易池TransactionPool比特幣原始碼資料結構
- Harmony OS 開發避坑指南——原始碼下載和編譯原始碼編譯
- 反編譯APK資原始檔與原始碼編譯APK原始碼
- 區塊鏈鼻祖比特幣之13:比特幣原始碼編譯詳解區塊鏈比特幣原始碼編譯
- Android學習系列(38)--Android原始碼下載和編譯Android原始碼編譯
- Centos下Sphinx的下載與編譯安裝CentOS編譯
- Ubuntu 16.04下 Mysql5.7.17原始碼編譯與安裝UbuntuMySql原始碼編譯
- Spring 6 原始碼編譯和高效閱讀原始碼技巧分享Spring原始碼編譯
- 2018年後 OpenWrt原始碼下載及韌體編譯原始碼編譯
- 學習Hibernate原始碼一_下載hibernate原始碼並編譯為eclipse專案原始碼編譯Eclipse
- Linux環境下原始碼編譯方式安裝MySQL5.1(1)Linux原始碼編譯MySql
- 04 原始碼編譯安裝與介紹原始碼編譯
- Flutter Engine 編譯 —— 我是這樣讀原始碼的Flutter編譯原始碼
- Vue 原始碼解讀(9)—— 編譯器 之 優化Vue原始碼編譯優化
- Vue 原始碼解讀(8)—— 編譯器 之 解析(上)Vue原始碼編譯
- Centos7下原始碼編譯安裝apacheCentOS原始碼編譯Apache
- CentOS 6.7下MySQL 5.6原始碼編譯安裝CentOSMySql原始碼編譯
- CentOS 6.7下原始碼編譯安裝MySQL 5.7.5CentOS原始碼編譯MySql
- linux下基於官方原始碼編譯ipoptLinux原始碼編譯
- 深入剖析Vue原始碼 - 例項掛載,編譯流程Vue原始碼編譯