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

Loading player…

Native Implementation of Ephemery Testnet on Besu & Teku Client Pairs by Glory Justin | Devcon SEA

DevconTue, Oct 7, 2025, 12:00 AM

This presentation covers the work done to enable native support for Ephemery on Teku and Besu clients. Ephemery is a short-lived, resettable testnet designed to automatically revert to its genesis state after a defined period, making it ideal for intensive, short-term testing without concerns over issues like insufficient testnet funds, inactive validators, or state bloat that long-running testnets often face. Speaker(s): Glory Justin Skill level: Intermediate Track: [CLS] EPF Day Keywords: Consensus, Developer Infrastructure, User Experience Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum, https://warpcast.com/devcon Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ 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. Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon SEA was held in Bangkok, Thailand on Nov 12 - Nov 15, 2024. Devcon is organized and presented by the Ethereum Foundation. To find out more, please visit https://ethereum.foundation/

Transcript

[Music] hello everyone how you guys doing today I hope you're having a great time at Defcon okay so today I'm going to be talking about Native implementation of a test net on client PE TECO and Bess um first of all I'm glory and um I would like to ask this question how many of us have heard of the word a f test before now okay so those people that raised their hand of are people in the fellowship so that means we still have so many persons that are yet to know about eory I remember when I started working on this project um my mentors um the guys from Teo and B were like what is AEM I've not heard of it before so I had to start explaining I had to share the link to the documentation for them to go through it okay so with that that being said um okay all right so why they're trying to work on it um first of all U what is a f epir is a resetable shortterm based testate so when we say it's resetable it gets to reset itself after a given period of time so it's not like the regular test Nets that we are used to like seoa or ly and the rest of them so f is kind of dynamic and not like the others like I said and um so I wouldn't really want to go deep into AEM so I will just be diving uh into what I actually worked on so yeah for the project uh the goal of the project was for me to implement or create native support for e on besso and Ciro clients and why was this needed we realized that just like I asked and most of you didn't know about FM so FM is still pretty new and we are trying to see how we can get more clients and more people to know about it and to start using it so we want to improve the user adoption and um we want more clients to be running on Fe natively without having to go into the manual process of setting it up so based on the work that I've done um initially when I started this project I noticed um there are some work that have been done before in the past by some other fellows and um uh at that time we had support for forgets red and Lighthouse and lar so work has started for these client uh I don't think they are complete completed yet but uh as at the time I came in I noticed there was no native support for Teo so for that we needed to download the the Genesis uh SSD files and the Genesis files and all of that to do those process manually when trying to run the node So to avoid that um EIC we decided to implement native support for it and what does that really mean when we talk about Native support we want a situation whereby when you are trying to run a node you can easily do something like B D- Network emary just like you do with other supported clients like SE and the rest so um and because e is quite different the process of implementing it on clients was not that straightforward like with other clients so we needed to do things like um trying to write some custom functions or some custom classes as well to be able to like um work on the update of the of the Genesis State and all that so because we understand that AEM update after a certain period of time so there were need there was need for a custom function to be created for that to be able to happen dynamically so these were some of the um things I did and I okay so for the Genesis for the affir Genesis 5 I noticed um the way it is structured when I and checked the original repository was quite different from what's best to clients was expecting so I had to make some changes like um other things like the SR the discovery noes and the boot noes to the to the Genesis file itself and also I updated the documentation when I'm when I was done with the work so that when you go to their documentation now you can see just like you see seis on their dock you can see F there and know the right command for you to run to be able to do that and with this we also implemented some testing because every aspect of this project um with the way and Bessel client Works everything you do you have to write test for it so every implementation work done here was also properly tested and so for Tech we did similar stuff um but with tech you know um for the C clients we don't use the noral and Jon format file for the Genesis so it was SS and um it was it's not as easy to manipulate as you do with um the Genesis format 5 so with that we needed to take a different approach and see how we can load the ssd5 from the F repository to get the updated um States at every given point in time so the same thing applies with teu we also created a custom class and function so be able to update the the Genesis States at every given point in time dynamically so if you're running the node you're able to get the updated state every time so you don't need to like um go to F website to go download it and use on your system and also with tech I worked on the reset feature which which means uh if you are running a node you don't have to stop the node manually to go delete your database and all of those stuff when it's due for reset it reset itself and then deletes all the necessary FES that needs to be deleted um in the DB yeah so um pretty much like I said earlier so the there's no much difference between the implementation on Teo and B just some different files um and changes that were made which was not exactly the same thing and then the SS um file I mentioned and Genesis file and all of that okay so yeah so this is like a summary of everything I did on the implementation for Te and Bess I completed in the initial research then created custom function for eir on both B and the TECO clients and then right now you can have now right now we have native support on both clients so you can use the use the flag the native flag like B Network FM or te Network you can do that as well and then the documentations are also properly updated and there we have suitable tests for all of this so in summary um for the period of the fellowship I was able to get up to 15 PR Meed and currently have one PR that I'm still working on and one open issue so as far as work in progress goes um based on what I plan to do during the course of the fellowship I I wasn't able to get to the point where I um was able to work like work on the reset feature so right now I still have the reset feature to implement on Bess and then on as far as the website goes I'm still yet to work on that like just like redesigning the website and the tutorial work through which I plan to do but I wasn't I didn't have enough time to do that before now so yeah for the challenges these are some of the challenges I faced so uh this was my first time working on protocol development so I before I I do normal application level development like writing smart contract doing dabs and all that so this was my first time and it was a lot of learning process had to learn about the protocol CL e and that was one thing I love about this project because it gave me the opportunity to learn about those different areas and then um trying to understand the code base for each of these clients was another big problem it wasn't even writing the code itself but going through their code base trying to figure out where my implementation is going to be those were some of the challenges I had but for thankfully enough I had good mentors who were able to help me navigate that so for the future of the project I plan to continue my work on the best client to complete the reset future and um to also Implement there there's still some little work I need to do on Techo for the um validator client on slots processing and then to expand the support to other clients so right now we have some clients that don't U currently have native support so my plan is to continue working and to extend support to those other clients and also to become a validator and a feary validator so key takeaways for me um this program has given me the opportunity to dive into the ethereum protocol itself which was one of the reason I joined and then I've had the opportunity to learn a lot about um what the protocol entails client implementation what the different clients we have in the etherum protocol and all of that and then um before now I do Java Java was actually like my very first programming language when I started but I've not done it for like more than four years or so but with this project I had to come back to Java and I was able to like improve on my skills on as far as Java goes as well as testing and all that then for EIP I've not actually implemented anything working with an EIP before but this project actually gave me the opportunity to write code for following an EIP so that was that was really good for me yeah so for my mentor special thanks to Paul Aris from the Teo team Unfortunately they are not here right now and then thanks to Sally from the besto team thanks to Mario and PK 910 from the feary team and um the past fellow oi when I started I asked her some few questions and she also shared some of her past U updates with me which was really helpful as well and thanks to Josh and um um Mario once again for the opportunity and for setting this old Fellowship Fellowship up so before I go I would like to encourage anyone here that want to that is considering contributing to Emory so if you want to do that you can do that in different ways by you can be a node Runner you can Implement on client like I mentioned earlier we still have some client that need implementation and then you can if you're dab developer you can deploy to you can deploy to FM test net on your dab and run and test and see how it goes and if you run node you can also run sorry if you run infrastructure you can run an infrastructure and if you have any idea or whatever you can communicate with us and uh to learn more okay so about this so there's currently an incentivization program on AEM that U gives you an opportunity to contribute and also get incentivised for it so um okay let me not be fast to remove it so in case you want to scan it you can quickly scan it before I remove the slide all right uh so yeah so this is like summary of the work that has been done and what is yet to be done in terms of client implementation so the that that's for E clients and then this is also for the CL clients and for resources if you want to learn more about EP you can check .ev uh to join the community you can check the E metric community and thank you very much all right thank you glory any questions for Glory about her work on the ephemerate test net implementations I wonder is it something different to become a air validator no no it's not the same way you validator for um Network U you can do the same for Fe so you still need 32 e so I didn't get us you still need 32 e okay anyone else yeah not really question just a comment like huge thank you um I mean many many thanks for all your work on a family like it's a incredible job what you've done uh implementing it and fully merging it and have it usable in both clients it's incredible thank you so much for mentioning all the resources the incentivization program and um uh yeah like anybody can run validator because being reset uh every month F has infinite eat for you so we can just run as many validators as possible maybe even more than main at at one point uh but yeah thank you so much Glory we had we FM was created basically at a Defcon years ago and now after two years it's amazing to see such an amazing job being done on at work so yeah thanks again infinite e

Automatic transcript — names and jargon may be misspelled.