Programming Throwdown - Episode 129 - Web3.0: Breaking free from the Client Server Model with Michelle Lee

Episode Date: March 15, 2022

Brief Summary: What is Web 3.0? Guest speaker Michelle Lee, Product Lead of Protocol Labs, shares how web 3.0 will revolutionize the Internet and bring trust back into the web. 00:00:25 Int...roduction00:01:36 Michelle Lee’s career 00:03:10 What is human-computer interaction?00:04:55 The Google Sheets user experience00:06:19 Google Checkout, user feedback, and emails00:10:23 Code for America00:13:47 The real power of Open Source00:14:14 Web 3.000:23:04 IPFS network accessibility00:26:14 How does IPFS handle bogus content?00:38:56 Network storage costs00:43:03 Privacy and identification on IPFS00:45:23 Content moderation from the Web 3.0 perspective00:49:48 Audius00:54:20 Protocol Labs and IPFS00:55:26 Working with Protocol Labs01:05:00 Farewells   Resources mentioned in this episode:   Companies:Protocol Labs:Website: https://protocol.ai/Twitter: https://twitter.com/protocollabsLinkedIn: https://www.linkedin.com/company/protocollabs/Youtube: https://www.youtube.com/ProtocolLabsFilecoin: https://filecoin.io/Hackathons @ Protocol Labs: https://hackathons.filecoin.io/Course Learning @ Protocol Labs: https://proto.school/Metamask:https://metamask.io/Fleek:Website: https://fleek.co/Space Storage: https://fleek.co/storage/Estuary:Website: https://estuary.tech/Audius:Website: https://audius.co/   Social Media:Michelle Lee, Product at Protocol LabsTwitter: https://twitter.com/mishmoshLinkedIn: https://www.linkedin.com/in/michellelee3  Sponsor:RollbarWebsite: https://rollbar.com/Freebies: https://try.rollbar.com/pt/ Download the episode hereIf you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: programmingthrowdown@gmail.com You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★

Transcript
Discussion (0)
Starting point is 00:00:00 Hey everybody, how's it going out there? Web 3.0, Breaking Free from the Client Server Model with Michelle Lee. Take it away, Jason. Hey, everybody. How's it going out there? Super, super excited to have Michelle Lee, who's the developer, advocate, and ecosystem growth at Protocol Labs. She is going to tell us all about Web 3.0 and breaking free of this client server model. So, you know, we talked in the past episodes about things like microservices and how to stand up a website and things like that.
Starting point is 00:00:51 But all of these things kind of sit in this central location. And so one of the things that I've always wondered is, you know, what if we all kind of got together? Could we host a website, you know, just, you know, with our community, right? And so it's something I've always been really, really fascinated about. Admittedly, I don't know a lot about it, but we have someone who does know a lot about it. And so thanks so much, Michelle, for coming on the show. Thanks, Jason. Thanks, Patrick. Great to be here. Cool. So before we dive into the topic, why don't you tell us a little bit about, you know, what is your journey that led you to Protocol Labs?
Starting point is 00:01:32 And what does that story look like? Sure. My background was always at the intersection of technology and people. So I initially wanted to be an architect. And when I took like an architecture 101 course at university, the university lead architect was showing us around some projects. And he's like, well, this project we started 11 years ago, and we're breaking ground now. And me in my short 18 year old life was like, that's two thirds of my lifetime. I can't wait. What can I work on? Like, what kind of my lifetime I can't wait that long what can I work on like what kind of systems can I get involved in creating and designing that are going to happen a
Starting point is 00:02:10 little bit faster and so I got drawn to like mechanical engineering product design and eventually software design because you can iterate like overnight in your dorm room or you know quickly over the span of a few weeks or months with a small team. So that was what drew me to software in the first place. And then I was always interested in, like, what is causing these bugs that are showing up in my browser or my, you know, at the time it was desktop apps, like what's the logic behind that? And so learning about computer science, eventually learning how memory works, for example, and like why these characters get skipped or what, you know, why bugs or outages happen, drew me further and further into like the design of systems. So I ended up studying human computer interaction, working at Google for quite a while
Starting point is 00:02:56 on maps and docs, inventing Google Forms is kind of one of my claims to fame from that time. Wow, really cool. So wait, let's dive into that a bit. So what is human-computer interaction for folks out there? Oh, gosh. It is kind of the amalgamation of cognitive science, so how people perceive language and patterns. Computer science, how software is built and developed. Cognition, what happens in people's brains, interaction design, visual design, really fun interdisciplinary space. Wow, very cool. So would you say the sort of, what's the connection between that and like the user experience?
Starting point is 00:03:37 You know, is that related? Is it about making better user experiences? Absolutely. Yeah. A lot of people who study human-computer interaction go on to work in user experience, user research. I think a layer that's been added on since my time in school is understanding what's the relationship between a focus on maximizing the experience for an individual user and understanding its impact on society. For example, if you try to get me my groceries as fast as humanly possible, or try to
Starting point is 00:04:05 get me from point A to point B as fast as humanly possible, what are the externalities of that in social networks, social systems, things like that. So yeah, absolutely. It was a really, really fun field to study. Very cool. And so you studied that. And then were you in HCI at Google? What's the connection between that and the Google forum? Yes, I was in HCI at Google? What's the connection between that and the Google Forum? Yes, I was in user experience at Google. Got it. I see. And so actually, oh, Google Forum. Now it's all coming together. So Google Forums is the survey type thing where you can send it out, folks can respond. And then I've actually, to be fair, I've never used it, but I think you get some kind of maybe
Starting point is 00:04:43 backend where you can see all the responses. Yeah, it's piped in directly to Google Spreadsheets. And I think that's the magic. And that's where it all began because we were having trouble. Users were reporting problems, understanding how the sharing function worked because they were trying to share spreadsheets and get lots of like thousands and thousands of people to contribute data to shared spreadsheets so that people who are managing processes or systems could aggregate all that data and do things with it. Right. And when you hit the
Starting point is 00:05:13 sharing button and ask, you know, 25 emergency room doctors to fill in their schedules or 500 university students to add their class data, you end up with editing collisions, people overwrite stuff by accident. And we realized, like, instead of making the share button easier to use, why don't we step back and think, well, only one or two people need to understand the whole data structure behind, you know, in this spreadsheet. Most people are just contributing one row. So we turn it into a form and get input that way, keeps it really clean and lightweight. You don't have to mess around with permissions for the majority of users. And then the people who actually need to manipulate the data once it's in still have the permissions that they need. Wow, that is super cool. And so what was your role there? Were you the one who had
Starting point is 00:06:02 the light bulb go off? Yeah, I was the designer sort of beating my head along with some other colleagues. I'm like, how do we make this sharing thing simpler? And then another project I'd worked on, actually my very first project there was getting user feedback for Google checkout transactions, if anyone can remember that, through emails. Yeah. And I think we found like a 70% increase in response rate if you just embed the form elements inside an email, rather than asking people to click on it separately. So we did that as well. We embedded the form for a long time, embedded it inside email, which made things a lot easier for
Starting point is 00:06:40 some people, but also was imperfect because email clients all render things a little bit differently. Right, right. Yeah, I've definitely been on the other end of that where I've seen a Google form embedded in email. And sometimes, yeah, there's some wraparound issues and things like that. But to your point, it's so much more convenient. It's amazing, actually, the inertia of a click. You just see study after study after study about, oh, if I have to make one more click, I lose, you know, if my users have to make one more click, I lose, you know, 20% of the users. Like it's unbelievable how important that is. Absolutely. And so we worked with the user researcher, Andrea Knight and developer,
Starting point is 00:07:21 Andy Bonds, who now works on the Go team, to build out the first prototype. And yeah. Cool, cool. So what did you do after Google? After Google, so I started volunteering with a group called NY Cares. And I was living in New York City at the time. And we were helping people with low income file tax returns so that they could gain access to all the tax credits
Starting point is 00:07:45 that are available through public programs. And I think we got eight hours of training for it through this, you know, for this tax filing program. And then we were like unleashed into these programs or, you know, once a week for two months before the tax filing deadline, we would help families like compile other paperwork, submit their stuff. And then at, you know, after a 25 or 30 minute appointment, be able to go back to them and say, Hey, you've actually, you're, you're, you're going to get a tax refund of $4,000, which is, I mean, if your household income is $14,000 for a year, that's huge. Right. But these people were, these families were like waiting in line, their kids were napping on the floor, they had to wait a really long time to see us. And at the same time, like, we didn't have any tax expertise, really, we had some light training, and we had some software that we weren't afraid to use. And if you can make that software really accessible to lots of people, make it much more approachable, maybe make it mobile friendly. People could do
Starting point is 00:08:45 this at home. So I felt it was wonderful, but a little bit pointless for me to be there as the intermediary. And I got interested in how can I work on software that makes government services a lot easier, makes people's lives a lot easier. And I went to South by Southwest in Austin and heard a talk from Jennifer Palka, who was just getting an organization called Code for America off the ground and ended up being so drawn to that that I left my job at Google and went to work at Code for America for a year
Starting point is 00:09:19 as a fellow working with local governments to try to make communication and processes more, more human, more easy to use with software. Wow. That is amazing. I, you know, I actually, I've been in Austin for, um, let me see what, maybe two years, almost two years now. And there's never been a South by Southwest because I moved right as the pandemic started. And so I actually haven't, uh, haven't been able to go to South by Southwest because I moved right as the pandemic started. And so I actually haven't been able to go to South by Southwest now that it's right in the backyard, but I'm really looking forward. Do you know if it's coming back this year?
Starting point is 00:09:53 Yes, it is. I think it's a hybrid model and Protocol Ads is actually going to have a big presence there hosting some fun events. So yeah. Oh, very cool. All right. Do you remember, I actually forgot what time of year it is. It's been so long since they did one. It's in March. So it's coming up pretty soon. Oh man. Okay. Very cool. So yeah, when this, when folks get this podcast in their hands, it'll be very close to South by Southwest. Cool. That is awesome. So, okay. So what is Code for America? Oh, you said it was, it was a way to help governments become like a little bit more user, user-friendly. Yeah. Code for America was founded
Starting point is 00:10:32 with the mission of bringing modern web technology to, to government. And it's been an amazing organization, had a big influence in shaping some of the programs happening at the federal level as well. The 18F Technology Transformation Service, all those programs kind of are part of the same movement. And speaking of Web 3.0, this is Gov 2.0 was the name given to a lot of these programs. Yeah, and in some cases, it was bringing in amazing tech talent from Silicon Valley. In other cases, it was unleashing and helping break red tape for some of the amazing technologists
Starting point is 00:11:16 who are already working for government, but connecting all sides and also connecting to program administration has been, yeah, really, really important movement, I think, in making people's lives easier. Very cool. So when did you start, you know, getting excited about, you know, Web 3.0, about, you know, distributed serving and, you know, Filecoin and IPFS, all these things we're going to
Starting point is 00:11:42 talk about. When did you really start getting into that and what sort of sparked that for you? Yeah, the vast majority of Code for America's work and Gov 2.0 work was done in the open. So a big change from the past. Open source software, modular components, very transparent to people and easily reused across states or municipalities, right? And the open data movement was a big part of that as well. So I think for me, when I started hearing about IPFS and the open web, this pull back towards the founding principles of the internet as a you know as an open um and decentralized way to you know connect knowledge and people across multiple destinations i think
Starting point is 00:12:33 it was uh philosophically you know really aligned yeah that makes a lot of sense i think that uh i mean you've heard this a lot mike you know i'm just i'm kind of projecting here but i've heard from a lot of other places you know oh if we just, I'm kind of projecting here, but I've heard from a lot of other places, you know, oh, if we, you know, open source, or if we tell people what's going on, then bad people will exploit what we're doing. You know, that's a, I feel like it's a very interesting argument to make, you know, and there might be, there's a nugget of truth there, but I think on the flip side, you know, I feel like it's kind of a pessimistic way of looking at the world, really. Right. This idea that if I put something open source, there's going to be more bad people than good people looking at it. I feel like that's that's kind of the the fallacy there, I think.
Starting point is 00:13:17 And so I think it's really cool to see, you know, government and and other kind of places, you know, moving to places moving to open source models. And that way, it's like the vast majority of the people who put their eyeballs on that are looking at it in a benevolent way. Yeah. And open source is like, technically speaking, making your code available on the web and putting an open source license on it is making it open source. But I think the real power of open source is when you have multiple parties like reviewing it, auditing it, you know, reusing it and sort of like battle testing it and feeding those
Starting point is 00:13:55 improvements back into the main code base. That is the power of open source to make things, you know, available and transparent and even more secure. Yeah, definitely. Okay, so let's really dive into this. Like, I guess, you know, on the surface, what is Web 3.0? Yeah, I think there's a great transition from what you mentioned, right? Web 3.0, one of the building, like one of the principles of Web 3.0 is assuming that you can't trust anybody on the web. How do you build trust back into the web with math? So IPFS, which stands for interplanetary file system has two basic building blocks. The first is that instead of an arbitrary file name, like you might name this episode podcast.mp4 or whatever, but you might forget and name it podcast5.mp4.
Starting point is 00:14:47 You might accidentally download six copies of it and call it podcast-1 or podcast-final or podcast-final-final-final. Yeah, we've definitely done all of that. Instead, what IPFS does is it takes your data and it runs it through um uh one-way mathematical function has passion function and gets um it gets a consistent content id out of it so it basically is creating a fingerprint of your data rather than letting you make arbitrary names and so that means it's guaranteed you know when you ask for content by that fingerprint, you're guaranteed to get it. And that actually frees up all sorts of different network designs, because now if you're guaranteed to get the data you asked for, you can get it from anyone. You can get it from your neighbor down the street. You can get it networking to pass data around the web. So that peer-to-peer networking is the other big principle behind IPFS. So you combine this content addressing system
Starting point is 00:15:52 with peer-to-peer networking, where any peer across the globe, you know, join a network, they can join any peer, you know, find any few nodes, and then those nodes in turn connect to the rest of the network. And so instead of getting data from any single server, you can get it from any peer or through any connection, any pathway of peers. And that makes the network really resilient as well. Because if you remember, every once in a while, there's a giant AWS outage, Slack doesn't work and GitHub doesn't work and you can't pay your electric bill online. In a peer-to-peer world, if that happens, maybe you have a little slowdown, but the content can find its way to you through other paths. Yeah. Let's dive into that. You said a lot of really, really interesting stuff there. I love the idea of using math to bring trust back into the web. I love the idea of, you know, using math to bring
Starting point is 00:16:45 trust back into the web. I think that's really fascinating. This is something that is really foundational. And a lot of folks say, you know, even just if you're in a community, you know, a social community, you know, out in the real world, you know, how do you achieve consensus? And a lot of people understand, you know, kind of voting on issues and all of that. So, you know, how do you achieve consensus? And a lot of people understand, you know, kind of voting on issues and all of that. So, you know, the idea of sort of democracy and voting and, you know, rationality really resonates with people. And then this kind of, but then you can say, well, you know, on the surface level, if I do that on the internet, like if I make a poll on the internet, what's to stop someone from just writing a bash script that says you know four i's one to infinity you know
Starting point is 00:17:31 submit my vote and then that person now has so much more power than someone else who's clicking by hand right and so um so yeah it's a really good point. From what I understand, basically the math operations require computers to do work to prove that they are invested in this vote. And so that time ends up being your sort of investment. Is that kind of a way of saying that? Yeah. And so crypto, which is pretty common in parlance these days, comes from cryptography originally, right? And so the cryptography, the math that enables all this stuff is, you know, continues to be critical to how these systems are designed.
Starting point is 00:18:18 You talk about, you know, computers having to do work. There's two kinds of consensus systems, broadly speaking. So there's proof of work, which you have processors like racing and racing to do the most math to win the next block. That's how Bitcoin is designed. But the current generation of blockchain networks are primarily proof of stake. So how much are you contributing to the network? that and that's um that's how filecoin is designed so nodes on the filecoin network get votes based on how much storage how much useful storage they provide and this is much more energy efficient and you know just generally makes a lot more sense because what we want to do is like create underlying value right we're not doing math or
Starting point is 00:19:01 running cpus for the sake of running cpus we're we're doing doing math or running CPUs for the sake of running CPUs. We're doing math, doing this cryptography to enable fully decentralized and secure storage system in this case. Got it. I see. So if you're making, let's say, a YouTube clone or something, then people would get more votes if they created videos that a lot of people wanted. There's a lot of parallels, right? Yeah. Got it. Okay. That makes sense. Cool.
Starting point is 00:19:30 And so IPFS is where you compute some hash sum or some SHA sum or something of a piece of content. And then there's this distributed key value store that's distributed across the whole universe where the key is the SHA and the value is the content. And so you can go and that blows my mind actually because you have this problem of, there might be a million people who have
Starting point is 00:20:06 that piece of content all over the world. And you have to kind of know who those people are, and even know, you know, which ones are close to you. Seems like a phenomenally difficult problem. Yeah, I think this, these patterns of gossip sub or like decentralized networking are really, really different than some of the procedural stuff we're taught in traditional computer science classes. One of my colleagues, Nicola Greco, did a really fun demo with us at a team offsite a bunch of years ago. He had a room full of people, gave every one of them a little piece of paper with a message and said, hey, just like randomly swap messages until everyone has the piece of paper with their name on it. And it happened so quickly. I think that's the benefit of being able to parallelize all the routing and search. And it
Starting point is 00:20:57 was a lot faster than it would have been if we'd like lined everyone up and tried to, you know, organize and sort people through binary sort or something more linear. Yeah, that makes sense. Yeah. I mean, in math, we have this concept called simulated annealing, where basically you make small changes to something. And if the change is better, you keep it. And if it's not better, if it's worse, then there's a percent chance you keep it. And you slowly decrease that percent chance until you're only keeping things that are better. That's the annealing part. And it works amazingly well. and the Python graph library, and you try and do some NP-complete problems,
Starting point is 00:21:48 like you try and do traveling salesmen or one of these things, they'll have an approximation that uses simulated annealing. So it's extremely powerful, but very simple. And I think to your point, it's taking advantage of just, when you add chaos, as long as you can measure, then adding a lot of chaos actually works really well. Like in your case, the measurement is, if I remember correctly,
Starting point is 00:22:10 you know, if you have, once you have the piece of paper with your name on it, then you're done. So you have that sort of measure of, you know, the system is better now. And once you can do that, then yeah, even doing a whole bunch of chaotic things ends up working really well. So, but getting down to like the practical part of it, you know, I've done a lot with networking and it's rough. I mean, people have these network translation layers. Some people are behind symmetric NATs. And so they can't do much of anything. They can only read. They can't serve anything. You know, other times it's like you have, you know have kind of all sorts of weird situations on the network. And so how does something like IPFS handle the web and how complicated?
Starting point is 00:22:54 I mean, we're not on IPv6 yet. So I mean, how does IPFS, it must be just an insane amount of logic to handle that. And how do you even test something like that, right? You have to be pragmatic and realize the majority of people still access the web through web 2.0, but we want to move to, to a world where that's not required. So today, when you put content onto the IPFS network, if you're accessing the, that IPFS network through, through an IPFS node, for example, you download IPFS desktop extension for Chrome, or you're running a node and interacting with it through the command line. If you actually have a node on your computer, which is really easy and fast to get set up, you can get data directly
Starting point is 00:23:38 from the IPFS network through this distributed hash table that we just spoke of. But in a lot of cases, IPFS is part of a web application or you want to fetch it. And someone who doesn't have those things installed wants to fetch it through a more standard web browser. And in that case, the traffic is routed through any number of gateways. So gateways are sort of like translators between Web2 and Web3. There are IPFS nodes that say, hey, I speak both Web2 and Web3. I speak HTTP and IPFS. So you can ask me for any content ID, append it to like gateway.ipfs.io or Cloudflare runs a really awesome, really efficient gateway as well.
Starting point is 00:24:19 And they'll pass the data between HTTP requests and the IPFS network. So you can access it through anything. The other big initiative we're doing is we're partnering and collaborating with browsers, both like some of the big browsers of today and also some of the emerging, really interesting browsers of tomorrow, to build IPFS support directly into the browser. And so your web browser might be able to request data from HTTP, but it would also be able to speak IPFS support directly into the browser. And so your web browser might be able to request data from HTTP, but it would also be able to speak IPFS natively. Wow, that is so cool.
Starting point is 00:24:52 Can you give me an example of what's a browser of tomorrow? I want one of these. Well, Brave browser is definitely one to look at. And Brave supports a bunch of decentralized. Oh, okay. We've already promoted those. We love Brave. Very cool.
Starting point is 00:25:07 So Brave either does or at some point it will have IPFS support? Has native IPFS support. I think you have to enable it, but it has IPFS support. Oh, I see. So there's a setting, you toggle that on
Starting point is 00:25:18 and then you say, I guess there's an IPFS protocol where you pass in the hash? Yeah. So instead of http just put ipfs colon forward slash forward slash and it will know how to to get that data what about like you know hashes are these you know super long strings that are you know really difficult to remember is there like a dns on top of this or something? Oh, yeah. There's ENS, there's HNS, Ethereum naming service,
Starting point is 00:25:47 Handshake naming service. There are a few naming services that try to put more human legible names, addresses that you can use as sort of proxies for your IPFS CID. Very cool. And so how do you keep somebody from just, you know, creating a ton of content and just flooding the hash table, which is tons and tons of random or bogus or, you know, content? IPFS has some built-in garbage collection. So if data that's less requested over time, the node will just start dropping it when it exceeds its memory allocation. And so if you want to ensure that the data sticks around, you can run a bunch of nodes and pin it yourself, or you can ask a pinning service,
Starting point is 00:26:39 which is kind of like a hosting provider to keep it around, or you can make storage deals on the Filecoin network to keep it around in that same native IPFS format. Ah, I got it. That makes sense. It's kind of like, it's somewhat a parallel to advertising. Like there are some nodes that are kind of influencers and you would ask those folks to kind of pin your content, and that kind of keeps
Starting point is 00:27:06 it relevant. I think that's the design, right? And then if you want to ensure it, you can take other steps. But in terms of data flooding the network, for example, again, it's that because it's so decentralized, because there are so many nodes, it's difficult to force the entire network to pin your data. Right, right. That makes sense. Okay, so what is the difference between IPFS and Filecoin? Great question. A lot of people want to know that. So IPFS and Filecoin both share this IPFS-based content addressing system. Now, IPFS pinning or storage is fully voluntary on the part of the nodes. There's no, because it's peer-to-peer, there's no centralized entity.
Starting point is 00:27:52 There's no way to guarantee that that data is going to stick around. So if you ask me to pin something, but I run out of memory, I can go, oh, sorry, I got to drop it. Now, if you want to ensure that you can pay a pinning service provider, but if you don't want to pay any single company, if you want to make sure it happens like fully transparently in a decentralized way, then we can make a storage deal. You can say, hey, I'll pay you this amount if you keep my data around for this amount of time, we'll put it on the blockchain. And I, as the provider, will put down some collateral. And then the chain, the mechanisms of the chain will ask me every 24 hours, hey,
Starting point is 00:28:31 do you still have that data? Prove it to me. And if I fail any of those proofs, I'll get penalized. So the whole interaction deal and enforcement happens through the blockchain network. Wow, that is super cool. There was a time when I was really deep diving into auctions and I was studying commodity auctions, where in other words, a farmer is raising cattle and it takes so many years to raise the cattle. And so the farmer needs some stability. And so there's this whole like futures market where, and people who like Patrick, who are really into the stock market are probably just laughing at me. So I'm going to, I'm going to give a really dumb person's overview of this, but you know, you set up a
Starting point is 00:29:15 contract saying, you know, I will deliver, you know, this wheat in 18 months. And then, you know, if there's a big storm or something, then you have to try to get the wheat from somewhere else to try to fulfill that contract or you pay, you know, kind of a big penalty. You know, and so these sort of features and derivatives are really how things, you know, become more stable. And so it sounds kind of like that for this. So you, you know, you want a group of people, let's say you, let's say you, to make it concrete, you have a backup. We have a backup of the programming throw down, you know, source files, like the raw audio files. We want to save those in case their house is burned down or something. So we put it on, on Filecoin and a few folks agree to host this, this like, you know, encrypted zip file or something for us. And so then they put some collateral
Starting point is 00:30:08 and every now and then Filecoin will say, hey, give us a hash of this part of that file. And if they lost the file, they can't do that. And so the idea is because they've put that collateral on the line and you've replicated this to enough folks, you can be pretty guaranteed someone's going to hold on to it. Exactly. Yeah. And this is now, we're over 14 exabytes of storage. So there's a bunch of storage. This is still a tiny fraction of the world's storage, but it's by far the largest decentralized storage network in the world. Wow. that is really, really cool.
Starting point is 00:30:45 So I'm trying to wrap my head around this. So what's the connection? When you were talking about the browser and IPFS, could someone actually make a website where all the assets are coming from IPFS? Or would someone just be waiting forever for that to load? No, you can do that really easily. You can actually make a fully decentralized web app.
Starting point is 00:31:10 So at the front end application layer, you can store those assets on IPFS. And there are gateways that will serve that content to you. Fleek is a really great way. It's kind of like Netlify, but for Web3. You can connect it to any GitHub repo that has your web application and it will automatically deploy it to IPFS. So super, super simple. You actually don't really need to understand IPFS even to get it up and running. And then behind the scenes, you can use smart contract logic or standard application logic or combination, most likely, for your logic layer. And then behind the scenes, that data can be stored.
Starting point is 00:31:53 We have a layer of tooling called data brokers that deal with all the IPFS and Filecoin nodes for you. And then under the hood, it's stored on these decentralized networks. So you can, I think Uniswap actually is a fully decentralized web application. The front end is, serves your IPFS, the backend and the transactions are pushed to blockchain. So there's no single database for it. Got it. And so I have this, like, albeit kind of pessimistic kind of vision where, you know, you go to a website and, in practice, what's the latency like if you want to look up? I mean, I'm sure it depends on how popular your site is, but for let's say a site that maybe you didn't just put it up now, but it's also, you know, not super popular. What would that sort of latency look like? Would that be usable? And so that's why we strongly recommend using one of the data brokers or pinning service
Starting point is 00:33:07 providers if you want to serve any production application over IPFS. Makes sense. So Pinata and Fura are a couple of those pinning service providers. And then there are data brokers like NFT Storage, Web3 Storage, which we can talk about in a moment, and Estuary, which do the kind of the hard work of getting that data propagated across multiple nodes, IPFS and FilePoint nodes across the network. Yeah, I mean, seems like a good time to dive into that. What is a data broker? Today's sponsor is Rollbar. Rollbar is the leading platform that enables developers to
Starting point is 00:33:49 proactively discover and resolve issues in their code, allowing them to work on continuous code improvement throughout the software development lifecycle. Rollbar has plans for all situations, from free to large enterprise. With Rollbar, developers deploy better software faster and can quickly recover from critical errors as they happen. We have a special URL at There you can find two free ebooks, How Debugging is Changing and How Dev Experience Matters, as well as sign up for a free trial of Robar. What is a data broker?
Starting point is 00:34:34 Yeah, so it's really funny. If you take the name Protocol Labs and the first part protocols, for a long time, we were really focused on the R&D, R-D&D research development deployment of the protocols themselves. So some of the underlying pieces of IPFS, for example, libp2p, which is the peer-to-peer networking protocol, IPFS, IPLD, which is like the data library underneath. These were all where we put the vast majority of our time and attention. But to get developers to use this stuff easily, we kind of needed to stitch them together into tooling and really simple performance APIs. So there's now a layer of tools built through collaborations with other parties across the open source community.
Starting point is 00:35:25 Some of them come from internal protocol labs teams, but there's now a whole rainbow of options for storing your data to make storing your data super, super easy. And NFT.storage provides free storage forever for NFTs specifically. If you submit your NFT, you get back nicely formatted metadata that can be used in a smart contract to compose your token. Web3.storage is a very, very similar service, uses a lot of the same backend, but you Estuary, which is a similar service, but really optimized for performance. And then there's a few other services, ChainSafe, Fleek, Textile have all created other services that act as data brokers. So they basically take all the pinning interactions, all the deal making that would happen on chain, and they swish it into a single API call and let you just call that and forget about the rest.
Starting point is 00:36:32 Got it. I see. And so, you know, one of the things that, so there's two things that, that, you know, frustrate or scare or, you know, intimidate a lot of people about client server, right? One is the fear that, you know, if my website makes it on Hacker News, that my server will blow up, right? And then the second fear is, you know, I put my server as a, you know, Kubernetes auto scaling group. And so now my website made on Hacker News and I have like an $80,000 bill from Amazon. And so I think IPFS and these technologies, the thing that I think is really awesome about them is that as things get more popular, they also get easier to access. And so what does that look like? Let's say I have a data broker who I'm paying,
Starting point is 00:37:28 I assume regularly to keep this content alive. And then all of a sudden, you know, I make number one on Hacker News and my site blows up, then, you know, in a sense that kind of makes the data broker's job kind of easier, I guess, because you don't have to worry about pinning. And so how does that affect the cost? And, you know And just that problem, those problems I talked about, what happens to them in Web 3.0? So our approach is that the majority of the network consumption storage usage is by very, very large, large scale data users. And so for services like NFT.storage, Web3.storage, that's all provided for free. So most individual application developers or even smaller companies can do this all for free. And so you're not going to be hit by these surprise bills. And exactly like you said,
Starting point is 00:38:20 the more popular something becomes, the more copies there are across the globe. And so the cost to actually get it to an incremental new user is going to be a lot less than having to repeatedly go back to the same server. Got it. So for folks who are bigger, what does the pricing model look like? I'm assuming, I guess it's like at some point you're paying for requests, but then at some point, you get this law of marginality, right? Because as things get more popular, the requests get cheaper. How does that work? If you go to the website file.app, So F-I-L-E dot A-P-P. There's some cost comparisons to AWS. And right now, the cost to store is about 1% of 1%, the cost of Amazon S3. Wow.
Starting point is 00:39:17 Wow. That is wild. Super, super cool. I remember this is like seven or eight years ago, I was looking into this kind of stuff and there was something called Peernet and it was this Java application you would run and it was really clunky. I mean, I was able to get it to work, but I mean, trying to get my parents or something on Peernet would have been really, really hard. And it's amazing to see, to see, you know, kind of where, how far things have come and how easy they are. And this is, this is really, really exciting.
Starting point is 00:39:50 So, so any folks out there, actually we, we had Guillermo Rauch on the show to talk about Next.js, which is by Vercel, which is a similar setup as Netlify, where you can do like a next push on the command line and your app gets kind of pushed to the web. And so there's, you know, folks have listened to that and have tried building a sample app. Or if you've used Netlify directly and built an app there, you know how easy that is to get your app out there. And so it sounds like, you know, they've made it that easy for Web 3.0. You can push an app pretty easily and you can access it. Do you know if like when Brave will kind of open that up to everybody or how long it's going to be kind of buried in the settings? Yeah. So as you
Starting point is 00:40:39 said, as you mentioned, it's now super easy for developers to get their apps published on IPFS. And then you mentioned the situation of like, Hey, getting your parents to use decentralized storage space. So the fleet team has a product called space.storage and it behaves a lot like Dropbox. So you don't have to be a developer to use it. Oh, super cool. Yeah. And that behind the scenes stores on IPFS and FilePoint. So if you're just a personal user, I don't recommend trying to do things on the command
Starting point is 00:41:10 line unless you really enjoy that. If you just want something easy and drag and drop, familiar to most computer users, space.storage is that to try. Very cool. Okay. So let's talk about some of the, you know, a little bit less exciting, but still super important kind of questions. Two that come to mind are, you know, how do I protect, like privacy? If I want to put a document in Dropbox, how do I make sure no one else can read my documents? And then other than privacy, you know, how do you deal with bad content on IPFS? I'm sure you get these two questions a lot. Yeah, absolutely. I just want to wrap up. I think I didn't quite answer your prior question, which is when is IPFS support going to be available to everyone in Brave? It's available to everyone right now.
Starting point is 00:42:01 You just have to go into settings and click enable IPFS. Okay, cool. Yeah. That basically just starts an IPFS node on your computer while you're using Brave and uses that to talk to the IPFS network natively. that make you part of that distributed hash table? Like, can you, there's got to be a way where you can maybe say, you know, don't use all of my bandwidth or, you know, you can mute it for a little bit if you have a video call or something. Yeah, yeah, definitely. There is, I think the IPFS component is configured to run garbage collection once the cache reaches one gigabyte. So it's not going to consume your whole, you know, using it through Brave is not going to consume all of your resources.
Starting point is 00:42:49 If you want to run it, if you want to run a network or a node, sorry, that, you know, is incredibly generous, you can configure that node to do so. But by default, it doesn't beat all of your resources. That makes sense. Oh, yeah. I was saying, how do you have privacy
Starting point is 00:43:06 on IPFS? So if I use Dropbox, I can put some form that I've signed in Dropbox and I'm pretty confident no one else will be able to read it. How can I get that same kind of situation with IPFS? Yeah. So we try to use the same exact parallels. So the space application is encrypted by default. The ChainSafe application is encrypted by default. So web-based end-user applications often have encryption built in. So they'll encrypt the data before it puts it on the network. And then in an application design setting, you'd want to do the same thing. It's just like using AWS, for example. If you want to keep that data private, you would encrypt it using state-of-the-art encryption algorithms and then put it on the network.
Starting point is 00:43:58 That makes sense. And then you kind of either, you have to kind of write that password down, or you could then use maybe a centralized service like OnePass or something like that to hold the passwords for you. But well, then, yeah, I guess you always need some kind of master password that you have kind of mentally. You can also, with a lot of these end user apps, you can also use a decentralized ID to log in. So I believe with some of these, you can log in with a MetaMask ID, which is just kind of an Ethereum wallet address, and that serves as your identification. Wow, man, I'm learning so much today, Michelle. This is awesome. So how do you get a decentralized ID? Oh, it's an Ethereum address. So MetaMask, Rainbow, a bunch of these are wallets. They both store, you know, kind of like your like nice leather
Starting point is 00:45:11 wallet in everyday life. It both acts as your identification, but it can also hold funds. Cool. Cool. Yeah. And so I guess the final question that was on my mind was just how do you keep bad content off IPFS? Yeah, really important because, you know, a lot of people have asked this question and we think about content moderation in a couple of layers. So at the protocol level, it's kind of like saying, hey, the inventor of JPEGs, like never wants bad child pornography to ever be stored in a JPEG ever again. It's kind of impossible to do that. So in at the format level, we don't want to, you know, control content, but at the services level, that's where, you know, if we're actively involved in providing a service, you know, we can and should have an opinion on what data we're going to be passing around. So through like Cloudflare runs an IPFS gateway, for example,
Starting point is 00:46:13 and they'll sort of take down notices or, you know, add content to denialists if it's reported to be illegal. Similarly, Protocol Labs is IPFS gateway that we host, which is kind of that service between web two and web three. You can report abuse and have bad content taken down. And then there's also the decentralized option because everything we do, we kind of try to think, well, what is the most decentralized way to do it? The Filecoin protocol has a part where before you make a storage deal, you can ask the provider for some info about what they'll opt into or opt out of. And there's a team called Murmuration Labs building some content moderation capabilities into that where a storage provider can say, hey, I comply with GDPR. So that's like a feature I offer. If you choose to buy storage from me or another provider might say, hey, I'm located in Canada. And if the Canadian government mandates that you keep data
Starting point is 00:47:10 physically in Canada, you can choose to buy data from me. So you're building those options into the protocol and allowing many parties to define what good content or bad content or what their storage policies are, is how we approach that. That makes sense. Super, super cool. If people want to get started with this, how would you recommend they kind of jump into this? A couple of really great resources for getting started. The first is a website called proto.school. And that's a series of interactive lessons and tutorials on the nuts and bolts of this technology. And then another really fun pathway is through hackathons. So you might have the impression that like in a hackathon, you get all crammed into a room for 48 hours and eat pizza and write code. Sounds awesome.
Starting point is 00:48:06 Yeah, sounds awesome for some people. It's not everyone's privacy. But hackathons today have a much bigger emphasis on education. They often take place over several weeks. It's really about finding teams or community peers. Yeah, it can be even better. And because of COVID, I think there's, you know, people can access, many of these are virtual, so you can participate no matter where in the world you are. And so hackathons.filecoin.io is a website where people can learn about all the active hackathons that are happening now or coming up very soon. There's one called BuildQuest that we're running with ETH Global that's all about applying IPFS, Filecoin,
Starting point is 00:48:51 NFT storage, all these cool things to the development and design of games. Very cool. Yeah, I mean, that's also a great way to meet people who have kind of different levels of experience, different skill sets, and really network and form teams of people you can develop trust with. Yeah, absolutely. Nothing like going through the crucible of a project to really get to know people. And a lot of hackathon participants end up, we have a really awesome grants program, so people can apply for grants to continue the work that they started in a hackathon. There are job fairs, so sometimes people use their hackathon projects as sort of like portfolio showcases for showing that they're interested and capable of building in the decentralized web.
Starting point is 00:49:47 Cool. What is the coolest project you've seen built on top of IPFS and Filecoin? Oh, there are so many. I think a really cool one is Audius, which is a decentralized music network that's really artist-friendly and takes advantage of community enthusiasm. So Audius is a series of, is a music distribution platform. It's alternative to things like Spotify and all of the music is stored, all the data stored in IPFS formats and a network of nodes serves it up.
Starting point is 00:50:19 Wow. Super cool. So, so if, does it have the cataloging that Spotify has has like if i if i want to look up you know a certain type of music like if i want to play rock music or something in my browser will audius uh have something like that actually how do you spell audius audius is spelled a-u-d-i-u-s okay and the website is audius.co audius.co and you can yeah and you can explore music so there's different playlists uh there's some trending topics very very cool um i remember using uh this thing called gemendo which was you know totally web 2.0 but it was uh the cool thing about it was it was all um it was all music that was, I don't remember the terminology, but basically it was free to listen to.
Starting point is 00:51:10 But if you wanted to use it commercially, then you'd have to license it. But everyone who put their music on there were allowing individuals to listen to it for free. And it was just really liberating. I mean, you'd hear there's just a bit of everything, you know, it's like everyone could have a voice and there's actually a Canadian singer on there. It was really popular. He, he was like a parody or not, maybe not parodies wasn't parodying anything particular, but I'm trying to remember the name now, but, but he had a,
Starting point is 00:51:42 he had just some songs that had a really good beat to him. Yeah. And I think, you know, similar to the web, the music industry has seen a ton of consolidation where a few players have outsized power labels. Right. And in Audius, artists get 90 percent of revenue. Ten percent goes to the node operators that actually serve the music. And so up and coming artists can, you know, grow a following without having to, without having to like pass through the gatekeeping of a record label. Wow, that is super, super cool. Yeah, this is awesome.
Starting point is 00:52:17 And so folks out there, you know, check out, you know, these different links. You will post them in the show notes and, you know, try building something out there. I think it's really empowering. I think it's amazing. You could build something that can scale to extraordinary lengths
Starting point is 00:52:33 without you getting hit with some massive AWS bill at the end of the day. And I think there's a lot of people paying attention to Web3, so it's a good place. We often talk about how the, you know, mobile app stores are just so saturated at this point. But this is, you know, an area that is still new. I mean, it could be really, you know, if you have a really cool idea, it's much more likely
Starting point is 00:53:00 for people to see it when you're in this kind of space. Yeah. And I think, you know, I've experienced this twice, like working in Web3 now and also working in modernizing government tech. In a new space, there's room for it. You know, I think it's a great time for people to join because there's lots of problems to solve, lots of enthusiasm. If you're like a warm, smart body, you can definitely find a place to contribute your skills.
Starting point is 00:53:28 Very cool. Is there like a Google for IPFS? You know, like how do people search for content? I mean, obviously, if you have the hashtag or the domain name, then you're set. But how do people get discovered when they're producing stuff that's decentralized? That's a great question. I don't think there's a single answer for that yet. But IPFS is often used in, there's a couple of projects like aiming to catalog all the data that's on IPFS. And then there's also, of course, like all the applications that are aiming to help people discover video or music or specific kinds of content that's stored on IPFS. Very cool. Very, very cool. So let's shift gears a little bit.
Starting point is 00:54:17 And why don't you tell us about Protocol Labs, the company? So we know Protocol Labs. Actually, wait, let's move back up a little bit. So what's the relationship between Protocol Labs and IPFS? Do Protocol Labs invent IPFS, or are they sort of caretakers? How does that work? Yeah, both. So Protocol Labs is dedicated to the research, development, and deployment of new web technologies. And IPFS was one of the first projects out of there. LibP2P is another one, Filecoin. But we actually work now with a number of communities
Starting point is 00:54:52 and teams all across the web that are not necessarily part of Protocol Labs itself. And that's what makes IPFS and Filecoin and all these technologies even better. Ah, got it. That makes sense. And so for folks who are super interested in this and want to join Protocol Labs, do you have internships or full-time positions? And what are the logistics there? Are you hiring for a particular city?
Starting point is 00:55:19 Is it a distributed company or lab? How does that work? We're 100% remote. And the founder actually met the first couple employees on IRC. So don't have an office at all. Pre-COVID, we'd get together pretty often in person. And pending safety measures is starting to come back now but we kind of do a lot of work asynchronously through discord or slack github and then we use video just for as a supplement to that so it's remote
Starting point is 00:55:55 first company where I think we have people in over a dozen countries all around the world many different time zones and we're hiring at all levels. So protocol.ai slash join is the website where you can find out about different roles. And we've actually introduced a new program called Launchpad. It's sort of like an apprenticeship or training program for people interested in joining,
Starting point is 00:56:26 learning really quickly, and then getting matched to a number of different projects. So that is dedicated to early career folks or people transitioning from Web 2 to Web 3. So for those roles, we're not expecting prior knowledge, just, you know, smart, fast learners, awesome people bringing other skills to the table. And then we teach web three development skills in a one month sort of accelerated program. Wow, that is really, really fascinating. Very, very cool. So folks, what is a way for someone to what is the ideal resume for you? And what's a way that someone out there can, you know, what's your advice for folks who want to get into these programs?
Starting point is 00:57:10 That is a really great question. What's an ideal resume? So across the board, we're hiring in lots of different roles that, you know, entry level all the way through senior and principal level. So the expectations are different. But I think some things are consistent across the board. One is really great ability to work in the open, to navigate the ambiguity
Starting point is 00:57:33 of like having your design decisions happen on GitHub where everyone can see, being able to synthesize ideas and writing really well and communicate and collaborate in the open is a big one. And then also to bring other people along with you. So not just to be the smartest person in the room, but communicate it in a way that influences the community. Because especially in some of the projects that have fully decentralized governance structures, like you can't dictate change. So I mean, this is true of working on open
Starting point is 00:58:05 large scale open source software around the world, you know, no matter what project or company it is, is the ability to influence with or without authority. Cool, that totally makes sense. I remember, I still feel sometimes like, you know, when I'm using GitHub on some open source projects, especially ones that are more popular, you know, I'll get an email, someone has a question, I'll kind of shoot off a reply, like, no, it won't work or something, you know, I'm just kind of like on another reply or something. It actually is kind of intimidating. You kind of realize, people can... You really open yourselves up when you do something out there on the web, on the public GitHub and all of that.
Starting point is 00:58:57 But I think that it also is really humanizing. It's like sometimes people are in a hurry, sometimes they're not. Sometimes I can write really long replies trying to give people insight. And, and so, um, you know, I think, you know, getting kind of in touch with your sort of humanity or like realizing that they're all real people under the hood is really cool. I remember before, uh, I went to the Valley, some of these people were, um, just like, I didn't know if they were real people or not. You know, like you hear like stories of like, Oh, Jeff Dean, you know,
Starting point is 00:59:30 like he writes everything in machine code and he has like all these like, you know, kind of these people are sort of luminaries. And they find out at the end of the day, they're just they're normal people and you can email them. And most of them are super polite and super outgoing, willing to help, which is really cool. Yeah, I think there's kind of this like uncanny valley, right? I think like new people and then the super experienced, like the best people are the most welcoming. And sometimes there's like a little bit of gatekeeping in the middle, but we don't need that. Right. And so I think that's, you know, that's something that we look for in folks. Another is, especially if people are coming new to the Web3 space is just like, just try it out, you know, come to the interview or come to the conversation, having tried to run a node or you know build something with some of the
Starting point is 01:00:25 tools we have available or follow some tutorials so that you get you know not just a surface level curiosity and interest but really understand like what is it about ipfs or filecoin that or web3 in general that that that um that is motivating to you um so we don't you know many of the roles don't require prior knowledge, but they do require like a genuine interest. Cool. And that makes sense. So, so yeah, as we talked about earlier, you know, if you out there, you know, want to get a website or a web service or, you know, some type of thing out there, you know, it could be a set of files that you want to keep a backup of. You can do all of that right now for free or mostly for free using these technologies.
Starting point is 01:01:14 And so I would say for folks who want to be a part of Protocol Labs or this effort more broadly, just build stuff. And just you can be a part of it. It's very accessible. We have tons of tutorials on docs.ipfs.io or nftschool.dev. And if you want to get started with those or hop in our IPFS discord, you can find that by searching the web. Lots of people ready to help you out. Very cool. So, you know, we started this with you saying you wanted to be an architect. And so, you know, we've kind of come full circle. I feel like you're part of architecting the next version of the web. And what is, how does that
Starting point is 01:01:56 make you feel? It's really interesting. It's really fun. I've also come to realize that stuff on the web lasts longer than it's supposed to. Google Forms was launched over a decade ago and it's evolved a little bit, but it hasn't replaced. So I think there's also a real stewardship or responsibility sense that we're building the right building blocks, building the right culture to create a really healthy web into the future. That is very, very cool. Well, we will definitely post all of these links.
Starting point is 01:02:28 I really encourage folks out there. We get so many emails from people saying, how do I get into the industry, into any of these industries, software more broadly? And our answer has consistently been to build things. But I think as a lot of folks have pointed out, things like the App Store or Web 2.0 are just very saturated. And so you can build stuff and show it to your friends.
Starting point is 01:02:54 It's very hard to make it to the top of the App Store with your app nowadays. And so this is sort of the next frontier. I think that this is a place that has a lot of people putting their eyeballs on it. And there aren't that many big players yet. I mean, it's not as saturated as the App Store where you can't really get noticed. So build stuff for Web 3.0.
Starting point is 01:03:19 And as always, if you build anything or when you build things, at us on Twitter, we love to see all the stuff that folks have been building and learning. Definitely keep doing that. If people want to reach, you know, Protocol AI or reach you, Michelle, or, you know, ask questions, where would be a good place for them to do that? Two places. One is the IPFS Discord. I'm mosh1812 on there. And the other is I'm mishmosh on Twitter. Oh, very cool. Is that mosh after the terminal emulator? It does not come from the terminal emulator, although that's a fun coincidence. I think it
Starting point is 01:04:00 just evolved out of my name, Michelle. Oh, very cool. Well, thank you so much, Michelle, for coming on the show. I personally learned a ton. Patrick, I'm sure, learned a ton. Both of us are super interested in this. I see it pop up on the news and on Hacker News and on LinkedIn all the time. And I'm really fascinated. And I think you really shed a light on all of this different technology. And we're able to really dive in light on all of this different technology. And we're able to really dive in on how it works under the hood. We talked to everything from hashing to pinning content. Really, really fascinating stuff.
Starting point is 01:04:36 We have a bunch of links in the show notes. So folks out there, just go to www.programmingthrowdown.com or maybe go to our IPFS site. I'll have to see if I can build something there. But for now, I'll have to go to our Web 2.0 site and check out our show notes. Michelle, thank you so much for coming on the show. I really, really appreciate it. Thanks for having me, Jason and Patrick. Great to be here and hope to see everyone on the decentralized Web. Cool. All right, everyone. Thanks again for supporting us on patreon and uh and uh through audible um i hope everyone has an amazing couple of weeks and we'll see you all on the next episode bye music by eric barnmeller programming throwdown is distributed under a creative commons attribution share alike 2.0 license you're free to share copy distribute transmit the work to remix adapt the
Starting point is 01:05:40 work but you must provide an attribution uh to uh patrick and i and uh share alike in kind

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.