目錄

什麼是節點?

裝了什麼東西?

Image檔與Container(容器)

網速需求

節點與其他虛擬系統

 

 

什麼是節點?

 

Pi Network及目前大家看到的公有區塊鏈都是去中心化、分散式的系統,它的運算、儲存都是仰賴全球成千上萬的機器,我們稱之為節點(不過在封閉式主網的階段,Pi Network仍是中心化,因為官方掌控了所有的節點)

 

比較一下白皮書中對於節點的描述,超級節點(Super Node)跟節點(Node)的差異在於超級節點參與共識,所以超級節點就是Stellar Core裡面的Validador,節點就是Watcher

 

 

在封閉式主網的階段,所有先鋒的節點都運行在測試網上,而且是Watcher,主要是與Horizon一起運行,用於提交交易和觀察帳本變化,並不參與驗證或歷史發布。但此架構自從Horizon 2.0起已經被棄用,估計開放式主網還會有所調整。

 

這裡要澄清一下,Pi節點並不是用來「挖礦」的,Pi Network也不是用手機挖礦。所謂的「手機挖礦」只是「行銷話術」,因為比特幣是全世界第一個加密貨幣,「挖礦」一詞也是出自於比特幣,講「手機挖礦」只是為了吸引人們的注意力,也讓大眾更容易理解。

 

我們來看比特幣是怎麼「鑄造」出來的?比特幣大約每十分鐘產生一個新的區塊,如果觀察區塊的內容(例如 https://www.blockchain.com/btc/block/000000000000000000063091dccd48774d7f0f02714d850bc96e4cefd8e8c612 ),會發現每一個區塊都有Miner,也就是產生這個區塊的人,而區塊中的第一筆交易就是產生新的比特幣給Miner。因為有這樣的誘因,所以大家才會搶著挖礦。

 

Pi幣的總量是1000億,其中650億分配給全世界的先鋒(就是我們啦)。這些Pi幣已經在2021/12/29鑄造出來了,存放在GBQQ這個錢包內(同樣可以在主網區塊鏈查到 https://minepi.com/blockexplorer/block/445170 )。因為沒有大家搶著要「鑄幣」的「挖礦」過程,也就不會落入無止盡的礦機軍備競賽。

 

我們每天按閃電,就跟麥當勞APP簽到賺積分、蝦皮APP簽到集蝦幣是一樣的。這樣的行為一方面是確定我們是真人,另一方面是要維持先鋒的黏著度。它們都跟區塊鏈沒有任何關係,都不是去中心化,只是在官方資料庫中的一個點數。

 

BUT!但是!一旦我們通過Pi NetworkKYC(身分驗證),有一個遷移主網的動作,讓GBQQ錢包(更準確地說是GABT錢包,由它來建立先鋒的錢包,以及鎖倉。細節請參考 https://yuanrui919.github.io/cb )Pi幣轉到我們在Pi Network主網的錢包內,到時候就是真正的區塊鏈技術、加密貨幣、去中心化。

 

所以如果你能理解麥當勞APP簽到賺積分這件事,就應該也理解Pi Network點閃電就能挖Pi。差別在於麥當勞的積分只能讓你吃一頓漢堡,而Pi有機會成為全球最廣泛流通使用的加密貨幣。

 

裝了什麼東西?

 

Pi節點要安裝兩個軟體:Pi Node SoftwareDocker Desktop

 

Pi Node Software綁定了Pi帳號,讓你在電腦上也可以使用手機APP的部分功能(但點閃電只能在手機APP),以及在網路上能識別這台節點是屬於哪個Pi帳號,以利計算獎勵。還有一個很重要的功能:讓你很容易的執行Stellar Core

 

Stellar Core又是什麼?Pi Network採用的共識協議是「恆星共識協議 (Stellar Consensus Protocol, SCP)」,SCP的節點程式就叫做Stellar Core

 

因為不是每個人都有足夠的技術能力可以自行安裝與設定Stellar Core,所以Pi核心團隊想了一個辦法,將相關的程式與設定都打包好,做成一個image檔,只要安裝了Docker Desktop這個虛擬化軟體,就能執行。

 

Docker Desktop是一個虛擬化軟體,它載入image檔,建立一個Container(容器)Container就是一個執行的應用程式(此例是Stellar Core)加上執行它的簡易版Linux環境(包括root使用者權限、程式空間、使用者空間和網路空間等)

 

所以Pi Node Software也管理了Docker Desktop部分功能,讓下載image檔、建立/啟動/停止Container等作業,變成只要按一下滑鼠就能輕鬆完成。

 

Image檔與Container(容器)

 

Troubleshooting畫面可以看到有PortsCheckerConsensus兩個container

 

這兩者分別就是pi-consensus (Consensus container)stellar-dummy (PortsChecker container)

 

而它們的image檔是ese7en/node-port-test (PortsChecker container)pinetwork/pi-node-docker (Consensus container)

 

pi-consensus container (Consensus container)就是Stellar CoreSCP的節點程式。stellar-dummy container (PortsChecker container)則是測試Port有沒有開的()工具,有沒有它都無所謂。

 

Troubleshootingcontainer狀態有三種:

l   absent:不存在

l   running:執行中

l   exited:未執行

 

如果你從未執行過「Check now」,就不會有stellar-dummy container,狀態會是absent,這是正常的,不用理會它。它執行幾秒鐘後也會自動停止,所以狀態通常不是absent就是exited

 

stellar-dummy containerpi-consensus container因為用到相同的port,所以也不能同時執行。「Check now」其實有提醒,但大部分人可能都沒注意到。

 

如前面所述,Pi Node Software管理了下載image檔、建立container的工作,但image檔也是可以手動下載,只要在命令提示字元(CMD)執行以下指令:

docker pull pinetwork/pi-node-docker

docker pull ese7en/node-port-test

 

但是container就不建議手動建立了,因為有一些隱藏的參數,所以還是老實點讓Pi Node Software來管理。但如果你真的手很癢,可以參考這一篇 https://yuanrui919.github.io/changevolume/

 

網速需求

 

這是5節點的網路流量統計,平時的狀況下,最低速率的光世代16M/3M方案就可以滿足節點需求。

 

只有在catchup的時候,向History Archives下載歷史資料時才會有瞬間的大流量,但它對網速需求仍不高,即使網速慢一點也沒關係,頂多就是catchup時間久一點而已。

 

節點與其他虛擬系統

 

Pi節點需要安裝Docker DesktopDocker Desktop需要安裝WSL 2 (Windows Subsystem for Linux 2)WSL會使用Hyper-V架構來啟用其虛擬化,但並不需要安裝完整版本的「Hyper-V(Windows Home沒有此功能),如果只使用WSL2的話,只需要安裝「虛擬機器平台」就可以了。

 

但是這會遇到一個“致命”問題,那就是Hyper-V不能與VirtualBoxVMware共存。原因是Hyper-V的虛擬方式不一樣,開啟Hyper-V後會將使用者的桌面系統給虛擬化,使用者的桌面系統就會成為Hyper-V的虛擬系統,而Hyper-V的虛擬系統是不允許再開虛擬機器的,因此開啟Hyper-VVirtualBoxVMware就不能執行。其他手機模擬器也是相同原因。

虚拟方式

 

VirtualBox 6中新增了利用Hyper-VAPI進行虛擬化系統,由於這個功能還是實驗性的功能,所以沒有現成的GUI按鈕或介面開啟這個功能,需要使用命令列開啟。

 

#指定VirtualBox下的虛擬系統開啟這個功能

VBoxManage setextradata "<虛擬機器名字>" "VBoxInternal/NEM/UseRing0Runloop" 0

 

#或指定VirtualBox所有虛擬系統開啟

VBoxManage setextradata global "VBoxInternal/NEM/UseRing0Runloop" 0

 

但經我實測,VirtualBox 6.1.32雖然可以執行,效能也會大打折扣。至於VMware跟手機模擬器我就沒測試了。

 

另外一提,節點可以使用VMware的虛擬機,只要勾選Processors的「Virtualize Intel VT-x/EPT or AMD-v/RVI」選項即可。

 

回首頁