- 
                Notifications
    
You must be signed in to change notification settings  - Fork 273
 
Fast Recovery From App Hash Mismatch
        yihuang edited this page Nov 10, 2022 
        ·
        16 revisions
      
    cronosd rollback provide a way to rollback and recover from app-hash mismatch failure, but it takes hours to run, here is a faster way to do it.
- tendermint v0.34.22 cli, installed with:
# rocksdb $ go install -tags rocksdb github.com/tendermint/tendermint/cmd/[email protected] # leveldb $ go install github.com/tendermint/tendermint/cmd/[email protected] - 
python-iavl, could be run with nix on the fly:
$ # rocksdb $ nix run github:yihuang/python-iavl/a1aeedf $ # leveldb $ nix run github:yihuang/python-iavl/a1aeedf#iavl-cli-leveldb 
- 
Disable iavl fastnode (Optional)
After rollback, fastnode index will be recreated automatically which is slow enough, can disable it first to make it start faster.
Set
iavl-disable-fastnode = trueinapp.toml - 
Rollback tendermint state
$ tendermint rollback --home /chain/.cronosd/ Rolled back state to height $VER and hash [...] - 
Fast rollback app state
replace
$VERto the version number shown in the above command.$ nix run github:yihuang/python-iavl/a1aeedf -- fast-rollback --db /chain/.cronosd/data/application.db --target $VER