Skip to content

狀態導入導出

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.Xv1.X.X):

stcd migrate TARGET_VERSION GENESIS_FILE --chain-id=<new_chain_id> --genesis-time=<yyyy-mm-ddThh:mm:ssZ>