狀態導入導出
Daodst 可以將整個應用程序狀態轉儲到一個 JSON 文件中。 除了 升級,這對於在指定高度手動分析狀態很有用。
導出狀態
導出狀態:
stcd export > new_genesis.json
您還可以從特定高度導出狀態(在處理該高度的塊結束時):
stcd export --height [height] > new_genesis.json
如果您計劃從導出狀態開始一個高度為 0(即創世紀)的新網絡,請使用 --for-zero-height
標誌導出:
stcd export --height [height] --for-zero-height > new_genesis.json
手動遷移狀態
如果你想手動遷移狀態,例如用於本地測試目的。 請注意,對於常規鏈升級,不需要手動狀態遷移。
將狀態導出到 json 文件後,您可以將舊的 genesis.json
替換為 new_genesis.json
cp -f genesis.json new_genesis.json
mv new_genesis.json genesis.json
此時,您可能想要運行一個腳本來將導出的創世紀更新為與您的新版本兼容的創世狀態。
您可以使用 migrate
命令從給定版本遷移到下一個版本(例如:v0.X.X
到 v1.X.X
):
stcd migrate TARGET_VERSION GENESIS_FILE --chain-id=<new_chain_id> --genesis-time=<yyyy-mm-ddThh:mm:ssZ>