1. 程式人生 > >btc原始碼編譯和環境搭建

btc原始碼編譯和環境搭建

這裡寫圖片描述

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

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

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

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

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

作業系統

安裝依賴

用命令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下載,雖然是慢了一點,如果通過網站打包下載,很容易下載不全

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下執行所有安裝配置操作。

參考資料: