10 ms·
Radicle: A decentralized alternative to GitHub built on IPFS
- bibyte 8y agoThis is awesome! Many people (including me) complain that Github is too centralized and closed source. AFAIK this is the first platform that integrates git and IPFS. It looks like it is built around the Git CLI. So another layer of abstraction. One thing that stuck out to me is this line: > Note that stack might take as much as 4GB of memory to build Radicle. Is this normal for Haskell projects ?
- jkarni 8y ago4GB is a bit of an overestimate (it's probably more like 2.5GB) but yeah, Haskell project often consume a lot of memory when building. That said, there are brew and deb packages!
- jopsen 8y agoWhat is the performance like? I like the ideals in IPFS, but I would also be very surprised if it could compete with the performance I get from S3. Let's be honest, our centralized solutions are mostly good enough :)
- Proven 8y agoP2P - no obvious benefit, as neither Gitlab nor Github censor Programmable - like all others CLI first - collaborating on anything graphical is less pleasant Great to hear that it exists, but what is the point?
- deevolution 8y agoI really dislike the white paper format. If you print it out on paper and read it, it's easy. It's a terrible reading experience on mobile. Why does it need to be a pdf? At least publish 2 versions, an html version and a pdf version.
- juliendonck 8y agoThank you for your feedback. That’s a good idea. I’ll open an issue for it. :)
- slim 8y agoRadicale is also the name of a great caldav/carddav server
- fulafel 8y agoThere's a one letter difference in the name- > Radicle > 1 : the lower part of the axis of a plant embryo or seedling:
- thecupisblue 8y agoLove it. Next step.
- jacobush 8y agoThese flowers are like something out Alien. Scares the heck outa me.
- kkarakk 8y agoall of the UI choices on the page are decentralized
- StreamBright 8y agoHow do I give access to contributors to my Rad projects?
- geoah 8y agoYou should only have to give them the ipfs hash that you get when initializing your repo. There is no notion of access restriction for now at least as this is something missing from ipfs itself, check out radicle’s faq.
- techntoke 8y agoShould be solvable using techniques from https://notabug.io/ https://notabug.io/
- StreamBright 8y agoHow can anybody compare this to Github than? I want to maintain control over who can do what in my repo. If this solution does not support it than it is not an alternative of Github at all.
- geoah 8y agoThe owner still is responsible for accepting patches, etc. Everyone (that has the hash) can see the repo, see and create patches and issues, but only the owner can accept/merge patches. Not sure about issues.
- jkarni 8y agoIt does support it. In fact, it's much finer grained than Github. It's relatively easy to change things so e.g. patches to a certain file can only be submitted by people in a certain group, while other files anyone can change.
- jkarni 8y ago> There is no notion of access restriction for now at least as this is something missing from ipfs itself, check out radicle’s faq. This isn't quite true. We already have an authentication and authorization mechanism on top of ipfs. So for instance, only admins/maintainers (of which there might be multiple ones) can accept patches. (Being an admin/maintainer is different than being a machine owner - currently there can be only one owner. Currently owner has to be online for any new inputs to be processed, though reading should work if your data is replicated, and we've already built some tooling around making that easy.)
- zaarn 8y agoThere doesn't seem to be an obvious way to remove content (like issues, merge requests or comments) easily from a project or ban contributors from participating, ie, ripe for abuse by 4chan or whoever wants to set the internet on fire today.
- johnhenry 8y agoThere was a project, mango [0], that was very similar to this. In addition to using IPFS for storage, it used ethereum for things like permissions control. Unfortunately it hasn't been updated in a while, but perhaps this will bring some attention to it? [0] - https://github.com/axic/mango https://github.com/axic/mango
- nukeop 8y agoYou know we're living in a dystopian future where the first complaint against an open source project is that it provides too few tools for censorship.
- zaarn 8y agoThere is a line between censorship and a healthy culture in a project, I don't think asking for tools to moderate what people write into issues and being able to remove illegal content (like copyrighted movies or CP), is not censorship, especially because I'm not a government body nor do I have even remotely that power. Giving me these tools empowers me to run the project how I like, not how someone who read the backcover of 1984 likes it (ie with no moderation tools at all).
- deleted 8y ago[deleted]
- StreamBright 8y agoAccess control is not censorship.
- mikekchar 8y agoIf "censorship" is stopping people from spreading certain information, what do we call forcing people to spread certain information that they don't want to? I wish there was a word for that. Generally speaking, censorship is about suppressing something with the intent that nobody can get access to it. Deciding not to forward information is not actually censorship because generally the original speaker can choose other avenues in which to spread their information. I think it's interesting to imagine a situation where someone puts a political poster on their house. They live near a busy street and so the political poster gets a lot of views. Another person thinks this is unfair because they don't own a house (let alone a house near a busy street). They ask the house owner to display their political poster. The owner decides not to because they don't like the poster. Is that censorship? Now imagine that our enterprising poor person decides to canvas the neighbourhood to see if someone else will post their poster. The person with the poster on their house thinks this will impede the success of the ideas on their poster and so canvases the neighbourhood asking others not to accept the poor person's poster. Is this censorship? If so, should we make a rule that the person with the house is not allowed to tell others not to post other posters? Is that censorship? Now imagine that the government made a rule. Only those who own their own house may post posters. You may not ask others to post posters for you because it causes problems in the neighbourhoods. Is that censorship? They aren't trying to suppress any particular message. However, the end result is that poor people have no effective way of posting posters. I understand that there is frustration if people don't cooperate to help you spread the message you want to spread. However, I don't think that in itself is censorship. It is especially frustrating when a group of people collude to deny you a cheap/popular platform to spread your message. I don't think even that is censorship, even though it's kind of a crap thing to do. Even if there are situations that arise that make it impossible for you to spread your message, that is not necessarily censorship, even though it is really, really frustrating. It's only when society actively tries to suppress any avenue for you getting your message out is it called "censorship". TL;DR: Nobody owes you a free lunch, no matter how hungry you may be.
- deleted 8y ago[deleted]
- geoah 8y agoTheir whitepaper is an interesting read. Most projects that try to build dynamic data on top of merkle trees / dags seem to be using Conflict Resolution Data Types (CRDTs) (peer-crdt, orbitdb, gun, repikativ, dat), instead they have gone for a Replicated State Machines (RSM) with a lisp/scheme like DSL. This seems like an interesting alternative provided that there is a way to resolve conflicts when multiple peers add to the same graph. Conflict resolution doesn’t seem to be an issue for radicle as the owner of the repo (if I understand this correctly) is the one that needs to accepts patches and will have to republish on IPNS, thus simply appending new nodes to the DAG after accepting the patch instead of using the ones the contributor created. (I might really be off on this but I’d love to get how conflict resolution works if someone understands this better). Owh and I love the ability to use the same language to query the RSM as well.
- jameshh 8y ago> Conflict resolution doesn’t seem to be an issue for radicle as the owner of the repo (if I understand this correctly) is the one that needs to accepts patches and will have to republish on IPNS This isn't quite what happens. Anyone who is authorised to do so (according to the semantics of the radicle code of the machine) can accept patches. They do this by forming a valid input (a radicle expression), with the correct signatures etc. This input is then sent to the owner via pubsub, so you are right that it is then the owner which republished on IPNS. The owner doesn't have to do anything manually though, this is all done automatically by the daemon. The assumption is that the owner will republish anything that is correct according to the machine's semantics, but it is true that the owner can censor otherwise valid inputs.
- xf86alsa 8y agoAlso worth mentioning GitCenter (here's a public proxy link https://zn.amorgan.xyz/1GitLiXB6t5r8vuU2zC6a8GYj9ME6HMQ4t/repo/?1P4w4Rvh4vS9r6G5xTiSh8qEW87EKZtnJB https://zn.amorgan.xyz/1GitLiXB6t5r8vuU2zC6a8GYj9ME6HMQ4t/re...) which runs on top of ZeroNet as is already in use by a number of people. Notably ZeroNet's source code is also mirrored here. It has issues/PRs and the like, and content can be deleted quite easily. Supports SVN too apparently.
- martindbp 8y agoVery interesting. Does radicle use something like the git-remote-ipfs plugin to sync to an ipns address? Also, are objects duplicated over the filesystem, git and ipfs or have you found some way around that? I'm working a bit on a DVCS built on IPFS as a side project, but it's nowhere near usable (search for IPVC on github). The natural step after replicating basic git/hg features would be something like what radicle is doing with issues, pull requests etc.
- Legogris 8y agoCool! You might also want to checkout git over Secure Scuttlebutt: https://scuttlebot.io/apis/community/git-ssb.html https://scuttlebot.io/apis/community/git-ssb.html
- cloudhead 8y agoThe design of SSB has been an inspiration for Radicle :) and we are aware of git-ssb.
- h1d 8y agoIt would be good if there was a mention of what IPFS is either in the title or their page. I assume it's this distributed file system called InterPlanetary File System. https://github.com/ipfs/ipfs https://github.com/ipfs/ipfs
- willio58 8y agoYes that’s it.
- navd 8y agoThe website is a work of art, really digging the details!
- uncletaco 8y agoI agree. Using the garden for tutorials is really cute and fun as well.
- coldacid 8y agoIs anyone else as amused as I that their "Source" link leads to GitHub?
- ViViDboarder 8y agoSame with Gogs and Gitea. I think GitLab was as well at one point. It’s popular, so it makes sense to gain exposure. At least initially.
- jkarni 8y agoWe're definitely still in alpha - during the time we've been on HN, for example, we've discovered that the large amount of traffic projects were getting meant our timeouts were too short. Had we exclusively been using our own patch system for changes, it might have been hard to submit a fix! We turned on github issues again since if someone had a hard time installing or running, they wouldn't have been able to submit bug reports. And we still have breaking changes relatively often. I'll take this opportunity to say again - this is alpha software, and not ready for production use!
- coldacid 8y agoI get that, I just find it funny. GitHub is certainly a good starting place.
- MagicPropmaker 8y agoIf you want a good alternative to GitHub (though not decentralized other than the distributed properties inherent to git), use Amazon CodeCommit. No github politics/nonsense to deal with, just reliable hosting for git repositories accessible anywhere with a user control system via IAM that is very controllable.
- miguelmota 8y ago'Decentralized Github' is an oxymoron because the 'hub' means a centralized place where people come to collaborate and git is already decentralized.
- cloudhead 8y agoIf you re-read the title, it's positioned as an /alternative/ to Github with a non-centralized collaboration model.
- fooker 8y agoSo..git?
- jatinshah 8y agoJust a noob question here. IPFS doesn't guarantee that any data stored in it will be available for retrieval in future (unless lots of nodes want to cache it). Why will anyone want to use IPFS for data storage without an availability and latency guarantee?
- iad 8y agoThe low level answer is that you can pin content to the cache so it won't be evicted: https://docs.ipfs.io/guides/concepts/pinning/ https://docs.ipfs.io/guides/concepts/pinning/ However, it seems like something that would need clever UI integration to really solve the problem. Any user oriented actions like github starring, reddit upvoting/saving, browser bookmarking, etc. might need to also do a pin?