SOTS #45: Ethereum Client Diversity & How To Solve For It
State of the Stake · November 2020 · 10:24
This State of the Stake episode tackles Ethereum client diversity head-on, examining why running a mix of consensus and execution clients matters for network resilience and how validators can help solve for it. The hosts situate the discussion within the broader staking and validators conversation as node operators weigh their software choices.
Topics
From State of the Stake, hosted by Eth Staker.
Transcript
i'm going to talk again today about client diversity and there's been a lot of talk about client diversity i've been talking about it for over six months now and it's one of the most important things that we have uh with this new ethereum beacon chain and it's interesting that right now everyone feels like there's this panic because our client diversity isn't balanced and the very first thing that i want to say is that this is a problem or an opportunity that the ethereum community has created for itself the reason that you don't hear other projects struggling with client diversity is because they don't care they have one client and they maintain that client and in general
there's no competition there's no inter-client communication and so they don't have this um early standard for different clients to communicate this is great for ethereum because it allows the beacon chain to have bugs worked out early they're spotted very quickly and they can be resolved it also means that the protocol is standardized from the beginning and so we're not waiting months and years to create a standard protocol it basically means that anyone can read the beacon chain spec and develop their own client from scratch without having to rely on anyone else or without having to
reverse architect something and figure out how it was supposed to work this makes the beacon chain an extremely robust protocol and the process we're going through now is for the health of the network and it's something that we should really be proud of the issue that we're struggling with i guess last week there was a fault in one of the clients that led to some issues with the beacon chain and it sort of brought to light this idea that one of the validating clients has or one of the implementations has about 70 percent of the network share and that's that's prism and i say that
because prism has done a fantastic job we should all be proud of prism we should be celebrating their success they were early adopters they were early to build a community they set up early test nets they have gone above and beyond the call to involve the community and so prism is a leader in the implementation clients by inviting the community early and i hear a lot of this talk of we need to get people away from prison and i really i don't support that at all and let me tell you why the optimal scenario for validating clients is 25 for each of the four clients that's 25 for prism 25
for teku 25 for nimbus and 25 for lighthouse one of the difficulties in reaching that is that we don't have good data to know what that distribution is and so one of the calls that i'm putting out to the ethereum foundation to the community to researchers is we need a metrics dashboard users need to know um how they can support the network best and so there it is we need that to happen we need a dashboard um it doesn't matter who runs it or who hosts it eatsdagger will be glad to support it um i know there was some research before on setting that up i i think we need to find that dig it back up and and really provide a client distribution dashboard for
users one of the other things is in this whole get people not to use prism is the reality that pools are primarily responsible for this distribution so when we look at the major pools they have tended to use prism and that's maybe because it's what they began with it's what their tooling is set up for it's what they're comfortable with but that's not the best choice right now pools need to be willing to switch to the client that is most beneficial for the network if users don't expect that from a pool then the pool isn't going to provide it
the best thing that we could do is have a pool where where users depositors get to choose what client that pool is using and that will tend toward client diversity the idea that we're putting this responsibility entirely on the hands of end users is a it's a big mistake pools need to be accountable for helping to maintain client diversity and now when i get to home stakers the home stakers are the segment of the population that i am most proud of and the the idea that so many people have risen to the challenge and installed software that that no one really had a great idea how it worked maybe the 12 implementers
but um people have taken a great risk to set up hardware and they're staking now and i'm really proud of our community for stepping up to that challenge and now when this call to get away from prism comes i want to tell you to not heed that don't worry about it i'm not asking you to get away from prison here's what i'm telling you to do i'm telling you to to find a client that supports the network best that doesn't mean getting away from prism it means looking at the network and saying what does the network need for me uh it really it makes me think of let's say we're running a carnival there are four rides at the carnival and the manager leaves
so here we are a gaggle of people we're having fun things are great we're all buddies and we all want to work one ride we all want to work the roller coaster and so while we're all working the roller coaster and having a great time the other rides are languishing and so maybe a few people are like oh i should go work on this ride i should go work on this ride now the problem in this scenario are the people who insist on working the roller coaster because it's the thing they know and because it's fun what they really should do in order to maintain the community to maintain the carnival is they should take responsibility for their work and say i realize that the manager is gone no one's going to tell me where to go and so what i should do is look for a
ride that's not staffed and go work that ride and so in time many users will realize that they can't all work the roller coaster some of them need to work the carousel some of them need to work the lazy river is there a lazy river at a park i don't think so i just like lazy rivers the idea being that we as users as supporters of the network as validators we need to take the responsibility for looking at what needs to be done and do that job we don't get the luxury of saying well i like this client best it's my favorite it's the one i know that's not the job the job is to secure the beacon chain network
and right now we secure the beacon chain by choosing client diversity in a way that promotes network health so it's great to have a favorite client but when it it's time to come to work you don't choose your favorite job you choose the thing that needs to be done so to go over this big picture things that need to happen we need a client diversity dashboard uh doesn't matter who does it hopefully there are a few competing the idea being that we get toward the best picture of client diversity on the network so that people know how to aim their efforts the second thing being that pools don't get a free pass on this
pools have a responsibility to behave in the best interest of their network and to stake using a client that promotes network health if you're with a pool that's not promoting network health and many of you are you should make better decisions because this is not about your instant wealth this is about the long-term health of the beacon chain and your investment in ether is going to grow as alongside the health of the beacon chain so we need to all make decisions that promote that health and so client diversity dashboard um holding pools accountable and for end users it is doing the job that needs to be done so as implementers as developers as
community promoters um we're looking to especially i'm looking at places like steakhouse to develop tools that make switching clients easier so that it's an easy process so that when you recognize that something needs that you're not stranded with fear of losing your stake that you can do a few easy steps to um change validators and then support the beacon chain in a way that is most healthy the beacon chain is going to be fine but we need to acknowledge that stakers are doing a job and that job is promoting network health we're not really here to just do the
thing that seems easiest or most fun to us we're here to support our investment by making good choices for the health of the network so yeah um those are my thoughts i've been sitting on them a while because i i didn't want to jump on this as soon as um we discovered this issue last week but now that i've had some time to simmer i really feel strongly about this and i hope you will join me and join eastshaker and join all of the parties who want to promote health of the the health of the beacon chain so yeah join me i'm uh superfiz at uh reddit i am superfiz pound1038
at discord you can join us at reddit.com or in our discord invite dot gg uh east staker we also have this youtube channel i hope you will like and subscribe to our stuff i used to be ashamed to say that but it's important that we are cohesive as a community so um find us join us and uh we'll make a difference thanks for your time