ZKPodcast: Getting Radicle with Julian Arni

14 May 2019 · 59:33

Anna Rose talks with Julian Arni about Radicle on the Zero Knowledge podcast, recorded in 2019. Radicle is a decentralized alternative to GitHub built on IPFS, combining a programming language with tools for decentralized open-source software development, and the conversation covers its technical design as well as the broader questions about open source it was meant to address.

Speakers

Topics

Transcript

[Music] welcome to zero knowledge a podcast where we explore the latest in blockchain technology and the decentralized web the show is hosted by me Anna and me Fredrik [Music] in this episode we sit down with Julian from on anok to talk about radical a decentralized code collaboration platform today we're sitting with Julian Arne from monadic today we're going to

be talking about a programming language that he recently made called radical hi Julian hi I think it'd be great if you could introduce yourself and tell us a little bit about your background I'm Julian I work at monadic and I've been programming in Haskell for a while and continue to in the context of monadic although my background is actually in philosophy I studied philosophy as an undergrad and briefly also in grad school so I was studying with the philosophy of language and in that context computational linguistics seemed important so I studied going a bit more into that and learning programming somewhere along fairly early on in the process I came across Haskell

in particular and realizes how elegant programming could be and have been obsessed with it since wow I didn't know that you started from philosophy is that a common path to go from philosophy to it's more common than people imagine there's actually a lot in common between the two one way of seeing what if philosopher does is having a question or a problem or a difficulty and then trying to formulate it as formally as possible so that the solution becomes apparent and in some sense especially when you see a program declaratively rather than imperative ly that is also what the process of programming is you have something that you want to be done or certain behavior that you want a

piece of software to exemplify instantiate and the process of making that actually happen is specifying very very precisely what that behavior is and and that specification is the program so in some sense even though they seem quite distant there's a big similarity I would also say that the history of the two is quite into the the way in which computers were invented is in fact sort of from questions and the philosophy of mathematics in particular in logic in logic yeah cool I'm curious to hear how you got from from that and from working in Haskell I mean I sort of know you from the Haskell space because I've used

some of the libraries that you wrote and that that's my only context of where where you're coming from and so how did you go from there to this decentralized tech space that you're sort of in now hmm I think to some extent there is even though I've always been interested in programming as a practice if sort of puzzles solving the sort of intellectually stimulating exercise on a daily basis and there is always some sort of distance between and that interest in the the practice of it and what it was applied in and so a lot of programming really is sort of applications that you don't really need

and that maybe are actually making the world in many ways either worse or not improving it as much as as as programming has the potential to part of what I see being the issue there is precisely the sort of monopolizing tendency that that is particularly prevalent in programming partly because I think the marginal costs of having a new user in the context of programming is so low all the investment is upfront and in terms of development time so there's a huge monopolizing tendency and there is a sort of concern that I think a lot of people share and that this new technology is is leading in a direction

that we don't want to go so let's talk a little bit about how you're trying to address those things which is in part radical and we had Ellie and Alexia on the podcast before to talk about oeis coin some of the visions of that of the project as a whole radical was sort of teased back then but we didn't really talk about what it was or what the intention of it was essentially the the dream was to have an open source collaboration platform than also incentivized contributions to open source projects and radical came out of this you were at the zk summit last time and talked about like sort of demo this

program language and how it sort of like a runtime for a decentralized system but where has gone from then and like how has it evolved because as I understand is it's somewhat different right now yeah and that's that's straight and so I think where we've started off from is this idea of decentralizing in the sort of backbone of code collaboration the west coin so radical would be responsible for that and the west coin would be an incentive ization layer on top of that the two projects were much more intertwined originally in the sense that we had this idea that we would use a blockchain in order to record the

state of every repo and so radical was the way it was initially just a programming language which would allow for these transactions that specify the the various types of interactions that one might have in the course of code collaboration and it would exist in a blockchain what have you since realized is that that we don't need a global consensus on the state of every repository so really a blockchain is overkill in the sense and we need consensus to some extent on on the state of an individual repository but not this global view and a lot of the motivations that we had for radical still remain

these projects have become much more independent you can use a radical without having any interest in OS coin but there's still something that connects them and there's still motivation as a so believe that there's a way in which a radical contributes to the OS coin mission and similarly the hope is that eventually the development of radical can be financed via the West coin ah but there are they separate units like are they separate project now what's the what's the top project then soman attic is the company that encompasses both of them okay but these are a separate project I want to go into what you just described here you said

something like originally there was this idea that you needed like a global consensus and now you only need a repo level consensus but when you're talking about like compensating through token you still need to have a value associated with that token that is global right so I'm just curious like when you when you're talking about that consensus what is the consensus then it's not the consensus on whether or not this thing is valuable it is the decision making about pull requests and stuff like that yes that's right so can sometimes you know when when we're collaborating on on github there is a consensus view of what a repository looks like at any particular moment in time and the consensus is very easy because there's one Authority and that settles that

and it's a centralized Authority so maybe before we go into some of them were kind of the details of it what is radical exactly what is this for and like how would somebody use it so radical is a stack a peer-to-peer stack for code collaboration the one way of thinking of it is it's a github replacement or a kit lab replacement the crucial difference the main sort of architectural difference is that you don't need to self host and you don't need to trust a centralized server so you can very easily do issue management for instance you can have people open issues on your repository and you know comment on it in the way that news that are familiar with although this is

currently we built the expands to be terminal first so in some senses it's different that'll appeal to some people and put off others um but continuing this architectural czar perspective there is these issues sort of distributed through kept storage on ipfs distributed via that so there's no need for a centralized server to be managing all this and that's also true further but not just for the issues and the patches which is our term for pull requests that's also true for the repository itself it also exists in ipfs although you can optionally use a github back-end

now that's the broad architectural view but there also a few sort of possibilities that are enabled by this radical as I think was mentioned in in the previous podcast with Ella and Alexi is also programming language so the stack includes a programming language and this gives you a lot more control over exactly how your issue system works for instance I'm in fact up to that level of the stack there's nothing that's code collaboration specific anything that you build with the radical language which is designed to have certain property so that this is true anything that you built in this way inherited these properties one way of looking at it up to that level of the stack up to radical is that it's a

properly serverless architecture and not out sort of marketing server list which still has a server but a little way of sort of writing a small program and this and sending it off into the ether of it that sort of works without any sort of concern about self hosting provisioning and whatnot but that is truly a peer-to-peer so we've built those levels of the stack and then on top of that we've built a code collaboration system and what that gives us that architecture gives us if we give the user is really the ability to do and control their system and whatever way they want I'm curious first to just try to break it down a little bit because I mean you if you start with git git itself is

decentralized and peer-to-peer in some sense that you can put in the home remote address of your peer and can send them all your updates and there's a consensus resolution system called merge conflicts but but then you don't get anything you don't get any of your fancy github features with this you don't get pull requests or patch like system you don't get issues you don't get user management or permission management in any sense so I guess it's so you take that fundamental basis of git and then add all of this stuff on top but do it in a peer-to-peer fashion and that that's roughly correct I would say

really to some extent what we're doing is adding the things that github abs to get but in a peer-to-peer fashion but one thing I would say is that this idea that git is decentralized well first of all decentralize is a very very complicated word and that's more slogan than anything well-defined and so even though I believe in using it as a slogan and we should have like it's always useful to have in the sense that in a particular case we can delve deeper into what exactly it means and in this case it's true that you can have in the case of get it's true that you can have multiple remotes and you can push through all these remotes and your computer can be remote but there are some problems with this in particular

you have to agree on what that remote is in order to collaborate you have to sort of agree in what federal mode is and that usually means a particular specific server and as we notice now that usually means github and then so the remote is github and even though it could be using something else we default to github and that is still a point of centralization and it's not easy even though technically it seems very easy to just change a remote it's not easy to do so in practice because if I decide for instance that I want to switch from github to a get lab or C kit or anything else or hosting it on my own server I have to inform everyone else was collaborating with me and they have to

manually change that remote and so the problems that decentralization is trying to solve namely this tendency for a system server services companies that we've come to rely on for us to be less reliant on them isn't really solved by it by get by the gate model basically it's possible to use get in a decentralized fashion but you have to manage all of the remotes yourself yeah and the entire like peer set is manually managed and you need to push to all of them and you need to like have some social consensus on what this or so truth is yeah and everything else and it's just way too hard to actually and essentially so people end up centralizing yeah

and that's and and sort of having an IP ffs backed version of this is I think a more thorough solution than just saying well let's get its get more like a architecture is it a is a protocol what is it is it it's not a it's not a language is it I mean you could I either call it a protocol for source code yeah management or it's just a program okay it's like but are you still using that protocol or those protocol ideas or have you rewritten that what we currently have is what's called a remote helper so you would still use getting in the way that you usually do but your remote has a different URI that encodes the

protocol that is using it in this case is ipfs and get by default doesn't know how to communicate with a remote that is ipfs backed and so we've written a little program that teaches that how to do that thankfully it has a very simple system to sort of incorporate different protocols so ultimately you're still using get the command-line tool but with a small add-on of that without you sort of being aware of any difference without needing change in your workflow now works as well with ipfs so really it's quite wonderful I think I think this is this is one of those cases where hopefully are starting to contradict this idea that decentralization or a peer-to-peer technologies have to be harder it's really quite wonderful how

you don't need to be aware that this is that peer to peer solution to a large extent you are using so you're using IP FS in this case have you looked into other potential storage solutions so it should be said this idea there's a little bit of a difference between how issues and patches work which is through the entire radical stack so you have all of programmability there and you really can control exactly what you want it's really a program that's running whereas get is really just data and so it doesn't need to go through the entire radical stack and for the sort of radical components and there's a lot of some similarity to SSP as well so

could have been an option now that we've considered it and eventually realized that it wasn't quite sufficient you never considered writing your own pizza P stack and doing everything well sometimes we're frustrated with certain technologies and ipfs but but this is no criticism I mean they've taken on so much there's only natural that they'll be parts of it that aren't quite there yet but really I think throughout we've noticed that in fact it's easier to rely upon things that already exist so your background wasn't Haskell I don't know if you already mentioned this but is radical related at all to your Haskell work is there any connection there so radical the programming language is

implemented in Haskell so again just to be clear this this programming language is sort of crucial to bringing program ability to peer-to-peer right we have things like FS that I sort of just data or SSP that are just data in some sense and radical is Ruth piggybacking on those technologies to bring program ability to it and it's crucially it's a deterministic language there's some sort of conceptual similarity between any pure or deterministic programming language and Haskell and additionally a Haskell is a really wonderful language in a variety of ways but in particular for implementing other languages so of course these the second high school the

technology was a very natural fit but aside from that I think that's not right in some sense yeah as I mentioned it really hopefully is the case that no one has to be aware of a familiar with Haskell in any way in order to use radical the stack I do have a little bit more of a question about like why you need a language why isn't this just program like or why why a stack and a language in this case so one way of looking at it is as I sort of mentioned and the peer-to-peer web is still roughly where the non peer-to-peer web was a couple of decades ago in the sense that it's mostly static idea right so you have documents and they in the case

of ipfs for instance or content-addressable but the very much static idea as if you're serving dot with your files on your on your file system what we wanted is something much more sort of dynamic programmable so that you can sort of say things like for instance batches should be immediately rejected and considered invalid if and they touch upon a specific file in the in my repo that I don't want to give anyone besides myself permission for I mean this is not something you can do and get help at all but it's something that should be possible you know if you have the time to spend half an hour programming you should be able to state these things to some extent and it's always a little bit

arrogant to program your own programming language but in another sense there's also a form of humility in the sense that you admit that you won't be able to foresee every possible eventuality and you want to give the power to the people who are using it to sort of change their tooling as they see fit I think there is also a differentiation to be made in trying to write a new general-purpose language that replaces C and a new domain specific language that is like you've actually you're working in a new domain that either doesn't exist before or sonics like to some degree unexplored and it makes total sense to make a domain-specific language for that yeah and the other thing is

also that this sort of freedom right as is so closely intertwined with the principles of of open source or free software in some sense it's an irony for instance that we have no control over the system that no control to change and the sort of stall in the way that Stallman really emphasizes to change the the system that we use for open-source software for free software and and so programmability in some sense it's crucial to enabling that so one way of looking at it is once you sort of have a peer-to-peer system or a decentralized system where you no longer rely on github or some similar service or

company you have the right to change your system you you were the person who owns it but a programming language is really what gives you the ability to do it was this a huge challenge this is the first time you've written an independent programming language no not the first time in fact it was third I would say no it's and now the sort of haskell world has been changing considerably and more and more sort of cryptocurrency related endeavors are using it but to some extent it is a feature of the haskell world that in writing a programming language is a fairly common way of

having gainful employment what does the language actually look like like what is it similar to how would somebody use it it's very similar to scheme or it's a dialect of Lisp and and one of the decisions that we made is I suppose so not to try to reinvent the wheel it feels like very often when there is language that comes out that is attached to a specific purpose when someone tries to invent a language from scratch it ends up being worse than the ones I ve read you know and maybe JavaScript is an example at least the early JavaScript I knew had Brendan Eich been allowed to basically use scheme we would have had a better front-end development experience

and so to some extent again that's this humility about rêveur ability to design something that's better than anything that currently exists that said there are differences that are specific for a purpose one important one is that language has to be deterministic it cannot have side effects it cannot every time someone if you and I run the same program the result should be exactly the same and this is not true of existing the main well-known dialects of Lisp and so there was a reason to build their own and another thing that's different is that there is the sort of reprogram ability to back back up a little the way as you can see radical operating is of the sort of independent replicated state

machines little machines or programs that are like a repla session that you might have in in your terminal and so you can add newlines and they'll evaluate and fill maybe to find your variables and change what's currently there so it affect the state but also give you an output but these repple sessions really be alterable to become the specific to transform themselves into the specific machine that you want them to and so if you imagine a normal rat possession and normal programming language too easy for someone who's made a malicious to really destroy in the system that you have in place because they can redefine a variable or delete everything and so really you want to be able to transform

this this session this repla session and what we call a machine into something that's much more domain-specific very easily so that you know the only allowable operations for instance are creating an issue creating a comment on an issue closing an issue and things like that so that you don't have full control and moreover so that those things themselves become easier right so if you can really sort of change the language in sometimes dynamically so that it adapts itself to the specific use case in that instance of it in that machine or tell you the metaphor on in that repla second then using it becomes easier so there is a mechanism whether

we call a vowel evaluation redefinition or a vowel redefinition for short and that does that doesn't exist in in most lisps that is a feature that we have added that helps a lot in our own specific purposes I'm curious what the stack like the execution stack for radical looks like you have this lisp like language that I assume gets parsed into some form of ir in Haskell is it like is there an IR is there an assembly like how does it get down to actual execution on a machine so currently it's all interpreted so the

way maybe just talk more broadly about the architecture the way we've designed it is that you have a particular IP n s link and as an IP FS key a pointer and and that's a linked list or an append-only log of expressions in this language so you store them textually on ipfs and you can add new ones and so anyone can submit new expressions to be evaluated they have to go through the owner of the key but this happens automatically and so you have a log of the entire history of a program or the definition of a program on ipfs and every client has a radical interpreter and that and they can then

fetch this history from evaluate it and be sure that they're evaluating it to the same thing so then you end up with maybe you know the state includes a list of issues and so if you query the the function list issues you'll receive back of the appropriate data structure and everyone and will be sure to receive the same now the way in which things we do currently only have an interpreter and and so there's no sort of like JIT compilation or compilation in general ahead of time compilation you just mentioned the key of the owner or the owner key and I'm curious because there's role management here and there's

permission management's there has to be some public key infrastructure what does that look like and how does that work yeah so apparently sort of two layers so there's this notion of keys within ipfs itself and then there's also this notion of keys and authorization in radical and now the way it works on IVFs is that you have a particular key and so we're using two parts of the EFS infrastructure one is ipfs itself the traditional sort of content addressable filesystem and then on top of that i pns which is you can think of it as a pointer to a bit of data on ipfs and that can be changed but

the person who changes that has to have the key that corresponds to the name of the pointer so if you get ipfs i payin s layer on top of that within radical itself the expressions are signed and so upon first using radical you create a public key and a private key pair every expression that you send thereafter is signed with your key this word radical has primitives for cryptography so you can verify a signature and check that it corresponds with what you want to expect so right now we don't trade we don't disseminate keys and you accept via

radical itself right so I can add if I have a project and I have a sort of maintainer z-- i as one of the maintain is can say oh here's one of another public key added to the set of maintainer x' and that's stored in the machine and the sort of diffuse radical program and it's used to verify that future expressions sent by anyone are authorized to do so so in that sense it's a sort of a Byzantine fault-tolerant system in that the only Byzantine behavior that could possibly be done also needs to be signed and so the person who receives that behavior can kind of go well you didn't sign this

correctly so I'm gonna ignore it well in some times it is it's even simpler than that because of the ipfs layer you don't share keys and so there's a synchronization a moment of synchronization which is the owner the person who whose laptop has the keys a sort of is a point of synchronization so there's consensus based on the fact that there is only a single key as it is it is going through the owner at the end yeah we have an idea we have actually multiple ideas for how to have an extensible multi writer system and it doesn't seem it seems like there are multiple plausible options but we will have sort of always a permission shot

set for any machine no I mean that's what I mean it feels like you should be able to achieve the same thing and have I cannot require a single entity that things go through so yeah basically making everything signed and saying that these are the authorities that are allowed to do things you work around a lot of the problems yeah that you typically get in like law chains what is it like to actually use radical like what is what is the user journey for that hopefully as simple as possible so you know you know and install it via brew or Debian packaging apt-get and start wants the sort of services in the

background that are necessary to make the system work in your computer and never again have to think about those and then within repository you sort of use the command that initializes a radical project rad project in it and that adds the different components that make a repository right now that's issues and patches and the git repo itself and from then within that repository if you ever write a rad issue list that will list the issues that anyone has opened in that repository if you write a patch list you'll similarly see all the patches that people have submitted you know we can create in your

patches and similarly right now all from the command line so to some extent I personally think that this is much more convenient because it doesn't involve a context switch that we often have with a web UI so we don't have to sort of you know once you sort of have a patch ready you don't have to switch to get hub and click on a few buttons usually just from your command line in the middle immediately submitted for review and similarly from your command my command line immediately pull it down for review now to be fair this is still very much alpha software and so a lot of this tooling is not as good as it can be but that is roughly the idea you sort of have an interface to your issues that's very much like the interface that most

programmers have with git it's all from a command line involving there's no way to do that right now with github third-party tools yeah okay yeah so there are things like hub and maguet and things like that that do help a lot with that in some sense I think one big difference is that we're really oriented towards making that experience as good as possible whereas it might be said that github has an implicit interest in making you go through their website as often as possible so you're really a sort of attached to their UI become accustomed to their UI and they're constantly reminded of their website and they're using their interface so that they can you know if they ever choose to

advertise something some of the other features of github though are also kind of like the fame associated with like I think this week I saw someone tweet like someone else's was an activity github activity what do you call this it's a chart I can't remember what that type of chart is called but somebody treated this like activity log chart thing and it was kind of like dude you didn't make you didn't do as much work as you said you did like there's there's that there's also stars there's also like all of these other kind of game-like features of github do you guys touch on that at all are you actually trying to get away from that yeah so this one

that's absolutely correct right there's an element of github github in some sense this is primarily the hub component into a set of tools for a social platform yeah yeah and I think this was really more of an alpha release so that we the really basic functionality for code collaboration is there and we've shown that it's possible but it's easy to first him and we've already started thinking about this implementing features that are more like social the social features that you haven't github so for instance even something as simple as discovering your projects right right now the way in which you collaborate via radical is that someone sends you a hash and you

copy and paste and check out that project no but of course sometimes you're just exploring and you want to see if there's something interesting that you don't yet know about but that's very easy again because of the way in which radical the stack was designed any of these new features are not only possible but easy and so adding stars for instance as well if that's still within the radical / viewers that OS coin so the way I see it the radical project benefits the goals of who s coin but really should be some extent independent of it right so I don't think we will very sort of design a feature or remove a feature because we feel like

people should be using OS coin for that and so really we don't want people to be forced into we're not trying to - to sell them anything now we're not going to force them into a particular path but rather free them from other people who are trying to sell them something right and so if someone thinks that stars is useful as a part of radical then either we or they and the radical is after all itself open-source can implement it and quite easily I mean they could have potentially even implement it only for their own repo right that's true yeah and that's that's the other thing as well right like an even with the sort of listing of all known repositories and the way in which you can see with it is that different people can have different

listings and you can aggregate them if you want but there's no sort of authority and what the listing is right so it's really sort of a much more sort of communal effort and you can have organizations at a smaller level doing that do you ever imagine that you will write a UI for it like a web UI or something else funnily enough we did have one already it's the way in which to design the system makes it so easy to go there and that for a demo that we did a couple of months ago we had a web UI for the issue system since that wasn't the priority for this release and that of a week ago now we didn't do any work

on that but we are starting working that again and it should be relatively easy and quick to have something a proof-of-concept web UI and of course doing it well in a way that people find intuitive is it's always a lot more work and I guess the nice property of it is you don't actually need to post it anywhere you can just put the UI on IP FSM soived app yeah and yeah you don't need to rely on any party hosting a website or anything yeah the one thing I would say that's a little bit more complicated greeting issues is very easy because you don't have to trust anyone right so you know the the hash of the

content that you're looking for and so if anyone provides you with that hash you can trust it whereas writing is a little bit more complicated via web UI because of this issue of keys right so um if you're using a terminal then your keys used to sign transactions whereas with a web UI do have to figure out how it is that your transactions will be signed if I the web UI but I don't think that that's going to be an unsurmountable problem no I mean that's something that if they're in deals with all the time and part of all its this the answer it's actually a good question though like if you lose your keys you just lose access to your whole repo that is the case right now so not access to read only access is always there the

problem is that then you lose write access now that's not the end of the world because you can still sort of fork your repo and start a fourth your project and start again with a different key and not from scratch right yeah it is somewhat annoying because you have to inform everyone that the correct key changed and you need to figure out how it is that people believe you right if you say oh i am julian and i'm saying that i lost my key like there's a question there how do I trust you so of course that's not the most wonderful thing in the world if you lose your keys but still there's a path for anything that's actually an interesting question though are you a user like do you have a user identifier in this so currently the only identifiers that you

have is your key your public key that now of course there's a little bit inconvenient in a variety of ways even though the safest option because it's hard for me to just look glance at a key and see if it's the same person as the person who I've learned to trust for some other reason me and so we've thought about implementing sort of pet names where you locally decide to have nicknames for certain keys and we've also previously had for ourselves within monadic a shared pet name system that was itself a machine and the radical and radical

project and so and so there are ways forward and this is a fairly well and discussed and they had thoroughly discussed sort of options about this reg this is this is to some extent an example of where a blockchain really would help does everybody have consensus on names for instance right but ultimately the sort of cost of adding and blocking a solution might be big enough that and then it's not worth it you do what urban is doing which is they have a mapping from all integers to yes pet names yeah they're a kind of strange sometimes but like three words strung

together by dashes yeah yeah and it's you know they're readable there are instantly understandable that's a human so it works much better than the long cache and one thing to be said for that is that um you know once you're conceiving of vanya technology sometimes useful to imagine all of the places where things might go wrong and I don't mean technically wrong but sort of socially economically wrong and in some sense we've seen this with squatting over names right so with with domain domain names for instance right and and so the moment you have the ability to choose any name there's a problem there possibly where people will squatter

names and resell them and and so the Irbid solution has the being equally bad for everyone does ENS have a solution to that no and they're just a lot of squatting I mean they just say if you pay for your not to squat I mean there's the whole issue of fishing with names as well you pick a name that's super close to some other name and yeah suddenly people still can't tell the difference yeah do you guys use radical internally yeah so we didn't use it for issues for a while now and we actually had to backtrack a little bit with the release because of course this this latent problem which is that a lot

of people might have trouble installing or understanding how to use it and if the only way of creating near issues is via radical itself they'll never be able to communicate that so we had disabled issues on github and have since rien abled it because there was so much attention recently and I think that this is probably going to be the case for a radical specifically for a little while so hope you don't run into this problem I mean I think that's kind of normal you can't expect everyone to like immediately shift over and there's gonna have to be this period of like actually using the old tool ya know I think one of the things that I appreciate about the people I work with this is like a combination of both principles and

pragmatism there are a lot of people who are really really willing to put up with anything if they if they believe in the principles behind their software and a lot of people who are not would not sacrifice any convenience and in order to develop the best tools you have to have a component of both there's this element of sort of thinking of here again we really need to have a CI system set up in order to honestly muse our own tools and so this sort of the sense that you know like we want the tools to be perfect before using it exclusively or not perfect that but convenient before using it exclusively it is something I appreciate and to be honest I think right now for we say this quite a number

of places but right now when we're not there yet for a major project to switch to radical exclusively including radical itself like that's actually it was one more question I which is like can you make a private versus public eye card those kinds of features in yet yeah yeah so this is something that a couple of people have asked me already and the answer is no we haven't set up a system for private repositories you can always set up your own private idea that exactly so that's that's the thing right so we never thought about it and we never sort of we haven't yet I started thinking about about the road map to that but it is actually quite simple to just change at the ipfs swarm key so that only the people you trust or want to conceive you the repository I mean I guess do you

have to be kind of an advanced dev to understand - use it or do you think like people just learning how to code could actually use this so I think a familiarity with a command line is important but if get is something get the command line tool is something that you're familiar with right I think will be much easier get her sometimes not actually often confusing to me and I think to a number of other people and corner cases it is really relatively yeah but if you if you can use get even with some frustration then hopefully you can use rapid or radical do you call it red so rad is the command line tool if it has to be shorter so better than people actually I do have a question about the name yeah

so where does the name come from yeah so one thing that women want to make fake clear is that it's not just the usual tech misspelling of something else it's not like radical that's not what you mean okay so a radical and with icle rather than I see al but that's the term for the part of the seed that will eventually become the root and the idea is that the programming language which is what radical applied to exclusively at some point is is that once you once you so it is the sort of starting point of any of these machines that grow and

can grow into something else grow into different programs and whatnot but that's the sort of very and the seminal root in some sense it's also but we get to have a command-line tool that's called rad good neighbors are good we talked about this with Benedick once like bulletproof s-- is a better name for a concept than the long academic title that I think they originally had and it might have helped a little bit to get some attention to it so radical was last week I think just launched you know a more official manner I actually saw it on Hacker News when I drank my morning coffee it's kind of

nice like oh I know these guys nice what is the response been like because it's you've managed to reach outside of the normal just blockchain circles in the blockchain bubble what kind of people have been attracted to it so far and what kind of usage are you seeing yeah so to some extent the people who've started contributing more and we shout more are the people who have some experience in the PTP space I don't think that necessarily is related to interest so much as background right so it's easier to sort of say oh like it's to suggest something about the architecture if you already have

experience with it with similar architectures now if the experience has been generally positive but I haven't really come to you know we have a sort of tutorial where there's a garden and you can contribute to it and but this hasn't really sort of led me to any insights and as to who who who are the people who use radicals quick comment like this is a common thing a conversation that a lot of groups have about like how how do you track this and how should you track it like if this is all is where does it live right now is it like a repo that you download yeah yeah so so yes so I guess there is there you know one other thing that's maybe

relevant is also that we don't want to use cookies it seemed it's really linked over hill to have our website require cookies just so we can count how many unique visitors we have and so there's also this element of like even the sort of basic analytics we you know it would be useful but really not worth putting cookies on other people's computers for and so really the only sort of insight that we have is people talking on these various forum forums that's where I see and the mailing list and opening issues and summoning patches to in the garden I mean that's a whole other topic about like analytics in the blockchain space something we might want to cover at some point yeah I mean it's it's a very weird

slightly contentious subject of you want to use web to tools to take over a web to but you don't want to use web to tools because they are web to tools and that's what we're trying to get away from I'm at the same time the other side of that is you don't know your customer so you might not always be able to cater I think that's like those are the two sides right like I mean that's what I mean is like we want what we need to be successful but to be successful we need feedback and we need to know what people are doing and what they want and how we best engage but the tools available or anything that goes other plants are thinking for us a lot you know if you're

if you put out a website and maybe something within it is confusing and people are getting lost and in the process you know you you have a system of analytics and maybe you can track that down it's yeah I see maybe this button looks wrong or maybe if it's a game this is not intuitive or it's crashing for a lot of people vlogs and you have this entire infrastructure that really helps you track down what's a problem for users whereas in this sort of peer-to-peer space they might not be connected to you in any way and you might not know that they exist right in and so and they would really sort of go counter to the very idea to sort of force them to submit logs but I'd say overall the response that I've seen on forums and

random places has been positive I think a lot of people do really appreciate that always coin and radical has to systems have been separated that they're not you know muddle together and become this weird megalith project I did one kind of last question related to that it's like is there any what do you do about licenses and stuff like that like if you want I might be totally off here but when you write open source code there's sometimes licenses that you can associate with them yeah I feel like my remember on here but I feel like github has some of these like can I made for

you like to input do you have anything like that no we don't so really you create your repository yeah that's whatever licensed super holiday yeah oh you can you make it within the repository itself the license yeah that's our thing get up to bunny I mean they provide like you can you can add it automatically yeah you definitely can choose maybe I don't know and it has a little UI thing to show you what it is but at the end of the day it's still file in the repo okay but speaking about blockchains there might be a block to it at some points so I'm curious to hear what are the plans I mean I guess this isn't completely worked out yet but how will I was quite interact with radical yeah so

as I mentioned earlier there was a sense earlier in the project that they would be very tightly integrated now that is changed what we've sort of noticed is that members the there's an independent reason to try to decentralize get out and this is concerned that you know with the serve monopoly power they might not I don't I don't think by any means that they're kindly doing this but you know they have the power to insert backdoors into your code that's hosted there so that when you clone your cloning something that's back doored they have the power to look at your private repositories and steal ideas from from them if they so choose to and I don't think they doing that right now but the

concern is that is not that they're doing it right now but the concern is that we have to start fighting monetizing tendencies before people start abusing it right so from Microsoft and Facebook and that Facebook is maybe a good example where currently they are abusing their monopoly power in so many different ways there's a little bit too late for us to easily flee to a different service provider because believe the network effects and whatever else have really kicked in so the motivation for radical sort of by itself is to sort of start that I fight before it's too late in some sense the concern with the monopoly power that github has is smaller if the ways in which it can be put to advantage

are more limited and now there's a problem if we start working towards the future that OS coin envisages where people will be rewarded for in their open source contributions financially in a way that's hopefully sustainable and maybe enough for them to live on and continue working on open source and full-time their multiple questions that such as how do we decide which projects to reward and how much I'm to some extent that will be based on ultimately popularity how often is a project used by how many people and the way in which popularity comes around is is quite

complex you know that sort of self-promotion is a big thing going on podcasts helps but but one one thing that we have to sort of understand is that github will have a lot of power over that and github you know already has a sidebar in its initial page where it suggests related projects that you might be interested in and if that sort of suggestion is leading you in a particular direction to use certain tools and thereby rewarding the people whose tools you're using there's now a sort of financial incentive an added financial incentive to github to maybe sell that position that place and and as

an advertisement that thereby influence people's livelihoods you can be relatively sure that in most large companies there are people whose job it is to figure out what to monetize and how so it's an exercise that we should be engaged in as well to figure out before or the sort of next step in some sort of evolution is how companies will be trying to monetize that and preventing that as soon as possible not to say that every form of monetization is problematic of course the whole point of a coin is that people should be financially rewarded for their contributions but it's something that we have to at least consider consider and so this sort of world in which github

becomes very very powerful because it dominates the way in which open-source is conceived of and so many livelihoods depend on that seems concerning so the idea behind radical is to sort of really disentangle open-source from github so that if they exist in a way that's entirely transparent right so the decisions made are visible in the code and the open source code and can be contradicted and forked and discussed so that there isn't even more power going to github and Microsoft Google it's so interesting because I feel like that is that struggle between like incentivization and non making something non game a bowl we hear about this in so many levels and where you draw that line

is tricky because you also would want like sometimes those side businesses that are form around these tools aren't necessarily evil and they they form they are new forms of livelihood for other people and I think what you constantly hear is this desire to make things more fair yeah do you think that's like with a another good example I think is the latest trauma on like YouTube and the quote-unquote YouTube algorithm choosing who gets to make money off their content or not and it's it's like it's a very weird system where like YouTube is trying to optimize for content that will keep people on the platform for longer

so it's like it incentivizes a very specific type of behavior that it's not necessarily good for the people who are actually consuming but it's sort of like at the basis of it it's it's not fair it's not fair that someone who puts like a thousand hours into an animated short gets nothing from it because YouTube decides not this is not good for our you know platform doesn't attract more hours to watch but at the same time it's trying to cater it like it itself is trying to give people seemingly what they want you know like if it's not healthy for them like they seem to want it and they're gonna seek it out anyway what's so interesting one thing I would say that is that it's not

a sort of definitive sign that something is wrong and but one sort of intuition that maybe the the monetization if something is problematic is precisely this idea of market power and monopolies right you know it indeed I completely agree that you know like someone providing a service and being financially rewarded for that is not in himself problematic but if they start doing something wrong if there's start doing something you don't agree with we should be able to easily change providers and the moment there is market power the moment there's monetization this becomes problematic and so a lot of what I feel like we've been thinking about is precisely where technically where do these sources of natural monopolies come from and so if you look

at something like that the basic Internet infrastructure right there you see some of it and you see in theory every computer is the same every computer can act as a client or a server but in reality only some of them can because only some of them are have static IP addresses or not behind that and firewalls and only some of them are always on so then there's a tendency to sort of have the specific computers hold more information and then because the information is not named then really the formation becomes associated with the URL rather than the content and so then you've been struck so there are all these sort of processes that you see another one another one that I think is very very interesting is the idea of

trust you know if I have my email I really want to trust and it's a web UI and I'm not downloading it locally I really need to trust my email provider because if they lose the data it's that's really really bad and so natural tendency there is to say well you know there's this really big company that does it and so if they were to screw it up it would be a really big deal whereas if they're three people who are I mean one person and their basement is providing a service I can't do any ever no guarantee that they won't stop doing it and so then we sort of flock towards specific service provided because of this idea of trust and then again end up in a situation where the moment that they do do

something wrong which they have repeatedly proven to do it's too late right and so there are all these sort of small sort of architectural technical components that influence what I see of as one of the main concerns which is the tendency towards monopolization not monetization itself but monopolization some of that is technical but then some of it is perception or sort of assuming like a big company won't do bad because if they do bad they you could sue them for more especially if they're Americans so like that's also kind of the thinking it's like well they will really protect because you know they're so big they'll get in a lot of trouble class-action suit in fact the bigger they are the less trouble they'll get into right

because again if they might get into a lot of trouble it's just it doesn't hurt them yeah that's the things like they'll still pay a lot like the numbers aren't seeing but the percentage of the revenue is tiny so you know if they're sort of Facebook and series of revelations have happened and very early in the days of Facebook no one would have continued using it so the fact that it's bigger the fact that it already has a network effect means that it's really difficult to move away so in some sense you know like you might be sued for more in terms of an absolute monetary terms but maybe not in terms of percentage of revenue but but in other ways yeah I think on that note I think we've run out of time

actually it's not even on that note I think we could continue talking but I think we have to wrap it up but I want to say thank you so much for visiting the podcast thank you so much for having me thank you very much thanks and to our listeners thanks for listening thanks for listening you [Music]