Kaushal - Validating made light and simple with Nimbus
EthStaker at Devconnect Istanbul 2023 · November 2023 · 21:18
Kaushal demonstrates running an Ethereum validator with Nimbus, a lightweight consensus client, in a talk at EthStaker's Devconnect Istanbul 2023 track. Nimbus is built to run efficiently on resource-constrained hardware, aiming to lower the barrier for solo stakers who want to validate without dedicated server-grade equipment.
Topics
From EthStaker at Devconnect Istanbul 2023, hosted by Eth Staker.
Transcript
all right next I am excited to introduce koshel who is leading ecosystem development at Nimbus and he's going to uh be talking about light and simple validating with the Nimbus [Applause] client hey everyone can you hear me at the back awesome fantastic oh lots of energy in the room people must have been coffeed up if if not you might still want to grab a coffee um hope my my I mean you you might hope my presentation will be that electrifying but probably not so
you might still want to grab a coffee hey um all right clicker is working that's good that's a good start uh my name is Kel I look after EOS uh I support the nimus team with their ecosystem development efforts and uh also support our other projects which I'll talk a bit about but uh I have the Good Fortune of going out and talking to you know larger node operators uh solo stakers a lot of the channels and distribution channels such as the DAP nodes and avos of the world and figuring out no uh how to make the nimbers client more attractive and and uh uh easier to use and uh this is a bit of a snapshot of what we've learned over the period of time and also a bit about what we're doing uh with the Nimbus CLI hopefully making it a lot
more attractive and hopefully I can convince a lot more people here uh and those listening online to actually run Nimbus as a minority client in the network so um for those who don't know I think Nimbus is uh one of the four five consensus clients in the ethereum network and uh our goal is to really make ethereum Network participation as you know simple and easy as possible I mean we've really stressed hard on the fact that this is Network participation because ethereum participation is available to everyone but participating in the network is really not as easy for everyone and we want to really make it simple simple and easy and that's really the goal um so Nimbus offers the consensus client today and uh um it is one of the lightest consensus clients
that you can use um in terms of the five options that you have uh but without compromising on performance of any kind so it's performing at par with other other consensus clients and so there are advantages of using Nimbus which we will briefly talk about today as well um I mentioned briefly some of the other projects that are ass assciated with Nimbus so Nimbus is part of the logos portfolio of projects um logos is building the network straight infrastructure um so all of the infrastructure that's necessary for networks R to function this includes decentralized storage decentralized messaging and Nimbus of course offers the compute element so if you're interested please feel free to check it out as well um in terms of what codex and waku are planning to build uh but
today's talk of course will be quite narrowly focused on Nimbus so I thought I I structure this uh this whole presentation in three parts you know uh I think it's useful to reflect on on the journey that Nimbus has been on it's been four years I think 2019 20 so about 5 years in total right it's useful to reflect on on what uh where Nimbus has come from and the original ideas and Concepts behind Nimbus uh we will talk a bit about what Nimbus offers today in terms of the different uh consensus client options within the Nimbus portfolio and uh and then of course you know where we're going which is the future right and I'm sure we are all interested in the third bit but we'll we'll we we'll move
through the first two relatively quickly so let's talk a bit about uh where Nimbus has come from in terms of the past it all started back in 2019 when the idea of uh Nimbus was conceived as a client that can actually work really well on mobile devices and iot devices right like there's this aspiration that the clients should be able to run on the lightest of devices and you know we have ubiquitous access uh to the network uh made available through such clients of course in reality like we found Over The Last 5 Years engineering to that vision is really difficult um and there are other reasons to imagine and and you know dream about such clients uh back in 2019 they relate back to the project uh
called status Network for many of you in the room just a quick show of hands if you know of status network from 2017 2018 yeah cool that's the few hands up there so status was building a decentralized messaging you know uh platform app and it's very hard to do that if you don't have access to a lightweight client right um so that was the the other motivation to build a lightweight client uh in ethereum comes 2020 we started work that was the first release back in November 2020 um and it was a first release of the consensus client back in the day and then since then of course in 2021 um a lot of integration with rock rocket pool so we were fortunate to have a you know large
community and interest from the rocket pool community in terms of the use of the Nimbus client and uh since 2021 we've had this continued interest from the community so hats off to the rocket pool Community for really believing in the vision and supporting that throughout we also had uh 20 major and minor releases throughout the year you rapidly improving the nimus client along this time frame and uh MGA Labs did an interesting study uh back in 2021 comparing the performance uh the resource performance of uh performance of all the consensus clients and uh it was really interesting what they found and I'll cover it in one of the slides uh because that's quite interesting for a lot of people present here 2022 of course was the year of the
panda and uh a lot of emphasis and focus was making sure that now merge goes well and uh I think the Nimbus Fleet as it existed back then in in September last year did reasonably well like it went through swimming swimmingly well uh throughout the the merge event and of course withdrawals earlier this year and since then number of uh features and product development that's gone in into Nimbus this year so we'll talk a bit about that but it's a it's it's a bit it's quite a lot to put on the slide in terms of five years of history but it's a snapshot right so hope you get a feel of where Nimbus has come from and the original intent behind Nimbus as a client let's look at what Nimbus offers to right so it's let's start with client
diversity stats and of course these are not fully accurate like I mean you know these are as as accurate as they're going to get at the moment but there are good ways to kind of get an indication of how the client the adoption of the client in the in the network right so the client diversity stats if you look at block print it says nimus is close to about 5 and a half 6% and this number has sort of fluctuated between 5% to 10% it went up to 15% around merge and it depends on when the new with comes in whether the new with goes to larger operators or solo stakers right because the representation of the clients in the two segments is very different so over a period it has sort of fluctuated in that regard and this is the data based on the
Block print uh way of measuring client diversity but I think what's more encouraging for Nimbus is that the if you look at it in terms of number of nodes and where Nimbus is present as a client right that's more encouraging like it's close to about 12% a lot more work to do here it can definitely be much better across the board um but it's a good way to look at no block print versus number of nodes or percentage of nodes in the network and uh get a feel of uh of how how Nimbus is doing so effectively what this tells us is fewer larger operators are running Nimbus and a lot more solo sters are running Nimbus um and that's basically work cut out for me uh in terms of my ecosystem
development activities to you know encourage more people people across the board to run Nimbus right let's look at um what Nimbus offers in terms of the client so when we started in 2021 the first release it was a very simple client to run it offered uh Beacon node and the beacon node included the validator duties in itself so as a solo Staker you don't have to go around setting up a beacon node and a validator client separately and then making sure that the two are talking to each other and maintaining different components the whole concept was you can set up the beacon n and it performs the validators validating validator duties out of the box itself and this works really well
for solo stakers right simple setup what we then encountered was the interest from a lot of other operators wanting the flexibility to use the beacon note separately to the validator client and so that brought in the picture of you know allowing the beacon node to function without carrying the workload of the validator client like without doing the validator client duties so you can mix and match with you know other validator clients as you want to use them then there was another uh set of interest from node operators wanting to just use the validator client separately to the beacon node because that's how they function that's how their setups are it's very hard to convince you know somebody running 7 8,000 uh validators to completely change their setup to
include numbers right so I think that's good feedback for the client teams and that resulted in us launching the the ability to run the validator client uh in independently last year and so today I think you have all the options like there's no reason no particular combination that's not possible with Nimbus right so there's no way you know to to be excluded from the network in one in some ways um and there's all possible combinations that you would want to run nimus in that that are available today we also have the verified web3 proxy which is not related to your you know valid dator setup it's something different and I'll talk AIT bit about that because that's something that is relevant for wallets and adap
developers to trustless access the state of the chain um without having to trust an RPC or data coming from an RPC endpoint so I'll talk about that a bit separately but yeah in this is this is all the different configurations that Nimbus offers today right but this is not where the buck stops I mean there's a whole lot of enhancement and development that's gone in last year which will be quite interesting uh for solo stakers as well as for larger node operators let's look at some of those some of those points the first one is that the fact that you can now run Nimbus validate client with not just one Beacon node but two Beacon nodes or multiple Beacon nodes right what this means is if for some reason for whatever infrastructure
issues you you lose your beacon node your validator client still has some another Beacon not to rely on right so in some ways this is useful increases the level of uh resilience and the design factor the design um ethos behind this is that we want to be able to encourage resilience and redundancy at every layer of the client architecture right so that's the reason to build in this feature over the year uh there is a hidden advantage or a subtle advantage of this which means that if you're talking to two different Beacon nodes you get attestation data from two different Beacon nod and you can pick the best ones so there's a subtle uh profit optimization emerging out of that the next Point let's take
this another know another step you can use the Nimbus Beacon node not just with one execution layer client but with two execution layer clients this is where it gets really interesting right so if you've ever got to prune your execution layer client um you want to bring it down takes a few hours you just hope like you know with with your fingers crossed that you don't get a block proposal in the time frame because you'll miss that so with this sort of archit iecture now you can actually talk to two different uh execution layer clients at at any given time and this has also got a added Advantage which leads to profit optimization because now you get to see the best blocks from both execution layer clients and pick the one
that you know is most profitable right so this is another step to increase resilience and redundancy of the be clients of the uh Nimbus client and of course I mean lot of interest and uh that we saw from the community in this particular feature when it was released earlier in the year what's more privacy um for anyone running a lot of mini pools how many people just a quick show of hands running more than two one or two mini pools cool yeah um I mean for for us you know for anyone running a lot of mini pools or validators it's always something that you want to you know care about in terms of not revealing too much about your setup because you know anyone
can actually come in and you know you can create an attack Vector out of that information so Nimbus has a characteristic it has a very low or minimalistic public footprint it doesn't do a lot of chatter unlike some of the other clients and that is a deliberate design um you know approach to give you some examples like when you when we restart the beacon nodes we recycle the pr IDs when you recycle PR IDs it's very difficult to trace and know that this is the same node as it was previously right so these These are sort of things which we do which know deliberately make it difficult in some ways to detect nimus in the in the network but it's actually beneficial for operators running the client the other element is you can
actually use um uh two different nodes to push your attestations out of versus your block proposals so when you when your when your chance comes to actually propose a block you get dsed on let's say one node but you're actually pushing out your block proposals through the other nod so you know there's that Safety and Security elements um built in the element around resource optimization I started with the fact that we you know we had this Vision to create one of the lightest uh ethereum clients and I think that Still Remains the goal today but some of the study that was done by migal Labs back in 2021 and I think they refreshed that study last year in 2022 shows that um you know Mega the the relative performance and resource
consumption of nimbus particularly around memory and CPU is about onethird of other clients and that's that's I mean for us obviously that's a design um ethos in some ways but it's really good to see an independent organization doing this and comparing the clients across the board like we get ask this question quite often right as to what is the like when you're running a validator which cost 60 70k whatever the price is today why worry about Hardware because the hardware cost 600 bucks or 800 bucks or 9,000 900 bucks right so why worry so much about your hardware and the answer is quite interesting because if you're running let's say multiple validators on a single piece of Hardware or running
many mini pools on the same piece of Hardware um there's no effect whether you run client a or client b in a day-to-day basis but if you if the network is under stress and we saw this a few months ago when there were finality issues right on the network the clients are working extra hard and they need a lot more CPU available to them at that point in time and so having a client that Del that is designed to consume less CPU means that you have a lot of Headroom left when the network is under stress and this is a really interesting factor for anyone running multiple validators multiple mini pools on a piece of Hardware um or have other workloads functioning across different chains on the same Hardware so if you're
validating across multiple uh chains for example there's also the Light web proxy that we launched um which is now integrated as part of the ethereum OS phone uh project which makes it easy and available for any dap on that phone to actually access the data from RPC endpoint and then compare it with the chain the proof it receives and then compare it with the stra no the straight route and detect whether or not the data it's getting from the RPC endpoint is is correct or not so there are these sorts of you know elements of the client that that exist which might be interesting for tap developers uh as well as wallets basically um I'm running out of time I think but last year Nimbus was available
in fewer places this year we made an attempt to make sure that Nimbus is available you know in in any place that you choose to run a validat client hopefully Nimbus is one of the options available on that that platform um so that's been that's been an enhancement something that we've deliberately worked through U this year and uh hopefully you'll have you you'll have access to Nimbus no matter whichever whichever element from the know second second row that you pick to run your validator client on um we have a growing Community that's very supportive and we saw that the whole eer Community come together when we when we had aado encourage us and the community to support the addition of nimbus client you know and it was
fantastic to see the community turn up um and avard and Nimbus are now working quite closely together to have it uh have the Nimbus client available which is as as of a couple of months ago actually and we have a promotion going on uh which we can find out more if you want if you go to the avado or Nimbus Twitter sites cool very quickly let's cover the future what's coming next uh simple interface for solo stakers and execution client that's under works and I'll reveal a little bit more about that and distributed validator benefits so one of the key things for nimus in terms of solo stakers is to abstract the complexity away and so we are working actively on a node management UI uh which is progressing really well and hopefully
within before the next Dev connect or next Devcon you will see uh this in action uh and launched and made available for the community to actually use um the execution client and the consensus client pair is something that we've always know thought about from day one so consensus client hasn't just been a project on the side and execution client not a project on it side we've always considered the vision to have a seamlessly integrated client and make make sure that know you can do one click installation of your execution and consensus client this is coming reasonably well together excuse me the execution client itself is now feature complete um and it's part of the dev Nets and will be tested rigorously to optimize it as much
as we can for for memory um to bring it know in par at par with what you expect from the nimbers consensus client in terms of memory being very efficient with the memory usch so this is coming uh very very soon and uh one of the other elements we are working on is distributed validator like U approach uh within the nimus client so I know we talk about distributed validator as a protocol and a layer on top but we're trying to build some of these features directly natively into the nimus client what this means is you can now split keys well not now but when when we actually have this all designed and launched you'll be able to split your keys across multiple Beacon nodes and be able to run like a distributed valid dat
set set up in a you know within a group and this means U you know resilience against infrastructure failures resilience against Rogue employees potentially um and also get the benefit of you know failover uh between nodes so this is all coming in terms of our plans for the next year and uh some of these initiatives have progressed reasonably well um and we should we should be hearing back uh on our Twitter Channel quite regularly as things progress I'll perhaps just close CL here uh with why run Nimbus so many many more reasons to run Nimbus but look if you if you care about client diversity and use of minority clients in the network that's
perhaps the primary reason we should pick Nimbus other than all the other reasons that I've shared in this in this chat right um so yeah if you don't run nimbers please give it a shot and if you have any challenges issues our Discord channels are always open uh so please feel free to reach out and uh yeah if you run a node or a validator in the cloud and if the cloud provider doesn't support minority clients be it be it load star or Nimbus please encourage them to add more clients to support because unless they do that any new validator being set up will end up being using one of the majority clients uh so that's detrimental to the network so yes if you do run a validator in the cloud please encourage them to add support for
minority clients uh in the in the cloud elements all right I'll pause here I'll stop here I'll happy to take questions uh that's me thank you thank you koshel unfortunately we don't have any time for questions here but I know Nimbus has a booth uh right next door so if you guys want to ask any questions uh just pop right on over there