Testnet workgroup: Paths out of the Goerli supply mess

The idea of an ephemeral testnet for stakers came up recently during discussions at Devcon. I agree with points brought up by @chrishobcroft and find it as a feasible solution.
More details in my recent proposal: Testnet for stakers - HackMD

1 Like

I actually gave a talk on this where I recommended to test validators on Goerli (for now) and applications on Sepolia only:

The problem is that many application stacks now just started to migrate away from Rinkeby and Kovan to Goerli instead of directly skipping to Sepolia. We should have started communications earlier along with the deprecation notice of the other testnets…

5 Likes

I think I understand now why there’s GöETH demand. Protocols like zkSync bridge GöETH over to L2, where they can be used to mint NFTs like the recent zkApe.

This means that whichever network is the long-running dApp testnet will always be pathological with regards to its token use: It’ll always have some value. Whether it also has scarcity is another question. Sepolia for example is permissioned, which means “stupid amounts of SepplETH” does not create issues re griefing the validator set.

We could sunset - or just restart - Görli and have a continuously refreshed validator testground with “plenty of” testETH, while Sepolia becomes the playground for “rational actors”, our beloved utter degens. The continous, every N months, refresh of the validator testnet gives a strong incentive for dApps to land on Sepolia, so we don’t find ourselves in this same situation again.

We can split the use cases, make testETH not scarce for both use cases, and that should do the trick. We can’t make testETH on the dApp testnet not valuable.

It’ll always hold value as long as people want NFTs: But as long as it’s also abundant, that value is so close to zero as to be indistinguishable from zero.

1 Like

Great to see this being discussed. Remy’s solution is good.I’m also in favour of restarting the testnet regularly.

We could approach it another way and every wallet gets 32goerlieth when created so from a user perspective they don’t have to hunting for it to test their validator setup.

1 Like

Fundamentally, testnet ETH has utility. It is useful in the sense that it can be used to perform work and it can be used to store data. The main way to keep it free is to have an unlimited supply or keep this perception that it is unlimited. Any friction in trying to obtain testnet ETH for any reason will cause someone somewhere to start assigning a real value and a price to that testnet ETH. This is basic supply and demand.

Unlimited testnet ETH has some cons. One of them being the ability for someone to spam the network and potentially deny others from using it. Another one is the ability, in a permisionless consensus layer, to spin up a large amount of validators and break the consensus layer with different levels of majority in the validator set. There are various ways to deal with a malicious actor who is trying to spin up a large amount of validators and that will be visible many weeks and months in advance with the current activation queue.

The relation between the desire to keep it free and the need to have at least a perceived unlimited supply is a tenuous one. The obvious solutions are to limit supply and/or assign a price above free to testnet ETH. A lot of efforts and energy has been spent in trying to limit supply and find a fair way to perform distribution. Even if we like to say that testnet ETH should be free, the most successful methods for distributing testnet ETH right now force a cost on the user requesting it: time, CPU, third party verification, etc. An unpopular solution that would likely solve many issues around this would be to assign a very low base price to testnet ETH. It could be something like 0.01 USD per 10 testnet ETH. I suspect there might be even better cost or price solutions to be explored.

On the supply side, seeding or initializing a testnet with a large amount of ETH, let’s say 1000, in every wallet address that has ever received or sent a transaction on mainnet or any testnet might be a nice way to seed the distribution. It has a few risks and cons too. It isn’t fair to new developers for instance. It would still need a nice way to distribute new testnet ETH. Faucet distribution is still very hard for any faucet who is going to try to distribution any large amount.

Meeting minutes are on Github:

thanks, everyone for attending and chiming in and sorry for the jitsi issues.

rough meeting minutes (nov/01/2022)

problem statement
  • huge demand for goerli ether due to testing staker setups (32 ether for each validator)

  • after testnet deprecation earlier this year, a lot of projects migrate to goerli instead of sepolia

  • faucets getting drained or hacked rendering the network unusable for many developers

  • goerli ether being traded otc does make it easier to buy them even though they are free

  • current situation breaks down into two problems

    • stakers have no easy way to test staking
    • developers actually pay money to test their applications
discussion of protocol changes
  • custom protocols for testnets have been an issue in the past (see: morden consensus failure)

  • execution-layer teams are not willing to support a testnet-only fork or custom protocol

  • there might be a chance to utilize upcoming withdrawals in capella fork on the consensus-layer side

application-layer point of view
  • need long-term guarantees for testnets
  • the migration from kovan/rinkeby to goerli was very short notice for many projects
  • migration for larger projects is often very involved
  • maintaining support for more than one testnet binds a lot of resources
  • currently huge demand on goerli, the base fee is around 30 gwei (similar levels to mainnet)
  • inflating the supply might also increase the base fee
proposal to have a “release and support schedule” for testnets
  • launch new testnet every 2 or 3 years, pre-announce and “end-of-life date” (5 years lifetime? tbd)

    • goerli end of life: 2024?
    • sepolia end of life: 2026?
    • sepolia would be the right place to migrate/test applications
    • sepolia is permissionless, has better stability guarantees, and better total supply
  • 5-years testnet long-term support seems reasonable but for goerli this is still too short notice

    • many projects are migrating to goerli instead of sepolia as we speak
    • missed opportunity prior to the merge to communicate clearly the expectations for the testnets
  • benefits: gives projects long-term guarantees for operation and planning capabilities for future migrations

  • open question: is there a benefit for applications to run on permissionless networks (concerns about the permissioned nature of sepolia)?

  • open question: if goerli is deprecated, where to test large validator sets for consensus-layer teams?

    • in general, need to discuss the different needs of application and protocol developers
    • there is always a need for a ropsten-like testnet
  • action item: work out and present a testnet release and support schedule; discuss with community stakeholders

ephemeral testnet for stakers
  • mario worked out a proposal

  • action item: refine this with the home-staker community and map out a launch and maintenance plan

please correct me if I got something wrong or forgot an aspect

1 Like

Two immidiate action items are:

Also, the staker community with async refine the ephemeral testnet idea by Mario

“faucets work fine, what’s actually rendering the network unusable is literally 100% of substantial goerli supply being hoarded instead of sent to faucets.”

That’s right. It cannot be prevented when distributing funds freely at the same time.
There will always be people that hoard these funds for personal satisfaction or whatever reason they may think of.
Ideally there would be enough funds in the network so we don’t need to take special care of them.

The current situation on goerli actually introduced a financial benefit for those who hoarded goerli funds earlier. So I’d expect more people are hoarding funds in future testnets as it could happen again.

I really appreciate the efforts to inflate the goerli supply, but there are also some caveats we need to think about - especially that the balance of any account must not exceed the max safe integer value as q9f already pointed out.
I think that limitation will be problematic very soon if we introduce the withdrawal boost factor.
In it’s current proposal state it would allow farmers to multiply their whole balance in every partial withdrawal interval (see my comment on simulate deposits/withdrawals under constraints of prater with various withdrawal boost factor · Issue #135 · eth-clients/goerli · GitHub)
Just think about what happens if someone runs 100 validators and repeatedly deposits his whole balance to the validator that gets partially withdrawn next… …

I’d suggest creating the “Holesovice” testnet much earlier (probably even this year) and initialize it with more than enough funds. That would be a direct successor of goerli, allowing all kind of staking tests etc.

We should still keep up goerli for some time.
It’s still great for testing, but will slowly die due to the funding issues during the LTS timespan.

2 Likes

I think you’re underestimating the numbers a little bit :wink:
My faucet currently distributes 2000 GoETH every day - and it’s still a very low amount everyone gets.
Sure there are some bots and farmers, but these can’t be prevented if we’d like to distribute funds “freely”.

Even if some whales would supply the available faucets, it’s more a question of weeks than years till the faucets are drained again.

So the only suitable way from my perspective is inflating the supply in a safe way or head over to the next testnet with enough funds.

You’re underestimating the numbers again.

I’m just talking for my own faucet (not looking into other wallets):
Testnet eth sent to my faucet since this workgroup was started 9days ago: 17,18 GoETH
Testnet eth sent to my faucet in 2022 total: 351000 GoETH
I can give you an export of the numbers if you’re really interested.

Anyway these reviews of historic fund transfers aren’t very helpful for the situation.
We all know the situation is annoying (I think everyone feels the same)
But just nagging around without any constructive argument doesn’t help anyone.

If a goerli whale would refill one of the less protective faucets, it would just be drained again within days.

(post deleted by author)

hi , we are faucet-dao team.

We try a new type of faucet, we call it a POT faucet , proof of trade. Let me show why we are important.

firstly, the penalty for malicious behavior by the pos network is the confiscation of tokens , on the goelri network, that’s goerli eth . If goerli eth is worthless, then punishment is worthless . Hackers can destroy and attack unscrupulously.

Moreover, if goerli can have a large group of nodes that are really validators for their own interests, then goerli will be the closest and safest test network to the mainnet, and the test in goerli will be more valuable. I believe that goerli may also meet some issues will be valuable to ethereum.

Secondly, as far as I know, many testnet test coins can be sold for money, whether they are in short supply or not. It is very difficult for the network to provide stable faucet for a long time, and all kinds of problems will occur, not to mention the most famous testnet(goerli) , used by many developers and users .

Finally, from the user’s point of view, users hope that they can easily obtain test coins instead of looking around for faucets that are still available. With the current faucet, one person may only receive 0.1 goerli eth a day, which is not enough for everyone, but it can resist hacker attacks. This is ridiculous, the purpose of the faucet is to let the user use it, so almost all faucets failed.

But look at our faucet-dao, hundreds of people have bought goerli eth from us, and everyone who bought it is very happy, they are grateful to us. We like to make our project an exploration of the community. Once we sold over 50k goerli eth at a very low price, about 1 $ = 2000+ goerli eth. We don’t have a strong desire to control, we hope to solve the problem of goerli eth.

What do you think of faucet-dao, q9f ,offical team , and u ?

Frankly? I think it’s part of the problem.

We faucet-dao, hope that all users can add their excess goerli eth to the pool, so that everyone can get goerli eth more cheaper.

We bought all our goerli eth from others, we never attacked the faucet to get goerli eth in bulk, I think those people are at the heart of the current goerli eth problem.

If the official team does what we do, then it is easy to let users go to sepolia for application testing and let those users who participate in the consensus layer have the motivation to be an honest verifier, because he can withdraw test coins and even gain income in the future.large-scale projects can also enjoy the benefits of a benign ecology here

If there was a way to trustlessly turn like 0.00128 ETH into 128 goerli eth that’s baked into the protocol, specifically that the goerli eth is minted out of nowhere, and the real ethereum disappears, then I would be more in favor of it.

But testnets should be free to use. Adding an optional price tag is fine, but there should be ways of acquiring goerli / testnet eth that don’t involve your wallet.

The biggest problem with such a market is that it introduces a financial benefit for farming funds.
It is a huge drawback for any free distributing system / established faucet, because farming activity will be increased drastically.
Get something for free that you can sell afterwards is a great way for degens to make money - they don’t care if it breaks anything if they can get some $ for it (from my experience these are mostly indian / chinese users… they’re worse than blowflies if there’s something “free” on the table).

So if we allow such markets and introduce a price to goerli funds, we’re breaking all free faucets and making them impossible to operate in future.

I don’t think that’s worth it.
Testnets are meant to be free!
If they wouldn’t, you could directly deploy to mainnet too.

Currently there are enough faucets left that drop small amounts of funds (including my PoW one). These drops should be more than enough to deploy contracts and test interactions.
You normally don’t need bigger amounts of funds for testing. (except testing staking setups, but there will be a new testnet for that soon)
So please don’t break these remaining faucets and keep goerli free for everyone like it should be!

1 Like

This. Don’t buy goerli eth. Don’t sell goerli eth. If you have goerli eth you don’t need, give it away.

It’s a pleasure to communicate with you here, I hope our communication is calm.

First of all, let me explain that faucet-dao is not the first person to do goerli eth over-the-counter trading, there have been people trading goerli eth for a long time. Faucet-dao just put the pool on uniswap, so that more people can conduct simple transactions goerli eth instead of p2p transactions.

The second point, is it free faucet, really completely free ?We all know that in addition to the official Ethereum faucets, some of the faucets that get goerli eth need to register an account, and some need to retweets, which indirectly promote the project. These behaviors that bring traffic, I think, can be counted as the income of the project, and they can obtain good financing through these data. As for pow faucets, you can let us mine valuable coins, all power is in your hands.I don’t think trading goerli eth will break free faucets, the core of current free faucets is not completely free.They have their own additional benefits.

The third point, you said that the testnet should be free, which I don’t think is entirely true. What are the useful and free things in this world besides air? Goerli eth is very useful for developers, if it is scarce it will have a price, if it is in large quantities, its price will approach 0. I think the official should provide a free testnet, and the pos pledge of goerli-net should be free. This is all done, you just need to be in sepolia, then you are free. I’m a developer and I know it’s important to have a development environment closer to the eth mainnet. We are willing to pay one dollar or two to get an open pos network, not a fake pos network. This is completely different from the thousands of dollars of deployment contracts on the Ethereum mainnet.

The thing is, as soon as testnet ethereum has value, suddenly acquiring it requires KYC. This is not something that all developers are willing (or able!) to do.

2 Likes