Skip to content

Conversation

@KoxyG
Copy link

@KoxyG KoxyG commented Nov 20, 2025

Motivation

Replace deprecated Holesky network support with Hoodi testnet configuration. Hoodi is a new Ethereum testnet that will serve as a replacement testnet, and this change updates Lodestar to support the new network configuration.

Description

This PR removes Holesky network configuration and replaces all references with Hoodi testnet support. Changes include:

  • Removed packages/cli/src/networks/holesky.ts network file
  • Removed packages/config/src/chainConfig/networks/holesky.ts chain config
  • Updated all network references from "holesky" to "hoodi" across CLI, config, and test files
  • Added Hoodi network configuration with proper chain parameters, genesis data, and bootnodes
  • Updated default environment configuration
  • Updated unit tests to reflect the network change

Closes ##8615

AI Assistance Disclosure

-PR content was developed using Cursor for code updates and explanations; I reviewed and verified all changes manually.

@KoxyG KoxyG requested a review from a team as a code owner November 20, 2025 21:39
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @KoxyG, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request undertakes a significant refactoring to deprecate and remove all traces of the Holesky testnet, replacing them with the Hoodi testnet. This change involves deleting specific network definition files, updating network lists and types, and modifying test cases and command examples to reflect the new Hoodi network. The overall purpose is to streamline the codebase by removing outdated network configurations and integrating the current testnet strategy.

Highlights

  • Holesky Network Deprecation: The Holesky testnet configuration and all its associated files have been completely removed from the codebase, indicating its deprecation.
  • Hoodi Network Integration: All references to 'holesky' across various configuration files, type definitions, and utility functions have been systematically replaced with 'hoodi', establishing Hoodi as the new target testnet.
  • Test Suite Updates: Unit tests related to network configurations, paths, and interop comparisons have been updated to align with the transition from Holesky to Hoodi, ensuring test accuracy for the new network.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@KoxyG KoxyG changed the title fix changes from holesky to hoodi fix: remove holesky configs and update tests to hoodi Nov 20, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request removes the 'holesky' testnet configuration and references from the codebase. The changes are mostly mechanical, involving file deletions and find-and-replace operations. The tests have been updated to use the 'hoodi' testnet where 'holesky' was previously used. The changes appear correct and consistent with the goal of removing the 'holesky' network. I've added one comment to improve the documentation in default.env.

@philknows
Copy link
Member

philknows commented Nov 26, 2025

Please also make sure you look at all the unit tests that still depend on holesky configs. Example:
https://github.com/ChainSafe/lodestar/blob/unstable/packages/validator/test/unit/utils/interopConfigs.ts

@philknows philknows marked this pull request as draft December 3, 2025 14:15
@philknows
Copy link
Member

Converting to draft until ready for re-review

@KoxyG KoxyG marked this pull request as ready for review December 5, 2025 20:22
@KoxyG
Copy link
Author

KoxyG commented Dec 5, 2025

Hi @philknows @nflaig I just made the changes

@nflaig nflaig changed the title fix: remove holesky configs and update tests to hoodi chore: remove holesky configs and update tests to hoodi Dec 5, 2025
Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

Great job @KoxyG, looks pretty good

Comment on lines +56 to +60
// Parse JSON string if needed (interopConfigs stores BLOB_SCHEDULE as JSON string)
const remoteBlobScheduleValue =
typeof externalSpecJson[key] === "string" ? JSON.parse(externalSpecJson[key]) : externalSpecJson[key];
const localBlobSchedule = deserializeBlobSchedule(localSpecJson[key]).sort((a, b) => a.EPOCH - b.EPOCH);
const remoteBlobSchedule = deserializeBlobSchedule(externalSpecJson[key]).sort((a, b) => a.EPOCH - b.EPOCH);
const remoteBlobSchedule = deserializeBlobSchedule(remoteBlobScheduleValue).sort((a, b) => a.EPOCH - b.EPOCH);
Copy link
Member

Choose a reason for hiding this comment

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

these changes shouldn't be required, the BLOB_SCHEDULE should be an array, not a string

BASE_REWARD_FACTOR: "64",
BELLATRIX_FORK_EPOCH: "0",
BELLATRIX_FORK_VERSION: "0x30000910",
BLOB_SCHEDULE: '[{"EPOCH": "52480", "MAX_BLOBS_PER_BLOCK": "15"}, {"EPOCH": "54016", "MAX_BLOBS_PER_BLOCK": "21"}]',
Copy link
Member

@nflaig nflaig Dec 5, 2025

Choose a reason for hiding this comment

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

what's the reason that this is a stringifed array? clients should be returning this as a json array

tekuHoodiConfig,
} from "./interopConfigs.js";

const testCases: {name: string; items: [ChainConfig, Record<string, string>]}[] = [
Copy link
Member

Choose a reason for hiding this comment

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

you will need to update this type and use SpecJson from @lodestar/config

Suggested change
const testCases: {name: string; items: [ChainConfig, Record<string, string>]}[] = [
const testCases: {name: string; items: [ChainConfig, SpecJson]}[] = [

@nflaig
Copy link
Member

nflaig commented Dec 5, 2025

there are two more places we should update to hoodi

command: "self-slash-proposer --network holesky",

(also feel free to correct the example command)

/** CONFIG_NAME field of runtime config (mainnet, sepolia, holesky, etc.) */

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.

3 participants