New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Why and How to Run a Node! (No ETH Required) by Johns Gresham | Devcon Bogotá

DevconMon, Oct 9, 2023, 12:00 AM

Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on Swarm, IPFS and more. https://archive.devcon.org/archive/watch/6/why-and-how-to-run-a-node-no-eth-required/ The foundation of Ethereum is a resilient and decentralized network of nodes. You’ll learn how nodes defend the network, the easiest ways to run a node, about the upcoming upgrades to Ethereum which make it easier to run a node, and more. Speaker(s): Johns Gresham Track: Staking & Validator Experience Keywords: node,decentralization,ethereum Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 6 was held in Bogotá, Colombia on Oct 11 - 14, 2022. Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/

Transcript

foreign [Music] well a note is uh software that downloads a copy of the blockchain all the history all the state all the accounts transactions and it keeps that up to date as blocks and transactions take place and it also helps others run a node so when you start up a node you ask all the others for the history of the blockchain um and this is really important because the foundation of ethereum is really like a network of decentralized nodes and without those You Know It uh you know why are we here I guess we could just build a centralized solution and um have something quicker and yeah so we'll go over four four of like the main reasons why I tell people like hey you should run a node so uh again supporting the network it's each additional node that joins is additional capacity to the network it makes the network more robust more secure again more note like easier for a new node to start up has more nodes to to get the history from also it's really important that we have people running nodes that are from different clients meaning different node teams different client teams um right now it's kind of a big problem um if you've heard of Geth or Goa Theory go ethereum right now about 80 of nodes are Geth and if there were to be a bug in Geth that would cause quite a problem for the network so we'd much like to have users run like Basu or another mind um and uh yeah this makes ethereum much more resistant and I'm sure it helps the get developers sleep at night as well okay another big reason is to avoid lock-in um this has to do with like the problems of kind of the web 2 that we talk about a lot centralization um so uh having a decentralized network of nodes both helps ethereum from being uh kind of like uh locked into maybe a small group of developers or teams and it also it enables like additional systems to be built on top of ethereum and um have these properties so uh if you you can build a system on top of ethereum and uh if designed in the right way a property can only really be changed if all the all the users and participants want that property to be changed when we talk about forkability this is what we mean uh one other cool thing is kind of relates to the last slide is you get to vote on changes to ethereum if you run a node so let's say vitalik and some of his friends create an update to Geth and say we want one to eat every block and we're going to send it to devs.the devs.eth and they all update their nodes you can choose to support them by taking that update essentially voting uh with their change or you can decide not to and you can not take that update and just run the current version that you're running um so if a lot of users don't update their nodes if uh the like centralized exchanges and your wallet providers like they don't update their update their nodes then this update doesn't take place but let's say like all of those actors do update um then it's most likely that this update goes through and if you don't have a node then you don't really have a choice you don't have a vote you don't have a voice okay and uh this is a picture from one of italics blogs uh again talking about uh yeah so um if there were to be some sort of attack on the on the uh ethereum through this uh like a new update comes in and it's does something bad it takes funds um that would be considered uh like the attack we're talking about here and uh all the users all the node operators that decide to take that uh contentious update there they may end up on one fork and all the other um users and node operators might end up on another Fork and he talks about uh these are kind of like the three scenarios that would happen in this case and uh so we prefer the options like toward the left so we would want something like this to fail obviously and uh however uh even if it just ends up in chaos meaning like uh you know maybe half the exchanges show one state of the ethereum and maybe half the you know exchangers and wallets show another state of ethereum that's still like much better than uh the attackers becoming Victorious it kind of makes the attack like extremely expensive even if the attack doesn't uh you know isn't Victorious or it doesn't fail I should say it's still extremely costly and then an important question everyone wants to know is can I run a full node um a lot of people I I talk to they want to run a node but they don't know if they can so here are some of the requirements um your computer needs 8 to 16 gigabytes of memory two terabytes of fast SSD storage that's this is kind of the biggest problem for people is is this fast SSD storage um even some of like what you might think is like a really fast external storage drive like uh you know it's super highly rated for like moving videos and in photos it might not be fast enough for syncing a node um uh right now only one terabyte is used by nodes to store the state um this is growing about 10 gigabytes per week some nodes have options to use less uh they're kind of they're just beyond like the experimental phase they're like they're solid options but they have their limitations um and don't quite maybe meet all of the uh use cases that people need and then the CPU is not usually a bottleneck so um most laptops that are within like five years old should should do fine internet can be a little bit of an issue so you need about 10 megabits upload download and it needs to be lower latency connection um the data cap is can be a problem in the U.S a lot of Internet providers have a one terabyte per month cap I've talked to some people uh here in South America and they don't seem to have that problem or at least they're not aware of it and then definitely can't really run it on like a slow cellular or Wi-Fi connection okay I'm gonna quickly talk about like the SSD types um kind of the number that you want to know is this like 10 10K input output operations per second um so yeah nodes they are essentially writing like tons of like small files back and forth reading and writing to have SSD and um this is kind of like not really a common rating that uh SSD companies tell consumers because it's not quite applicable to what most consumers are doing with their SSD most consumers are just yeah like moving at large video files storing photos okay um internal ssds M2 and vme uh that's like very popular now um within the like 200 range you can get for this um and then yeah you probably just want to stick with that the other options if you have them like lying around those might work that's not going to work uh external ssds uh the reason why like I I want to emphasize this is because I think there's a lot of people out there with laptops and don't have like a dedicated desktop or a computer just for running a full note and so um I want people to be able to run a full node on their laptop maybe like while they're not using it or if they have an extra one um so check to see if your laptop has like one of these connections either Thunderbolt 403 or USB 3.2 okay now this is the interesting part because these are some of the upgrades or potential upgrades coming to ethereum in the near future here so when you hear proto-dang sharding that's eip4488 and actually in the worst case scenario this would add two and a half gigabyte terabytes per year for node operators which is just not really an option for at home node operators so in one of italics write-ups he said that like uh when like if Proto dang sharding goes through like we also need EIP all the fours and uh what that does is eliminate historical data requirement from the nodes which would save like 500 gigabytes and um and kind of like cut down the requirement on nodes having a store like all of this data State expiry is one that uh is is contentious again what it does is essentially eliminates the requirement for nodes to like uh keep on to certain to store certain transactions um let's say like before a year or so and um unless that state is updated so uh I I have a feeling this probably won't go through um so don't count on that stateless ethereum is is a really cool change and no storage would be required for the node so it pretty much eliminate that two terabyte SSD requirement um it would still be good for no for like some nodes some users to have that block that history but it wouldn't be a requirement so you could run a node and still validate all the blocks and transactions and and really um participate in all those benefits I mentioned earlier without the storage but again this requires like vertical trees and it's a pretty difficult upgrade so don't quite count on that uh ethereum portal network is a really cool uh actually like separate Network separate Network built on top of ethereum or to the side of ethereum it leverages like BitTorrent architecture and would kind of enable everyone to run a light node actually like embedded in their wallet um so like most of our wallets right now they talk to like infuria or Alchemy to get transit to get transactions and send a transaction uh this would essentially eliminate that point of centralization and your light node would actually talk to other light nodes which would uh talk to full nodes whenever you send a transaction so we really promising but uh quite a bit of work there I think they want to have just for a Time reference I think they want to have something out by like the end of next year um all right the fun part how to run node okay uh could I get a quick hands like if you've heard of dap node or ethereum on arm I guess maybe a quarter of the people in here okay so yeah they're great the only um difficulty with running a node with dab node is you pretty much need a separate computer um it installs an entire new operating system which is also can be a hurdle for people that haven't installed a new new operating system on a computer um but they're great they've been around been around for a while and um I would say like are pretty battle tested option two is the command line which is for you know super technical users uh and yeah technical users who are familiar with the command line and um yeah don't mind monitoring their node from a flurry of like command logs um and then this is this is actually from ethereum.

org's website um and actually photoshopped nice node here not photoshopped but like edited the HTML so this was kind of like uh the vision for a nice node um was like hey we I think we need a third option one that is uh for like the non-technical user there's tons of people bashing it in the ethereum community uh who want to run a full node but don't want to hit the command line don't want to buy another computer technically it's possible to just download an app on your laptop and run a full node so why don't we have it uh so I'm hoping someday uh when this gets to a more stable version that they'll include me on on ethereum.org but uh we gotta approve it until then so I'm going to talk about a nice node which I am working on and so this is what the current version looks like this is our Alpha release version zero and you can see this is just like an app running on I think this is Windows um and you've got both your execution consensus clients here super simple stop start remove you can kind of see like what is it doing here at the top like okay awesome I know how much storage it's taking up I can see like what's the latest Block it's at at it's at uh how many peers is my node connected to and then kind of in line with this idea that like I want everyone to be able to run a node I also want everyone to be able to like you know no matter what language you speak uh we'll have a translation for that language um and all of these languages uh were translated by contributors just people with a good heart who came out and said yeah I'll be glad to translate like whatever we can and into another language so a nice note essentially Sports translations we just need people who speak all of the other languages to help out okay hopefully this loads so this is a design for our next version much like cleaner UI at first only the ethereum node will be available but I'm designing it to be General so that you can run other nodes I'll talk more on that so you pick ethereum node then you pick which client you want to run we conveniently show you which clients are minority clients you can select a few options select where you want to store the data at again these are all things you'd have to do from the command line and then this will actually take the screen um I think I'll show it to you later um and then we have to install some dependencies here and we just hit start and uh our node is syncing and running and we have this beautiful UI to see our node in everything is great okay so this was this is kind of a key um piece of information for a lot of people is like can my computer run this node um no you don't have to go to like guides or websites to read through things it's in the app uh the app yeah we can see like hey is your CPU fast enough how much memory do you have do you have an SSD does it have enough space all that stuff um we can do so we do it for you and this may differ by client and in the future this may differ by node type meaning the hardware requirements May differ some nodes maybe use a small amount of RAM others you might use more storage so we'll give you that green check mark if you're good to go based on the Note type a few more screenshots here um yeah just wanted to leave these up here so you could see them without the video um this is this is really like important to me um being able to change the settings on your node through the UI again to do this now you have to go to the docs of the client team uh try to find like the right flag with like the dash dash uh whatever and hopefully you format it rightly I don't know if it needs quotes uh it doesn't need a comma in between our space you don't have to do that with a nice node it's here okay nice node is cross-platform meaning it works with Windows Mac Linux um this is screenshot of windows looks like it's not going to play um so yeah again I designed nice node to be as general as possible meaning as l2s start to decentralize and provide nodes um maybe sync with sequencers nice node there should be very minimal changes to support those new node types and uh and actually like users could open a pull request to nice nodes GitHub and and those new nodes would be in in nice node in the next release um so for the technical folks nice note is sort of a UI wrapper around like Docker containers um so any any node type that has a Docker image will be like really quick really easy to add to nice note um and uh yeah eventually we want to add things like staking as well um so this is a UI screenshot of like what it would look like if you were to add validators and then you can just kind of see like yeah uh arbitrome does have a have a no doubt I don't know if um I don't know how involved it is in their their Layer Two yet I think it might kind of just be like a replica node and not quite uh the same priority as as um they're kind of like their own and then The Ant and Beyond here is okay if our if our like web three dreams take off and web 3 infrastructure is really where we go to and the users control we control the platform and control the data then we're going to want users to run uh some of these web3 infrastructure nodes so for example like this video is being live streamed over live peer and uh they have a network of video trans transcoders um and then so they transcode this video and that's that any any one of us if you have a graphics card can join that live peer Network and um we can use our graphics card to right transcode that video um so this is just one example of yeah like a web 3 infrastructure that users can participate in and uh and have more of a say in and it's something that uh I think we can support and uh so we show it here okay and this I think this might be the same video okay and that looks like the same screenshot maybe I hit it back last time okay a little bit for our road map um so really close to releasing uh the redesigned UI ux uh and the super simple onboarding walking you through like the hardware requirements other things like that um I want to get more translations um we're um we're gonna work on that hard push on that hard hopefully by the end of October here um after that there's some internal changes that we need to make to support more node types for the future um for the technical folks that's uh Docker compose that means kind of like there are nodes that have contained multiple services and so that that will help those node types um and then additional features I think I can show you these after um so yeah no notifications if your node has an error log like we'll we'll show you a notification that error log won't get like lost in your terminal and you'll never know about it um and then you can like search logs maybe if your internet goes down we'll notify you um that your internet was down for a brief time and then after that yeah by February of next year we'd like to add Layer Two nodes and more web 3 infrastructure nodes all right so it's it is critical to ethereum's Mission of decentralization censorship resistance and resiliency for users to be able to run nodes and um this is this is extremely important to me because like all of the other good things we talk about here um you know will only last will only exist will only really be possible if we have a truly like user-led um a culture of like running nodes and if the core devs continue to make it possible for users to run nodes so yeah for like if we want this dream of like open Global infrastructure super low transaction fees for the world like open Financial system um ethereum for everyone we need users to continue to run nodes and nice to know the mission is to simplify node running and thank you gracias artoros [Applause] so yeah I want to open it for questions and um uh let's see I just want to move it to this slide uh so yeah real quick if you want to help uh we need everybody um join our Discord reach out on Twitter um there's a website here you can translate on uh which I'll get notified as soon as someone translates um so that's cool too and yeah question time thank you for your time I've got this core philosophical question that I've had for a long time which is I feel and maybe this is a lack of understanding that full non-validating notes are overvaluable because in the end the state is only managed by full value so why does it really matter that they're more and more [Music] to just deploy thousands of full non-validating nodes which don't make mistake to overpower to kind of cycle attack non-validating Network okay so um tell me if I understood your question right so your question is what's the importance of uh non-valid non-staking non-validator nodes like without eth um what's what's their importance um yeah yeah so uh it's a great question and what it does is uh the non-eth non-staking nodes actually keep the validators it keeps the e-stick nodes honest so yeah if let's say some centralized staking service gets yeah 75 of the validators um and they want to push through a block that sends all the youth to them uh the non-eth uh nodes will say hey that's like that's a funky block that doesn't apply that doesn't uh follow the rules of ethereum that's you're trying to steal someone's money reject that block I'm not like I'm not gonna I'm not gonna take that transaction and share it with anyone else I'm going to drop it and say that's invalid so it essentially keeps them honest foreign [Music] [Music] to push another 10 000 into the network is very easy so how how strong it really is the is the defense mechanism yeah that's that's a good question so like if someone were to on a some cloud service just spin up like a ton of non-eth nodes um I think it would be I think it would probably be more costly than um it would be I think it still would be pretty costly um and I think even if let's say they have triple quadruple the number of like honest nice nodes uh then I think the attack would still fail or it may in this case uh default to chaos so I think I'm probably not the best person to speak in terms of like hey we need X number of honest nodes but I think um sufficiently so so right now I think it's it's at about like 8 000 and um yeah I don't know what that right number is I I was reading one of italics blog and I think he even said I'm not sure how many it is it's probably more than like a few hundred but I don't know yeah yeah I I yeah I'm not the best person I hope the courthouse thought about that okay yeah um my father could run it my mother could run it in their home attack um so if they get all this set up and I show them what ethereum is and they put all this money into it now they have this money running on this Windows computer there and it has no battery backup it has no um they just shut it down because they they don't want it running all night well obviously now they're getting slashed and so you have a lot of these people who don't know about these things you know how to set up a hardware aren't you kind of concerned about that or maybe they think I want to set up two they use the same contract addresses and two and boom boom boom they start getting slashed if you can too have you thought of uh like yeah that's a good question is like if we do make it easy to use like we need to um also make make it very clear like what they need to do and um and then probably also make it very easy for them to uh like stop it or withdraw or um note of notify them um so yeah if we're going to make it easy for people to onboard we also need it that's a great point we need to make it easy for them to kind of get off or help them get off [Music] yeah I think the quick answer is I would um in the app we're going to just make it like super obvious like lots of warnings like hey this need you need to have you're an entered on you need to have this computer up um and yeah hopefully it's our solution's a lot better than the Alternatives like hopefully we're way better at notifying people um when their node does go down things like that yeah no no incentives right now for for a non-eth non-validator note yeah so and that's a great Point like if um if you're someone who um like the SSD is like a big uh commitment for you or purchase like maybe running a full node I don't want to discourage you but maybe it's not the best use of of like your money or resources like the there are there is no like direct incentive at the moment other than obviously like making sure ethereum um works and stays up so um it is yeah that's a that's a great point yep [Music] it's from personal experience like when the defense just launched it was also one of the first uh [Music] um [Music] I think it's more of a challenge but how do you build a one of you [Music] know uh whatever it is yeah I mean certainly we want to make it as user-friendly as possible and we know one thing we have thought about is like letting users opt into automatic updates for their nodes so wherever possible they don't need to need to do anything um and I think that yeah that's that's probably a big part of of running your Note is yeah just doing those updates and then having some sort of like alerting um in terms of like if some some other problem were to happen like we would try to diagnose it as best we can but um I suppose that I like for an issue we can't diagnose I yeah I don't have an answer but it's it's something I'll definitely um uh keep in mind [Music] [Music] yeah yeah the other thing I do want to have is like if uh I'll like show the command that nice node used to start the node so you can just copy and paste that command and like leave the app if you want and then you can just go to the command line and yeah that's that's something I want to do too right here [Music] um thank you so much [Music] [Music] my question is uh when when your team like a build is it's it's based on like uh there is a reachers behind like uh for what kind of age or or what what is uh um this kind of people that can't afford like that this is easy to use because even if this is easy to use for us maybe that kind of a stance and it selects oh it's like option all the stuff that we talk for uh an algorithm or even our job people t-shirt behind that like uh this is like a accurate with this um age people or not telling the people whatever okay so um just to repeat uh for the stream um it sounds like there's concerns that uh we need to make sure that uh if it is super easy to get in to get started that uh we make either some guide rails or some some um just make it the user aware that what they're getting into and um so yeah I mean what I'd have to say those concerns is um I think we we could do something where um instead of letting like the user it's just something I thought of now like click like yes yes yes yes yes and then they're good to go like deposit maybe having some kind of like um speed bump that kind of thing where like they have to either like demonstrate some technical uh um knowledge of like what they're getting and then getting into just sort of sort of like maybe basic quiz or something like that um but other than that I mean um yeah did I did I um address your concerns was there anything else or um okay yeah I think maybe some sort of speed bump just so they can't click through like super fast and get themselves into something they didn't uh know and now this program is taking up all their SSD space in the background um yeah absolutely right there in the White uh sweater or yeah I think you were first but blue shirt um so if um if you don't have any and you're not staking no slashing um if if you're staking with nice node and uh your node were to go down it would be slash just like any other note that's that's a great question um his question was could this be a web app and um and I I don't think so as of now I think uh uh I think there are limitations on the browser which you can't basically run a command a web page can't just like run an arbitrary command on your your computer but like an installed application can um so um now the front end part of a nice node we could separate that out and put that as a web page um it's actually uh it's actually like mostly the front end is basically a web page it's basically running in um chromium there's the underlying architecture for a nice node is called electron and it basically downloads chromium and so it's it's like its own little web browser there with extra permissions to interface with operating system yeah any other questions here again uh right now uh no plans I want to stay open sources as long as possible we have been supported by first East acre in a Sierra CLR fund and then get coin two rounds of get coin and then we we recently got a grant from City Dao which funded the like improved onboarding experience that I showed you all today um and then hopefully we'll get more grants and stay open source yep I've seen people ask that um I think if there there could be in the future and I I think absolutely I think there are lots of um groups or foundations um maybe like eat steak or the ethereum foundation who would provide some incentive I think the limitation here is probably like you need to prove that the person running the node is a human or that perfect Humanity civil resistance problem so um I haven't thought through the whole like consequences of tying your Humanity ID to your node but I think with that people would give out incentives um other than that I don't know uh I don't know how they would do it without civil resistance yeah uh if you're not staking or not validating there are no no incentives no yeah no monetary Rewards [Music] [Music] yeah yeah I mean that's something I've thought about I haven't like quite worked on now but uh the operating like the Apple can know whether you're on battery whether you're on power whether you're on Wi-Fi ethernet um uh right now we don't have like any internet speed check but that's something we could definitely add so I want to I I do in the long term I do want to make it so that yeah you can close your laptop a bit the node stops peacefully wherever you go next you open your laptop maybe just plug it in you eat dinner and it's it's sinking like while you're uh yeah and then we'll also potentially like you get we could have a setting like while you're while I'm working don't use resources like just run in the background or like just pause while I'm working maybe from my typical work hours um yeah okay all right anyone else okay I think that's it I posted the slides on the nice note Twitter um there's tons of links in here um so uh you can check out the slides there awesome thanks everyone [Applause] [Music] uh okay that's it [Applause]

Automatic transcript — names and jargon may be misspelled.