如何建立新版本的 IOTA Hornet 節點?| 2021/05/06

如何建立新版本的 IOTA Hornet 節點?| 2021/05/06

本文撰寫時間為 2021/05/06,因為科技日新月異,預計兩個月後這篇文的參考價值可能就降低了,如果你發現這篇文過時,或認為有其他還要補充的,歡迎至 https://github.com/EasonC13/iota_playbook_zh 發 PR 喔!

或者也歡迎留言指教,謝謝你

1. 安裝或更新至最新版本

sudo sh -c 'echo "deb http://ppa.hornet.zone stable main" >> /etc/apt/sources.list.d/hornet.list'
sudo apt update
sudo apt install hornet

如你是從舊版 Hornet (0.5.x) 更新,且像我一樣使用其他硬碟掛接到 /var/lib/hornet,強烈建議你先把 /var/lib/hornet 內的檔案移動到其他地方備份好,或於更新詢問是否幫你備份時選擇 No,否則在更新時他會自動幫你把 /var/lib/hornet/* 的內容移動到 /var/lib/hornet_backup,之後我的系統碟就因為空間不足炸掉了。

如果遇到 GPG 相關錯誤請參考下方作法:(來源)

W: GPG error: http://ppa.hornet.zone stable InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 2AB74782BB1E0190
sudo apt update
sudo apt install gnupg
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 2AB74782BB1E0190
# 把 2AB74782BB1E0190 換成你看到的 KEY

2. 允許程式從系統啟動

sudo systemctl enable hornet.service

3. 啟動節點

sudo service hornet start

4. 管理節點狀態

即時日誌監控:

journalctl -fu hornet

關閉節點:

sudo systemctl stop hornet

重啟節點:

sudo systemctl restart hornet

強烈建議加 alias 到你的 .bashrc
節省時間的好幫手:
alias iotast=”journalctl -fu hornet”
alias iotarestart=”sudo systemctl restart hornet”
alias iotastop=”sudo systemctl stop hornet”

進入管理儀表板(Dashboard)

設定帳號密碼

在進去 Dashboard 前,你需要先設定密碼。使用主機終端機輸入以下指令來產生密碼的 Hash 與 Salt。

hornet tool pwdhash

遵循指令,輸入兩次要設定的密碼後即可完成,之後你會看到類似下方的內容:

Success!
Your hash: 81c12baaefd2c062e78d60656f5276e717c2108a485cfe1b9ebe909b7dd86252
Your salt: b18947bc191d7f4eff64fd008a1109459b1eca2490a80796ae39064214524d2f

這就是你的密碼的 Hash 與 Salt,將他們放到 /var/lib/hornet/config.json 的 dashboard 的 auth 中,範例如下:

   "dashboard": {
    "bindAddress": "0.0.0.0:8081",
    "auth": {
            "enbaled": false,
      "sessionTimeout": "72h",
      "username": "admin",
      "passwordHash": "81c12baaefd2c062e78d60656f5276e717c2108a485cfe1b9ebe909b7dd86252",
      "passwordSalt": "b18947bc191d7f4eff64fd008a1109459b1eca2490a80796ae39064214524d2f"
    }
  },

使用者名稱也可以自行更改。

允許遠端連入 Dashboard

如果你的 hornet 在遠端的主機(如 VPS)上,請至 /var/lib/hornet/config.json 設定連線 IP 為 0.0.0.0:8081

  "dashboard": {
    "bindAddress": "0.0.0.0:8081",

或者你要用其他 Port 也行。甚至你也可以用 nginx(待補)。

之後重新啟動你的 Hornet 節點,即可套用設定更改。

前往儀表板設定

然後就可以去 http://your.ip:8081 看到 Hornet 的新版本 Dashboard 囉!

如果你看到的跟上圖不一樣,而是跟下圖相似,別擔心,請點選左邊 Login,用先前設定的帳密登入即可

新增鄰居

這個版本的鄰居格式,與舊版不同,因此要重新新增。因為這個版本你的節點有自己的 Private Key 與相對應的 Public Key 跟 ID,而在新增鄰居時,需要加上鄰居的 ID。這是舊版沒有的功能。

新版鄰居格式範例如下:

Address: /dns/your.ip.com/tcp/15600

ID: 12D3KooWLAMAzV9rMuuFLxuxfkaoRmnq5joBZ6B8cazEoHeYQ92k

其中你的 ID 要去 Dashboard Home 的紅色圈圈處複製

找鄰居

在這個版本的 Hornet,目前(2021/05/05)還不支援 Auto Peering,因此你需要手動去尋找鄰居。

請你到 IOTA 的 Discord 去找鄰居,也歡迎找我連線(請私:EasonC13#4070
請至 nodesharing 頻道,貼上你在徵求鄰居節點的消息,就會有其他人來私訊你囉!
範例如下:

或者你也可以私前面每一個在徵求鄰居節點的人,請他們把你加到他們的列表。
參考範例如下:

我貼出訊息並逐一私訊後,花五小時左右,就找到十二個鄰居了,很快,就勇敢的開私吧!

其他新功能(待補充)

這個版本的 Hornet 支援 Prometheus 監控,只要將 config.jsonenablePlugins 新增 Prometheus 即可

    "enablePlugins": [
      "Prometheus",
      "Spammer"
    ]

順便也要設定能從外網監聽狀態,將 bindAddresstargetlocalhost 改為 0.0.0.0

  "prometheus": {
    "bindAddress": "0.0.0.0:9311",
    "fileServiceDiscovery": {
      "enabled": false,
      "path": "target.json",
      "target": "0.0.0.0:9311"
    },

之後就可以去 http://your.ip:9311/metrics 監控你的節點狀態囉!

相關指標的意義請參考:IOTA Hornet Prometheus 用法

不過 Prometheus 監控 API,洩漏出的訊息基本上就跟登入後的 Dashboard 相同,他人可以存取到你現在連線的鄰居列表,因此可能會讓你的節點被攻擊的可能性增加。因此請斟酌使用。

其他補充

你有其他想補充的嗎?
或發現這篇文過時了嗎?
歡迎到 https://github.com/EasonC13/iota_playbook_zh 發 PR

這個 Repo 是 Eason 我在研究 IOTA 時,所用到的技術與操作的筆記,歡迎大家一起發 PR 更新各自的發現,一起讓大家會使用新版 IOTA!

我相信一群人絕對比一個人能走得更遠

參考資料:官方文檔: https://hornet.docs.iota.org/getting_started/getting_started.html

發佈留言

Close Menu