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

Deprecate this repo, move to per-network repos #84

Open
arnetheduck opened this issue Mar 20, 2023 · 9 comments
Open

Deprecate this repo, move to per-network repos #84

arnetheduck opened this issue Mar 20, 2023 · 9 comments

Comments

@arnetheduck
Copy link
Contributor

Given how sepolia and görli already have their own repos in the same format as clients use for loading genesis etc, I'd suggest the following changes given that the rest of the information in this repo in particular is mostly obsolete:

@q9f
Copy link
Member

q9f commented Mar 25, 2023

I agree, it makes sense to have long-standing, public networks in their own, contained repositories. sepolia is currently maintained in two places: eth-clients/merge-testnets#22

for mainnet, we should consider hosting it along the spec though, or maybe under the ethereum github org.

@arnetheduck
Copy link
Contributor Author

for mainnet, we should consider hosting it along the spec though, or maybe under the ethereum github org.

I'm about to suggest the opposite direction in the spec repo: remove the instance-specific variables in the spec examples (ie fork epochs) and replace them with dummy values (ie FAR_FUTURE_EPOCH) - the spec is generic, so I feel it's a bit odd to special-case the mainnet "instance" - also, there is ephemeral information in the configuration such as boot nodes as well as large cached binary blobs (genesis) which I think generally don't belong in a spec repo that describes a protocol.

I believe the mainnet repo is / should be a shared responsibility between the the EF and client teams (which is why eth-clients was set up) - the spec is already under EF control meaning there is no ambiguity in terms of what we're all implementing whereas a chain definition contains the information we want clients to agree on before launching into a hard fork and that largely are maintained by client teams (ie fork epochs, boot nodes etc) - I see it as a net positive that this repo is owned by a wider range of actors.

@parithosh
Copy link
Member

We could move to a folder structure similar to what we have here: https://github.com/ethpandaops/dencun-devnets/tree/master/network-configs/devnet-12

That's the folder we use for every client out there in testnets, would definitely be happy if some of the redundant files get deleted in the process.

@arnetheduck
Copy link
Contributor Author

We could move to a folder structure similar to what we have her

Well, I'm thinking mostly about what to call the top-level folder, ie holesky calls this custom_config_data in sepolia it's bepolia and your link has .. well, the testnet name but that's because it's a multi-testnet repo (vs a single-network repo).

I think if we have something like:

README.md
config/
  genesis.ssz
  etc

you can reuse that for testnets as well, ie you'd have:

testnet-1/
  config/
  tranches/
  etc...
testnet-2/
  config/
  tranches/
  etc...

tranches in particular are of no interest to clients while the files in config are (we load genesis from there, as well as bootnodes and chain parameters - it's nice to have these separated from ephemeral-testnet stuff... wdyt?

@protolambda
Copy link
Contributor

We used to have https://github.com/eth-clients/eth2-mainnet maybe it's time to revive that repo, rather than starting a new one?

@arnetheduck
Copy link
Contributor Author

sadly, eth2 has fallen out of favor - fine with me but ..

@parithosh
Copy link
Member

parithosh commented Mar 3, 2024

We could move to a folder structure similar to what we have her

Well, I'm thinking mostly about what to call the top-level folder, ie holesky calls this custom_config_data in sepolia it's bepolia and your link has .. well, the testnet name but that's because it's a multi-testnet repo (vs a single-network repo).

I think if we have something like:

README.md
config/
  genesis.ssz
  etc

you can reuse that for testnets as well, ie you'd have:

testnet-1/
  config/
  tranches/
  etc...
testnet-2/
  config/
  tranches/
  etc...

tranches in particular are of no interest to clients while the files in config are (we load genesis from there, as well as bootnodes and chain parameters - it's nice to have these separated from ephemeral-testnet stuff... wdyt?

I think we can leave traches out of it and just include the validator indexes of known genesis entities in the README. I like the idea of having the format as, this would also work with all of our tooling:

README.md
config/
  genesis.ssz
  etc

re: eth2-mainnet, Maybe we can just rename the repo to mainnet and continue using it? Although afaik mainnet configs are derived from the consensus-specs repo anyway, so im not sure if it provides any extra value.

@mratsim
Copy link
Contributor

mratsim commented Mar 4, 2024

network-mainnet, network-holesky, network-..., would help with discoverability and having all next to each other when sorting.

Alternatively, we rename the repo eth-networks and put all network config (execution and consensus) in this repo.
Sepolia and Goerli are being deprecated soon anyway.

@arnetheduck
Copy link
Contributor Author

Maybe we can just rename the repo to mainnet and continue using it?

I don't quite see the usefulness - we'll get some stale git commit history, but apart from that, not much - a clean repo will have a clean history

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

No branches or pull requests

6 participants
@arnetheduck @parithosh @protolambda @mratsim @q9f and others