News for hackers. Stuff that matters.
Re:Radicle-Link: Extending Git with Peer-to-Peer Network Dis... by viraptor on Saturday September 05, 2020 @09:19AM (#24383308)
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?
Re:Radicle-Link: Extending Git with Peer-to-Peer Network Dis... by grey_earthling on Saturday September 05, 2020 @09:40AM (#24383437)
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.

Re:Radicle-Link: Extending Git with Peer-to-Peer Network Dis... by MayeulC on Sunday September 06, 2020 @05:29AM (#24390126)
What is the rationale for making them part of the chain, instead of just making their hashes part of that chain, like with git LFS?

This way, you would know about all the messages and blobs, but only download those you want, and match their content against the hash. Of course, this comes with less replication, therefore less availability.

Re:Radicle-Link: Extending Git with Peer-to-Peer Network Dis... by jhardy54 on Saturday September 05, 2020 @10:47AM (#24383929)
+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.
Re:Radicle-Link: Extending Git with Peer-to-Peer Network Dis... by jhardy54 on Saturday September 05, 2020 @09:32AM (#24383394)
That's not true. The SSB sync downloads whatever you request. This is like saying that HTTP downloads are all a few MB. :/
Re:Radicle-Link: Extending Git with Peer-to-Peer Network Dis... by viraptor on Saturday September 05, 2020 @09:36AM (#24383412)
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)

Re:Radicle-Link: Extending Git with Peer-to-Peer Network Dis... by grey_earthling on Saturday September 05, 2020 @09:49AM (#24383499)
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.

Re:Radicle-Link: Extending Git with Peer-to-Peer Network Dis... by joshuakelly on Saturday September 05, 2020 @09:50AM (#24383502)
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.