Skip to content

feat: nv28 support for devnet#6943

Merged
LesnyRumcajs merged 4 commits intomainfrom
nv28-2k-testing
Apr 20, 2026
Merged

feat: nv28 support for devnet#6943
LesnyRumcajs merged 4 commits intomainfrom
nv28-2k-testing

Conversation

@LesnyRumcajs
Copy link
Copy Markdown
Member

@LesnyRumcajs LesnyRumcajs commented Apr 20, 2026

Summary of changes

Changes introduced in this pull request:

  • added nv28 support for devnets

Reference issue to close (if applicable)

Closes #6913

Other information and links

Change checklist

  • I have performed a self-review of my own code,
  • I have made corresponding changes to the documentation. All new code adheres to the team's documentation standards,
  • I have added tests that prove my fix is effective or that my feature works (if possible),
  • I have made sure the CHANGELOG is up-to-date. All user-facing changes should be reflected in this document.

Outside contributions

  • I have read and agree to the CONTRIBUTING document.
  • I have read and agree to the AI Policy document. I understand that failure to comply with the guidelines will lead to rejection of the pull request.

Summary by CodeRabbit

  • New Features

    • Added FireHorse (NV28) support for devnet at v18.0.0-rc1 with a bundled actor set available.
  • Chores

    • Updated devnet node image and build toolchain; exposed environment variable to control FireHorse activation height and propagated it to services.
    • Registered the matching actor bundle and state migration; slightly extended devnet sync timeout.
  • Documentation

    • Added CHANGELOG entry noting NV28/devnet support and configuration.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 20, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 826a90dd-babb-401d-aff4-4fc9213941f6

📥 Commits

Reviewing files that changed from the base of the PR and between 9678864 and 5061a23.

📒 Files selected for processing (1)
  • scripts/devnet/check.sh
✅ Files skipped from review due to trivial changes (1)
  • scripts/devnet/check.sh

Walkthrough

Adds NV28/FireHorse support for devnet: new devnet actor manifest and bundle CID, actor-bundle registration, devnet height info updated to reference the bundle, state migration wired for FireHorse, and devnet container env/image/build updates.

Changes

Cohort / File(s) Summary
Manifest & Devnet Actors
build/manifest.json
Added a new devnet manifest entry for v18.0.0-rc1 with bundle_cid, actor_list_cid, and full manifest.actors mapping (actors 1–16).
Actor Bundles Registry
src/networks/actors_bundle.rs
Registered new ActorBundleInfo for devnet: CID bafy2bzacedgr2tg3uadekvxcuxpazjss3e6nf5tocs6n6e4nbagm6ti2npfey at v18.0.0-rc1.
Devnet Height & Migration Wiring
src/networks/devnet/mod.rs, src/state_migration/mod.rs
FireHorse HEIGHT_INFOS now includes get_bundle_cid("v18.0.0-rc1"); added Height::FireHorsenv28::run_migration::<DB> mapping for Devnet.
Devnet container config & compose
scripts/devnet/.env, scripts/devnet/docker-compose.yml, scripts/devnet/lotus.dockerfile
Updated LOTUS_IMAGE to ghcr.io/chainsafe/lotus-devnet:2026-04-20-4f7bde5; added FIREHORSE_HEIGHT=28 and changed TARGET_HEIGHT=32; propagated LOTUS_FIREHORSE_HEIGHT / FOREST_FIREHORSE_HEIGHT in compose; bumped Go base image and pinned Lotus commit in lotus.dockerfile.
Devnet health/check script
scripts/devnet/check.sh
Extended sync timeout from 300s to 360s.
Changelog
CHANGELOG.md
Documented NV28/FireHorse support for devnets and added note about FOREST_FIREHORSE_HEIGHT env var.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested reviewers

  • hanabi1224
  • akaladarshi
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: nv28 support for devnet' directly and clearly describes the main change in the changeset, which adds NV28 support for devnets across multiple files.
Linked Issues check ✅ Passed The PR successfully implements NV28 devnet support by adding actor bundle CIDs, state migration mappings, environment configuration, and network upgrade parameters, meeting the issue requirement to enable NV28 testing.
Out of Scope Changes check ✅ Passed All changes are directly related to implementing NV28 support for devnets as specified in issue #6913; no unrelated modifications are present.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch nv28-2k-testing
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch nv28-2k-testing

Comment @coderabbitai help to get the list of available commands and usage tips.

@LesnyRumcajs LesnyRumcajs marked this pull request as ready for review April 20, 2026 15:08
@LesnyRumcajs LesnyRumcajs requested a review from a team as a code owner April 20, 2026 15:08
@LesnyRumcajs LesnyRumcajs requested review from akaladarshi and hanabi1224 and removed request for a team April 20, 2026 15:08
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
scripts/devnet/.env (1)

25-26: Optional: reorder dotenv keys to silence linter warnings.

dotenv-linter reports unordered keys for FIREHORSE_HEIGHT and TARGET_HEIGHT. Not functionally blocking, but worth cleaning up to keep lint output quiet.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@scripts/devnet/.env` around lines 25 - 26, Reorder the two dotenv entries so
keys are alphabetically ordered to satisfy dotenv-linter: swap the lines for
FIREHORSE_HEIGHT and TARGET_HEIGHT so TARGET_HEIGHT appears before
FIREHORSE_HEIGHT, keeping their values unchanged; this small reordering
(affecting the keys TARGET_HEIGHT and FIREHORSE_HEIGHT) will silence the linter
warning.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@scripts/devnet/.env`:
- Around line 25-26: Reorder the two dotenv entries so keys are alphabetically
ordered to satisfy dotenv-linter: swap the lines for FIREHORSE_HEIGHT and
TARGET_HEIGHT so TARGET_HEIGHT appears before FIREHORSE_HEIGHT, keeping their
values unchanged; this small reordering (affecting the keys TARGET_HEIGHT and
FIREHORSE_HEIGHT) will silence the linter warning.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ca538500-c9b6-4dcb-a91e-572b3c435e2e

📥 Commits

Reviewing files that changed from the base of the PR and between 5dd60ad and f90b208.

📒 Files selected for processing (7)
  • build/manifest.json
  • scripts/devnet/.env
  • scripts/devnet/docker-compose.yml
  • scripts/devnet/lotus.dockerfile
  • src/networks/actors_bundle.rs
  • src/networks/devnet/mod.rs
  • src/state_migration/mod.rs

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 20, 2026

Codecov Report

❌ Patch coverage is 75.00000% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 63.91%. Comparing base (5dd60ad) to head (5061a23).
⚠️ Report is 2 commits behind head on main.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
src/state_migration/mod.rs 0.00% 1 Missing ⚠️
Additional details and impacted files
Files with missing lines Coverage Δ
src/networks/actors_bundle.rs 90.30% <100.00%> (+0.04%) ⬆️
src/networks/devnet/mod.rs 93.08% <100.00%> (+0.04%) ⬆️
src/state_migration/mod.rs 79.12% <0.00%> (-0.88%) ⬇️

... and 25 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5dd60ad...5061a23. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@scripts/devnet/check.sh`:
- Line 29: The inline comment documenting the timeout value is stale — update
the earlier comment that mentions 300s to reflect the new 360s value so it
matches the computed timeout variable (timeout=$((start_time + 360))) and avoids
CI confusion; search for the comment referencing "300s" or "5 minutes" in the
same script and change it to "360s" or "6 minutes" to match the timeout
computation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 96ff29ca-8ae1-4697-8b66-131bdd686272

📥 Commits

Reviewing files that changed from the base of the PR and between 261b1f2 and 9678864.

📒 Files selected for processing (1)
  • scripts/devnet/check.sh

Comment thread scripts/devnet/check.sh
@LesnyRumcajs LesnyRumcajs added this pull request to the merge queue Apr 20, 2026
Merged via the queue into main with commit 462e824 Apr 20, 2026
46 checks passed
@LesnyRumcajs LesnyRumcajs deleted the nv28-2k-testing branch April 20, 2026 20:31
@coderabbitai coderabbitai Bot mentioned this pull request Apr 21, 2026
6 tasks
parthshah1 added a commit to parthshah1/Filecoin-Antithesis that referenced this pull request Apr 21, 2026
- Pin lotus to d036ad9 and forest to nv28-2k-testing (post-NV28 binaries)
- Rename XX_HEIGHT → FIREHORSE_HEIGHT across every profile (matches
  FOREST_FIREHORSE_HEIGHT / LOTUS_FIREHORSE_HEIGHT expected by the
  new binaries, per ChainSafe/forest#6943)
- Lower GOLDENWEEK=20 / FIREHORSE=50 in all profiles so every run
  spends most of its time in post-NV28 state
- Refactor upgrade_vectors.go to multi-boundary with per-assertion
  boundary labels; adds doChainProgressAcrossBoundary (Sometimes,
  stall detector) and doPostUpgradeNodeHealth (Sometimes, robust to
  Antithesis fault injection); null-tipset guard on upgrade activation
- DoUpgradeSuite remains gated to env.fip only (weight 0 elsewhere)
  so the other profiles' reports stay focused on their own scope

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[NV28] 2k network testing

2 participants