區塊鏈作為當今最受矚目的技術之一,分岔(Fork)是區塊鏈世界中十分常見且重要的操作。無論你是想創建一個自己的加密貨幣,還是對現有的區塊鏈進行調整,分岔都是不可避免的第一步。這一系列網誌將一步一步帶你完成區塊鏈分岔的過程,而本篇將專注於建構與編譯 RVN(Ravencoin),確認其正常運行,為後續的分岔實作奠定基礎。
為什麼選擇 RVN?
Ravencoin 是一個基於比特幣(Bitcoin)源碼的開源專案,它強調資產轉移功能且社區活躍,是一個適合用來學習區塊鏈分岔的範例。接下來我們將學習如何下載、編譯、建構並運行 RVN 節點,確保原始碼能正常運行。
準備系統
在開始分岔區塊鏈之前,首先需要選擇一個合適的作業系統來構建和編譯區塊鏈原始碼。雖然可以在多種不同的作業系統上完成這項工作,但以下是幾種較常見且適合用於區塊鏈開發的系統:
1. Ubuntu
Ubuntu 是最常用的 Linux 發行版之一,也是區塊鏈開發最常採用的系統。它有穩定的套件庫、廣泛的社群支援,以及適合開發者的工具組。長期支援(LTS)版本,像是 Ubuntu 22.04.2 LTS,提供更長時間的安全更新,適合用於長期項目開發。
優點:
- 穩定且易於使用:特別適合初學者和開發者,擁有廣泛的社群支援。
- 豐富的軟體套件庫:大部分相依套件可以透過
apt
套件管理器輕鬆安裝。 - 長期支援版本:LTS 版本提供更長時間的維護和更新。
2. Debian
Debian 是 Ubuntu 的上游版本,同樣提供高穩定性,並且套件庫非常豐富。對於需要絕對穩定的環境來構建區塊鏈節點來說,Debian 是一個不錯的選擇。通常建議中高階開發者選用,因為它需要更多手動設定。
優點:
- 高度穩定:適合需要長期維護的開發項目。
- 靈活可定制:可以根據需求定制環境。
3. Fedora / CentOS / RHEL
這些基於 RPM 套件管理器的系統也可以用於區塊鏈開發。CentOS 和 RHEL(Red Hat Enterprise Linux)注重企業級穩定性,而 Fedora 則是相對更新的版本,提供較新的開發工具和套件。
優點:
- 高穩定性(CentOS / RHEL):適合需要長期穩定性並對系統需求較高的環境。
- 新技術預覽(Fedora):經常包含最新的開發工具和套件,適合想嘗試新技術的開發者。
4. Windows with WSL (Windows Subsystem for Linux)
如果你主要使用 Windows 系統,可以考慮使用 WSL,它讓你能夠在 Windows 環境中執行 Linux 子系統。這是一個非常方便的選擇,讓 Windows 用戶可以直接在熟悉的環境下運行區塊鏈相關的工具。
優點:
- 不需要重新啟動雙系統:可以在 Windows 中直接運行 Linux 開發環境。
- 相容性強:適合對 Windows 熟悉但又想體驗 Linux 開發流程的用戶。
我使用的系統:Ubuntu 22.04.2 LTS
在這次的教學中,我選擇使用 Ubuntu 22.04.2 LTS 作為開發環境。這個長期支援版本(LTS)提供了穩定的作業系統基礎,並且具有良好的相依套件管理,特別適合構建區塊鏈節點。我將會根據這個環境來進行教學步驟的展示,你可以選擇同樣的系統以便跟隨教學,或者選擇其他 Linux 發行版,但需要自行適配相關指令。
如果你想要跟隨教學,建議使用與我相同的 Ubuntu 22.04.2 LTS,以確保過程中沒有相依套件或指令相容性問題。
環境準備
在開始操作之前,我們需要先確認開發環境,以下列出了基本的環境要求:
1. 安裝相依套件
根據你所使用的系統,執行以下對應的指令安裝所需的套件:
sudo apt install build-essential libssl-dev libboost-chrono1.74-dev libboost-filesystem1.74-dev libboost-program-options1.74-dev libboost-system1.74-dev libboost-thread1.74-dev libboost-test1.74-dev qtbase5-dev qttools5-dev bison libexpat1-dev libdbus-1-dev libfontconfig-dev libfreetype-dev libice-dev libsm-dev libx11-dev libxau-dev libxext-dev libevent-dev libxcb1-dev libxkbcommon-dev libminiupnpc-dev libprotobuf-dev libqrencode-dev xcb-proto x11proto-xext-dev x11proto-dev xtrans-dev zlib1g-dev libczmq-dev autoconf automake libtool protobuf-compiler
2. 下載 RVN 原始碼
首先,進入你的主目錄,創建一個用於存放原始碼的目錄:
cd $HOME
mkdir src
cd src
然後從 GitHub 克隆 RVN 原始碼:
git clone https://github.com/RavenProject/Ravencoin
cd Ravencoin
切換到 develop
分支(開發版):
git checkout develop
3. 安裝 Berkeley DB 4.8
RVN 需要 Berkeley DB 4.8 來作為區塊鏈資料庫。以下指令將下載並構建 Berkeley DB 4.8:
contrib/install_db4.sh ../
此命令會將 Berkeley DB 安裝到 $HOME/src/db4
目錄中。
4. 編譯與構建 RVN
現在,我們來編譯並構建 RVN:
1. 自動生成 configure
檔案
首先執行以下指令,以生成 configure
檔案:
./autogen.sh
2. 設定 Berkeley DB 環境變數
設置 Berkeley DB 的環境變數:
export BDB_PREFIX=$HOME/src/db4
3. 配置編譯環境
使用 configure
指令來配置編譯環境,並指定 Berkeley DB 的位置:
./configure BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include" --prefix=/usr/local
這將確保 RVN 能正確找到 Berkeley DB。
4. 編譯源碼
編譯 RVN,並根據你的電腦性能調整編譯線程數(例如 8 個線程):
make -j8
這可能需要一些時間,取決於你的系統性能。
運行 RVN 節點
編譯完成後,我們可以開始運行 RVN 節點,確認其是否正常運行。
1. 啟動 RVN 節點
使用以下指令在後台啟動節點:
src/ravend -daemon
2. 檢查節點狀態
使用以下指令查看區塊鏈同步狀態:
src/raven-cli getblockchaininfo
你應該會看到區塊鏈同步的資訊,這表示節點已正常運行。
可選操作:安裝執行文件
如果你希望將編譯出的執行文件安裝到系統目錄(例如 /usr/local/bin
),可執行以下指令:
sudo make install
這樣 ravend
和 raven-cli
就可以直接在終端中運行。
結語
恭喜你!你已經成功構建並運行了 RVN 節點。這是分岔區塊鏈的第一步。在接下來的網誌中,我們將開始著手實際的分岔實作,修改 RVN 的原始碼,創建你自己的區塊鏈。敬請期待!