1. 程式人生 > >從零開始學習區塊鏈技術(一)--從原始碼編譯比特幣

從零開始學習區塊鏈技術(一)--從原始碼編譯比特幣

寫在開始之前,為什麼你一定要學習區塊鏈技術?

技術的變革和迭代一直在飛速發展中,作為有著15年程式開發經驗的我,常常在思考現在的我們到底改如何做,到底應該學習些什麼,才能跟上新的時代變革,保持自身的競爭力,並且能為這個世界帶來更好的改變呢?

答案是,學習新技術,成為緊跟時代發展趨勢的稀缺技術人才。而毫無疑問,比特幣區塊鏈技術是絕對不容錯過的。

當我研究了比特幣區塊鏈之後,更加確信了這一點。比特幣區塊鏈技術解決了人和人之間的信任問題,是對生產力和生產關係的一次變革,而這必將影響人類社會的發展。

想到就要做到,於是我開始深入研究了比特幣區塊鏈技術,從0開始一行行的程式碼跑起來,遇到過很多坑,花了很多時間和精力爬坑。現在我把這些凝聚時間和心血的學習資料整理成文件寫成教程,希望能夠幫助你在學習的過程中少些彎路。

準備工作

沒有親自跑一遍程式碼,不算真正的學習。

今天我們開始從零編譯比特幣原始碼。

下載比特幣原始碼

首先要做的就是從github上下載比特幣的原始碼,其中 doc 目錄為比特幣文件,src 為系統原始碼,test 為測試程式碼的目錄。具體怎麼下載,想必大家都用過 gitgithub ,就不用我細說了。

當我們下載完原始碼之後,進入 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

具體步驟

當依賴安裝完成之後,就真正開始編譯比特幣。

  1. 首先,進入比特幣根目錄。命令如下:

     cd bitcoin
  2. 然後,開始編譯比特幣原始碼。命令如下:

     ./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,如紅框所示。

  3. 強烈建議,你執行下面的命令來執行一遍單元測試:

     make check

    通常這一步是不會出錯的。

  4. 可選地,你也可以生成一個 dmg,命令如下:

     make deploy

    執行這個命令後,系統會提示你把應用放在 Application 下面。最終應用案頭在 /Applications/Bitcoin-Qt.app 下。

當比特幣編譯完成後,萬事大吉,只欠運行了。

  1. 設定下 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"

看到檔案內容如下即為設定成功。

img

當設定完 RPC 使用者及密碼之後,下面就開始輸入最最重要的命令:

./src/bitcoind -testnet     # -testnet 代表的是測試網路,如果不加這個標誌,那麼就連線到比特幣主網路。作為演示,此處連線到比特幣測試網路。

鍵入上面的命令並按下回車鍵。

比特幣執行圖

恭喜你,你的比特幣之路已經開始。

我是區小白,區塊鏈開發者,區塊鏈技術愛好者,深入研究比特幣,以太坊,EOS Dash,Rsk,Java, Nodejs,PHP,Python,C++ 現為Ulord全球社群聯盟(優得社群)核心開發者。

我希望能聚集更多區塊鏈開發者,一起學習共同進步。

敬請期待下一篇文章:如何啟動比特幣系統並加入比特幣網路 ?