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

Loading player…

'Radicle: Towards decentralized code collaboration' - Abbey Titcomb

ETHGlobalSat, Oct 9, 2021, 12:00 AM

Speaker

Abbey Titcomb of Radicle discusses decentralized git-based coding using Radicle.

Transcript

decided to welcome Abby, who's going to be talking about Radical. And uh for those of you don't know, uh she works at Radical and uh she will be covering a history of kind of how code collaboration has evolved and uh what a decentralized version of that feature would look like. So, uh without further ado, please welcome Abby. Thanks so much for the introduction. I'm excited to be here.

Share my screen. Cool. Um yeah. So, again, hey everybody. Thank you for having me here.

Uh today I'm going to be talking about uh Radical um and how we're building towards a vision of uh decentralized code collaboration. Uh so, first, my name is Abby. Uh I work on all things community uh at Radical. So, I've been around the Ethereum communities and space for a bit. Um so, I'm really excited to finally start talking to the community about Radical and all the exciting things that we're building.

Um so, I think we'll have some time for questions at the end. Um but, if you have any during the presentation, my colleague LA is actually in the chat. So, feel free to just, you know, ping him and uh you can get any questions answered cuz we're going to be covering a lot of ground. Um so, today we're talking about Ethereum's impact. Um you know, if we start off with why I think Ethereum is impactful, I think uh it's impactful because Ethereum is a platform for the decentralized internet.

And it's also become a really big part of this thing that we call, you know, Web3. You could call Web3 a framework, a concept, a religion, you know, whatever you want to call it. But, in my opinion, I think Web3 represents the transition from an internet controlled by centralized platforms to an internet powered by decentralized protocols. Now, in the journey towards Web3, things are still early, but we've been building and have built a lot. We have really strong infrastructure, developer tooling, financial primitives, and user interfaces.

I mean, looking back to my first Devcon to where we are now, it's wild to, you know, see how far the space has come. Sure, there's always room for improvement, um, but I think we should all give ourselves a pat on the back. The vision of Web3 is something that's like very real, um, that we are building today. But I think that the thing that I find most powerful and exciting about the space is that it's an industry that is entirely online, values total decentralization, and is completely open source, like at its core. Um, you know, we're building software in a decentralized way, in an open source way, um, that is also going to power the decentralized internet.

Like it's a it's a really interesting paradigm, uh, and I think it's really cool. Uh, however, with this in mind, I think that there's this really big elephant in the room. Uh, and I think that elephant is code collaboration. You know, the hosting, sharing, collaboration, and distribution of the software that we're all building to bring around the Web3 vision, uh, and like that makes up Web3's very existence is very centralized. Uh, so before we tackle that elephant, I think maybe you're wondering, you know, what is the problem with centralized code collaboration?

Um, to answer that, I want to give a brief, very brief history, uh, on, you know, the evolution of code collaboration. Uh, and I've done a talk that took an hour to talk through all of this, so we'll we'll just get the highlights. Um, but so everything in regards to code collaboration actually starts with version control, right? Uh, and the evolution of version control is really quite an interesting story. Over the years, uh, you know, we've seen version control evolve actually from proprietary, uh, systems to open source systems, but we've also seen them evolve away from these more local systems to more centralized client-server models.

But of course, everything changed when uh Git was created um by Linus uh and made free and open source distributed, aka decentralized, version control the thing. Um and it just took off from there. And with the rise of Git, of course, came, you know, the creation of GitHub, uh which was created as a web-based Git repository hosting service. And you know, GitHub made collaborating on Git just better, right? Uh workflows around code collaboration evolved from like these mailing lists, this is from the Linux kernel mailing list, uh which are eyesores, so hard to understand, to rich web interfaces with all of these new features and workflows that made building software together just a better experience.

So, I feel like I have to say it before I get into, you know, everything that we're doing with Radical, um but GitHub is really great um and we everybody on our team believes this. You know, GitHub has played such a big role in all of our lives um and and and for a good reason, right? I mean, it's like a global social network of developers working on this rich platform that's defined, you know, the way that we collaborate on code and is built by nerds who care about open source, and that's always kind of been at the core of the GitHub ethos, you know, which is the main centralized hosting platform right now. Um but, at the end of the day, it's still owned by Microsoft, a huge US corporation. So, that means that GitHub is a walled garden built on open soil, very similar to all the other platforms we, Web3 pioneers, are trying to dismantle and divest away from.

And so, we're starting to see the side effects of these walled gardens. Uh as of recent, we've seen the corporate influence of Microsoft start creeping into uh the public eye, into our everyday news, whether it's from entirely banning developers from US sanctioned countries, uh buckling under government pressure to shut down disruptive or challenging software, uh like a protest application, or most recently, um straight-up censoring repositories due to um for example, the Recording Industry Association of America's most recent attack on the open source software repository YouTube Downloader. Um would highly recommend everybody go check out the Hacker News thread regarding this. Um but we're seeing a lot of censorship and a lot of um you know, the corporate influence that Microsoft has on a platform like GitHub start showing itself. And so despite all of these examples, um which are important in themselves, I I think that the call to decentralize code collaboration isn't just based on Web3 values, like the decentralized everything ethos.

Um because again, GitHub works for a lot of people. And and proposing an alternative based purely off of an ideology alone disregards uh you know, the reason that these platforms like GitHub became so important in the first place. Again, they just made it easier and better uh to collaborate on you know, some open protocols. But there are real problems with centralized hosting platforms that we need to be um you know, including in the conversation. Um you know, first there's an inherent platform risk with any corporate-owned platform.

You know, as they're because they're vulnerable to censorship um and usually will be continuously subjected to um and usually overtaken by capitalist means, which specifically in like the code collaboration sense, uh you know, these capitalist ends are often totally misaligned with the goals of free and open source communities. Um second, there's a real security risk. Uh central platforms, as we know, are single points of failure um and provide many real attack vectors. You know, when people look at GitHub, you know, you could hack the UI of GitHub. There's tons of different ways that someone could compromise um you know, repositories uh on GitHub.

Finally, uh vendor lock-in is kind of this uh important I I problem that I think is more of like a latent thing that bubbles under the surface. Is that uh is vendor lock-in. Uh you know, all non-Git native features on code collaboration platforms like issues, comments, reviews, PRs are entirely hosted on GitHub. Yeah, of course they're based in code, but the workflows have been defined and are unique to the platform that they are on. So, everybody says, "Well, Git is decentralized, so that's my backup."

But, what do you do if you lost all of your issues, your PRs, your conversations? You know, most of the collaboration layer would be stripped away, leaving only the change history of the code. And also, the social network on GitHub is entirely unique to and hosted by GitHub as well. This is the same with other social platforms. You know, our developer identity, our our stars, our contribution graphs um is defined by the social connection through us and other GitHub profiles.

Um it's not sovereign to us. All of our social relationships uh exist solely within these platforms. So, these issues are real um and and they're bubbling under the surface. Um and and and as we see software development continue growing at the rapid pace that it is today, and the nature of the digital ecosystem shifting and turning as it like eats the world, um I think we're going to see these problems become even more critical points of failure if not solved and addressed. Um so, in a world, this is kind of the thesis, right?

That I I think that uh defines, you know, our journey towards decentralized code collaboration. So, that in a world where nearly all software relies on open source code uh in our space, our vision of Web3 the relies on open source code. Maintaining the resilience and health of the free and open source ecosystem is more important than ever. The issues with hosted platforms cannot be ignored. And so I believe that our dependence on centrally hosted platforms and corporations for the distribution of critical open source infrastructure is inherently unsustainable.

And there needs to be like a shift in narrative to prioritize adoption of decentralized alternatives that abide by the principles of free and open source software and Web 3. You know, Foss and Web 3 need resilient infrastructure cuz we're going to be building challenging systems that people will try to take down. So, this is where Radicle comes in. If anybody doesn't know what Radicle is, it's it's kind of like the first start of a plant. So, we say "Tis the root."

So, Radicle is a completely open garden. It's a peer-to-peer network for code collaboration that's built on open protocols. And it all starts with Radicle Link, which is a peer-to-peer gossip protocol built on top of Git. So, Radicle Link basically extends Git with peer-to-peer network discovery. Participants in the network share and spread data that they're interested in by keeping local copies and sharing the changes of that data with peers that they track.

So, with Radicle, we replicate the data across repositories, so connected repositories according to kind of like a social graph of contributors and maintainers who, you know, checks out and works and contributes to projects. So, this enables source code and change sets to be disseminated according to the use and the value of the repository. So, it means that more peers who are interested in a certain project or who are working on a certain project, the more available that this project is made throughout the network. And so, this gives us the baseline of having, you know, a way to share and host code without relying on any intermediary since we're gossiping it through peers. So, with these protocols, our team developed a truly decentralized desktop client for code collaboration that we call Upstream.

Uh you know, we believe that building functional, usable, and beautiful experiences for developers is really essential and is one of the main pain points, I think, in the web 3 space. How do we build great experiences that help people get it? Um and when challenging the status quo, I think that that's just even more important. So, while we envision this application to be the main way that users interact with the Radicle network, uh it will not be the only way. You know, Upstream, as with the Radicle protocols, whether it be Git, our Ethereum integration, or you know, Radicle Link, will be completely open source and forkable, giving anybody the space to develop in their own code collaboration experience.

So, what does this app mean for us as developers? Well, Radicle uh gives people the ability to collaborate in the way that they do now in GitHub completely peer-to-peer. Uh so, this means that there's no central servers, there's no corporations, nobody owns Radicle, uh and no censorship. Uh it'll be a truly free and open network. So, in in comparison to other decentralized code collab alternatives like self-hosted GitLab instances or something, there also will be no hassle setting up, you know, these isolated instances that aren't connected to each other um because everything will be based on this one peer-to-peer network.

This uh collaborating peer-to-peer also means uh we'll be able to work securely offline. So, with Radicle, everything will be local first. This means that all the non-Git native artifacts, like issues, comments, and PRs that I said were locked into these centralized platforms, uh will always be available on your machine. You'll be able to use them and work on them offline um and have control over them. Secondly, everything is built on public key cryptography.

So, this means that in addition to peer identities, which will be linked to your device, your code will be backed by cryptographic signatures. So, adding another layer of security, uh more than just commit signatures, um onto your day-to-day code collaboration interactions. Finally, you can own your own infrastructure. You know, Radicle, as I said, will be free and completely open forever. It will be technically, politically, and economically resilient, uh and it will be that resilient network for code collaboration that is available everywhere for anybody, no matter where you are.

And since it's open source, it's forkable it's forkable, customizable. People can build on it. People can extend it, um which means that down the line, you know, you'll be able to extend Radicle to fit your needs, um instead of being locked into another corporate agenda. But, where does Ethereum come in? Because, you know, this is a Ethereum online, and this is really fun to talk about.

So, I think I want to take this section to kind of talk about what our Ethereum integration is doing for Radicle and how we're enhancing decentralized code collaboration um with this decentralized platform, this platform for the decentralized internet. So, it kind of all starts, uh with this idea that we want to start transitioning from DeFi to DevFi. Uh so, we want to design Radicle to sustainability, um because we believe that sustainability goes beyond just technical resilience, uh as in a peer-to-peer network. We think that to truly free developers from centralized code collaboration, we need to build better solutions for empowering the financial freedom of open source maintainers and developers. Um and so, when we look at Ethereum, we see DeFi, and and we see how powerful DeFi really is.

So, uh DeFi's building an an entire alternative financial system in the form of like these very hyper specific primitives that we all play games with and watch people play games with. And so when we're building and when we were started building with Ethereum, we asked ourselves how can we harness the power of DeFi and use it to empower its own maintainers and developers. So by building an opt-in integration layer with Ethereum, we can start moving DeFi to DevFi or decentralized finance that supports a sustainable and regenerative funding of open source software. So DeFi kind of applies itself to any financial primitives that empower developers to control the production and distribution of their code and it's very broad, but it's kind of trying to open up the conversation of what is open source and how can we truly create sustainable infrastructure that is resilient as we keep developing towards the Web3 vision. So let's walk through some of the things that we're going to be able to build with our Ethereum integration.

And so the start is being able to have global names and attestations within our peer-to-peer network. So the Ethereum integration gives us a global consensus layer that kind of makes peer-to-peer just work. Peer-to-peer has issues with maintaining a global identity, a seamlessness layer that connects the network to one another because you are working from again peer-to-peer. So by integrating with ENS, we're going to be able to empower users to claim global names and use them with to be identified and discovered on the Radicle peer-to-peer network. So this gives us the ability to connect identities through separate networks, Ethereum and Radicle, and it will empower us to be able to attach wallets and Ethereum addresses to our Radicle profiles whether it be users or projects.

So Radicle will be able to access the global network effects that are so easily come by by centralized platforms when you just create a profile and you're added to another, you know, server um you get without the platform risk. Uh and it also empowers some really cool things when you're able to add the power of digital money through um wallets um and Ethereum addresses uh and bake that into, you know, the code collaboration experience. Secondly, we'll be able to experiment with orgs and teams. Um Radical when paired with Ethereum will create the space um for a sovereign digital collectives which are, you know, basically DAOs. Uh but but with Radical you'll be able to create on-chain orgs on Ethereum that can be linked and connected to sets of repositories on Radical.

Um this will give uh developers the ability to experiment with decentralized admin control and collectively govern code bases. Um Uh and it also will be give them the opportunity to maintain an audible transparent history of project state on-chain with a through a process that we call checkpointing. So this is basically instead of just saying this is, you know, the view of the project trust the UI, we're adding another layer of security into, you know, what it means to actually securely collaborate on a very high-value project um by giving people a way to see who's contributed, what is the history, um and how this all lines up and have that be um validated on-chain. So with orgs through Radical and Ethereum we actually think that DAOs can act as a new superpower where everything, membership, admin control, governance, canonical project state, source code, and just the day-to-day code collaboration is truly decentralized. And finally, we have Radical Funding which is, you know, our kind of catch-all term for how we're experimenting with Defi.

Uh so Radical Funding will actually be these open-source generalized smart contracts for experiences that that developers to control the production and distribution of their work. Uh and this can span so far. We have a bunch of different things that we're building that fall under this umbrella that we're excited to test and and ship to the ecosystem. Um but this can go from creating and distributing a monthly uh free and open source support fund to projects and users that you're interested in that you want to support. Uh pooling money behind issues um to pre-fund work that you want um maintainers uh to do.

Um so giving maintainers the ability to understand what um their community members want them to work on. Uh subscribing by to creators uh to projects and users treating them like creators giving them the the freedom um that platforms like Patreon do um over, you know, what they can offer through their code base. Um or even, you know, creating software licenses as NFTs. You know, the Ethereum integration kind of opens up this whole space for, again, how we can bake in value networks into the code collaboration experience. Um ultimately, giving Radical users access to recurring and sustainable revenue streams without a reliance on intermediaries of platforms who currently gatekeep access uh and do so actively.

Um you know, this is a very important important part of the sustainability value proposition is how can we empower, you know, the financial sustainability of developers with Radical and and with Ethereum and this Radical Funding uh feature set, uh we think we'll be able to. So, um that's kind of the big picture for Radical. And and what comes next as we wrap up this talk is that we're actually um pushing out our beta very soon. Um and we really want to get people using it. So, if you are uh running a project, working on a project, uh or just want to try the product out, I really really reach out to me on Twitter um because I'm going to be onboarding folks throughout the next uh couple weeks as we start to push something public.

Um but if not, you know, stay tuned because uh I think that decentralized code collaboration is definitely here and ready and we're really excited to you know put this out into uh uh the world and specifically into the Ethereum ecosystem. Cool. Thank you. Thank you so much Abby for for that amazing talk. We got a lot of comments on how uh well put together everything was on the presentation side.

So uh I just definitely want to relay that to you. Um we we have a 30-second delay between people hearing this on YouTube versus me saying this now. So for anybody who's going to hear this in a few seconds, let me know if there's any questions and I'll relay them to uh to this call. Um I have a couple questions that we had in mind just from kind of hearing everything and what I kind of want to understand is you mentioned that the beta is coming soon. Um kind of is there is there any sort of problems that still need to be figured out or is it more about just kind of focusing on the protocol level and then the the UI and the desktop app but are like are there any open challenges?

Is this an extension of Git entirely and you're trying to move uh the data and kind of separate those out to be a bit more decentralized or or is it more about uh there's still some open problems that will prevent this from kind of being true and they're being worked out. Kind of where where do things stack on that level? Yeah, I'm definitely tons of things to figure out. I think that the beta is the first step towards getting to you know the vision of a decentralized code collaboration experience that could you know replace a centralized experience. And so it will be a progressive um you know journey.

Our beta will be the bare bones of sharing and hosting and creating identities but will give us a space to start testing stress testing the protocol and the network with real data and real users and start having their input inform where our road map goes next. And so we plan on doing sequential releases post beta that start introducing more of those collaboration features and and using the feedback that we're getting from that initial usage with these early adopters to inform that. But definitely tons of stuff. I mean, this is um we talk about this a lot is that Radical Link is very much so a research project. You know, our our we're building this amazing beautiful experience, but uh behind it is like a very intense research project that is going to take a lot of maintenance and a lot of work to become, you know, the resilient network that we envision it to be.

And so everything is a journey towards, you know, that. Absolutely. I think it's one of those things where the the effects of all that initial work compounds really efficiently and really well. So you're going to figure that out just once and then uh you can reap the benefits in perpetuity. Um that's amazing.

The I guess the other kind of question I have is um kind of as as you are building um the the protocol, the desktop app, um and sort of talking about sort of the risks of the current models that we have in this space, um I'm curious like what the reaction has been from the people you've talked to who would be ideal users here. And and just generally like it kind of what point do they prefer convenience over other principles like and kind of how do you think about trade-offs on that or like how that can be extended? Um it's a very open-ended question. I can ask some specifics there too, but would love to just kind of start the conversation there. Yeah, absolutely.

Um so I think that uh there's I think two answers that I have to that question. First is that um in our conversations and and in our approach in general to Radical, I think the point isn't to replace, it is to enhance, it is to provide an alternative. Um and so I think that whenever we have conversations, although we do frame in in contrast to centralized platforms, it's all about how we can build a great experience in the space that we're given, right? Um GitHub, for example, as a platform is a huge company, a huge brand. So, I don't think that a a direct competitive approach to, you know, Radicle versus GitHub will be productive um for our users and for us.

So, you know, our goal is to um tap into who understands this problem, who experiences this problem, and start building an experience for them and start understanding, you know, uh where does decentralized code collaboration lack right now and how can we be solving those problems? Um because ultimately, if we do that, we will be creating an an alternative to centralized code collaboration, but in a more directed way. So, I think directing our energy towards that instead of um pitching it again as, you know, in a opposite direction. One-to-one. Exactly.

And then the second um answer that I have about how people react, I think it's been really interesting to see how the uh is it the the sentiment around um the centralization of code collaboration is uh has been um developing throughout even since I started at Radicle, honestly. The more news that comes out, the more you start to see people waking up and and and recognizing um the reality of the situation, and specifically just recently with this YouTube downloader attack, it's it's wild because it starts getting people who didn't think about it before saying, "Why is the RIAA allowed to do that?" Um why is this direct attack on source code able to happen and why is GitHub standing by it? Um and so, I think we're just going to be seeing more of these situations um that start getting people, you know, you don't you don't really care until something happens to you. That's usually kind of Uh so, I think that now in these conversations it's been interesting to see how people have been evolving who maybe I talked to before and, you know, just brush it off who are now kind of, you know, starting to understand it and who are interested in exploring alternatives.

No, absolutely. And it's also one of those things where if you work towards, um, a a model where they don't have to think about what's happening in the background and from the screenshot it does seem like they will not have to think about what's happening behind the scenes. Uh, they won't notice and they still get the benefit. So, seems like everything seems to be on the right track. Um, we got one more question from the chat and that is, has Radical considered making a download package for an easy deployment of the platform and, uh, so that others can, uh, also do this thing although it feels like an advertising of I like it.

I always advertise that note. Uh, I whoever asked that should reach out to me and we can talk about it. We haven't explicitly thought about it, but, um, could be super cool to explore that. Um, I think that getting people using it, but then also getting, um, people in the ecosystem building on it is, uh, number one, definitely on things that I want to do. So, open call, reach out to me, DM me.

Um, we also have a discourse which is radical.community. Um, feel free to chime in there. Um, you know, we can talk through it. Well, uh, we'll tell Jeff to, uh, to definitely do that.

Um, and I I think the last question I had for you which I feel like you sort of already addressed, but, uh, how can people sort of get involved? What are some of the things you need help with or, uh, or anywhere from beta testers to feedback to, uh, contributors? Um, how can they kind of find you and and the product? Yeah, so, um, you can follow us at radical, I think it's underscorexyz. Uh, yeah, it's definitely at radical.

It's in my profile and my, uh, handle is on the presentation at follow us. Our beta when it comes out, try it and let us know what you think. This will definitely be something that's a collective journey that, uh, a shift in a narrative, something that we all need to build together. So, we're going to be looking for as much feedback and as much users as we can, Um, you know, as we start going into our, you know, release timeline. There's already excitement on the chat that people want to use this thing immediately.

So, with that I want to thank you for uh

Automatic transcript — names and jargon may be misspelled.