---
# System prepended metadata

title: 'Mock network upgrade in Lotus:'

---


## Changes in ref-fvm
- [ ] **Clone [ref-fvm](https://github.com/filecoin-project/ref-fvm)**
    - [ ] Add new network to price_list.rs `fvm/src/gas/price_list.rs`
        - [ ] Add `| NetworkVersion::VXX+1` in price_list_by_network_version function.
    - [ ] Add new network support in `fvm/src/machine/default.rs`
        - [ ] Update to: `NetworkVersion::V18..=NetworkVersion::VXX+1;`
    - [ ] Add new network version to `shared/src/version/mod.rs`
        - [ ] Add a comment specifying what the network upgrade is called and which built-in actor version it is, `/// Mocknetwork (builtin-actors vXX+1)`
        - [ ] Add pub const VXX+1: Self = Self(XX+1)` in `impl NetworkVersion`

## Changes in Filecoin-FFI
- [ ] **Clone [filecoin-ffi](https://github.com/filecoin-project/filecoin-ffi)**
    - [ ] 

- [ ] **Clone [go-state-types](https://github.com/filecoin-project/go-state-types)**

- [ ] **In Lotus: Add `replace github.com/filecoin-project/go-state-types => ../go-state-types` to the very end of your Lotus go.mod file**
    // This will use your local clone copy of go-state-types, so any changes you make there will be reflected
    
- [ ] **Follow the [go-state-types actor version checklist](https://github.com/filecoin-project/go-state-types/blob/master/actors_version_checklist.md):**
    - [ ] Copy `go-state-types/builtin/vX` to `go-state-types/builtin/v(X+1)`
    - [ ] Change all references to vX in the new files to v(X+1)
    - [ ] Add new network version to `network/version.go`
    - [ ] Add new actors version to `actors/version.go`
    // - Add `Version(XX+1) Version = XX+1` as a const.
    // - In`func VersionForNetwork` add `case network.Version(XX+1):
		return Version(XX+1), nil`
    - [ ] Add the new version to the gen step of the makefile
    // Add `$(GO_BIN) run ./builtin/v(XX+1)/gen/gen.go`

## Actor version Lotus integration checklist

- [ ] **Import new actors**
// Create mock actor-bundle for the new network version
    - [ ] In `/build/actors` run `./pack.sh vXX+1 vXX.0.0`
    // Where XX is the current actor bundle version.

- [ ] **Define upgrade heights in `build/params_`**
    - [ ] `params_2k.go`
    // - set previous `UpgradeXxxxxHeight = abi.ChainEpoch(-xx-1)`
    // - add `var UpgradeXxxxxHeight = abi.ChainEpoch(1000)`
    // - add `UpgradeXxxxxHeight = getUpgradeHeight("LOTUS_XXXXX_HEIGHT", UpgradeXXXXHeight)
    
    - [ ] `params_butterfly.go`
    // - Add comment with `??????` signaling that the new upgrade date is unkown
    // - Add const UpgradeXxxxxHeight = 999999999999999
    
    - [ ] `params_calibnet.go`
    // - Add comment with `??????` signaling that the new upgrade date is unkown
    // - Add const UpgradeXxxxxHeight = 999999999999999
    
    - [ ] `params_interop.go`
    // - set previous upgrade to `var UpgradeXxxxxHeigh = abi.ChainEpoch(-xx-1)`
    // - Add const UpgradeXxxxxHeight = 50
    
    - [ ] `params_mainnet.go`
    // - Set previous upgrade to `const UpgradeXxxxxHeight = XX`
    // - Add comment with ???? signaling that the new upgrade date is unkown
    // - Add `var UpgradeXxxxxxHeight = abi.ChainEpoch(9999999999)`
    // - Change the `LOTUS_DISABLE_XXXX` env variable to the new network name
    
    - [ ] `params_testground.go`
    // Add `UpgradeXxxxxHeight     abi.ChainEpoch = (-xx-1)`
    
- [ ] **Generate adapters**
    - [ ] Update `gen/inlinegen-data.json`
    // add `XX+1` to “actorVersions” and set “latestActorsVersion” to`XX+1`
    // add `XX+1` to “networkVersions” and set “latestNetworkVersion” to``XX+1`
    
    - [ ] Update adapter code in `chain/actors/builtin` if needed
    // Not needed for the skeleton

    - [ ] Run `make actors-gen`
    // This generates the `/chain/actors/builtin/*` code, `/chain/actors/policy/policy.go` code, `/chain/actors/version.go` and`/itest/kit/ensamble_opts_nv.go`

- [ ] **Update `chain/consensus/filcns/upgrades.go`**
    // - import `nv(XX+1) "github.com/filecoin-project/go-state-types/builtin/v(XX+1)/migration`.
    - [ ] Add Schedule
    - [ ] Add Migration
    // Add schedule and migration:
```go
    {
		Height:    build.UpgradeXxxxHeight,
		Network:   network.Version(XX+1),
		Migration: UpgradeActorsV(XX+1),
		PreMigrations: []stmgr.PreMigration{{
			PreMigration:    PreUpgradeActors(VXX+1),
			StartWithin:     120,
			DontStartWithin: 15,
			StopWithin:      10,
		}},
		Expensive: true,
	},
```

```go
func PreUpgradeActorsV(XX+1)(ctx context.Context, sm *stmgr.StateManager, cache stmgr.MigrationCache, root cid.Cid, epoch abi.ChainEpoch, ts *types.TipSet) error {
	// Use half the CPUs for pre-migration, but leave at least 3.
	workerCount := MigrationMaxWorkerCount
	if workerCount <= 4 {
		workerCount = 1
	} else {
		workerCount /= 2
	}

	lbts, lbRoot, err := stmgr.GetLookbackTipSetForRound(ctx, sm, ts, epoch)
	if err != nil {
		return xerrors.Errorf("error getting lookback ts for premigration: %w", err)
	}

	config := migration.Config{
		MaxWorkers:        uint(workerCount),
		ProgressLogPeriod: time.Minute * 5,
	}

	_, err = upgradeActorsV(XX+1)Common(ctx, sm, cache, lbRoot, epoch, lbts, config)
	return err
}

func UpgradeActorsV(XX+1)(ctx context.Context, sm *stmgr.StateManager, cache stmgr.MigrationCache, cb stmgr.ExecMonitor,
	root cid.Cid, epoch abi.ChainEpoch, ts *types.TipSet) (cid.Cid, error) {
	// Use all the CPUs except 2.
	workerCount := MigrationMaxWorkerCount - 3
	if workerCount <= 0 {
		workerCount = 1
	}
	config := migration.Config{
		MaxWorkers:        uint(workerCount),
		JobQueueSize:      1000,
		ResultQueueSize:   100,
		ProgressLogPeriod: 10 * time.Second,
	}
	newRoot, err := upgradeActorsV(XX+1)Common(ctx, sm, cache, root, epoch, ts, config)
	if err != nil {
		return cid.Undef, xerrors.Errorf("migrating actors v11 state: %w", err)
	}
	return newRoot, nil
}

func upgradeActorsV(XX+1)Common(
	ctx context.Context, sm *stmgr.StateManager, cache stmgr.MigrationCache,
	root cid.Cid, epoch abi.ChainEpoch, ts *types.TipSet,
	config migration.Config,
) (cid.Cid, error) {
	writeStore := blockstore.NewAutobatch(ctx, sm.ChainStore().StateBlockstore(), units.GiB/4)
	adtStore := store.ActorStore(ctx, writeStore)
	// ensure that the manifest is loaded in the blockstore
	if err := bundle.LoadBundles(ctx, writeStore, actorstypes.Version(XX+1)); err != nil {
		return cid.Undef, xerrors.Errorf("failed to load manifest bundle: %w", err)
	}

	// Load the state root.
	var stateRoot types.StateRoot
	if err := adtStore.Get(ctx, root, &stateRoot); err != nil {
		return cid.Undef, xerrors.Errorf("failed to decode state root: %w", err)
	}

	if stateRoot.Version != types.StateTreeVersion5 {
		return cid.Undef, xerrors.Errorf(
			"expected state root version 5 for actors v(XX+1) upgrade, got %d",
			stateRoot.Version,
		)
	}

	manifest, ok := actors.GetManifest(actorstypes.Version(XX+1))
	if !ok {
		return cid.Undef, xerrors.Errorf("no manifest CID for v(XX+1) upgrade")
	}

	// Perform the migration
	newHamtRoot, err := nv(XX+1).MigrateStateTree(ctx, adtStore, manifest, stateRoot.Actors, epoch, config,
		migrationLogger{}, cache)
	if err != nil {
		return cid.Undef, xerrors.Errorf("upgrading to actors v11: %w", err)
	}

	// Persist the result.
	newRoot, err := adtStore.Put(ctx, &types.StateRoot{
		Version: types.StateTreeVersion5,
		Actors:  newHamtRoot,
		Info:    stateRoot.Info,
	})
	if err != nil {
		return cid.Undef, xerrors.Errorf("failed to persist new state root: %w", err)
	}

	// Persists the new tree and shuts down the flush worker
	if err := writeStore.Flush(ctx); err != nil {
		return cid.Undef, xerrors.Errorf("writeStore flush failed: %w", err)
	}

	if err := writeStore.Shutdown(ctx); err != nil {
		return cid.Undef, xerrors.Errorf("writeStore shutdown failed: %w", err)
	}

	return newRoot, nil
}
```

- [ ] **Add actorstype to the NewActorRegistry in `/chain/consensus/computestate.go`**
    // - add `inv.Register(actorstypes.Version(XX+1), vm.ActorsVersionPredicate(actorstypes.Version(XX+1)), builtin.MakeRegistry(actorstypes.Version(XX+1))`

- [ ] **Add upgrade field to `api/types.go/ForkUpgradeParams`**
    // Add `UpgradeXxxxxHeight      abi.ChainEpoch` to ForkUpgradeParams struct

- [ ] **Add upgrade to `node/impl/full/state.go`**
    // Add `UpgradeSummerHeight:      build.UpgradeSummerHeight,`
    
    
- [ ] **Add network version to `chain/state/statetree.go`**
    // Add `network.VersionXX+1` to `VersionForNetwork` function.

- [ ] **Run `make jen`**

- [ ] **Run `make docsgen-cli`**

-------
### Testrun 1

- [x] Building from source works
- [x] Running the daemon works
- [x] Running the miner works
- [ ] Network version at init of the network
    // Got:
```
lotus state network-version
Network Version: 18
``` 
```
lotus state actor-cids
Network Version: 18
Actor Version: 10
Manifest CID: bafy2bzacebzz376j5kizfck56366kdz5aut6ktqrvqbi3efa2d4l2o2m653ts

Actor             CID  
ethaccount        bafk2bzacedypn6tf3yrj4bavmscddygeima3puih37fbkxuhjhlrzbjh3dbo4
paymentchannel    bafk2bzacectov7vawkhsvq7aobyjq3oppamytq425wpkxejmq65vvcdm4bt2e
verifiedregistry  bafk2bzaced2mkyqobpgna5jevosym3adv2bvraggigyz2jgn5cxymirxj4x3i
cron              bafk2bzaceabslrigld2vshng6sppbp3bsptjtttvbxctwqe5lkyl2efom2wu4
datacap           bafk2bzaceagg4qklzhhg5oj4shwqpoeykeyxus7xhj2abuot2tycdwsf2oaaa
evm               bafk2bzacec5ywczgg73fnwi36nlxso3zduop3fwj3pq6ynn5zltrs4dpcwglg
init              bafk2bzacebkanlbkwwtniyz4fawevnkoyje67l5nflltmciplqiutekxzzfh4
storagepower      bafk2bzaceckhnpxoaanjf474wxzkntlnzdofoy75ehyuydfjkuw4swhotws4y
system            bafk2bzaceairk5qz5hyzt4yyaxa356aszyifswiust5ilxizwxujcmtzvjzoa
multisig          bafk2bzacectxa2izvpaybmmpvearekrybxtglctwnexzzneyn6xrnrmectmpa
placeholder       bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
reward            bafk2bzacec3xpbrxw2rnpuve4mxfhny44lxbpbwmduy4ula4ohj2bp6wplpvc
storagemarket     bafk2bzacec5nexsejraoqraywka7zcacjoxgpdbopehdkhiwqwcyghtof4s3w
storageminer      bafk2bzacecw5xzj6z5b7qxx5xca5py4aoecmqj2pxb6nw673alufy22zckkyo
account           bafk2bzacedkj5dqs5xxamnlug2d5dyjl6askf7wlmvwzhmsrzcvogv7acqfe6
eam               bafk2bzaceafttsbglcetxwtzqtdniittwczogkefgnxztgsp7mymcpvdlhdik
```
```
lotus state actor-cids --network-version=20
Network Version: 20
Actor Version: 11
Manifest CID: bafy2bzaceay35go4xbjb45km6o46e5bib3bi46panhovcbedrynzwmm3drr4i

Actor             CID  
cron              bafk2bzaceasr5d2skowvzv5mzsyak6waqrgc46ewj6rzbapkfi5woom6n6bwa
verifiedregistry  bafk2bzacebdqi5tr5pjnem5nylg2zbqcugvi7oxi35bhnrfudx4y4ufhlit2k
account           bafk2bzacecf2pprkbdlpm4e2xz3ufunxtgrgyh2ie3stuqiyhibsvdze7kvri
eam               bafk2bzacedve6p4ye6zxydjbfs4ode5r2equ7rqzpyltujsq2lu6wyxnijfx4
evm               bafk2bzacece5hivtkmi757lyfahgti7xuqgofodb2u65pxgf6oizfwiiwlcsi
system            bafk2bzacedpyoncjbl4oxkjm5e77ngvpy2xfajjc4myfsv2vltvzxioattlu2
datacap           bafk2bzaceaqd77gptubupda7rp7daxkxbkzwc253dxhiyoezxvj2tljmkgpny
ethaccount        bafk2bzacea25xfsxwew3h2crer6jlb4c5vwu2gtch2jh73ocuxjhupenyrugy
init              bafk2bzacecxnr5y7qifzdqqiwfbjxv2yr7lbkcyu3e2mf5zjdncteupxdlquu
multisig          bafk2bzaceayap4k4u3lbysaeeixct5fvhmafy3fa5eagvdpk3i4a7ubfdpobe
paymentchannel    bafk2bzaceafgrz5wepbein35gie7rnsu7zttxvgllgdneuefmmy4j5izydtza
placeholder       bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
reward            bafk2bzacedwbtfqlx47fdkxjrb5mwiatheci44x3zkpx33smybc2cme23ymuo
storagemarket     bafk2bzaceaj74fmooaf3gj3ebwon64ky7hhdh7kytdr3agclqfrqzmpzykh7g
storageminer      bafk2bzacedb7bokkzzs7hnbhivp74pgcpermuy7j6b3ncodylksukkxtnn7ze
storagepower      bafk2bzacedilnkegizkxz3nuutib4d4wwlk4bkla22loepia2h53yf4hysmq6
```
```
lotus state actor-cids --network-version=21
Network Version: 21
Actor Version: 12
Manifest CID: bafy2bzaceay35go4xbjb45km6o46e5bib3bi46panhovcbedrynzwmm3drr4i

Actor             CID  
system           `bafk2bzacedpyoncjbl4oxkjm5e77ngvpy2xfajjc4myfsv2vltvzxioattlu2
init              bafk2bzacecxnr5y7qifzdqqiwfbjxv2yr7lbkcyu3e2mf5zjdncteupxdlquu
placeholder       bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
reward            bafk2bzacedwbtfqlx47fdkxjrb5mwiatheci44x3zkpx33smybc2cme23ymuo
storagepower      bafk2bzacedilnkegizkxz3nuutib4d4wwlk4bkla22loepia2h53yf4hysmq6
verifiedregistry  bafk2bzacebdqi5tr5pjnem5nylg2zbqcugvi7oxi35bhnrfudx4y4ufhlit2k
ethaccount        bafk2bzacea25xfsxwew3h2crer6jlb4c5vwu2gtch2jh73ocuxjhupenyrugy
multisig          bafk2bzaceayap4k4u3lbysaeeixct5fvhmafy3fa5eagvdpk3i4a7ubfdpobe
storagemarket     bafk2bzaceaj74fmooaf3gj3ebwon64ky7hhdh7kytdr3agclqfrqzmpzykh7g
evm               bafk2bzacece5hivtkmi757lyfahgti7xuqgofodb2u65pxgf6oizfwiiwlcsi
account           bafk2bzacecf2pprkbdlpm4e2xz3ufunxtgrgyh2ie3stuqiyhibsvdze7kvri
cron              bafk2bzaceasr5d2skowvzv5mzsyak6waqrgc46ewj6rzbapkfi5woom6n6bwa
datacap           bafk2bzaceaqd77gptubupda7rp7daxkxbkzwc253dxhiyoezxvj2tljmkgpny
eam               bafk2bzacedve6p4ye6zxydjbfs4ode5r2equ7rqzpyltujsq2lu6wyxnijfx4
paymentchannel    bafk2bzaceafgrz5wepbein35gie7rnsu7zttxvgllgdneuefmmy4j5izydtza
storageminer      bafk2bzacedb7bokkzzs7hnbhivp74pgcpermuy7j6b3ncodylksukkxtnn7ze
```

- [ ] At upgrade epoch (200)
    // failed with:

```
.864+0200    INFO    statemgr        stmgr/forks.go:181      CACHED micoin-prtlotus/chain/consensus/common.go:343
  - making vm:
    github.com/filecoin-project/lotus/chain/consensus.(*TipSetExecutor).ApplyBlocks
        /Users/phi/lotus/chain/consensus/compute_state.go:199
  - failed to create FVM:
    github.com/filecoin-project/lotus/chain/vm.NewFVM
        /Users/phi/lotus/chain/vm/fvm.go:287
  - network version not supported
```


### Testrun 2:

- [x] Change `GenesisNetworkVersion` in `build/params_2k.go`
    // Set `const GenesisNetworkVersion = network.Version(XX-1)`
- [x] Building from source works
- [x] Running the daemon works
- [x] Running the miner works
- [x] Network version at init:

```
lotus state network-version
Network Version: 20
```

```
lotus state actor-cids        
Network Version: 20
Actor Version: 11
Manifest CID: bafy2bzaceay35go4xbjb45km6o46e5bib3bi46panhovcbedrynzwmm3drr4i

Actor             CID  
init              bafk2bzacecxnr5y7qifzdqqiwfbjxv2yr7lbkcyu3e2mf5zjdncteupxdlquu
reward            bafk2bzacedwbtfqlx47fdkxjrb5mwiatheci44x3zkpx33smybc2cme23ymuo
system            bafk2bzacedpyoncjbl4oxkjm5e77ngvpy2xfajjc4myfsv2vltvzxioattlu2
cron              bafk2bzaceasr5d2skowvzv5mzsyak6waqrgc46ewj6rzbapkfi5woom6n6bwa
eam               bafk2bzacedve6p4ye6zxydjbfs4ode5r2equ7rqzpyltujsq2lu6wyxnijfx4
ethaccount        bafk2bzacea25xfsxwew3h2crer6jlb4c5vwu2gtch2jh73ocuxjhupenyrugy
evm               bafk2bzacece5hivtkmi757lyfahgti7xuqgofodb2u65pxgf6oizfwiiwlcsi
paymentchannel    bafk2bzaceafgrz5wepbein35gie7rnsu7zttxvgllgdneuefmmy4j5izydtza
storagemarket     bafk2bzaceaj74fmooaf3gj3ebwon64ky7hhdh7kytdr3agclqfrqzmpzykh7g
account           bafk2bzacecf2pprkbdlpm4e2xz3ufunxtgrgyh2ie3stuqiyhibsvdze7kvri
datacap           bafk2bzaceaqd77gptubupda7rp7daxkxbkzwc253dxhiyoezxvj2tljmkgpny
placeholder       bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
multisig          bafk2bzaceayap4k4u3lbysaeeixct5fvhmafy3fa5eagvdpk3i4a7ubfdpobe
storageminer      bafk2bzacedb7bokkzzs7hnbhivp74pgcpermuy7j6b3ncodylksukkxtnn7ze
storagepower      bafk2bzacedilnkegizkxz3nuutib4d4wwlk4bkla22loepia2h53yf4hysmq6
verifiedregistry  bafk2bzacebdqi5tr5pjnem5nylg2zbqcugvi7oxi35bhnrfudx4y4ufhlit2k
```

```
lotus state actor-cids --network-version 21
Network Version: 21
Actor Version: 12
Manifest CID: bafy2bzaceay35go4xbjb45km6o46e5bib3bi46panhovcbedrynzwmm3drr4i

Actor             CID  
account           bafk2bzacecf2pprkbdlpm4e2xz3ufunxtgrgyh2ie3stuqiyhibsvdze7kvri
multisig          bafk2bzaceayap4k4u3lbysaeeixct5fvhmafy3fa5eagvdpk3i4a7ubfdpobe
storagemarket     bafk2bzaceaj74fmooaf3gj3ebwon64ky7hhdh7kytdr3agclqfrqzmpzykh7g
evm               bafk2bzacece5hivtkmi757lyfahgti7xuqgofodb2u65pxgf6oizfwiiwlcsi
paymentchannel    bafk2bzaceafgrz5wepbein35gie7rnsu7zttxvgllgdneuefmmy4j5izydtza
verifiedregistry  bafk2bzacebdqi5tr5pjnem5nylg2zbqcugvi7oxi35bhnrfudx4y4ufhlit2k
placeholder       bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
storageminer      bafk2bzacedb7bokkzzs7hnbhivp74pgcpermuy7j6b3ncodylksukkxtnn7ze
storagepower      bafk2bzacedilnkegizkxz3nuutib4d4wwlk4bkla22loepia2h53yf4hysmq6
system            bafk2bzacedpyoncjbl4oxkjm5e77ngvpy2xfajjc4myfsv2vltvzxioattlu2
cron              bafk2bzaceasr5d2skowvzv5mzsyak6waqrgc46ewj6rzbapkfi5woom6n6bwa
ethaccount        bafk2bzacea25xfsxwew3h2crer6jlb4c5vwu2gtch2jh73ocuxjhupenyrugy
init              bafk2bzacecxnr5y7qifzdqqiwfbjxv2yr7lbkcyu3e2mf5zjdncteupxdlquu
datacap           bafk2bzaceaqd77gptubupda7rp7daxkxbkzwc253dxhiyoezxvj2tljmkgpny
eam               bafk2bzacedve6p4ye6zxydjbfs4ode5r2equ7rqzpyltujsq2lu6wyxnijfx4
reward            bafk2bzacedwbtfqlx47fdkxjrb5mwiatheci44x3zkpx33smybc2cme23ymuo
```

- [x] Pre-migration at epoch (80):

```
2023-07-07T12:56:51.137+0200    WARN    statemgr        stmgr/forks.go:245      STARTING pre-migration
manifest cid: bafy2bzaceay35go4xbjb45km6o46e5bib3bi46panhovcbedrynzwmm3drr4i
2023-07-07T12:56:51.146+0200    INFO    fil-consensus   filcns/upgrades.go:2085 Started 5 workers
2023-07-07T12:56:51.148+0200    INFO    fil-consensus   filcns/upgrades.go:2085 Creating migration jobs
2023-07-07T12:56:51.148+0200    INFO    fil-consensus   filcns/upgrades.go:2085 Result writer started
2023-07-07T12:56:51.151+0200    INFO    fil-consensus   filcns/upgrades.go:2085 Done creating 17 migration jobs after 4.39225ms
2023-07-07T12:56:51.151+0200    INFO    fil-consensus   filcns/upgrades.go:2085 Worker 0 done
2023-07-07T12:56:51.151+0200    INFO    fil-consensus   filcns/upgrades.go:2085 Worker 3 done
2023-07-07T12:56:51.151+0200    INFO    fil-consensus   filcns/upgrades.go:2085 Worker 2 done
2023-07-07T12:56:51.151+0200    INFO    fil-consensus   filcns/upgrades.go:2085 Worker 4 done
2023-07-07T12:56:51.151+0200    INFO    fil-consensus   filcns/upgrades.go:2085 Worker 1 done
2023-07-07T12:56:51.151+0200    INFO    fil-consensus   filcns/upgrades.go:2085 All workers done after 4.570459ms
2023-07-07T12:56:51.151+0200    INFO    fil-consensus   filcns/upgrades.go:2085 Result writer wrote 17 results to state tree after 4.588667ms
2023-07-07T12:56:51.151+0200    INFO    fil-consensus   filcns/upgrades.go:2085 All 17 done after 4.619875ms (3680/s)
2023-07-07T12:56:51.151+0200    WARN    statemgr        stmgr/forks.go:258      COMPLETED pre-migration {"duration": 0.013598125}
```

- [ ] At upgrade epoch (200)
    // Failed

```
023-07-07T13:04:57.644+0200    WARN    statemgr        stmgr/forks.go:201      COMPLETED migration     {"height": "200", "from": "bafy2bzacedhqccwktbemxssyorley52q6zx6rsghx34ceene3wsp7bhr576zw", "to": "bafy2bzacedhqccwktbemxssyorley52q6zx6rsghx34ceene3wsp7bhr576zw", "duration": 0.000399459}
2023-07-07T13:04:57.665+0200    WARN    rpc     go-jsonrpc@v0.3.1/handler.go:444        error in RPC call to 'Filecoin.MinerCreateBlock': failed to process messages from block template:
    github.com/filecoin-project/lotus/chain/consensus/filcns.(*FilecoinEC).CreateBlock
        /Users/phi/lotus/chain/consensus/filcns/mine.go:32
  - failed to load tipset state:
    github.com/filecoin-project/lotus/chain/consensus.CreateBlockHeader
        /Users/phi/lotus/chain/consensus/common.go:343
  - making vm:
    github.com/filecoin-project/lotus/chain/consensus.(*TipSetExecutor).ApplyBlocks
        /Users/phi/lotus/chain/consensus/compute_state.go:199
  - failed to create FVM:
    github.com/filecoin-project/lotus/chain/vm.NewFVM
        /Users/phi/lotus/chain/vm/fvm.go:287
  - network version not supported
2023-07-07T13:04:59.825+0200    INFO    statemgr        stmgr/forks.go:181      CACHED migration        {"height": "200", "from": "bafy2bzacedhqccwktbemxssyorley52q6zx6rsghx34ceene3wsp7bhr576zw", "to": "bafy2bzacedhqccwktbemxssyorley52q6zx6rsghx34ceene3wsp7bhr576zw"}
2023-07-07T13:04:59.826+0200    WARN    rpc     go-jsonrpc@v0.3.1/handler.go:444        error in RPC call to 'Filecoin.MinerCreateBlock': failed to process messages from block template:
    github.com/filecoin-project/lotus/chain/consensus/filcns.(*FilecoinEC).CreateBlock
        /Users/phi/lotus/chain/consensus/filcns/mine.go:32
  - failed to load tipset state:
    github.com/filecoin-project/lotus/chain/consensus.CreateBlockHeader
        /Users/phi/lotus/chain/consensus/common.go:343
  - making vm:
    github.com/filecoin-project/lotus/chain/consensus.(*TipSetExecutor).ApplyBlocks
        /Users/phi/lotus/chain/consensus/compute_state.go:199
  - failed to create FVM:
    github.com/filecoin-project/lotus/chain/vm.NewFVM
        /Users/phi/lotus/chain/vm/fvm.go:287
  - network version not supported
```