 Welcome back at the Chaos West stage Where you can hold your talks? The next talk is held by Jardie about personal service Thank you. Go ahead Jardie well Let's start my presentation I'm going to try to To show a possible alternative to solve the big problem that we have when we want to connect Final users to that is central the central world as you know right now We have many central light servers like DNS or the same web pages or the data centers and Big servers are very much central lights and we in the other side. We have a very good Decentralized tools like for example IPFS Ethereum namecoin There are a lot of tools that are very good. They are decentralized servers, but We have a problem when the final user wants to connect to these decentralized alternatives, so the proposal that I am making here is that Mainly is that Everybody have a server. I know that this is very difficult I'm not I do not pretend that everybody starts a server but I I strongly believe that There is people that can create a server and share this server with Maybe his friends or from the his first circle of people So the idea mainly is you can see this in this schema so you have your personal server to your personal server you connect via VPN the mobile the tablet the desktop you can even have like two three four five users Maybe your family you're you know your neighbors or your ever friends that connect to the server and in the server we in this server We install a set of decentralized tools like I don't know for example a DNS resolver or a Blockchain or an IPFS node or whatever Decentralized tool that we want to install so This is mainly the main the main architecture that we have here Okay, so what I'm going to explain from now on is Just explain how to do for example to visit these central lights appear the central lights web page in this case I'm going to use Names name services in ethereum name services in order to resolve a name and that connect that to the night PFS In order to a PFS in order to get a simple static page Okay, so The way to do that first of all We have the we have to connect we have to connect the client You know the end client to the person to the personal server this Step that could look very difficult But at the end is not much more difficult that connecting to a Wi-Fi that most of the users now how to do it I know that's a difficult process But it's only once set up process and it's not much more difficult that creating a Wi-Fi You must think that most of the current most of the current Operating systems already have the all the you know all the software you did already have the in place where you can configure many different kinds of I of of a tunnel of a VPN with a specific server So one exact one possible solution could be to use L2 tp over PIP a sec But PP tp or any other IP IP in this case. I'm using a L2 tp L2 tp over IP a sec once we have the the the the client connect one we have the client connected the setup that the way that we connect the VPN is a setup where We don't send all the traffic through the VPN as a normal VPN But we do is okay We let all the traffic go the same way But we push the DNS configuration to the client This is a quite very much a standard option when you configure a VPN a VPN connection so what we do is we create in our personal server a bind or a DNS resolver software and When the client connects to the VPN Actually, the client will use our DNS will use our DNS In the state of using there there are standard DNS in our DNS or configuration What we do is mainly we just forward the Query to a regular DNS in general, but we catch if for example somebody asked for a Decentralized domain for example that dot f or a dot bit then we just what we do is we just redirect That name to our server so that we can handle it Okay This is how would look more or less a DNS record the most important line here is this one We say that everything dot f goes to this this private IP which actually is the address of our server Okay, and this is the configuration that we have in the DNS on our on our on our server Okay, so okay when somebody asked I don't know by Lena dot f It will solve and if we will ask to my server to serve the page to by Lena dot f So then we just needed a simple piece It's a kind of forwarder that just takes this This this query this get HTTP get Okay, and it just in the case in the case of ENS just goes to the ethereum to the ethereum in the same server We have on the ethereum node. So it goes to the ethereum. It checks which is the actual In this case IPFS hash that we extract from the ENS ethereum and Then we get this hash and go to IPFS and get this this hash and all that we go on that forward We forward that to a to a customer This that looks very very quite difficult at the end is not more than 10 lines of code I'm gonna show you the lines of code. I think it's interesting the first week. Just create a server The first lines we configure We just get the we just ask the ENS to resolve to to resolve to a hash This is what's done here in this in this second in this second In the second part of code and Then we just forward that to a local host which is nine what nine zero zero one That's where we're actually is ruining a gateway IPFS get away So we are just doing getting the hash and transferring here and to get the hash Well, this is a quite a standard code in order to just to resolve to resolve To a hash probably the most interesting thing is this last this this last line that tries to emulate What would be a text in a normal DNS? Okay Okay, at this point Well, I'm going to try to Show you how it would work mainly What we would do what a normal user would do it's okay We have here internet okay Here we connect to the to the to the VPN just is now connecting Looks like it's connecting Okay, it looks like it's connected And now if I'm on here and just do going to HTTP Well, yeah, that's here the important part is that the death. Okay, this is not if you try to do that in a normal browser This will not work But now here it works. This is a page that I set up in I set up in here. Okay, so and Well, this is I'm gonna show also another page. That's I think it's interesting to show one if you remember one of the One just a couple of months ago in the in all the catalan story There was a web page that was that was censored so you can see here for example if you go to catalan. The revolution dot f should go And it will go directly to the page where it was censored because this is in the IPFS And this is very it's almost impossible to get censored on that on on on on on that page Okay, so mainly you see how we use the personal server just to connect to a decentralized a pure decentralized web page in this case, but This configuration of a server this configuration of the of the this configuration of the server That's not only apply to the decentralized web any the central application Could be running could run in this server and it's very useful when you are creating that To have this server because a lot of times you need for example to have a kind of cache of the blockchain in the in the in some place where the user can access to these data quite fast Another problem for example If you are trying to do a dappies that it takes a lot of time for example to synchronize the chain when the user starts So in this case you don't really need in this case you don't really need To why because the server already has synchronized the server So you can go and access directly to your to your server, which is a true server, okay? and the idea of the project in here is just Okay, we have like an operating system. We have some of the some some models Which would be quite a standard and then we we can the user should be able to install different Dapps or applications that are running in this server that can be for example in a repository in a decentralized Repository where the people can choose which applications Installing their server the same way that they choose which applications they have in their iPhone on the or in their or in their laptop They can also choose which applications they have in the server in some of the some examples of these applications For example could be a decentralized search engine who which part of the server that's are always connecting and always searching the The net could be running here for example So here we have like a full place where can grow a lot of applications can grow on this on this server so Well, that's mainly my presentation on that. I hope You you understand and you you see the idea on that We are working hard on this to be get to be real We are trying that this personal servers be something that to be very very easy to install So that as many people as possible be able to install and maintain these Servers and I hope that at some day We just don't have more data centers more centralized at the centers anymore And we have a full data center which is a one server for each of the individuals in the in the globe And here is my presentation Thank you. I don't know if I'm running home running off time But if you if if one query a query that's for me, it's fine Yeah 1 thank you. Sure team. Hi My question would be if I run this if everybody runs the personal server Does this also increase actually the security of Ethereum network? Well in this if if in these servers there is a note in there So as many as much notes are in the network as much as much better I'm much difficult to tamper at least ever laying part other thing is the other thing is the miners This is not think to be a minor you could install here minor if you want But that's not the idea of the server the server is more a connectivity connectivity server Hello, thank you for the talk How yeah, okay If multiple people run these kind of this decentralized data center How would all the servers connect to each other because in the schema it was shown as peer-to-peer But you haven't said how the servers would connect to each other. No, it's this server. It's so the server has a Set of tools like I don't know a Bitcoin a Bitcoin Chain an Ethereum chain an APF a chain which are which is just a piece of code That's a decentralized decentralized code this connects with the rest of the notes We appear to peer peer-to-peer means that there is no central part where you connect Where you have to connect to they just discover which servers are around and they create a mesh network appear to be an overlay network appear to peer network and there is a protocol in order to synchronize and All these all these servers, but it's a this is There is to to here to install peer-to-peer applications or the central lights applications not a single not a central application Okay So every application is responsible for itself to find the other peers and it's not there's like a mesh or I know a Cloud and air quotes created between all the participants. Yeah. Yeah here is just a regular regular applications This is peer-to-peer application. They have a small trick is the bootstrap You know the beginning when there is nothing you need to be you need to say by hand Which are the initial servers, but once the network is set it up Then you just can't connect everywhere and the people is discovered. It's just for the bootstrap This part it's a kind of center light but for bootstrap for the rest Do you are just once you are connected then the network goes along If I want to run Personal server is the place where I find some resources like configuration here. Okay At GitHub or maybe there's something up to now some resources to set up a personal server. Well, the idea is Well, right now we have set up this server a little bit by hand So just getting the different pieces and putting it together But the idea of this project is that you install that the same way that you install an operating system And you can start a new one too or that you install I don't know a devian or any other distribution that you just set up and it should be as More as much simple for the user as possible because the idea is this to go mine the stream and to as many people As possible to create their own server and manage their own server So it should be very very very simple and I'm sure you should be able to ruin one of those and your mother respect you too Question not really a subject matter question, but since we have so much time left. Can we look at your code slide again? Oh, sure This is the one do you have any doubt on that here? I'm relaying in the HTTP proxy Oh HTTP proxy that mainly what it does. It just forwards an HTTP connection You just say here in the target I target the URL and then I can just Construct the URL with local holes 9001 which is this is IPFS I didn't do nothing in here the IPFS already have a gateway that's an Published it on port 9001. So I just put the content that I extracted from the blockchain In the you know in the URL and forward. That's just a glue is this is very much a glue a glue code and This is more ethereum related, but well at the end This is very much how ens works, but mainly what what does here? You just find the resolver For the node the node is the name hash of a name. The main is a hash of the name that's trying to solve and Once we have the resolve we just get we just ask the text method To extract the DNS link key and this will return that the content and this is the content that I Catenate to the URL in the other side, but that's a very very you know, it's a very simple code It's just a glue code That's no questions. No questions. Okay. They're my last questions. What can we find you here in the Congress? Well, I'm just hanging around generally in one of the back Back tables But I'm Jordy we come also come for you can find me also in give it in give it a slug give it a slug dot give it That I owe that I owe or in J by Lena in github or Twitter Linkering, whatever. I'm a public person. So you can find me easily Thank you again for your amazing talk. Thank you, Jody. Thank you very much