Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Align config structure with other public testnet repositories #1

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

pk910
Copy link
Member

@pk910 pk910 commented Aug 29, 2024

Align the metadata folder with the structure of other public testnets (holesky, devnets):

  • Add EL genesis configs (genesis.json, chainspec.json, besu.json)
  • Remove comments from bootstrap_nodes.txt (not allowed by some clients)
  • Add yaml version of cl bootnodes list: bootstrap_nodes.yaml (needed by some clients, with comments)
  • Add el bootnodes list as plain list (enodes.txt) and commented yaml (enodes.yaml)

I've tested the EL genesis files with 3 client pairs (geth/lighthouse, nethermind/lighthouse & besu/lighthouse).
All pairs were able to start sync the mainnet chain with the supplied configs (without using the built in configs)

Rel:
sepolia: eth-clients/sepolia#89
holesky: eth-clients/holesky#111

@arnetheduck
Copy link
Contributor

arnetheduck commented Sep 18, 2024

Add yaml version of cl bootnodes list: bootstrap_nodes.yaml (needed by some clients, with comments)

Add el bootnodes list as plain list (enodes.txt) and commented yaml (enodes.yaml)

An explicit feature of unifying the shape of network metadata was to avoid duplicated yaml/txt files since historically, these were going out of sync with each other.

As such, the better option here would be to raise issues with affected clients instead f duplicating the information - it doesn't matter which of yaml and txt it is, as long as there is one only - there exists no inherent benefit to storing the same information redundantly in two, for this purpose, equivalent formats.

@pk910
Copy link
Member Author

pk910 commented Oct 4, 2024

Heya @arnetheduck,

Yea, I see the problem with files getting out of sync and tend to agree with the general approach to not duplicate the bootnode files.
However, we can't fully prevent these duplicates for the el bootnodes, as some genesis configurations include the el bootnodes as well (besu.json & chainspec.json).

So, what about if we add a check workflow that runs on PRs to the genesis repositories and checks if the bootnodes are in sync in all files?
That way we can easily ensure these files keep in sync.

I'll also gonna remove the txt files, as the yaml is a properly standardized format that can be parsed with standard tools (taking care of comments, etc.).
Most of the problems I was facing with the missing txt versions is actually coming from our toolings and the way how we pass bootnodes to our devnet clients, so it's not super critical to not have them.

@arnetheduck
Copy link
Contributor

So, what about if we add a check workflow that runs on PRs to the genesis repositories and checks if the bootnodes are in sync in all files?

sounds rube-goldbergish but sure. they could just fix their shit too though.

I'll also gonna remove the txt files, as the yaml is a properly standardized format that can be parsed with standard tools (taking care of comments, etc.).

again, I don't greatly care which, but text file with # for comments is also pretty universally a standard, and an awful lot more simple than a full yaml parser which is probably the reason why most of the tooling you refer to supports that and not the yaml (ie you can easily manipulate it with shell scripts even).

@pk910
Copy link
Member Author

pk910 commented Oct 9, 2024

I've removed the txt versions and added a workflow that runs on PRs to main and checks:

  • the el & cl bootnodes for duplicates
  • the el bootnodes for consistency across the el genesis files (chainspec.json & besu.json)

@arnetheduck are you fine with that trade off?

- enode://d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666@18.138.108.67:30303 # bootnode-aws-ap-southeast-1-001
- enode://22a8232c3abc76a16ae9d6c3b164f98775fe226f0917b0ca871128a74a8e9630b458460865bab457221f1d448dd9791d24c4e5d88786180ac185df813a68d4de@3.209.45.79:30303 # bootnode-aws-us-east-1-001
- enode://2b252ab6a1d0f971d9722cb839a42cb81db019ba44c08754628ab4a823487071b5695317c8ccd085219c3a03af063495b2f1da8d18218da2d6a82981b45e6ffc@65.108.70.101:30303 # bootnode-hetzner-hel-001
- enode://4aeb4ab6c14b23e2c4cfdce879c04b0748a20d8e9b59e25ded2a08143e265c6c25936e74cbc8e641e3312ca288673d91f2f93f8e277de3cfa444ecdaaf982052@157.90.35.166:30303 # bootnode-hetzner-fsn-001
Copy link
Contributor

Choose a reason for hiding this comment

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

is this really all there is? 4 bootnodes?

@arnetheduck
Copy link
Contributor

not sure why, but actions is not picking up the workflow

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