跳至主要內容

分岔區塊鏈 (一) – 從構建 RVN 開始

區塊鏈作為當今最受矚目的技術之一,分岔(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

這樣 ravendraven-cli 就可以直接在終端中運行。

結語

恭喜你!你已經成功構建並運行了 RVN 節點。這是分岔區塊鏈的第一步。在接下來的網誌中,我們將開始著手實際的分岔實作,修改 RVN 的原始碼,創建你自己的區塊鏈。敬請期待!

分類:區塊鏈