1. 程式人生 > >比特幣的編譯、配置和執行 | 區塊鏈技術入門系列迴歸

比特幣的編譯、配置和執行 | 區塊鏈技術入門系列迴歸

通讀這篇文章,你便可以把比特幣在你的機器上執行起來了;因為比特幣是一個開源專案,所以任何人都可以使用這部分程式碼,或提交修改程式碼。
在這裡插入圖片描述
參與到其中的人自組織的形成了比特幣社群,到目前為止,該社群一直都在不斷壯大——從2009年的中本聰1個人發展到2018年的500多個志願者,其中還有很大一部分是全職。
在這裡插入圖片描述
目前比特幣核心(bitcoin core)是所有區塊鏈開發者的權威參考,從題圖的架構圖可以看到,其中實現了錢包、交易、區塊驗證引擎、p2p網路和區塊鏈等核心模組,除此之外,為了不斷進化,比特幣社群還會對標準進行提案,例如BIP-39、BIP-32等標準(Bitcoin Improvement Proposal),目前的開發者更多的是參照的BIP標準進行開發。
下面我們一步步的從程式碼著手,最終把比特幣執行在自己的電腦上。
編譯
比特幣的程式碼存放在github上,首先將它下載到本地,這裡假設你已經會使用git
$ git clone

https://github.com/bitcoin/bitcoin
選擇一個特定的版本,避免執行一個正在開發的版本
在這裡插入圖片描述
安裝文件
切換完版本後,我們需要檢視安裝文件,安裝文件在doc目錄下,不同的作業系統對應一個單獨的文件
Linux - doc/build-unix.md:Linux環境下的安裝文件
Macos - doc/build-osx.md:Macos環境下的安裝文件
Windows - build-windows.md:Windows環境下的安裝文件
安裝
筆者是Mac環境,所以這裡只涉及到Mac上的安裝,其他環境大同小異
安裝前,你需要安裝一些依賴庫,這裡假設你已經安裝好Homebrew
在這裡插入圖片描述
接著執行原始碼安裝的老三樣
在這裡插入圖片描述

以上操作中有任何錯誤,請自行閱讀安裝文件
說明
誰會執行比特幣核心程式呢?大體上包括:
比特幣軟體的開發者,需要呼叫API
開發應用,這些應用的功能是檢查比特幣的交易,例如blockchain.info這樣的網站
純粹的支援,使比特幣網路更為健壯,即服務更多的使用者,處理更多的交易
你不想通過第三方來驗證自己的交易
像我們一樣,用它來學習
配置
bitcoind是一個後臺執行的程式,所以配置項要麼寫在配置檔案中(配置檔案預設為~/.bitcoin/bitcoin.conf),要麼通過命令列引數進行配置,可以通過bitcoind -h來檢視,因為很多,這裡先介紹幾個重要的配置:
alertnotify:通過命令或指令碼,給使用者傳送警告,通常是email,該配置項寫在配置檔案中的格式如下,
在這裡插入圖片描述

conf:指定配置檔案路徑,該選項只能通過命令列設定
在這裡插入圖片描述
datadir:存放資料的路徑,注意指定的目錄需要具備足夠的儲存空間(建議500GB以上),該配置寫在配置檔案中的格式如下:
在這裡插入圖片描述
prune:刪除舊的blocks,為了減少儲存空間的使用;單位為MB,可以寫在配置檔案中
在這裡插入圖片描述
txindex:預設情況下,比特幣核心只建立與使用者錢包相關的交易索引,如果需要維護全部交易的索引,需要設定該選項。注意:如果一開始沒有開啟這個選項,則需要重啟bitcoind並加上-reindex選項重建索引
在這裡插入圖片描述
maxconnections:可接受的最大連線數,減少連線數可以減少頻寬的消耗
在這裡插入圖片描述
maxmempool:限制交易記憶體池的使用,單位為MB,可以有效的控制記憶體資源
在這裡插入圖片描述
maxreceivebuffer/maxsendbuffer:限制每連線的buffer,單位為KB
在這裡插入圖片描述
minrelaytxfee:設定允許傳輸的最小交易費用,可以減少交易記憶體池的使用
在這裡插入圖片描述
基本上通過這些配置,你就可以很好的控制你的比特幣核心了,例如下面這個配置就可以作為一個比特幣應用的API後端
在這裡插入圖片描述
對初學的同學來說,肯定是希望看到比特幣執行時的日誌,通過以下命令來完成
在這裡插入圖片描述
相反,如果想讓它成為守護程序執行,需要指定-daemon選項
在這裡插入圖片描述
最後,你還可以監控比特幣的執行時狀態,執行以下命令
在這裡插入圖片描述
好了,相信你已經可以獨立執行一個比特幣客戶端了,這是一個很好的開始,有了這樣的環境,我們已經具備學習比特幣程式碼的條件,不要遲疑要不要讀程式碼,讀程式碼是最直接的學習方式。