feat: set nv27 mainnet upgrade epoch#6086
Conversation
WalkthroughPromotes actor bundle versions from v17.0.0-rc1 to v17.0.0 across calibnet, butterflynet, and devnet; adds mainnet v17.0.0 manifest and actor bundle; sets mainnet GoldenWeek height to 5_348_280 with v17.0.0 bundle; re-enables NV27 GoldenWeek state migration for mainnet. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Node
participant ChainSync as Chain Sync
participant NetCfg as Network Config
participant HeightInfos as HEIGHT_INFOS
participant Bundles as Actor Bundle Registry
participant SM as State Migration
Node->>ChainSync: Import tipsets
ChainSync->>NetCfg: Identify network (mainnet)
ChainSync->>HeightInfos: Lookup upgrade at current epoch
alt Epoch == GoldenWeek (5_348_280)
HeightInfos->>Bundles: get_bundle_cid("v17.0.0")
Bundles-->>HeightInfos: v17.0.0 CID
ChainSync->>SM: nv27::run_migration(DB)
SM-->>ChainSync: Migration result (success/failure)
else Before/After GoldenWeek
Note over ChainSync: Continue normal processing
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
✨ Finishing touches
🧪 Generate unit tests
Comment Pre-merge checks❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
|
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
src/networks/actors_bundle.rs (1)
87-109: ACTOR_BUNDLES: add mainnet v17.0.0 and promote testnets/devnet — OK; add test case for v17Small nit: extend test_actor_major_version_correct with v17 to lock behavior.
@@ fn test_actor_major_version_correct() { let cases = [ ("8.0.0-rc.1", 8), ("v9.0.3", 9), ("v10.0.0-rc.1", 10), ("v12.0.0", 12), ("v13.0.0-rc.3", 13), ("v13.0.0", 13), ("v14.0.0-rc.1", 14), + ("v17.0.0", 17), ];
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (7)
build/manifest.json(4 hunks)src/networks/actors_bundle.rs(3 hunks)src/networks/butterflynet/mod.rs(1 hunks)src/networks/calibnet/mod.rs(1 hunks)src/networks/devnet/mod.rs(1 hunks)src/networks/mainnet/mod.rs(1 hunks)src/state_migration/mod.rs(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: hanabi1224
PR: ChainSafe/forest#5930
File: build.rs:64-77
Timestamp: 2025-08-13T09:43:20.301Z
Learning: hanabi1224 prefers hard compile-time errors in build scripts rather than runtime safeguards or collision detection, believing it's better to fail fast and fix root causes of issues like malformed snapshot names.
🧬 Code graph analysis (5)
src/networks/devnet/mod.rs (3)
src/networks/butterflynet/mod.rs (1)
get_bundle_cid(112-117)src/networks/calibnet/mod.rs (1)
get_bundle_cid(101-106)src/networks/mainnet/mod.rs (1)
get_bundle_cid(98-103)
src/networks/butterflynet/mod.rs (3)
src/networks/calibnet/mod.rs (1)
get_bundle_cid(101-106)src/networks/devnet/mod.rs (1)
get_bundle_cid(170-175)src/networks/mainnet/mod.rs (1)
get_bundle_cid(98-103)
src/state_migration/mod.rs (1)
src/state_migration/nv27/migration.rs (1)
run_migration(55-88)
src/networks/mainnet/mod.rs (3)
src/networks/butterflynet/mod.rs (1)
get_bundle_cid(112-117)src/networks/calibnet/mod.rs (1)
get_bundle_cid(101-106)src/networks/devnet/mod.rs (1)
get_bundle_cid(170-175)
src/networks/calibnet/mod.rs (3)
src/networks/butterflynet/mod.rs (1)
get_bundle_cid(112-117)src/networks/devnet/mod.rs (1)
get_bundle_cid(170-175)src/networks/mainnet/mod.rs (1)
get_bundle_cid(98-103)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
- GitHub Check: Build forest binaries on Linux AMD64
- GitHub Check: tests-release
- GitHub Check: tests
- GitHub Check: Build MacOS
- GitHub Check: Build Ubuntu
- GitHub Check: cargo-publish-dry-run
- GitHub Check: All lint checks
🔇 Additional comments (9)
src/networks/devnet/mod.rs (1)
163-166: GoldenWeek: promote bundle to v17.0.0 — looks goodMatches ACTOR_BUNDLES updates and keeps env-override behavior. No concerns.
src/networks/butterflynet/mod.rs (1)
108-109: Butterflynet GoldenWeek → v17.0.0 — OKAligned with manifest and bundle table.
build/manifest.json (4)
1157-1166: Calibnet: promote to v17.0.0 — OKCID/version consistent with actors_bundle.rs.
1433-1445: Butterflynet: promote to v17.0.0 — OKMatches bundle table.
2251-2260: Devnet: promote to v17.0.0 — OKConsistent across sources.
3055-3145: Approve Mainnet v17.0.0 manifest — roster and CID coherentActors (16) and bundle_cid match src/networks/actors_bundle.rs.
src/networks/calibnet/mod.rs (1)
97-98: Calibnet GoldenWeek → v17.0.0 — OKAligned with manifest/bundles.
src/state_migration/mod.rs (1)
50-51: Re-enable NV27 (GoldenWeek) migration on Mainnet — OKOrdering is consistent and the bundle is present: make_height!(GoldenWeek, 5_348_280, get_bundle_cid("v17.0.0")) in src/networks/mainnet/mod.rs, v17.0.0 registered for "mainnet" in src/networks/actors_bundle.rs, and Height::GoldenWeek → nv27::run_migration:: is present in src/state_migration/mod.rs.
src/networks/mainnet/mod.rs (1)
93-95: Approve: Set Mainnet GoldenWeek to 5,348,280 (v17.0.0) — verified
- Lotus v1.34.0 UpgradeGoldenWeekHeight = 5,348,280 (2025-09-24T23:00:00Z).
- Tock check: 5,348,280 > 5,138,040 (OK).
- Bundle wiring: "bafy2bzaceai74ppsvuxs3nvpzzeuptdr3wl7vmdpbphvtz4qt5hfq2qdfvz3e" @ "v17.0.0" present in src/networks/actors_bundle.rs:108.
|
@hanabi1224 Could you please check that Forest outputs the same stateroot after the migration as Lotus? |
@LesnyRumcajs just tested and updated the result in the PR description. |
Summary of changes
https://github.com/filecoin-project/lotus/blob/v1.34.0/build/buildconstants/params_mainnet.go#L142
Performed a dummy upgrade @ epoch 5325160, Lotus and Forest produces the same state tree (bafy2bzacebggqplsoqxtyobh5kct4hmegtylvtbedyn5auzuzadfooqp5ybjm)
Lotus:
Forest:
Changes introduced in this pull request:
Reference issue to close (if applicable)
Closes #5989
Other information and links
Change checklist
Summary by CodeRabbit
New Features
Chores