# Load Balancing in Eth2 (Devcon5)

- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2020-10-09
- Duration: 12:03
- Topics: blockchain, smart contracts, distributed ledger, ethereum
- Watch: https://streameth.org/watch/yt-QELHMKInjj0
- YouTube: https://www.youtube.com/watch?v=QELHMKInjj0

## Description

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 IPFS and more.
https://archive.devcon.org/archive/watch/5/load-balancing-in-eth2

Joe Delong from Pegasys gives an overview of the Artemis Architecture.

Speaker(s): Joe Delong
Skill level: Advanced
Track: Consensus layer
Keywords: eth2, technical

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 5 was held in Osaka, Japan on Oct 8 - 11, 2019.
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

I'm Jonah long I work for the Pegasus team on the Artemis client and today I'm going to talk about our architecture our architecture is designed actually before I get started let me let me say something I want to talk about something that's like kind of close to my heart I'm gonna take about three minutes and talk about this and so if you're new to the space and you haven't been in in theorem 2 for a while I just want to say welcome it's a kind of like drinking from a fire hose I think the first time at Def Con 3 when I saw what they were working on I was like wow that's something that I really want to be a part of and being able to come and speak at Def Con about our own eath to client that I've been working on it means a lot to me and so I think some people might be asking occasionally why if you're m2 is taking so long and from that perspective I would point you to the DEF CON 4 talk from Vitalik his keynote where he described kind of the pitfalls and research decisions that we were going through when for the researchers and and that's a that's a really good resource for learning kind of like all the individual paths that we took to kind of get to where we are now and I think we've like I think in 2016 people are still talking about using at Endermen consensus and to think like how far we've come since then and if hearing 2.0 researchers are like in my view some of the most intelligent hard-working and thoughtful people that you'll find in this space and in the hard working aspect I want you to ciao I challenge you to interview any aetherium to implementer or researchers spouse or significant other and they'll tell you how much they they hate the etherium 2.0 mistress you know and so maybe a few weeks ago we achieved interrupt which is very exciting we were able to get seven clients community and that's very difficult because research is never easy and there is no clear path to victory and we are so close to the beacon chain the this is in my view you know the Apollo program of blockchains and I just wanted to recognize all the teams who are here who are just kind of like dedicating themselves to this if I say your team name you stand up okay don't don't be weird okay Artemis stand up then don't the Adrian you two need ya lighthouse lighthouse lighthouse lighthouse we got lighthouse in the house all right cool Nimbus Nimbus team thank you very much lodestar we got any guys from lodestar all right they slept in that's cool harmony I saw you guys yeah great great job great job Jasper I don't know if wait tang is in the room hey wait tag dude I've never seen you a person that's nice to see you Trinity yay prism excellent work y'all Keith yeah Dean's not here okay cool all right and the etherion foundation the researchers and white block if you all stand up to I just want to say great material support thank you they've sacrificed a lot to be here and we're we're definitely very close so now I'm gonna talk about the real stuff yeah so um we this is an overview of our stack so we chose to use open JDK 11 which is a Java framework right and this is our piece right here that we've written Artemis and these are some of the libraries that we use tiny is built is like run by the Apache foundation but it's basically Antwon you know right there and JVM let p2p that's the harmony guys of Anton specifically yeah really great job and web 3j so to any be use for kind of like our typing but one of the problems with Java is like that there are they're not great primitives and so we wanted to be able to do some of these SSE functions and more advanced functions using a bytes class that wasn't the Java byte array and that's what that was for JVM Lib PTP is a you know I in the etherium 2.0 stack that's how you communicate with your individual nodes it's a pretty interesting library web 3j is a like it's like web 3j s but for Java right it is just kind of this ability to call out and talk to individual contracts and we use Google Commons and I'll get to that in a minute but that's mostly the event bus and then also how I mentioned types are not great in Java so we had to have an unsigned long because there was a we needed to to the 64th - one size integer and we definitely don't have that in Java the best we can do is to to the 63rd - one okay so uh talking about Google Commons that is what we the the reason that we chose to use Google Commons is specifically for this here the event bus this event bus allows us to have a synchronous communication in between individual services within Artemis and so you can see these individual services chain store chain storage our proof-of-work chain that's kind of like interfacing with the with the eath one net beacon chain and validator beacon chain azar is the core spec that you'll see in the etherium 2.0 spec and of course we need a validator so that's so we can kind of like exchange these modules and multiply them and and have fewer and you can see we have like our config and logging I think everybody has that so why choose Java right oh that's a really controversial question so one of the one of our thoughts when we were beginning was we are specifically in Pegasus we're targeting some of the enterprises and interaction with Java for them is much more natural if you've worked at a bank or an insurance company or any kind of fortune 500 you'll find that many of them are wholly Java shops and we wanted something that would be extensible for them additionally Java provides if you've worked in Java you'll find that Java provides ability to build large non monolithic pieces of software and so we additionally we were able to allow it allows us to do some of the eventbus asynchrony so what's so special about an event bus so these modules let me make sure okay cool that's my next slide good so these I have two that say what's so special about an event bus these modules allow us to do individual jobs as services and to by using an event bus we just are creating a service adapter so if I want to put a message onto this bus I can put it onto the bus and other services can subscribe to that message bus so I have a diagram it's really handy so you implement a service adapter and you can in your other service adapters you can subscribe to some of the notifications that these other service adapters will be making so in in we our design process one of the considerations was we have products inside consensus like in fira that we are going to need data center scalability we allow allowed to have data center scalability by allowing ourselves to deploy multiple of these individual services so if you can think of some complications that you will have with a with a client might one one might be I I need to validate blocks and many of those blocks could be spam right well by our design in this beacon chain we can power on multiple of these of these modules and we can validate these spam blocks right or you know reject them of course and another instance might be if you want to aggregate signatures right these are things that take a finite amount of time and if we're going to do many of them we will want to be able to deploy a service that'll allow us to do many on individual services yeah so that's pretty much our architecture it's lovely right now we're using event bus long term we're going to use a G RPC interface but that is some time away we're focusing right now on production izing and after interrupts we have dropped in JVM Lib p2p which is exciting for us announcements okay so we're gonna build sharding client starting soon and it's going to be in Kotlin that's what that logo is if you don't if you're not familiar with that some of the advantages of Kotlin is that it compiles to machine code it trans piles a new JavaScript it also runs on JVM which allows us backwards compatibility with our beacon chain client so we're really excited about that the other thing and I'm glad harmonies here because we're merging teams yeah I think we had conversations where like the world maybe doesn't need to Java clients for if you're into so let's combine our efforts and so that's we're gonna start that we're already in process and we're going to work conjointly on single sharding client and we still don't know what we're gonna do with the beacon chain clients how we're gonna integrate them together cool that's it for me thank you all [Applause] you
