本頁面使用機器翻譯自英語,可能包含錯誤或不清楚的語言。如需最準確的信息,請參閱英文原文。由於更新頻繁,部分內容可能與英文原文有出入。請加入我們在 Crowdin 上的努力,幫助我們改進本頁面的翻譯。 (Crowdin translation page, Contributing guide)
修剪節點數據
本頁介紹如何刪除歷史塊狀態以減少存儲需求。 Kaia 提供了兩種修剪塊狀態的方法:
瞭解修剪的影響
"即時剪枝 "可持續刪除舊狀態,將磁盤大小保持在最小範圍內。 不過,由於伴隨著記賬任務,即時修剪會稍微降低區塊同步速度。 另一方面,"批量剪枝 "在遷移完成後不會影響性能,但遷移會話需要幾天時間,並暫時需要大量可用磁盤空間來複制狀態。
如何進行現場修剪
要從創世區塊啟用即時剪枝,請在啟動節點時使用 --state.live-pruning
標記。 如果從已啟用即時剪枝的數據庫開始,則可選擇是否使用該標記,但為了清晰起見,建議使用該標記。
備註
您可以使用"--state.live-pruning-retention NNN "標記來控制即時剪枝的保留時間(默認值:172800 秒,即 48 小時)。 該標誌決定了歷史數據塊狀態在被剪枝前的保留時間。
信息
有即時修剪和沒有即時修剪的數據庫是不兼容的。 要運行帶即時剪枝功能的節點,必須從帶有 --state.live-pruning
標記的創世塊開始,或者從已啟用即時剪枝功能的 chaindata snapshot開始。
不能將非即時剪枝數據庫轉換為即時剪枝數據庫,反之亦然。 以下是您可能會看到的一些日誌信息示例:
# 首次啟用即時修剪,數據庫為空INFO[08/27,14:09:01 +09] [41] 將即時修剪標 誌寫入數據庫# 啟用即時修剪INFO[08/27,14:09:01 +09] [41] 啟用即時修剪 retention=172800# 禁用即時修剪INFO[08/27,14:09:46 +09] [41] 即時剪枝已禁用,因為數據庫中未存儲標誌# 在鏈前進後無法開啟即時剪枝(頭部區塊數>0)Fatal: Error starting protocol stack: cannot enable live pruning after the chain has advanced.
如何進行批量修剪
先決條件
- 建議在配備 m6i.8xlarge(32 核和 128GB 內存)或更高配置的機器上運行。
- 機器應有足夠的備用磁盤空間(500GB 或以上)。
- 整個過程大約需要 7 天:
- 第 1 階段:將狀態複製(遷移)到新目錄。 出現消息 "狀態遷移已完成"。
- 第 2 階段:在新目錄中繼續進行區塊同步。 完成此 步驟後,舊目錄將被刪除。
步驟
- 通過控制檯連接節點:
ken attach --datadir /var/kend/data
- 使用
admin
命名空間 RPC 控制狀態遷移:
// 啟動> admin.startStateMigration()null// 檢查進度> admin.stateMigrationStatus// 中止> admin.stopStateMigration()