btc源碼編譯和環境搭建

這裏寫圖片描述

區塊鏈是最近幾年火纔起來的概念,最早大家知道的都只有比特幣(bitcoin),在很長一段時間,比特幣幾乎就是區塊鏈的代名詞。大多數人關注的當然都是比特幣的價格,而作爲技術出身的吃瓜羣衆,聽到的時候第一反應是:

我Cow,這麼牛,怎麼做到的!

想要看看比特幣實現方式的衝動是怎麼強烈,幸好比特幣是開源的,那麼基於github上的比特幣源碼,我們就能快速搭建起自己的比特幣服務和錢包。

你說搭好了可以幹什麼?
- 可以挖礦?個人基本也挖不出來了
- 可以做個山寨幣?還不如以太坊上ERC-20發,幣只要5分鐘。

好吧,以上都沒什麼價值。比特幣作爲區塊鏈項目的始祖,雖然以現在的眼光看,有這樣那樣的不足,但它展現的反而是區塊鏈技術中最核心的部分,是學習區塊鏈技術最好的工具。下面就開始吧。

操作系統

我用的 Ubuntu 18.04
https://www.ubuntu.com/download/desktop

安裝依賴

用命令apt-get install安裝,如果沒有找到該命令則安裝apt-get(自行搜索,安裝後sudo apt-get update更新包),如果顯示權限不夠則加用sudo apt-get install命令

sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install libevent-dev
sudo apt-get install libdb-dev
sudo apt-get install libdb++-dev
sudo apt-get install libdb5.3++-dev
sudo apt-get install libboost-dev
sudo apt-get install libboost-all-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libssl-dev
sudo apt-get install build-essential
sudo apt-get install libminiupnpc-dev
sudo apt-get install autoconf
sudo apt-get install libprotobuf-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libqt4-dev
sudo apt install libcanberra-gtk-module libcanberra-gtk3-module

我這兒列出的庫比網上找到的資料上列舉的都要多一些,可能也是因爲我是全新的Ubuntu安裝,並且也想在x-window下圖形化界面運行。預先多裝一點也比中途再來安裝要好一些,現在也不缺少這點硬盤空間。

編譯運行

1、下載源碼
第一步當然是先將github上的源碼下載下來,如果沒有git,就先安裝git

sudo apt-get install git-core

推薦git clone下載,雖然是慢了一點,如果通過網站打包下載,很容易下載不全

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

2 、配置編譯

cd bitcoin

進入目錄,會看到整個源碼的各種文件
這裏寫圖片描述

其中有可執行文件autogen.sh和配置文件configure

./autogen.sh

如果報錯則加sudo

./configure

這是在你的機器中配置與代碼運行相關的依賴並檢查必要的環境。

初始化步驟
這裏稍微解釋一下,bitcoin代碼運行機制是多線程的,父進程創建子進程,父進程運行過程中返回後子進程繼續進行運行過程的初始化,包括下面12個步驟:

Step 1: setup 設置
Step 2: parameter interactions 參數互動(主要是一些參數設置)
Step 3: parameter-to-internal-flags 參數傳入內部標記(bool型變量)
Step 4: application initialization: dir lock, daemonize, pidfile, debug log
應用初始化:鎖定目錄,後臺運行,調試信息
Step 5: verify wallet database integrity 確認錢包數據庫的完整性
Step 6: network initialization 網絡初始化
Step 7: load block chain 加載塊鏈
Step 8: load wallet 加載錢包
Step 9: import blocks 導入塊數據
Step 10: load peers 導入peers
Step 11: start node 開始節點(挖礦程序在這裏)
Step 12: finished 完成

檢查配置信息以及網絡情況是否符合加載塊鏈的條件,執行完.configure之後需要看看是否有相應的錯誤信息或者WARNING,一般warning是可以允許的如果對於bitcoin最後的運行而言,但是我們還是最好逐一排除警告。

這裏最容易碰到的就是db兼容的問題。我遇到的錯誤信息:
這裏寫圖片描述
從網上查到的資料來看,直接加上 編譯參數就可以了

./configure –with-incompatible-bdb

這裏寫圖片描述

配置完成,沒有錯誤,下面就可以執行編譯了。

make

執行成功沒有報錯,就繼續執行安裝

sudo make install

注意:這兒需要有管理權限,所以加上sudo

安裝完成!

運行系統

執行命令:

bitcoin-qt

注意:使用qt是要在x-window下運行。

這裏寫圖片描述

看下這裏的提示,加載區塊數據,需要203G,點擊ok就可以執行區塊的同步了。
這裏寫圖片描述

好吧,按我現在的網速需要9年才能同步完所有數據…
203G,聽起來數據量很大,但是想一想,從2009年到現在10年的所有比特幣數據節點、網絡、交易數據,就會感覺這數據好小。

經驗: 儘量都在root下執行所有安裝配置操作。

參考資料:

BitCoin比特幣 wiki
https://en.bitcoin.it/wiki/Main_Page
Bitcoin比特幣 源代碼文檔
https://dev.visucore.com/bitcoin/doxygen/files.html
Bitcoin比特幣 中國
http://www.btcchina.org

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章