Run an invariant check
Prerequisites
To run an invariant check on your Lotus node, you need:
- A lotus node that can be stopped
lotus-shed
installed
Run invariant check
- On your currently synced and running Lotus node, run:
lotus chain list --count 1 | awk -F '[:, ]+' '{print $1, $8}' | xargs -n2 sh -c 'echo -n "Chain Height: $1, ParentStateRoot: "; lotus chain get-block $2 | jq -r ".ParentStateRoot[\"/\"]"' sh
Chain Height: 4062673, ParentStateRoot: bafy2bzacebzxikpluchiv6by7gjnexh4cg3aojyimdtgcieiqs3loah76ejkm
- Stop the Lotus daemon
lotus daemon stop
- Run the invariant check
./lotus-shed check-invariants --repo=[path-to-your-.lotus-repo] [ParentStateRoot] [ChainHeight] > /path/to/saved/file/invariants
In the above command, replace [ParentStateRoot]
and [ChainHeight]
with the output from step 1. Running the invariant check command will take a while (up to two hours depending on your hardware).