 My name is Greg Might know me online is Greg the Greek Today, I'm gonna be talking about towards e2 developer tooling basically You know, how are you gonna go from e20 to and is it gonna work? And what are we gonna do about it? so How do I not get a preview here? Okay, so quickly who's changed? Jesus Who is chain safe change? We're a r&d protocol shop of Toronto about 26 people mainly in Toronto and a little bit distributed And we're working on an e2 client called loadstar And just who I am I'm one of the co-founders of VP engineering. You can find me Greg the Greek just about on everything And yeah, so what is loadstar? So loadstar is a type script and an assembly script Basically e2 ecosystem. We're building just about everything that we can in there rationale, you know, a lot of when it comes to Interacting with blockchains 90% of the time you're using JavaScript. So we actually we're gonna need the support there and Basically, some of our focuses are on light clients the beacon Our main focuses are on a beacon chain implementation like client implementation Which came and had a really good talk on yesterday and how they advised checking out the videos and slides And as well as developer tooling because naturally, you know, as I said, we're gonna have to interact somehow and Websites mainly do it do JavaScript So My agenda is really simple today We're gonna look at like where we are now and then how we're gonna try and you know Do a migration some sort of a migration path that makes sense so that you know Everybody working really hard on like their tool sets don't have to rewrite everything because that's suck And a lot of waste of time so Basically, like where are we are now this side was so hard to make by the way like there's way too many like teams out there And if I didn't add your stuff, I'm sorry. This is just like what I typically interact with But I mean we have a lot a whole vast type of Tooling that exists right now a lot of it. We have providers like what 3js ethers.js Development related stuff like truffle ganache soul CJS You know wallets that do a lot of like the hard work for everybody and they don't really realize what they're doing in behind Such as like wall connect metamask frame so many more Really helpful debugging tools like EVM lab And some you you might not know what it is But it's like helps you really like dive deep into seeing what's going on like within the EVM while you're running executing your smart contracts And now I see that I got like really great websites that like help you build smart contracts like play and remix That are integral and one thing to note with like just about all these things. I've listed here. I'm pretty sure they all use JavaScript right now And it's like very deeply nested in them for how they make their connections and actually interact With theorem so moving forward You know with theorem 2.0 There's one big thing that we have to note and it's that you know our APIs are not at all equivalent like Zero like the compatibility is like next to nothing Which means that everything we've just listed here Would not work right out of the gate. It actually take quite a lot of an overhaul borderline to rewrite If we didn't do something to help better support a transitioning period So that's what I've been focusing on personally So I've been spending a lot of time personally on you know, how can we make this smoother transition for teams who are building Quality tools that are used every day. I mean like I think ethers alone does like 13,000 has like 13,000 downloads on the little Used packages on like the github Downloads thing which is like that's a lot of people like depending on you know one small piece of software within the larger context of the ecosystem, so Just like to highlight the example, you know, we have a block in you know, ETH 1 and We don't really have a one-to-one equivalent because we have two types of blocks in ETH 2 So that's a problem. We also have shards shards don't exist. So your ETH 1 I don't know what you would what you'd do there, you know, like you what would ethers do when you say get block Where do you go, you know, there's two blocks and there's also many shards so and then we have execution environments I don't even want to touch that and I won't be touching that today cuz like that's something else But to highlight my point is like there's so many discrepancies that the APIs will never line up and they won't but there's some things We can do and there's some clever things we can do so Something I've been thinking about as an interim solution and obviously this is not great ever, you know The more I've been talking with a lot of teams, especially truffle has been like no, they want like they're happy to do like a proper Baked-in solution, but something interim that we could do You know with ether is what we typically do is you pass in, you know the test net or the network you want to use And what we can actually do is we can create about it like an adapter sort of like that sits right on in the outside and wraps all the requests And basically the idea behind that did that slide getting no And basically the idea behind that is something that we did a chain safe With something called ether mint from the cosmos ecosystem where we made the EVM work on top of tendermen But naturally they again, it's kind of a similar situation They don't line up, but we had to make sure that all the developer tooling like worked right out of the gate So that you could it was like playing in a theorem Because you know otherwise why would you use it? So what we did was we basically added this layer in front that every time an API request came into The EVM or in this case, it would be like when it hits the beacon chain or AL whatever is there We're basically looking at it and then translating to whatever we think makes the most sense From that side so we can do that with the beacon chain right and with this so chances are you have a contract You're saying hey, I want to look up this contract You're probably you have to get routed to a shard because that's where your contract's gonna be living And you're gonna have to do it that way so we can just take like a generic request from You know the standard ETH one API and like rewrap it and pop it back up That works. It's not great You know we that would mean every client team would have to go and adopt this like a interface sitting in front of their current Whatever we end up making these two API whether it's Jason RPC, you know, whatever It does the job. It's not great. You know, we could also integrate directly into the providers You know, we could directly put it into ethers again, not the optimal solution Well, this is something we're thinking about Ideally, we're gonna have to do some sort of a ground-up rewrite on Our providers and if we can do it from the providers perspective Then we actually save ourselves as long as the providers maintain the same API format And then we're just doing a lot of magic in behind We actually won't have to rewrite a lot of our dev tooling and like dev teams can continue to operate as they did before Naturally, it'd be nice to get some like native, you know, ETH to tooling but to help ease the transition over This is one of something along this line will probably have to be the best best case we can do Otherwise, we just won't have anything ready by the time ETH two launches and there's no point in spending resources doing twice So that's my little provider show and I'm happy to talk about this a lot more after Something else that's kind of interesting and this is funny, you know It's like maybe we can solve it after 30 years But we won't is the intersection of like like clients and developer tooling and how we can actually potentially make smarter developers And by this I mean like more on the front end the DApp side because right now You know, we spend a lot of time a lot of our the ways we do things We do a lot polling for instance a lot of developers like go and pull the chain like a million times over and a million times over And then like, you know, if they're hitting in fear, you're getting like you're bombarding in fear with like Thousands of requests. It's not a great solution but moving forward because You know like clients are becoming our First-class citizens in ETH too, which means we actually can use this as like a powerful tool to help us You know not exhaust resources and actually utilize only what we need To you know, serve our DApps or serve whatever the application is moving forward So I've Naively put, you know, we're still working on this and it's kind of like I want to try it We're trying to think of a new way to like reshape the way we interact with the chain I don't want to go too deep on like clients But like it just so basically the idea is you subscribe to a shard that you want or a subset of shards that you want and You only get the relevant data that you need very lightly put And something that we can do here is the current model and flow in ETH one is that you know The website to connects to the provider the provider then hits a full node Has to the full node has to like basically index the whole thing to find what exact information you need and then returns it Very slow very cumbersome with like clients what we can do is we actually can put the burden back on the website or the client There are the browser itself and this is kind of interesting because what we can do is we can do one of two things We can say When you go into a website we can look for now I know a lot of people are gonna be like you shouldn't be injecting like web three into the browser But we're not gonna talk about there right now. Let's just make a naive assumption So is there like an E2 object in the browser if there is we can assume that there's some sort of a provider already Existing and there's like potentially a plug-in like MetaMask in that case we can MetaMask in this instance would be hosting a light client actually within the plug-in This allows then the website to go and say hey I need you to subscribe to this shard for me and then start persisting and maintaining the data While then you know once the day is requested the website user as it's going while that's happening We can actually cache, you know that shard data, you know a cookie local storage or even if it's a plug-in the plug-in state And alternatively if we make our providers smart We can then actually have the website itself if the user doesn't have a plug-in We have the website itself actually spin up a light client And this is because we're gonna we will be able to do this simply because we've got languages You know compiling to wasm But also load stars like whole goal is to have a light client that runs in the browser That's native to the browser and works so with that we can actually kind of like exploit the browser to its fullest capabilities So that the burden doesn't go on like a centralized service like in fear and don't get me wrong I can fear does is amazing, you know that we have to lot to thank for them But let's try and take the burden away from them if we can and a scheme something like this Would definitely help solve a lot of those issues and could potentially change the way we develop and serve data Yeah, that's then I end of my talk I let's chat afterwards if you are a tooling team because like there's a lot to kind of discuss here It's still pretty early, but there's things that we need to start talking about now I know there's a lot of pain points in the current API and the current way ETH one works in regards to like the Jason RPC API And we have an opportunity to kind of learn from our mistakes reshape it from the beginning and Just saw and basically, you know make it as optimal as we can right out of the gate So thank you, and you can contact me here