This is a tool for testing out state tree migrations on lotus chain data
To get started you need data in a lotus directory at ~/.lotus
ent migrate one <state-cid> <state-epoch>
does a migration and outputs the new state tree cident migrate chain <start-block-cid>
does a migration on all states between start header and genesisent validate v2 <state-cid> <state-epoch>
runs long paranoid validation on the new state
ent migrate one
and ent migrate chain
take a --validate
command for running a validation after a migratino
For a migration directly comparable to a filecoin protocol migration over the input <state-cid>
provide a <state-epoch>
equal to the epoch the state was created in. In other words use the height of the parent tipset of a header containing <state-cid>
.
ent validation directly on a state tree only works with a v2 state. The name ent validate v2
tries to help make this clear. The call will fail with "unexpected actor code CID..." when run on v0 state roots.
Migrations are from specs actors v1 state to specs actors v2 state