[HN Gopher] Radicle-Link: Extending Git with Peer-to-Peer Networ... ___________________________________________________________________ Radicle-Link: Extending Git with Peer-to-Peer Network Discovery Author : lftherios Score : 119 points Date : 2020-09-05 10:08 UTC (12 hours ago) (HTM) web link (radicle.xyz) (TXT) w3m dump (radicle.xyz) | bergstromm466 wrote: | Great short into by a Radicle contributor: | https://twitter.com/abbey_titcomb/status/1237053756983959552... | hyperion2010 wrote: | Any approach to sharing and collaborating around a git repository | that requires some convention inside that repository seems | fundamentally broken to me. I understand why people want to do it | that way -- self describing artifacts are quite handy. Having | something like fossil that can live inside a git repo itself is a | big plus, for some workflows. I would be shocked if the linux | kernel tree ever has a project.json file added to it. All the | identifiers you need are already there in the commit hashes, why | create another layer of complexity inside the repo itself? | justincormack wrote: | It has signing information in it, which does seem necessary to | authenticate commits. | nextaccountic wrote: | but git itself has signed commits and tags. | justincormack wrote: | Yes, but it does not tell you which signatures are valid in | this repo, this is something that is external, eg GitHub | lets you manage a list. You need this information to | validate the signed commits. | LockAndLol wrote: | Really like the idea of decentralizing projects and their social | artifacts. Getting rid of github for project discovery is a great | goal. | | Additionally running all of this on top of I2P would counter any | embargoes that centralized forges like Github have to abide by. | Projects by Iranians wouldn't suddenly disappear from radicle and | neither would things like PopcornTime. | | I'll be checking this out. I hope they have an executable with a | good CLI. The GUI or embedded webserver for the social part of | radicle can come later (unless they already have it) | radarsat1 wrote: | > github for project discovery | | Honestly I don't think I've ever "discovered" a project simply | by searching/browsing github itself. Usually it is through | places like reddit and HN, and blog posts when searching for | how to do something. I've never gone to github and just | searched for some random project name... | | On the other hand I also don't use github "stars", which I see | more and more people talk about, so maybe some people use | github differently than I do. | mathnmusic wrote: | To improve the discovery of better alternatives to popular | products and services, some of us are building a browser | extension. It uses an in-page pop-up based on URL patterns to | make community-curated suggestions: | https://github.com/nileshtrivedi/better | | Another great source for discovering FOSS projects is | https://opensource.builders | asicsp wrote: | I sometimes visit https://github.com/ and the three "Explore | repositories" in the sidebar seems tailored based on my | activity. I've clicked a few, bookmarked some and even | submitted PRs. | someperson wrote: | I never noticed this. Very cool, and very accurate | viraptor wrote: | It's interesting. I feel like for each repository I | understand why the recommendation is made, but the repos | are completely disconnected from what's useful to me. It's | a bit like "you bought milk, would you like a milking | machine cleaner as well?" | searchableguy wrote: | Follow interesting people. They star repos that pop up in | your feed. I have found that to be a good way to find | specific projects. A rust contributor is going to star other | rust projects. They will go beyond the trending repos and | that's how you find something interesting. I maintain a | separate GitHub account just for curating a rss feed. | ex_amazon_sde wrote: | github "stars" are a very poor measure of popularity and in | no way a measure of quality. | anthonyskipper wrote: | I have to say that reading the Radicle designers observations | about git on IPFS I think they solved the wrong problem. I would | love to be able to save and work with git repos on ipfs. | | Most of the other things radicle aims to provide seem like they | are better centralized. There is a reason we all use | gitlab/github for collab services. It is that centralization is | better for that kind of thing. | mathnmusic wrote: | I was wondering the same. If the Microsoft monopoly is the | problem, why not just use non-profit Git hosting sites like | codeberg.org? They run a Gitea instance and are being adopted | by more and more FOSS projects. | dboreham wrote: | Because if they become popular they'll be picked up by The | Empire too. E.g. .org TLD debacle. | orthecreedence wrote: | > There is a reason we all use gitlab/github for collab | services. It is that centralization is better for that kind of | thing. | | No, it is not because centralization is better. It is because | centralization is _easier_. | | I've many, many times wished for a way to collaborate on a git- | based project without having to centralize the collaboration on | a platform that I ultimately fear will censor the project. | radicle-link is _exactly_ what I 'm looking for, and it's | bizarre to me that someone would look at this project and say | "hmm, it should just be centralized." Why should it be? | SXX wrote: | Might be I didn't get your point; sorry then. | | But centralization is good until someone gonna try to censor | and deplatform your project or it's contributors. And this can | happen for all kind of reasons starting with non-exiting | copyright infringement (like with popcorn-time), bypassing some | DRM or creating tools that can be used for malware development | or even breaking ToS on some API. | | Today people think it's good idea to deplatform people for | their political views or ban them based on region where they | living, but tomorrow that's can happen with software projects | too. | Ericson2314 wrote: | See [old-roadmap], on the challenges they had. But I agree that | they should be overcome. | | In particular, the essence of the packfile format and protocol | --- storing and exchanging patches from one content-addressed | atom to another --- would be good for IPFS as a whole, so I | think the issue is not some incompatible priorities, but rather | just human/org coordination difficulties. (C.F. [eth2-report] | for about Ethereum 2 working with libp2p.) | | It's always harder to reuse code developed by different teams | in the short term, but I firmly believe it's worth it, making | both sides better --- better than they would be had they gone | their separate ways --- in the long term. | | The immediate challenge with Git is that git objects (blobs, | trees, and commits) can be arbitrary large, which is bad in | general, but especially bad for p2p networks where you don't to | waste arbitrary large bandwidth and storage with some untrusted | peer before verifying whether the data they've sent you is what | you wanted. But I think I and a friend found a solution to this | [git-chunk]. With that, it's at least possible to negotiate who | has what git object without an awkward trustful identifier | translations. That I think is good enough to get the ball | rolling, after which the improvements to the protocol taking | inspiration from the packfile format/protocol can be pursued. | | [old-roadmap]: https://github.com/radicle- | dev/radicle/issues/689 | | [eth2-report]: https://discuss.libp2p.io/t/report-a-study-of- | libp2p-and-eth... | | [git-chunk]: https://discuss.ipfs.io/t/git-on-ipfs-links-and- | references/7... | outsomnia wrote: | > better centralized | | What is "better centralized" and what advantages do you think | centralizing it brings? Git itself is literally a reaction | against having centralization. | viraptor wrote: | Ssb itself does initial sync which requires a few GB of download | to use (and will keep growing AFAIU). Does radicle-link have the | same issue? Or is it relying on gossip and transient data? | jhardy54 wrote: | That's not true. The SSB sync downloads whatever you request. | This is like saying that HTTP downloads are all a few MB. :/ | viraptor wrote: | https://scuttlebutt.nz/get-started/ | | > The first time you join the network there will be a lot to | download and process. For real, this "inital syncing" process | can take up to an hour and use a couple of gigabytes. | | Are you saying the ssb project's website is wrong here? (I | don't use ssb, so I'm going by what's documented only) | grey_earthling wrote: | The docs aren't wrong; they just make a few assumptions, | which are mostly true for existing implementations: | | - Your SSB client downloads feeds you follow, plus feeds | they follow, and possibly feeds _they_ follow too | | - When downloading lots of new feeds at once (for example, | the first time you sync) your client makes no attempt to | prioritise which feeds it downloads first | | - Your client downloads all blobs (attachments) greedily | | - Your client indexes downloaded messages (for example, to | find the recent messages from all feeds); its | implementation of indexing is slow and heavy; until | indexing is complete, the app is unresponsive | | None of these assumptions is _necessarily_ true of an SSB | client, but they 're generally true of popular existing | clients. | joshuakelly wrote: | It's not wrong, it's just generally but not exhaustively | true. | | SSB doesn't have a root node, so if you think of yourself | like an island the data transfer required from your first | "bridge" is going to depend on what you are bridging _to_. | | In practical terms, if you join one of the SSB pubs | published in their documentation, you'll sync whatever is | on that pub. | grey_earthling wrote: | With SSB (context: https://ssb.nz), most of those few GB are | blobs -- arbitrary files, like email attachments. They aren't | needed to confirm that the feed is complete, and clients can | choose whether to download them. | | SSB downloads the whole feed so it can guarantee that a peer | hasn't maliciously withheld certain previous messages from the | feed. | | I guess ( _waves hand vaguely_ ) that constraint probably isn't | relevant for version control, because subsequent commits would | fail to apply...? Not sure. But if you're only interested in | recent history, you could probably do something like a shallow | clone. | jhardy54 wrote: | +1, SSB is basically Git with the constraint that each commit | only has one child (no branches) and instead of a tree you | can publish arbitrary JSON. Shallow clones are completely | possible, it's just that the reference implementation demands | the full chain for verification. | Valodim wrote: | They have an eth smart contacts repo "radicle-contracts" on their | org. Anyone know what that bit's about? | captn3m0 wrote: | Surprised that it doesn't mention ForgeFed (earlier GitPub). | https://forgefed.peers.community/ | grey_earthling wrote: | > Proposals such as ForgeFed and [federated | GitLab](https://gitlab.com/gitlab-org/gitlab/issues/6468) are a | step in the right direction, but implementations are | underdeveloped or lacking. In addition, federation is dependent | on domain names which can and _are_ regularly seized by | governments. | | -- https://radicle.xyz/towards-decentralized-code- | collaboration... | bergstromm466 wrote: | > federation is dependent on domain names which can and are | regularly seized by governments | | This is exactly what Arthur and Eric from the MetaCurrency | Project aimed to confront. Protocol Cooperativism (not | Platform Cooperativism) means direct, fully transparent, | distributed, and mutually-sovereign protocol negotiation in | all areas of our new digital world/life [1], making invisible | the dogmatic legacy 'wealth acknowledgement systems' now in | place [2]. Even Banking 'apps' and things like land-registry | [3] and more can be re-invented (I'd argue that banks are one | of the earliest forms of software). | | [1] https://medium.com/holochain/holochain-reinventing- | applicati... | | [2] http://eric.harris-braun.com/blog/2007/11/05/id-55: | | _" When I was growing up in Ecuador, I remember in the | market place there would always be a couple men sitting by | tiny tables with pen and paper and a line of people waiting | for them to write letters, for which they would pay a small | fee. This is a common sight wherever literacy isn't | universal. This situation is almost exactly the same we are | in today with respect to money. We, and by we I mean our | communities (not ourselves as individuals) are monetarily | illiterate, and therefore we need others to make our wealth | acknowledgment statements on our behalf (and we pay a pretty | penny for it) when in fact, we could simply learn to write. | | Learning to write in the monetary context, is simply issuing | a currency. Or, more precisely, creating the symbols and | rules that a community will use to make wealth acknowledgment | statements. But the problem is that we don't have an | alphabet, a grammar that we can follow with which to make | such statements. Our monetary system and the financial world | behind it is essentially that 40,000 character dictionary and | the scribes who can interpret it. It does work. It creates a | system in which we can make wealth acknowledgment statements | at a global scale. But it does so at a direct cost like | paying the scribe in the marketplace, and also a systemic | cost, that of allowing an elite who control that system to | grow and take advantage of those who do not."_ | | [3] https://medium.com/@AlastairParvin/a-new-land- | contract-684c3... | interrupt_ wrote: | _In fact, Git was only created when Linus' free Bitkeeper license | was revoked after a Linux kernel contributor tried to reverse | engineer its networking protocols_ | | Bit-who? ___________________________________________________________________ (page generated 2020-09-05 23:00 UTC)