工商一下我的Pi APP:
pi://donateyuanrui.000webhostapp.com
如果你的節點是2022/10/1以後才安裝,或移除又重裝的,會卡在這裡轉圈圈。
原因是節點程式會根據containerFlavor這項參數的設定值來決定啟動哪個Container。如果是stellar,則執行pi-consensus Container;如果是dummy,則執行stellar-dummy Container。
在2022/3/14之前,只有少數人被允許執行pi-consensus Container,其他人都只能跑stellar-dummy Container。那時大部分人的containerFlavor的值是dummy,而少數天選之人的值是stellar。
從2022/3/14以後,全部架設節點的人都能獲得pi-consensus Container,所以大家的containerFlavor的值都改成了stellar。
節點程式在啟動時會連線到sync.minepi.com,以uuid查詢containerFlavor的值,並且更新本機的user-preferences.json檔案。如果sync.minepi.com連不上,則查詢本機的user-preferences.json檔案的內容。
但從2022/10/1起,因為節點程式的憑證過期,無法連上sync.minepi.com取得資料,而新節點的user-preferences.json預設情況下又缺少containerFlavor這項參數,造成節點程式不知道要啟動哪個Container,所以就一直轉圈圈。
其實不只containerFlavor,還有testnetResetCount、stellarConfigVersion、testnetResetLatestNodeUIVersion等參數也都是透過sync.minepi.com更新。包括節點的可用率也是,所以現在都顯示「N/A」 (可以自行在瀏覽器輸入 https://sync.minepi.com/node-selection-stats?uuid=xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx 來查詢可用率)。
解決方法就是手動修改user-preferences.json的內容。
先結束節點程式,由File --> Exit,不是按右上的X喔
找到user-preferences.json,不同的作業系統的路徑不一樣:
l Windows 10是位於 %appdata%\Pi Network\
不知道 %appdata% 是什麼的人,請自行google,或看這篇 https://yuanrui919.github.io/mvappdata/ (只是看看怎麼進到%appdata%目錄,沒有要你改它的位置)。
l MAC檔案在 ~/Library/Application Support/Pi Network/
~/Library是隱藏檔,請參考這篇開啟 https://www.drbuho.com/zh-tw/how-to/mac-library-folder 。
為了避免改錯了,請先備份user-preferences.json,然後用記事本或純文字編輯軟體開啟它,內容如下:
{"windowWidth":800,"windowHeight":600,"uuid":"xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx","switchStatus":true,"dockerImage":"pinetwork/pi-node-docker:latest"}
在最後的 } 前加上
,"containerFlavor":"stellar","testnetResetCount":"2","stellarConfigVersion":"0.0.9","testnetResetLatestNodeUIVersion":"0.4.4","horizonStatusPreference":false
結果就像這樣:
注意,這檔案是JSON格式。頭尾用大括號 {} 包起來的是物件(object),物件使用 "Key":"Values" 的方式儲存,物件跟物件之間用逗號隔開。如果你打錯字或漏了什麼符號,可能導致格式不正確,請再次檢查。
可以透過JSON Parser來確認格式,網路上很多,例如 https://jsonformatter.org/json-parser ,複製user-preferences.json的內容,貼上去檢查。
重新執行節點程式,如果還在轉圈圈,一定是user-preferences.json格式錯誤,請重新修正 (剛才有記得備份吧)。開小紅點,並觀察Docker,Containers會多出一個pi-consensus (下載image檔可能需要幾分鐘的時間),注意看它的Log,等它出現「setllar-core entered RUNNING state」這一行就成功了。
再檢查%appdata%\Pi Network\user-preferences.json,最後應該多出一段 (如果沒有,過幾分鐘再看看)
,"stellarSecretSeed":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
另外,有少數人曾經在2022/3/14之前安裝節點(且沒有獲得pi-consensus Container,只有stellar-dummy Container),但後來因為某些原因在2022/3/14~2022/10/1這段期間關機了,直到2022/10/1以後才開機的人,他的containerFlavor的值是 "dummy",也是需要改成 "stellar"。