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

Loading player…

Georgios Konstantopoulos I RETH & Ethereum Resilience | Paradigm I Pragma Paris 2023

ETHGlobalMon, Oct 9, 2023, 12:00 AM

Join Georgios Konstantopoulos from Paradigm as he introduces RETH, a high-performance Ethereum execution client built in Rust, designed for speed, security, and long-term Ethereum resilience. In this talk from Pragma Paris 2023, Georgios walks through the motivation behind building RETH, its performance benchmarks, architectural breakthroughs, and the inclusive open source culture driving the project. From syncing a full archive node faster than ever, to RPC throughput and latency gains, RETH sets a new standard for Ethereum infrastructure. If you’re a protocol developer, validator, node operator, or Rust enthusiast, this is a must-watch. 00:00 Intro & live demo of RETH node syncing 00:42 What is RETH and why it matters 01:29 Motivation behind building a new Ethereum client 02:06 Ethereum's growing protocol complexity 02:42 Why client diversity is critical to Ethereum 03:29 Challenges of becoming a core developer 03:59 RETH development philosophy 05:03 Building culture: mentorship, feedback, async 06:11 Alpha 4 release and node IP for testing 07:17 RETH development stats and community 08:32 RPC latency benchmarks and performance 09:10 Archive node sync time and throughput 10:20 Database size and comparison to other clients 10:58 Creating load testing tools for Ethereum nodes 11:34 Performance engineering: profiling with flame graphs 12:07 Rust advantages for Ethereum clients 12:38 Security-first approach and open audits 13:15 How to contribute and run a RETH node 13:45 Call to action: join Telegram, test RETH _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 🇫🇷 *Pragma Paris* Pragma Paris took place at the Pavillion Vendome in Paris on July 20, 2023, and was an in-person summit for builders and leaders in the web3 ecosystem. Watch the full Pragma Paris 2023 playlist here: https://youtube.com/playlist?list=PLXzKMXK2aHh42f0yI-hyeOCbNZpvV2fIT&si=Ez6ych6OAdn_sq1D ETHGlobal's Pragma series takes place in cities around the world, and is designed to be a different kind of event. Pragma is a one-stage conference with founders-only on stage, bringing together a small group of curated attendees and speakers to discuss the future of web3 and reflect on the past. Ever since we first introduced our new event series Pragma in Tokyo of the spring of 2023, we have been fostering a curated, global community of individuals who deeply care about web3. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ✅ *Follow Georgios Konstantopoulos* X: https://x.com/gakonst ✅ *Follow Paradigm* X: https://x.com/paradigm ✅ *Follow ETHGlobal* X: https://x.com/ETHGlobal​ Warpcast: https://warpcast.com/ethglobal Website: https://ethglobal.com YouTube: https://www.youtube.com/c/ETHGlobal _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Are you interested in Ethereum development and entrepreneurship?_ 👉 Sign up for the next ETHGlobal event: https://ethglobal.com/events 🎁 Get exclusive access and perks with ETHGlobal Plus! https://ethglobal.com/plus 📣 Want us to throw an event in your city? Tell us where! https://ethglobal.com/city _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Transcript

foreign [Music] next up we're going to bring on our first demo for the day I'm going to bring on Georgia's from Paradigm to tell you all about wrath and everything you can do in the world of rust and Foundry so I'll give him a second to set up but please give George's a big round of applause [Applause] so thank you all for coming um on the left side of the screen we're seeing a wrath node running right now in production on mainnet alongside a lighthouse node tracking the tip by running foundrycast block number on every block you can see that either scan on the right is uh of course internet not gonna work oh okay so block 98 block 97 I will refresh 98 and we can keep doing that and you will see that it tracks the tip just fine so it's working and it's been a lot of work and it's unbelievable honestly that it's working so let's get into things so we're building a new execution layer for ethereum um in this talk we're going to go over the motivation the what the when what's next and a lot more first things first you know we don't uh hold anyone to how they should pronounce it pronounce it however you want I call it rest other call it wreath like one of my colleagues said that I would kill him if I uh if I heard me call it arith or something you know call it whatever you want I don't care motivation what when the SDK I don't know if we'll be able to get into it because we'll have limited time and I want to respect the next speakers and the future so okay um ethereum protocol over time is changing there's a lot more cryptography being bounded into it there's a lot more systems networking you can see that this is vitalik's roadmap from a while ago but you get the idea ethereum is becoming a big complex system that um we need to understand that we need to be very principled about ethereum also requires client diversity it requires a healthy set of participants in both the consensus and both the execution layer such that if a critical issue happens the network does not finalize a conflicting checkpoint if it happened it would be catastrophic and it would be like not here next year and would like to avoid that um an ethereum client is a piece of software that is a piece of software that usually you would expect that you can run into the node but it also is used in various other applications examples include index search block explorers layer twos I mean the infrastructure and so much more but the reality is that the clients are always remix I think the internet is a bit slow or things aren't loading by the way um or I don't know why um anyway um I'll just keep going um becoming a core developer is hard it requires a lot of mental overhead that requires learning a lot of things about an entire system it has a lot of edge cases it has Legacy code which again no shade on the people we've been building this this system for like five six seven years obviously there will be Legacy code and obviously the abstractions are not going to be clean from the get-go and that's why people re-implement stuff and the only thing I know how to do well is to implement so we went back to the drawing board and we're like okay let's do something and also here's some more data points on the motivation performance is all we do at Paradigm in our open source teams some people here use Foundry some don't again we will not hold any any grudges um but performance in the whole ecosystem is kind of embarrassing and we need to do better so we went to the drawing board and we thought okay why don't we build a node how crazy can we get how hard could it be you know let's build bigger harder things and we also took it from The Foundry angle which we saw that worked and got loved so much which was build things that are like for the ecosystem for people to build for people to have like a tight feedback loop to be able to chat about it and feel like we're like building something together and also we want to give back to ethereum you know it's given me a job it's given everyone here a job like we gotta do something for it you know and uh I strongly relate to that like very very much so so building node breath is an Apache MIT licensed execution layer it's an archive node with Best in Class performance characteristic which we'll get to in a second and the the main thing I wanted to talk about in this slide is the culture of the team because the culture is what makes its way into the code and um the process that we use for developing our software is inclusive mentorship first um no task is small enough to be broken down into smaller pieces for a lower level contributor to take it on we pick up people from like their like previous Journey like I will like abuse them until they start layering rust and then afterwards they will get you know Repose their use they will open an issue a pull request like our team will come in and like Mentor it's a beautiful thing we have a very high bar um but we expect that people that will put in the work and that they will be rewarded people get hired from our code bases in our chat rooms and not by Paradigm only although we do try to hire the best island out of our code base another Repose there is but like even competitors and that's okay the pie is big enough the thing that we do a lot is that we're like feedback first um there is no room for Eagles there's no room for you know your product is not good oh I'm feeling bad you know you have to tell us the way it is um because if you don't tell us the way it is like who is going to tell it to us the way it is you know we're going to be screwed if we don't have customer feedback so if anything sucks please come find us like swear to us throw tomatoes at us I don't know but like get an issue open after you do all of that and we also don't do calls as much as we can we do some the bare minimum but we try to keep it async first we try to keep it written precise and no time wasted like we work around the clock we work across main time zones we're not going to spend time on like taking up locks on people's calendars I have an IP address here which is the address that you saw running the node in the beginning feel free to connect to it hit it as hard as you can you know we'll see what happens there's a grafana board that you can use um all of these are running on the alpha 4 release which came out last Monday and um just to do a quick summary of the so what Paradigm funded the core team of eight including me we built it since October I believe the repository has over 100 open source contributors in this time Foundry at this point has like 250-ish I think it has an incredible performance which I'll talk about in a second it's feature complete up to Shanghai and we're starting Cancun very soon in Cloud to be ready for devnets buying end of August maybe early September because most of ethereumgs and RBC and has the two very powerful tracing apis that people want to use for node infrastructure for tracing for Mev and whatnot and the last part that I take a set of libraries which I don't think I'll have to talk time time to talk about unfortunately um yeah yikes contributors 135 as of yesterday 2K stars and the 380 359 pull requests in the last 30 days with eight people how does this happen you tell me like we have a big open source community of people that want to be working with us and we work with them so if you're a Ras developer work with us and we will do the best our best to make this happen proper um okay uh we'll work with it it's enough I think this chart is a latency chart so blower is better um this is the latency for ethical on rest and it's unfortunate that we're not able to see it but the lower it outperformed like 10x Plus or more like in some cases 100 compared to other RPC nodes um we're still making a lot better I acknowledge that we're not able to do that already for every RPC call there's no reason why we won't be able to do it now so we want to get better at that throughput when you have a system that is able to saturate it's load fully the chart that you would expect to see is a y equals x chart a linear one one says request name request out the note that we're comparing ourselves to around like the 8000 requests per second um it starts to break down on the top of the screen we can see the time and the database size the time to sync an archive node from Genesis on bare metal hardware on Raid 0 and vme disks on two disks that are rate zeroed together at block 17.4 million which is around as of a month ago outperforms anything the market significantly um and something that we're extremely proud about and we'll have more work to do on it like we're not done the database size um we leverage the Argon design which means that we're the same rough ballpark um with some small content improvements like I don't think the 300 gigabytes matter here you're over two terabytes the next one is four terabytes the next one is eight and so on so it's kind of like the same thing but for get another mine for example for archive node again um it's it's not attractable right how did this load in the previous one didn't okay nice we built the the two charts that you saw earlier these ones um were created with this tool this is a load testing tool that we built specifically for rest and now we maintain to develop high performance high quality data-driven benchmarks for RPC nodes I think the ethereum ecosystem is a bit embarrassingly non-scientific honestly and here we're trying to take a bit of a scientific approach with like very clear measurements at the J curve inflection point of the throughput latency graph buzzwords but you know if you care about performance like you understand what I mean there's no secret um we do profiling we use flame graphs we try to close every feedback loop we are not like Geniuses what we do is that we know where to measure you know as an engineer you look at the wide flame graph that is very red and you keep staring at it until you figure out how to make it less wide less red repeat the code will become fast it's not very good science we'll take the ergon architecture which as I said is a breakthrough Innovation a big shot of the team we use rev which is an evm um built in Rust to be high performance it's the same evm that Foundry uses and of course we use the rust programming language for its performance and safety guarantees one underrated thing about the rasp programming language that's inclusive and inclusivity makes its way into the code after you have started like programming for a few weeks yes it does have a slightly higher buyer to entry but once you're past that you can onboard to any code base the most advanced code base is um in days not weeks not months underneath I don't have time to get into this defense in-depth approach we know how the security I was an auditor in my earlier days um we work with the best security people in the planet like we know how to do security we hope to do this better we want to audit it we don't have the capacity to run a full-on fledged audit so please don't do sales to me if you want to audit it and you want to put it on your like Client List it's free open source we're happy to work with you like we're not going to be able to like do something big here unfortunately but we hope that the ecosystem is excited to keep this secured hopefully action items for the group is run a node I'm not able to run a thousand nodes because I don't have a thousand different pieces of hardware the main thing that we need to understand how good the node is is how well how much is the variance of performance across different Hardware types as you see at the bottom like the disk is King and we have a GitHub gist here which explains various performance characteristics of disks and their time to sing their iops and so on so we want more work on that we will support every platform that we can and if you want to run a node um don't come meet me after but please go the join the telegram room and we will happily hand hold you I will personally hand hold you online if I need to um if I have time do we have some time no okay thank you [Applause]

Automatic transcript — names and jargon may be misspelled.