如何構建符號節點
This page is a machine translation of the English text.
Please contact faunsu https://twitter.com/faunsu19000 or symbol-community.com/community for language proofreading of articles.
目錄
*關於符號節點
*節點功能和服務器基本規格
關於符號節點
區塊鏈節點按時間順序記錄交易數據,過往內容可查。作為分佈式賬本,多個節點共享相同的數據,任何人都可以查看交易數據。Symbol的區塊鏈由遍布全球的節點網絡構建和維護。節點執行交易、執行搜索並將數據以塊的形式記錄到分類賬中。
節點特性和基本服務器規格
Symbol節點分為三種:我會按順序解釋。
-對等節點
-API 節點
-投票節點
對等節點
也稱為 Harvester 節點,它們支持網絡。它主要驗證交易以將新塊添加到區塊鏈並在此過程中收取費用。
API 節點
API 節點的主要作用是以可讀格式將數據存儲在 MongoDB 中。
API 節點還負責收集聚合債券交易的共同簽名,這些交易僅在完成時進行處理。
投票節點
Symbol提供了投票節點作為敲定的手段,投票節點只能由用戶自己擁有300萬xym來建立,一個區塊在敲定時就被認為是敲定的。Symbol的敲定採用[pBFT](https://pmg.csail. mit.edu/papers/osdi99.pdf),需要67%以上的投票節點同意。例如,金融機構在區塊鏈上實現支付處理時,需要保證生成的區塊不會被更改。通過finalization,金融機構可以知道區塊已經確認,可以順利的進行支付處理。
Voting Node在Symbol Blockchain中是可選的,在搭建新網絡時,可以在網絡設置中關閉,定位為單一插件,即使停止終結,也會繼續基於PoS+出塊作為敲定的用例,希望在區塊鏈上開展業務的組織和行業可以操作和管理投票節點,以進一步激活健壯的 PoS+ 鏈上的敲定功能,並在行業內共享塊確認的時間。使用識別和運行易於操作的公共聯盟鏈。
符號節點構建過程
請安排具有以下環境的服務器。如果您擔心服務器操作,請考慮使用服務Allnode。也可以使用Debian以外的Linux操作系統發行版,但下面描述的示例腳本基於 Debian。
具有所需硬件規格或更高規格的服務器(單獨的表格)
Debian 操作系統 10 或更高版本
端口 80、443、3000、3001、7900
###(附錄)強制性硬件規格
以下是強制性要求:
最低規格 | 對等節點 | API 節點 | 雙重/投票 |
---|
CPU | 2 核 | 4 核 | 4 核 |
內存 | 8GB | 16GB | 16GB |
磁盤大小 | 500 GB | 750 GB | |
磁盤 IOPS | 1500 IOPS 固態硬盤 | 1500 IOPS 固態硬盤 | 1500 IOPS 固態硬盤 |
下表列出了建議的要求。
推薦規格 | 對等節點 | API 節點 | 雙/投票 |
---|
中央處理器 | 4 核 | 8 核 | |
內存 | 16GB | 32GB | 32GB |
磁盤大小 | 500 GB | 750 GB | |
磁盤 IOPS | 1500 IOPS 固態硬盤 | 1500 IOPS 固態硬盤 | 1500 IOPS 固態硬盤 |
平時不搭建服務器的注意事項
在構建節點之前,請務必執行以下安全措施。
端口使用
22:SSH 連接。
80:Let's Encrypt + 符號節點列表
3000:HTTP REST 網關
3001:HTTPS REST 網關
7900:節點與彈射器客戶端之間的通信
服務器初始設置
連接到服務器,首先在服務器上創建一個操作賬號。
添加用戶符號
usermod -aG sudo 符號
su - 符號
安裝所需的軟件
執行以下腳本搭建環境。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/ymuichiro/symbol-node-builder/main/scripts/install.sh)"
通常需要進行以下工作,但上面的腳本會自動設置它。
啟動和設置 Symbol-Bootstrap
使用以下命令啟動 Symbol-bootstrap。
cd ~/符號引導程序
符號引導嚮導
網絡選擇 選擇在哪個網絡上構建節點。
選擇一個網絡:(使用方向鍵)
❯ 主網節點
測試網節點
引導本地網絡
自定義網絡節點(需要“custom-network-preset.yml”文件和“nemesis-seed”文件夾)
2.選擇節點類型
選擇一個程序集:(使用箭頭鍵)
❯ 雙節點
對等節點
接口節點
演示節點。一個雙節點,包括水龍頭和資源管理器。
3.推薦離線,因為它處理私鑰。如果沒有連接到互聯網,VPS等將無法使用,請按Y繼續。
? Symbol Bootstrap 即將開始處理敏感信息(私鑰),因此強烈建議
你在繼續之前斷開與網絡的連接。如果你離線或者你不在乎,請說“是”。(是/否)
輸入用於 Symbol bootstrap 的密碼。
輸入用於加密和解密自定義預設、addresses.yml 和 preset.yml 文件的密碼。
密碼,私鑰將被加密。
收割設置需要四個賬戶,指定其中的主賬戶,新建一個或輸入已有賬戶的私鑰。
? 你想如何創建主帳戶:(使用箭頭鍵)
❯ 生成一個新帳戶
輸入私鑰
輸入主賬戶的 64 HEX 私鑰(或按回車鍵再次選擇該選項)。
6、如果你在5中輸入了私鑰,會顯示賬戶地址,如果沒有區別就選y。
? 這是用作主帳戶的預期地址 TCDNP********************55KCQ 嗎?(是/否)
指定傳輸帳戶以及主要帳戶。
? 你想如何創建傳輸帳戶:(使用箭頭鍵)
❯ 生成一個新帳戶
輸入私鑰
VRF賬戶類似。
? 您想如何創建 VRF 帳戶:(使用方向鍵)
❯ 生成一個新帳戶
輸入私鑰
遠程賬戶類似。
? 你想如何創建遠程帳戶:(使用箭頭鍵)
❯ 生成一個新帳戶
輸入私鑰
10、配置HTTP設置,如果選擇第二個Automatic~,可以自動設置HTTPS。
您的 REST 網關應該在 HTTPS(這是一種安全協議)上運行,以便 Symbol Explorer 可以識別它。
? 選擇您的 HTTPS 設置方法:(使用方向鍵)
❯ 本機支持,我有 SSL 證書和密鑰。
自動,您的所有密鑰和證書都將使用 letsencyrpt 自動生成/更新。
沒有任何
輸入主機名。
? 輸入指向您的出站主機 IP 的公共域名(例如 node-01.mysymbolnodes.com)此值為
在 HTTPS 上運行時需要!
輸入您的友好名稱。
輸入節點的友好名稱。
從 4 種類型的帳戶(密鑰)中選擇要加密的數量。
? 選擇您要使用的安全類型:(使用方向鍵)
PROMPT_MAIN:Bootstrap 在進行證書升級時可能會要求提供 Main 私鑰。其他密鑰已加密。
❯ PROMPT_MAIN_TRANSPORT:Bootstrap 在重新生成證書時可能會要求提供 Main 和 Transport 私鑰。
密鑰已加密。
ENCRYPT:所有密鑰都已加密,只需要輸入密碼
15、註冊或選擇投票節點,沒有300萬xym不能成為投票節點。
您是否正在創建投票節點?(是/否)
回答完所有問題後,~/custom-preset.yml
將完成。默認情況下不指定benefitsAddress。打開文件並指定正確的值。示例如下所示。
組裝:雙
預設:主網
privateKeySecurityMode:PROMPT_MAIN_TRANSPORT
節點:
-
主機:example.org
最大解鎖賬戶:30
benefitAddress:${your-symbol-address}
投票:錯誤
friendlyName:${你的名字}
mainPrivateKey:${your-node-main-privatekey}
vrfPrivateKey:${your-node-vrf-privatekey}
remotePrivateKey:${your-node-remote-privatekey}
transportPrivateKey:${your-node-transport-privatekey}
https代理:
-
excludeDockerService: false
host … 輸入分配給節點的 IP 地址或域。
maxUnlockedAccounts ... 指定可以委託給節點的最大地址數。
beneficiaryAddress ... 指定節點收到的收穫獎勵的支付目的地地址
friendlyName … 指定任何節點的名稱。
啟動符號節點
執行以下命令加載 ~/custom-preset.yml 並啟動 symbol-bootstrap。
cd ~/符號引導程序
symbol-bootstrap config -p mainnet -a dual -c custom-preset.yml
符號引導啟動 -d
符號引導健康檢查
下面是 symbol-bootstrap 的啟動和停止命令列表。
symbol-bootstrap start -d
僅在首次啟動時指定。
symbol-bootstrap run -d
為第二次和後續引導指定它。
symbol-bootstrap stop
指定何時暫停。
本次工作完成了新的symbol-bootstrap的搭建,2023年3月開始新的symbol-bootstrap,大概需要1.5-2天的時間所有區塊同步完成,招募委託人時,請等到所有區塊同步完成後進行.
以下,將描述各種提示。
##尖端
###更新節點證書
節點證書在節點構建後約一年到期。
1.使用healthCheck檢查節點SSL證書是否過期
符號引導健康檢查
> node 節點的 node.crt.pem 證書將於 Aug 2 14:30:34 2023 GMT 到期,目前還不需要更新。
2.更新您的證書
符號引導更新證書
在符號節點列表中顯示節點信息
1.付費註冊(推薦)
2.通過在節點上設置nodeSetting.json進行註冊
您可以免費指定。如果您擁有自己的服務器,並且可以在服務器上配置設置,您可以選擇這種方式。如果您不知道如何進行以下步驟,我們建議您執行步驟1。
安裝方法
將配置文件放在節點的以下路徑中
-http://xxx.xxx.xxx.xxx:80/nodeSetting.json
symbol-bootstrap 已啟動並正在運行,同時也在偵聽端口 80、443。因此,有必要執行以下或等效操作。
編輯~/symbol-bootstrap/target/docker/docker-compose.yml
並重寫volume信息,使nodeSetting.json
掛載在他在nginx中的路徑上
使用 symbol-bootstrap compose
等重建容器並啟動節點
此程序在更新symbol-bootstrap或更新preset時會覆蓋docker-compose.yml
文件,所以每次都需要重新註冊。
MongoDB 索引回顧
參考資料貼在下面
當custom-preset.yml更新時
custom-preset.yml
可以在運行 symbol-bootstrap 時更改。
符號引導停止
symbol-bootstrap config -p mainnet -a dual -c custom-preset.yml --upgrade
符號引導程序撰寫--升級
符號引導程序運行-d
如何檢查節點錯誤的原因
當一個節點由於某種原因宕機時,有幾種方法可以檢查錯誤的原因。
1.查看symbol-bootstrap的日誌輸出
通過在啟動 symbol-bootstrap 時省略 -d
選項,您可以在檢查日誌時啟動。
符號引導運行
2.使用docker的日誌功能
第1步輸出所有容器的日誌作為問題。
數量巨大,因為它是您可以通過運行以下命令來檢查哪個容器有問題。
符號引導停止
符號引導程序運行-d
泊塢窗 ps -a
另外,如果正常的話,輸出結果如下。
符號@xxxxxxxxxxxxxxxxxxx:~$ docker ps -a
容器 ID 圖像命令創建狀態端口名稱
8d44313c93d6 steveltn/https-portal:1.19 "/init" 40 小時前 上升 40 小時 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:3001->443/tcp, :::3001->443/tcp https-代理
71fa6d455cf6 symbolplatform/symbol-server:gcc-1.0.3.5 "/bin/bash /symbol-c ..." 40 小時前 上升 40 小時 0.0.0.0:7900->7900/tcp, :::7900->7900/tcp 節點
542ca6019607 symbolplatform/symbol-server:gcc-1.0.3.5 "/bin/bash /symbol-c ..." 2 天前 40 小時經紀人
5b6765426fd2 symbolplatform/symbol-rest:2.4.2 "docker-entrypoint.s ..." 2 天前 上升 40 小時 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp rest-gateway
19c9ac8edce9 mongo:4.4.3-bionic "docker-entrypoint.s ..." 2 天前 Up 40 小時 27017/tcp db
如果存在STATUS為Exec(0)的容器則報錯,如果只想查看對應容器的日誌,執行如下 ${CONTAINER ID} 指定Exec輸出的容器ID (0).
docker 日誌 ${CONTAINER ID}
鏈接