Quorum Blockchain - 利用 quorum maker 及 virtualbox 建立多台虛擬機節點的區塊鏈

前一篇講了如何安裝 VirtualBox,並且將一些遇到的困難點掃掉。今天介紹如何使用 Quorum Maker 在每個虛擬機各自建立節點並且形成一個區塊鏈網路。

設定虛擬機連線模式

這邊的測試是開啟兩台 Ubuntu18.04 的虛擬機,並且這兩台虛擬機必須互相能夠 ping 的到。這邊我採用 NAT Network 的方式:

  1. 新增 NAT Network

    點選喜好設定並且左邊選擇網路,右邊點 + 新增一個 NATNetwork。

    裡面的設定內容按照預設即可:

    這個 NatNetwork 原理也就是類似一個內部 NAT 網路,每個虛擬機會分到同一網段的 IP,因此可以互相 Ping 成功,

    此外因為是 NAT 模式,只要主機能夠上網則虛擬機一樣也可連網,只是這樣的方式無法外部去連線裡面的虛擬機。不過我的測試計畫只打算在一台主機上建立多個節點形成一個區塊鏈網路就可。

  2. 新增完成後,只要去每台虛擬機案右鍵進行網路設定就好

    選擇 NAT 網路,這邊就會選擇到你剛剛新增的那個模式。而每個虛擬機只要切換這個模式即可~

開啟 Node1 虛擬機創建 Quorum 網路

如果要使用 quorum maker 這個工具,首先我們要先安裝一些必要的套件:

  • docker

    因為 quorum maker 要透過 docker 進行安裝

  • net-tools

    這個是為了等等要看虛擬機的 IP 之用途

關於 docker 安裝及設定教學請參考:Docker - 介紹及安裝教學

而 net-tools 安裝指令如下:

1
sudo apt-get install net-tools

安裝完成後,使用:

1
ifconfig

可以看到以下畫面,而 inet 後面這個 IP 就是代表此虛擬機的 IP

接著,clone quorum-maker github 的 repository,並透過官方提供的.sh 檔案進行建立與設定;

1
2
3
git clone https://github.com/synechron-finlabs/quorum-maker.git
cd quorum-maker
./setup.sh

一開始會自動安裝 docker image 檔案,接著安裝完就會出現以下的畫面:

輸入1,創建網路並輸入以下的設定:

這邊 IP Address of this node,指的就是剛剛透過 ifconfig 看到的 IP 位址。其它設定可以用預設值即可。

這樣網路就算創建完成了,我們可以透過 quorum maker 提供的 UI 來看當前區塊鏈網路架構

打開瀏覽器並輸入:localhost:22004

這邊因為沒調客體大小,所以整個虛擬機畫面很小,quorum maker 的畫面有點跑版,但這邊可以看到整個區塊鏈網路的架構只有一個 node,也就是剛剛我們建立的有在運行而已。

開啟 Node2 虛擬機加入 Quorum 網路

接著,我們開啟第二台虛擬機加入第一台虛擬機的區塊鏈網路

必要的套件如同前面一樣需要安裝,因為一樣要用到 quorum maker 來進行加入

選擇選項2,並且輸入以下設定:

這邊 Enter IP Address of existing node 代表的是要輸入第一台的 Node 的 IP 位址,而下一行的 Node Manager Port of existing node 則要輸入我們在第一台設定的 port,預設是 22004。

其他以下的設定就是在設定 Node2 的資訊,一樣可以按照預設值即可。

當一切設定好後,會看到上面的最後一行,已經送出 request 給第一台 node,等待這台 Node 的批准才可加入該網路,因此我們再回頭看 Node1 的 quorum maker UI 的時候會看到左邊有個紅色通知,並且你可決定是否讓該 request 進行通過:

按下打勾即讓 Node2 加入該網路。

這樣之後再重新整理就可以 ACTIVE NODES 數量變為2。成功!!

總結

關於 Quorum Maker 該工具的介紹這邊就不多說明,官方文件寫了滿多資訊的,個人覺得快速建立 Quorum 區塊鏈網路是很方便,透過該 UI 也可以自動 Compile&Deploy Smart Contracts,也可以看到整個區塊鏈網路交易等速度的視覺化圖像。

透過以上的方式,就可以利用一台主機建立多台虛擬機將這些虛擬機串成一個 Quorum 區塊鏈網路,而如果要做多區塊鏈的實驗的話,就只要分成多個 Quorum 區塊鏈網路即可,例如每個 Quorum 區塊鏈網路各有 4 個 Node,每個 Node 按照以上的方式加入即可。