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

Loading player…

Bloctopus DevOps for Web3 | Til Jordan - Bloctopus

Ethereum DenverThu, Oct 9, 2025, 12:00 AM

Speaker

Til Jordan

leveraging Kurtosis, a technology used by many teams including the Ethereum and Optimism Foundation, to create realistic testnets and provide a better developer experience. 🚀 Get Ready for ETHDenver 2025! 🚀 We're already hard at work preparing for next year's biggest Web3 event! Keep your eyes peeled for more info on ETHDenver 2025—it’s going to be epic! 🌟

Transcript

[Music] all right hi everyone uh I'm till and I'm the co-founder and CTO at bopus so a little bit about myself um my background is in computer science and bopus got started as a research project at the University of Southampton so we were doing research on um analysis of performance and security of blockchains and basically coming up with standardized ways to um compare different protocols um so a lot has changed since then and the past few months have been quite exciting for us um so we were part of the most recent texes London cohort um I won a couple of prices at East Global Sun Francisco in October uh and we recently got a grant from the ethereum foundation public test Nets are painstaking public test Nets are supposed to be a replica of main net but they have a serious design flaw they have no incentive mechanisms so they're basically a shared network that's used for free by everyone and because of that we have a lot of con congestion and abuse so I'm sure most of us had issues with uh faucets before not being able to get test tokens uh maybe you've heard the story about girly e being actually traded at quite a significant value because it was so difficult to get test tokens on the girly ethereum test net and then when we look at some of the biggest teams in web 3 this is from uh the Unis swap docs where they say they don't have the resources to support all of these different test Nets and even the test Nets where Unis swap is supported uh the experience is very different than main Nets because the data is different because the liquidity pools are different and that's the same pretty much for any defi protocol it's the same for uh things like cross chain protocols this is from uh layer zero they recommend not to use sepolia because it's so unreliable they do support different test Nets but you can imagine that for each test net that they support they need to spend a lot of resources on keeping that maintained a lot of teams um are forced to build directly on Main net because the components that they're using are not uh supported on public test Nets so they usually go for um some sort of L2 main net because the gas fees are lower but the risk of doing that is extremely high and also the incentive is wrong because the more testing or development do the more fees you have to pay so potentially we end up with applications that have more bugs and more issues so how do we solve that what we're proposing is a decentralized operator Network for all blockchains so what I mean by that is a network of nodes or operators um who can spin up any sort of decentralized network or blockchain so rather than having these sort of fragmented public test Nets we would have one network that can spin up these different environments that have all of the protocols and components that you need to do your development and the main difference is that not everyone will be developing on the same shared network but people will have their own personal environments so you can control that personal environment it can be private but you can share it publicly or with specific people and the important part is that you can get an unlimited faucet mainnet data and full support for things like Crush protocols oracles wallet infrastructure and defi protocols these environments are only active when they're actually being used so it also reduces the cost for any operators so just to recap what we're proposing is a decentralized network that contains these different environments and these environments can basically support any protocol or any component how do we do that most of what we're doing is open source and we're going with a three native approach um and we're using an open source technology called kosis uh and kosis allows us to basically spin up these environments in a very reproducible way ketosis is very modular so it's structured in these different uh ketosis packages and these packages basically Define anything that's specific about a certain protocol or component and there's already quite a few well-maintained packages like the ethereum package which is used by the ethereum foundation and many node client teams to do their development and testing we have developed packages for l2s uh for Crush protocols like layer zero for defi protocols like Unis swop and there's already other teams developing their own packages as well the important part about these packages is that they is that they modular and work together so if you for example need an environment that supports arbitrum ethereum with layer zero in between H and you're building an application on top of Unis Swap all you have to do is run these packages and you get an environment that has exactly these components what we're doing on top of that is building components to make the developer experience even better so we have a UI that basically allows to create these environments and manage these environments in in a very easy way uh State Management allows us to shut down these environments and spin them back up again with exactly the same data and we're also thinking about more sophisticated things like being able to recover all the data all the states of the network if something goes wrong um or being able to share State across different environments so if someone is developing an application in one environment you could import it in your environment and actually build on top of it then we have forking uh so having access to mainnet data so that you can develop your application against actual mainnet data and have the same experience as you would on mainnet and all of this can be run by anyone it can even be run locally on your computer but what we're working on is a better incentive structure for for these operators so that we have environments that are highly available but also at a minimal cost for users so let's have a look and actually see what this looks like in our platform so this is what our dashboard looks like um the first thing you would usually do is uh create a new environment so at the moment we support ethereum and a few of the l2s and as of today we also support uh layer zero so if we would go ahead and create a new Network um we would could give it a name um forking is enabled by default we can choose the different block height um or we can also have an MD Network that doesn't have any data in it yet uh we can configure a lot of different parameters so we could change the uh block time to have a more a faster Network or a slower Network we could uh change the gas limit to experiment um and we can also change the notes in the network so we can choose from all of the different uh execution clients we can choose from all the different consensus clients um so if we go ahead and create this network we get a summary here um we can go ahead and start the network and I actually already created a few Network so this will just take a few minutes but in the meantime we can have a look at the ethereum network that I already created um the first thing that I'll probably do is add the network to to my wallet um so I've already done that uh so we can see here I'm connected to this ethereum network uh at the moment I have a a balance of zero e and zero for all of these tokens so what I can do is I can use this unlimited faucet here to get some tokens uh so I could paste my address here um or I can even import it um from from my metamask wallet so let's go with this address uh and let's go ahead and send some e oh there's an issue let's try that again it might yeah it looks like a non issue but we'll see all right I think this should work now there we go it's little issue for live demos always but um now we can see that actually I got sent 100 e so I can do a lot of testing um if we wanted to we could also actually um send us some stable coins so I could send myself some uh usdc um just give that a couple of seconds again but I'm sure it will work this time uh all right there we go so if I go now back into my wallet I'll see in a second uh just give it a second just there there we go so there's the 100 USC that I got uh we can also verify the transaction in in the block Explorer um so this is a standard block Explorer we can see this transaction of 100 usdc um and in the block Explorer we'd also be able to see all the blocks that are being being produced uh then we have the RPC so that if we want to deploy any contracts or intact with the network um and then what we can do with these networks is share them with other people so I can share them with specific people or I can even create a a public link so that anyone can use this network use the unlimited faucet deploy contracts and so on um if any networks are shared with me they would come up here on this tab um but at the moment I just have my own networks um the next thing we can also see the configuration here we can see this is actually a network that Forks ethereum M main net um and what I've did here is a very simple UI to basically show um that this is an actual Fork Network and that it uses uh that it has all the data from Unis in the background so again we can connect the wallet so this is my wallet being connected so let's choose uh usdc for example I can see my balance let's do maybe 10 usdc uh and convert that to die um again that might be something that takes a little bit um because in the background what it would do is basically it would look at all the different Li liquidity pools uh and try to find uh a a good quote for this um this could be improved probably quite a lot to be faster um by by using subgraphs to get the data the quote um but the reality is that all the contracts exist in this network so I can actually um convert the things so I think there's always little issue on the first try we just give it a bit more in the meantime what I can show you um one more thing that's quite cool is um we can also have pre-funded addresses which actually have a lot of tokens in there so I can have this account for example that has as you can see almost a billion e so if I wanted to do any sort of testing on Unis Swope for example of what happens if I do a huge trade of 100,000 converting usdc to Die For example what would be a slippage um so you can see now it took a while but um we got we got the quote uh let's switch back to this wallet oh we'll do another quote but there we go so we will get 10 die for that so let's do this swap um there you go so it'll ask me to confirm in my wallet so first I have to confirm this there we go yeah it's not the fastest but um it will it will do it um just give it a sec sometimes we can also oh there we go there's the request so I can confirm that okay and that's successful we can see the transaction here it's still pending um but we'll go through in a sec there we go so that's confirmed so now I should be able to see my die that I got uh in this account as well um so then one more thing that I want to show you is actually the support for for layer zero um so I already created an an arbitrum Network as well and I have the ethereum one and then I deployed layer zero to connect those two networks uh so those of you who are familiar with layer zero and we have what's called called an Executor and the dvn which are basically on andof chain components that verify the messages and then execute them on the destination chain um so what I did already is I I deployed a sample O app a contract on both of those chains and I want those two contracts to communicate with each other so if I go into the block Explorer um I can see that this is here the the contract that I deployed on ethereum uh it's a very simple contract which basically just allows me to send and receive messages and messages that it receives it stores in a variable called Data um so if we actually read this contract if we read the data we'll be able to see nothing received yet uh and it will be exactly the same on on arbitrum as well uh so let's just have a look yeah so it's the same here on arbitrum so nothing received yet so if I just go into my code um what I did uh in here in the configuration is basically use those values from the dashboard uh to to connect those two two networks to arbit from in ethereum and then I have a very simple script here which sends a message from one network to the other uh so let's actually send a message um let's send it from ethereum to arbitrum let's do a message all right that should be good so we can execute that so again because both of those networks are Fork networks we have the endpoint contracts from layer zero so all of that exists and all we're deploying is basically the Rel layers that bring the messages from one chain to the other so you can see there was a a fee for this um for this cross chain transaction uh so it's sending the message now uh so it's sending this on ethereum that will be picked up by those offchain components it will be verified that this was actually sent on ethereum and then it will be brought to arbitrum so we can confirm that uh in the in the block Explorer so this is the the arbitrum one so we can see here now that value has uh GM East Denver uh we could do the same thing exactly also for uh the other way around so if we just swap out here arbitr for ethereum and execute that that'll be exactly the same so we have basically a communication uh by directionally so in both ways from ethereum to arbitrum and from arbitrum uh to ethereum um and the important part actually is that so we can just double check that here again um this is on the Block Explorer takes a couple seconds see if I did something wrong should be good there we go so there's the message as well just sometimes takes a couple seconds um so the cool thing is that you could actually connect use this platform also to connect any kind of networks using layer zero uh so you could even use a public test net if you wanted to or one of your local networks uh and connect them using layer zero and then have the full experience being able to develop your application against actual main net data with cross chain um and having support for these different blockchains all right uh thank you very much um you can actually go on block.io and and and try it out for yourself it's free to use um and yeah you can start developing your applications in a very different way thank you very much

Automatic transcript — names and jargon may be misspelled.