ethereum/pm

Post-Merge testnets

timbeiko opened this issue Β· 21 comments

On ACD130, we discussed what to do about current testnets so that we can set the community's expectations. We didn't reach a full consensus, but roughly agreed that we should have both testnets with public validator participation and testnets with a privately-controlled validator set, and that it makes sense to aim to deprecate some testnets over time as they become bloated.

Opening this issue to track conversations on concrete next steps. Thoughts from PΓ©ter:
Screen Shot 2022-01-21 at 11 00 30 AM

I agree with Peter here, though once again I would like to advocate that Sepolia have mostly public validators, not pre-authorized validators, so it fails to reach finality sometimes, leaks stakers, etc.

@MicahZoltu but Goerli/Prater would have public validators. Doesn't it make sense to have one network with a smaller set of authorized ones?

My thinking was that Goerli/Prater would have a "privileged" set of stakers (e.g., 90% of stake is owned by well known people in the ecosystem who have publicly committed to running a validator full time).

Sepolia on the other hand would be a FFA, where anyone who can get a hold of some Sepolia ETH can stake it and the people with the large holdings commit to not using them to prop up the network. We should expect this to result in Sepolia frequently failing to achieve finality, leaking validators, then achieving finality, repeat.

The purpose of the Sepolia network is so that dapp developers have a public place where they can harden their software against situations that can happen on mainnet (failure to finalize). If you are in early prototype development and you just want to test the happy path then you would use Goerli/Prater.

Note: If there is some reason to swap that so Goerli is the one that fails to achieve finality and Sepolia is the one that is propped up, that is fine with me.

Prater is primed to be a good mainnet-looking testnet that finalizes regularly given size of vset and the operators (client teams, ef, etc) of ~80%+.

One idea from @ajsutton on the CL call was for the "chaos" testnet to be handled more deliberate rather than leaving it to people to add/remove validators. For example, we could shut down N% of validators periodically, introduce forks, etc.

Another idea from @arnetheduck was to do insecura-style experiments more regularly.

incentivized attacks / capture the flag style :)
each validator is assigned blue or red colour and tries to stay connected :)

q9f commented

Created the Sepolia package for DAppNode. https://github.com/q9f/DAppNodePackage-sepolia-geth

Do we have a Sepolia genesis or chain spec somewhere? Or how do I handle the prealloc in Geth?

During #508, we agreed that we will run through the following order for merge testnets:

  1. Ropsten
  2. Goerli
  3. Sepolia

We'll do Ropsten first, in case there are misconfiguration issues that make the fork not go smoothly. Once it is stable, we'll then do Goerli and Sepolia in closer succession.

Rinkeby won't be run through The Merge.

q9f commented

I will be hosting a session at the OG Council in Amsterdam next weekend on post-merge testnet strategies if anyone is interested.

Where can I get details on why Ropsten first? It feels like Ropsten should be last, as it is the closest network to mainnet, and thus we ideally want to witness it go off without any problems.

I just realized this is in reference to the ACD call, which I was in. I don't remember discussing this... but that is probably just my old failing memory... do you happen to have an approximate timestamp where this was discussed?

40:00 is when the discussion occurs, though it is just Tim proposing something and then the rest of us getting distracted (conversation picks back up at around 46:00). 😬 Not a hill I want to die on, though I do think Ropsten last is better than Ropsten first.

q9f commented

We fork Ropsten first because it is to be deprecated. Goerli will be legacy, Sepolia a fresh start.

Potentially dumb question: I use Rinkeby now to test my contracts. What should I use instead? Sepolia? Where do I get ETH for it? Is there an etherscan for it?

@cyberpunketh Sepolia doesn't have broad infra support yet, but Goerli does today!

q9f commented

I will be hosting a session at the OG Council in Amsterdam next weekend on post-merge testnet strategies if anyone is interested.

Session notes are up for discussion: https://ethereum-magicians.org/t/og-council-post-merge-testnets/9034

q9f commented

Created a public endpoint for sepolia if anyone needs.

  • HTTPS: https://nunki.htznr.fault.dev/rpc
  • WSS: wss://nunki.htznr.fault.dev/ws

See also

A known entity also setup a landing page to help compile resources: https://sepolia.dev/
(Side note, I'm a huge fan of Sepolia using a dolphin as a testnet mascot :D)

TL;DR:

  • Goerli will be maintained with an open validator set
  • Sepolia will be maintained with a permissioned validator set
  • Kiln, Ropsten, Rinkeby will be deprecated, more on that here