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

Loading player…

Distributed Infrastructure for a Distributed Network: Gnosis and Gateway.fm with Igor Mandrigin

Ethereum DenverMon, Oct 9, 2023, 12:00 AM

"When accessing blockchains today, we often rely on centralised services. These services grow big and gain international success. Consequently, lots of nodes are grouped in just a few locations around the globe. Risks and concerns of that are quite well understood, from privacy to legal and censorship. For a blockchain to be really decentralised, all critical pieces of infrastructure, like RPC services, validators, block explorers are distributed across the globe. But building an infrastructure system that is actually distributed brings its own sets of challenges. In my talk, I will share our experiences in building infrastructure that works across platforms, from bare metal Linux to AWS cloud. I will discuss the challenges we faced, the lessons we learned, and the successes we achieved while building this infrastructure. I will also delve into the importance of distributing nodes around the world, the criteria we use to measure our success, and what comes next. At [Gateway.fm](http://gateway.fm/), we have been supporting Gnosis Chain in their ambition to become the most decentralized and distributed network in the industry. Our infrastructure is distributed, portable and able to handle billions of requests with high availability." Igor Mandrigin Infrastructure + Scalability Stage

Transcript

My name is Eager and today I want to talk about birds and decentralization but mostly birds and uh I'll start with a little bit about uh myself. I'm uh I've been in tech for a little bit short of like 20 years. I've been working in different spaces like started with network security did my own mobile game startup like worked on the mobile and desktop browsers and some fintech and stuff like this before blockchain. in the blockchain. I did work a little bit on in the Ethereum foundation on the research to make sure that you are not storing the whole internet on your computer and then uh I'm one of the like uh core contributors to the Aragon notes one of the core dev teams and the CTO of gateway FM and uh for the gateway FM my marketing department sent me a slide but since there is no shielding like uh here I had to edit it a little bit but basically We are an infrastructure provider.

We provide a very robust and fast RPC endpoints distributed globally validators and we help other layers ones and layers two to to reach mass adoption. And uh when I worked started working on this uh deck initially it was supposed to be like some practical examples of difficulties of decentralizing the infrastructure players but then I thought that it's going to be a bit more interesting and more useful to help uh to share how we think about decentralization at gateway FM and to give you a little bit of a mental model on of of decentralization to that's allow you to think of decentralized products a little bit more thoroughly than maybe just typical labels of permissionless and decentralized and stuff like this. And then we apply this mental model to a couple of cases. So what's the best way to talk about decentralization is of course uh using the game from 2013 that's uh called Flappy Birds when you navigate your birds through different obstacle and try to keep it alive. So that's what my mental model is based on and uh basically this bird is our decentralization and we know that each product is basically it consists on different layers.

It might have some UI, some governance, some RPCs, some distribution methods. And each methods has its own obstacles to decentralization. And our goal in the end is try to keep this bird alive and to pass through all of these fields. And why is that a problem? Like why decentralization is a problem?

Uh is because like the decentralized tech in general is relatively new, right? So the Satoshi Nakamoto's white paper was written in like what 2007 and 8 but we've been building software and before the different things as a community like using centralized methodic for very very long time. So whenever we kind of find some some issue or something we need to solve we kind of default into the mode of like centralization like some examples are here. But then if you want to actually decentralize to put a hole there then you need to sometimes think like basically from the first principles about how can you get rid of this like trusted third party or how can you decentralize things actually and uh so that's the bird but also one more thing that I wanted to add is that what we want is a mass adoption of technologies and not the technology for the technology sake right so one thing that I added here is some kind of a fire of market forces in the bottom and that means that let's say if you're building a decentralized model but it's uh not practical to use then uh your bird will go down too much and then basically you will not be able to decentralize because you will not gain adoption. But apart from that, there is one more uh like player in this game and that's a little bit of like a storm at the top of this and that's basically the technical feasibility because of course you might come up with some like our mind is very powerful, right?

We can come up with something that couldn't exist and can't exist right now. So we can come up with some super cool payment network with instant settlement that will unfortunately require everybody to have an infinite battery on their phone which we don't have. So that's basically the current level of technology where we have is is on top of this. So that's the model and again as uh previously like a protocol developer now uh and RPC provider CTO I want to apply it to those two cases. So basically if we talk about the blockchain network uh we know that the first thing we want to talk about is the the block production because each network usually has two classes of nodes right what one class of nodes which basically everything uh it just validates state transitions but it cannot write anything new to the blockchain but then there are some other nodes that's called maybe miners in proof of work validators in proof of stake.

They could be called like sequencers yada yada yada. But the point is that they can write something new to the blockchain and they need to be decentralized. And the things that users care about is two things is throughput in like transactions per second or whatever and then the settlement time. And those two are different because maybe you have a network that's settles every minute but then it settles 60 million transactions in each block but then you have like a TPS of like a million transaction per second but then it doesn't mean that your transaction will be settled quickly. So these are different things and that's where we are also limited by hardware like if we have like infinite CPU there wasn't speed of light and actual like uh connections network connection between different computers we could have been really golden here.

So yeah that's the first part. Yeah. And then you can see that there are different classes. Like if you just have one centralized sequencer or like one centralized block production node, then maybe it's not that much of a decentralization. But then you have different blockchains that use center consents that can have like anywhere from two to like couple of dozens uh like validators and that's more decentralized.

And then we have chain like chains like Gnosis chain or Ethereum that have beacon consensus that have hundreds of thousands of validators which is good but you also need to think about not only the number of like validators but who owns them as well. The next thing is about ownership and the governance and processes. Again we know very well about how to build software as a corporation and how to build it efficiency. And efficiency is important because if we just come together and do something decentralized and never ship anything that's uh not very useful, right? And then uh we also are limited by the current legal field because we don't want people to get in trouble for working in our DAO for working on our protocol and we unfortunately saw some examples that are not awesome in here.

The next thing is uh the developer infrastructure because maybe you're building the blockchain not for yourself but for other developers who will build on this blockchain and that's where the developer uh experience is makes sense. is very important and you are limited by the quality of nodes, the data availability, the P2P but then we know how to again uh make a good documentation on I don't know GB books we know how to post videos to YouTube we know how to I mean ideally we want everybody to use to run their own nodes but it's not really plausible in terms of developer experience but then we go to like infrastructure provider And then if you run to infrastructure providers then if you want to to have a kind practical decentralization at least we need to make sure that you have like more than one and then those providers are not hosting your node in the same place and not uh are under sort of registered in the same country basically. And the last thing is about user experience because again your chain is used by somebody and maybe your developer toolings and the rest is good but then the only way to use your blockchain is one game that's uh distributed through steam and that's it basically. Then it might as well not be a blockchain at at this point. So that means that yeah we know how to do good UX, how to distribute and get users for the centralized solution.

We use Google for that. we use some kind of a marketing techniques uh and we have limitations of like app stores and uh just in generally the web technologies that are getting more and more centralized uh but yeah that's uh one of the more important aspect and that's about like a blockchain network. Now let's uh talk a little bit of the infrastructure provider. So the first thing that comes to mind is of course at least to me uh where do you host your nodes. So and uh there are three limitations from the users that are very important.

Users want a low latency. Users wants a high up time and users want to actually trust which a lot of the people forget that the data that comes from the nodes that you tell that it comes from the node that actually comes from the node because like if you do like a naive decentralization any malicious player can can do something and respond to the calls whenever they want and then you can end up in some situation when some bridge let's say or some oracle tells you wrong balance and you mean some tokens and you basically Yeah, you're in a big trouble. But if you usually people use clouds again in traditional deployments in I know even in RPC deployments but then uh it's difficult to centralize like we at gateway we're trying to work with independent data centers but then you very quickly go into the issue of both node qualities quality in general and then also on supply chain because as it turns out that especially after the covid it's really difficult to get SD discs into your like data center especially if you're a smaller player if you're not Google not Apple not uh not Amazon. So that's uh a little bit of a tricky thing to to square. Another thing again is the governance and processes.

It's uh very similar to what put to the blockchain nodes but since the RPC provider needs to be actively monitored then basically you also need to care about uptime here because if you have like a DAO and everybody is happy but there is no one to wake up in the night to restart your nodes to actually like to receive an alarm that's also is not very helpful and again it's the same thing that's you you we used to work with like product managers road maps like paying salaries and we don't want people to get in trouble for working for us. The next thing is payments. Uh and of course depends your decentralization depends on how you get money from your customers. And customers want something safe, something familiar and something cheap basically like this. They want to trust your payments method and stuff like this.

And you as an infrastructure provider has expenses usually like either in US dollars or euros or something. And then it's like very easy to maybe integrate with stripe which is centralized or like just visa directly maybe stable coins but stable coins we know that not all of them are very decentralized even though they are theoretically smart contracts on the blockchain. So it's also one more thing to look after and uh the final thing is also important and that's a monitoring and disaster recovery and basically again since I'm coming from the background in the information security I know that a lot of hacks like a lot of the data that's being leaked is actually diagnostic data that being leaked. Somebody forgot to not log your password in the logs and then of course you never protect your logs or people never protect the logs as well as the whole infrastructure or databases don't encrypt them stuff like this. So you have really a privacy implications of monitoring and of course the uptime implications because you want to wake up and fix your service and that means that again at least in our case at gateway we think about this in the way that let's say if we promise you that we give you RPC service in Turk in Switzerland which we do uh we also store all the monitoring data in the same data center so it's like decentral like distributed across data centers so you at least are you know that if you're talking to Turk then all your data is always in Turk all your HTTP metadata is also in Turk and it's not sent to some third country that then will analyze it for their own purposes and uh here we are a little bit limited and again I I looked around I've saw some projects but let's say we cannot get anywhere from pager duty because that's the only centralized service that can actually call any number in the world and wake you up in the night.

It would be a really cool like distributed I don't know project to offer that and then you're limited about encryption because if you're doing backups you want to do encrypted backups let's say you put it on IPFS or Filecoin or RV but then somebody can download it and if your keys are compromised at some point in time you cannot really remove this data so you need to be really careful with your encryption and reenryption mechanisms in here. So that's a little bit about the infrastructure providers and as a conclusion I wanted to zoom out a little bit on the world and I see us as a community and a lot of you are here working on different obstacles maybe somebody working on doing decentralized identity somebody is working on decentralized governance somebody is working on payments file storage compute distribution mechanism whatever it's uh really cool we are playing the same like collaborative game and trying to keep this bird alive for as long as possible. But apart from that, we also have some teams that are moving the storm a little bit up and they're building new technology, new encryption, maybe new hardware that helps with the blockchains. And then there are a lot of educators that help us to move this market forces down and kind of they make distributed technologies more familiar to users. So now we are not hitting some some walls there.

So it's pretty cool. We all together here and uh yeah you are basically learned how at least the gateway we think about decentralization. So we always are happy to talk to the protocols and other people who think the same way. You can contact me on any of these things. There is our website and we are here in this lime hoodies.

So yeah, feel free to al always contact us and yeah, we have some five minutes for questions. There's a question. There's a question there. Hi there. That was really interesting.

Um, thanks for like splitting it up into all these different sections and and speaking uh uh unanimously about everything. I I just wanted to know about what your thoughts are on we're on decentralized policy since there's so much regulation and um forward focus on this. Is is this something that anyone talks about like decentralized networking policies? Yeah, I think like unfortunately there are like different types of conferences out there and usually the policy conferences not is Denver. So, but some people are working on different uh if you're talking about the government policies for instance to towards that's what you're talking about.

That's what how I understood it SEC related. Yeah. Yeah. So FCC or like Mika regulations in Europe or something like this they unfortunately a bit more closed and they are using much more traditional ways of discussing this like any other law and uh some players from like big players I see from the from the space they go and advocate for this but I don't think enough to be honest because we saw that let's say Mika initially wanted to uh for any who has non-custodial wallet to have like a full audit of everything that's done in like non-custodial wallet which which is difficult. So I think we don't do it enough as a community.

Okay, I don't see any more questions. I think yeah that's it. just uh drop by and come to me or DM me on Twitter or Telegram and yeah, let's continue the conversation. Thank you very much for coming. Yeah.

Automatic transcript — names and jargon may be misspelled.