"User Agency through Participatory Infrastructure with IPFS" - Dietrich Ayala
ETHGlobal·Sat, Oct 9, 2021, 12:00 AM
Deitrich Ayala of Protocol labs discusses the variety of ways users can gain agency through various distributed tools such as IPFS.
Transcript
presentation but thank you so much um and I hope everyone uh watching if you have any more questions for Michael uh you can find pocket network uh in the E Global Discord um and of course you can ask questions in the chat as well um okay thank you thanks Michael all right so next up the last Talk of the day uh I'd like to welcome uh diatric from protocol Labs di is going talk about participatory infrastructure with ipfs um we're very glad to have them here uh to give a great kind of last Talk of the day uh and wrap it up so de I'll I'll pass it over to you uh and let you take it away here hello everybody thanks for the intro and thanks for having me here it sounds like a a long day of interesting topics I cut the last bit of Michaels there uh it it it's great to be here talking to ethereum folks once again I uh so real quick I'm teer kayala work on that BS project the prodical labs uh I I actually first I used I used to work at Mozilla for many many years and while I was there I worked on a project called lib DB trying to bring some of these Technologies and make them enabled at the at the very edge in the in the user agent itself uh inside browsers and in live project I ended up going to ethereum the uh Devcon 4 in Prague I think it was and how talk there and it was really great to be able to get introduced to some of the folks in the community and meet some of the projects and really get a sense of of the values and intent and uh excitement of all you all so now I've been at protocol labs for over a year and a half now uh working on ipfs and I can talk to you today uh they said there's a mixed audience some people are new to the space some people are not new to the space um so quick introduction to IP fast the trend problems that we're trying to solve uh a bit about the the side effects that I see that this these types of architecture infrastructures uh have on user agency and what it means when we make these types of infrastructure changes uh and but first a real quick run through ipfs the web today one of the reasons why a lot of us are here and working on those typ of projects is because there are a bunch of problems from centralization which has a bunch of negative side effects on our ability our user Agency on on the internet how we interact with each other as individuals and as organizations uh um some of the the fragility and resiliency of of the web ultimately we don't end up owning our our own experiences so much some of the problems that we're trying to solve around access from from various different places might not have the same type of access that we have in Western countries from the US uh censorship which is a major problem in in in many countries and i' I've spent some time living around different parts of the world where it's more or less of a problem that you really do feel on a regular basis huge inefficiencies in in in network access uh security models and Trust models that don't necessarily match the use cases that we have you know developed 30 30 years ago or or or plus years ago organically grown and now not necessarily been growing and adopting to the use cases that we have today and then things that that don't work uh off offline or or even in dis disconnected networks uh like for for example if uh doing this doing this talk and and uh if I was doing it from a from a Google deck and and that that deck went down or that service went down everybody following along would wouldn't be able to do so so there's no technical reasons why we can't have this type of of local Network collaboration offline collaboration uh but I'm really interested in seeing the those capabilities develop uh things things like internet shut offs around Egypt myamar and and and parts of India right now having really severe access issues uh and then and then censorship of course one of the one of the biggest groups of people using IP fast right now uh well in the last couple years were people trying to access Wikipedia in Turkey I went to istambul and you can see like there are stencils of Wikipedia pages on on streets there uh which was kind of fascinating and and really how much of a public issue was and then we have a really big group of users in in China matters matters news um using ipfs as the last man solution to make sure that they have access to external external news sources information and I I lived in Thailand for quite some time where you you regular to see Wikipedia Pages uh that just give you the Royal seal of the censorship Bureau of that of that country there so it's a real thing that does affect a lot of people uh so enter enter ipfs a project and a protocol that's used by a lot of um a lot of uh you know pro programs and projects in the ethereum community uh because of its immutable addressing and and the storage flexibility that that it provides uh one of the kind of some of the Hallmarks of this protocol the address addressing things in the in the web today is done by location where something is which server is it does it reside on and which ultimately path on that server oftentimes um and uh whereas ipfs addresses things by the unique signature of the contents of the data that you're asking for uh cryptograph cryptographic verifiability buil into the progam into the protocol through that address when that address is youi signature of the data you're requesting is uh very very difficult or not possible to fake that something is what it is and that's built into the way that you request something itself so if you trust the source that you got the orl from or the address from uh then then you can trust that that data will and and and verify that that uh data will not be modified and transport uh and then transport agnostic Peri parent notw workking so built on top of Li P2P uh although you can swap out other other trans transport libraries but Li PTP providing an abstraction layer across whatever transports and you know com common transports like TCP UTP Etc but also some uh groups that we're working with who've done things like develop a2p transport for U things like Coop or Bluetooth other ones and one of the most important ones that differentiates ipfs from the the the web of of today is the the idea of a contextual trust model so trust model that's not not enforced necessarily by tide between this intersection of of of SS and and DNS talking really quickly from a if you're new to these types of architectural network architectures uh HP today working requesting from the web browser native application or whatever the client is to to a centralized server uh whereas IPS this data is being transferred between the different peers that are participating in the network at any given time uh and uh that number of peers can be determined by and specific to the application being used at the time so the resilience and robustness of the network travels along with the popularity and the and the user base itself uh the un unique identifiers the way that we create addresses you may be familiar with URLs where you have a domain name followed by a file path uh proceeded by a scheme in uh ipfs we hash the data of the file that you want to add say cat.png and we get the uh unique signature of that set of bits create a Content identifier that you can use to be able to address or request that data uh if the data changes thus does the unique identifier so the address itself changes these are called cids uh when transfering data we also that data so we take that cat picture and we split it up into a whole bunch of logical bits uh and those bits can then be shared by many different participants in network as both being only requested and received by one the location based addressing so today we have request something by where it resides you make a you know through DNS you find out the the IP address of where this data that you're looking for resides that request goes to a remote server uh it resolves eventually to a machine that responds with this bites uh with ipfs when you're requesting something by its content a whole bunch of different comps and network might actually have that data who are not the publisher uh but because of the cryptographic verifiability means that you're okay receiving that data from those other those other participants in the network even though they are not The Originators of that data and ultimately even if that publisher goes offline uh some of that data might still be available some of those other participants who want to continue or are getting utility out of whatever the application or service data was and are keeping it on online so what does this have to do with infrastructure user agency this um infrastructure at a at a pretty high level uh but one of the things that you see here is that there's a direct relationship between the person requesting the data and the uh person entity or project that's serving that data but come on let's let's be honest it actually looks like an the centralized web a whole whole lot more like where you're requesting uh this data from from an entity or project and uh the more the number of requests go up the more number of users that you actually have in your project uh the infrastructure complexity increases and increases and increases and this has some interesting side effects raising the barrier to entry for innovators for people who want to enter new markets because they have to be able to understand what the scales can be you can make projections on that and then build up a relevant amount of infrastructure themselves to be able to support that with side effect then again of that there are few people as needs user needs increase for a given type of service uh there are fewer people who are able to actually provide that service because of the overhead required to actually be able to get into the game which means there's less competition which then means there is less Innovation a negative feedback loop of of of a a vicious nature uh but one of the one of the one of the other parts of this dynamic means that the power is in the hands ultimately the publisher uh with web to it's a control point over the people that are using a service uh for example if that publisher is uh go goes out of business and and the service goes offline the users have have no choice but to migrate to something else or if it gets bought by a bigger fish uh you're are now a user of maybe a company that you don't agree with or you don't like their service or what they're going to do to the service that you previously liked uh aside from all all the types of problems that I mentioned earlier which are still subject to uh ultimately the Publishers hold all the control in in web to they're the source of often the business logic U where your data is stored which opens you up to other problems such as uh surveillance and tracking that maybe you didn't realize you opted into uh and they also have the burden of that of that infrastructure But ultimately they have a they pretty much have 100% of the decision- making in applications today in the centralized web users have only one choice which is to leave to go use a different service if if one exists uh I have very little Choice over how their data is treated the the the ultimate longevity of the service or product they may be have their own business or livelihood uh it may be dependent upon with ipfs uh you know aside from the the type of things that I talked about before it it does change the nature of this to some extent so you are as I said getting this data from uh other sources other than the original publisher and that that publisher goes away that that data still could still be there the infrastructure of the that runs the application can still be there uh the lifetime of these applications and the being more dependent on on the user than on the publisher uh in this type of model the a lot of the the logic app logic is it getting pushed out to the edges more out to the clients more and we we start to see these layers collap as Michael was talking about the last talk a little bit that as these layers start to mature they also start to condense a little bit they get more and more abstracted away and more and more of this uh ends up being in the hands of of end users the infrastructure both from uh deployment and delivery ends up being more and more uh user participatory as solely being uh executed on the devices of the publisher uh this is a change in how we think about things like value capture uh how we think about what we invest in we how we think about what the ultimate impact of uh our business efforts are on on the behalf of our users uh we're seeing more Cooperative Computing come into play as web three layers start to mature uh and between things like uh one of the things we I'm looking at right now is like uh with the Advent of ipfs and then fcoin suit to launch how we create Cooperative organizations like Dows around ensuring that data valuable data and services can stay online um so where's ipfs at today uh a quick run through the IPS stack is composed of a number of different pieces um from the from the definition of data to name resolution and finding and discovery of data uh the uh addressing of data and then the network infrastructure to be able to support the delivery of this data um and these applications between peers uh and that's what L bdp does ipfs node running node does a number of different things uh if you're running a node right now typically this is a node that runs on your computer or on servers that that you're running on behalf of other people either a a a pinning service or you're running in order to keep the data for your own application and some users online um or keep it persisted anyway uh right now in a in a in a running node we our default Pier count is 900 Pier connections at a given time uh this is is a transient thing depending on the use case you can turn that up or down obviously on mobile devices keeping 900 uh persistent TCP connections it's not going to be a viable thing to do from a uh from a device constraints bandwidth usage or battery lifetime uh but so we we turn those kinds of things down we''re seeing a lot of different applications experiment with the boundaries between what like like what does ipfs like client kind of mean how do you run as as native as possible a node inside of a a mobile app or inside of a a web page as well um nodes can vary uh a lot depending on how much of the IP protocol and toolkit that they have implemented uh we have full nodes is our primary implementation is in go go IP Fest uh which has a full direct connection to the to the DHD to the the peer-to-peer Network um but we also have JavaScript implementations and a lot of different HTP clients and partial implementations in a number of different languages like Rost and Python and others um that various parts of the community are supporting uh the node deals with a few different things it does things like manage keys for you manage your communication between different peers uh and you know doing things like managing the peer book so uh identifying which which peers you have better or worse connectivity with or use often or less often uh sinking data between those peers uh and then supporting the local apps that are running so in the case of of daps uh being a node that does the syncing and requesting pulling fetching and Publishing of the data that that the DAP is interacting with uh easy way to get started downloading ipfs desktop uh this is a uh desktop electron application that spins up a go ipfs node gives you a little bit of a easy way to be able to start stop and see the status of the of the ipfs node um the ipfs CLI is available in a bunch of different flavors and a bunch of different places uh pretty pretty easy to inst install and get started at this point uh the C has a number of different commands that can give you a way to explore what this uh the the various components the tools in this tool box from a protocol standpoint offer you as a developer uh for how to integrate with your applications and and and be able to understand what type of communication is happening and running on a regular basis uh we we run htb gateways so we had to be able to allow uh HTP applications to be able to access data publish data on the ipfs PTP network uh but also some uh companies like CL Cloud flare run a large Gateway as well and uh they have a we have a public Gateway Checker page where you can see and register a Gateway that you're running um obviously your mileage may vary so we do post things like some like capability uh level of of security verifiability and also performance for some of these gateways but anytime you're not you're not running that node yourself you are delegating that trust to that to that other organization or or other node um uh IPS companion is a browser extension that allows you ease of access from web applications to your local node that you're running uh something that I didn't add any slides for here but uh we do have uh a couple of different interesting things with regards to browsers in uh opera on Android you can actually uh use ipfs pretty much directly it talks to HP Gateway but you can actually use the IPS CL address there and in Brave if you install Brave nightly browser right now and you go to about Flags you can enable native ipfs support which works kind of like their tour support does so you enable ipfs uh you encounter an ipfs address it asks you would you like to run into local node uh and it'll download gopfs and run and manage that node locally for you directly from within the browser um so this is something that hoping uh to to ship with them in a releas ver Brave sometime later this year so pretty exciting uh JavaScript ipfs JS ipfs is uh one of the ways that you can easily access ipfs and use it in your in your web application or or no applications uh so this doesn't have a full connection to the DHD but does have a lot of ways to connect to it and to be able to connect and to and manage your peers that your applications connect to uh one of the one of the things that we've done recently as applications are starting to use ipfs more and more especially in web applications uh you know if you open up two different tabs each one uses JS ipfs right now it would by default create a ipss node inside each one of those tabs which isn't really sustainable if you have an application where your users open up multiple tabs uh so we have a uh a way to be able to use shared workers now so that you can have one JS IP Fest node running in the browser that's shared across multiple tabs of the same origin we're working on making it work across origin as well so you basically have a uh single ipfs service running inside the browser at the JavaScript level that different web pages can share so that should make things both more performant and more and less resource intensive uh there's as the ecosystems grown and Adoption of ips ground there are a number of different toolkits and Frameworks you might have seen some of these three box is uh built on top of ipest uh and it provides things like data storage uh identity abstractions uh textiles a set of developer tools on Tope of ipfs that offer a couple different ways to be able to uh um utilize higher application Level patterns instead of interacting directly at the lower level protocol and then orbit B is a database abstraction layer over ipfs that allows you to work with Dynamic data more dynamically and also uh have access to abstractions like a pend log and uh things like that um in I we've heard a little bit about infira today uh obviously one of one of the biggest uh Services service providers in this space and a group that we work really closely with uh to be able to make sure that they have the latest versions of ipfs and that we're meeting the needs of their users uh as well uh pinata and uh temporal or other services that provide uh ipfs uh pinning that will keep your data up and available as well as a number of other different things finding management um tools and uh different uh debugging and um data archiving tools as well uh one thing that we've seen start to emerge is more and more again like uh like Michael said in the last talk one of the missing pieces are around CI Automation and tooling so how do you make it as easy as possible to be able to deploy these uh our our web three applications how do we make it as easy as possible to be able to manage them and to be able to get the same benefits that we get from a much much more mature web to infrastructure uh and Fleek is one of the one of the companies that we've been working a bunch with this year who's really done this and made it easy to be able to hook into your existing uh CI and CD using existing toolkits and Frameworks and supporting those as well as a number of different uh uh source code Management Systems as well um in name resolution is again like as you saw earlier the ipfs CID is not nearly as user friendly to look at as a regular textual name in a language that we understand natively uh however there a bunch of different ways to approach this we have IPS is the interplanetary naming system uh which is a way to be able to um map a key to a ipf CID and then uh services like Unstoppable domains and ens are Innova in a bunch of different ways providing different services that allow you to resolve your uh resolve human readable names to a ipfs CID and to be able to manage the dynamic updating of that content uh and then and and Fleek is uh and companies like this are also integrating in a lot of ways some of the ens and Unstoppable services to make it easier for developers and businesses to be able to ship um so if you're interested in learning more that was a really really fast tour uh through some introductory IP Fest stuff how I FS Works some of the benefits why it matters from a larger user agency perspective one of the things that these transitioning architectures and and changing the Paradigm to uh to a more distributed and decentralized architecture how that actually benefits and users in a way that changes both how we do business and both the longevity of the and availability of the services that we want to provide actual people um so you can follow along uh on Twitter ipfs uh our forums are a fantastic ftic place to ask questions if you were building your web three application uh we monitor the Farms pretty closely now to be able to ensure that we have a really really fast response um we have folks that are dedicated to answering your questions there we also have automated monitoring of of the ipest tag on stack Overflow as well to be able to make sure that we get back to folks uh really really soon to try to close feedback loops so that if you're uh building stuff on top on top of ipfs you have questions or you've uh you know gone off the rails or you have a problem you want to be able to figure out how how to move forward that we can get help to you as soon as possible so thanks everybody thanks you all for for having me and letting me speak a little at the end of your event uh if you have questions definitely feel free to reach out uh thanks again great thanks D um actually had a couple questions that came in from chat if you just got a second I can do them right here yeah sure great great job and just stand by we're having a little audio difficulty here with Josh um just hold on one moment for
Automatic transcript — names and jargon may be misspelled.