從零開始學習區塊鏈技術(一)--從原始碼編譯比特幣
寫在開始之前,為什麼你一定要學習區塊鏈技術?
技術的變革和迭代一直在飛速發展中,作為有著15年程式開發經驗的我,常常在思考現在的我們到底改如何做,到底應該學習些什麼,才能跟上新的時代變革,保持自身的競爭力,並且能為這個世界帶來更好的改變呢?
答案是,學習新技術,成為緊跟時代發展趨勢的稀缺技術人才。而毫無疑問,比特幣區塊鏈技術是絕對不容錯過的。
當我研究了比特幣區塊鏈之後,更加確信了這一點。比特幣區塊鏈技術解決了人和人之間的信任問題,是對生產力和生產關係的一次變革,而這必將影響人類社會的發展。
想到就要做到,於是我開始深入研究了比特幣區塊鏈技術,從0開始一行行的程式碼跑起來,遇到過很多坑,花了很多時間和精力爬坑。現在我把這些凝聚時間和心血的學習資料整理成文件寫成教程,希望能夠幫助你在學習的過程中少些彎路。
準備工作
沒有親自跑一遍程式碼,不算真正的學習。
今天我們開始從零編譯比特幣原始碼。
下載比特幣原始碼
首先要做的就是從github上下載比特幣的原始碼,其中 doc
目錄為比特幣文件,src
為系統原始碼,test
為測試程式碼的目錄。具體怎麼下載,想必大家都用過 git
和 github
,就不用我細說了。
當我們下載完原始碼之後,進入 doc
子目錄,找到 build-xxx.md 文件,xxx 代表了不同的系統,當前支援的系統有 freebas、netbsd、openbsd、osx、unix、windows 等,根據你的系統參考不同的安裝文件。比如,我的系統為 Mac,對應的就是 build-osx.md,開啟這個文件會看到構建說明和一些備註。
命令列工具準備
在 Mac 系統下,必備的工具就是 xcode
命令列工具,我們通過輸入如下命令進行安裝:
xcode-select --install
當彈出窗口出現時,選擇 安裝
。
安裝依賴
當命令列工具安裝之後,接下來我們要做的就是安裝依賴,在些特別推薦使用Homebrew,這是 Mac 下面安裝應用的必備神器。
當 Homebrew 安裝完成之後,就開始安裝編譯比特幣的各種依賴了,命令如下:
brew install automake berkeley-db4 libtool boost miniupnpc openssl pkg-config protobuf python qt libevent qrencode
如果你需要生成 dmg
可執行檔案,那麼還需要 RSVG,安裝命令如下:
brew install librsvg
具體步驟
當依賴安裝完成之後,就真正開始編譯比特幣。
首先,進入比特幣根目錄。命令如下:
cd bitcoin
然後,開始編譯比特幣原始碼。命令如下:
./autogen.sh ./configure make
如果你不需要圖形介面,那麼在執行
./configure
時需要加入--without-gui
標誌,即./configure --without-gui
。另外,在 Mac 系統下,為了除錯比特幣程式碼,需要把configure
檔案中的所有-g -O2
替換為-g
,這是因為 Mac 下的 LLDB 存在 bug,導致某些變數不可用。當你看到下面的圖片時,恭喜你編譯成功了。
比特幣編譯成功時,會在 src 目錄下面生成4個可執行的命令:bitcoind、bitcoin-cli、bitcoin-tx、qt/bitcoin-qt,如紅框所示。
強烈建議,你執行下面的命令來執行一遍單元測試:
make check
通常這一步是不會出錯的。
可選地,你也可以生成一個 dmg,命令如下:
make deploy
執行這個命令後,系統會提示你把應用放在 Application 下面。最終應用案頭在
/Applications/Bitcoin-Qt.app
下。
當比特幣編譯完成後,萬事大吉,只欠運行了。
- 設定下 RPC使用者及密碼
但是在執行比特幣核心客戶端之前,強烈建議你設定下 RPC使用者及密碼,這樣你才可使用系統提供的所有 RPC 命令。
具體命令如下:
echo -e "rpcuser=bitcoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
chmod 600 "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
執行完上面兩個命令之後,我們來確認是否設定成功。
首先執行:
ls -l "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
來確認檔案的模式為 -rw-r--r—
,如圖下圖:
[圖片上傳失敗…(image-1dd9eb-1535530998782)]
然後再執行vi "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
看到檔案內容如下即為設定成功。
當設定完 RPC 使用者及密碼之後,下面就開始輸入最最重要的命令:
./src/bitcoind -testnet # -testnet 代表的是測試網路,如果不加這個標誌,那麼就連線到比特幣主網路。作為演示,此處連線到比特幣測試網路。
鍵入上面的命令並按下回車鍵。
恭喜你,你的比特幣之路已經開始。
我是區小白,區塊鏈開發者,區塊鏈技術愛好者,深入研究比特幣,以太坊,EOS Dash,Rsk,Java, Nodejs,PHP,Python,C++ 現為Ulord全球社群聯盟(優得社群)核心開發者。
我希望能聚集更多區塊鏈開發者,一起學習共同進步。
敬請期待下一篇文章:如何啟動比特幣系統並加入比特幣網路 ?