[HN Gopher] A non-federated decentralized social protocol based ... ___________________________________________________________________ A non-federated decentralized social protocol based on Git Author : petar Score : 63 points Date : 2023-03-28 15:17 UTC (7 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | petar wrote: | The underlying software architecture and the motivation behind it | are outlined in the whitepaper of the (more complex) gov4git | project: | https://github.com/gov4git/doc/blob/main/whitepaper/whitepap... | NoraCodes wrote: | Unless I misunderstand, this _is_ federated - each instance | stores data related to its user, and fetches from other instances | the data it 's interested in (from other users the user is | following.) | | It also doesn't do much to address the reasons users in federated | systems tend to congregate around large(r) servers, like | discoverability and reliability. | | It's a neat PoC but I think the communication needs some work. | jayd16 wrote: | If its based on git then more than likely, copies can be made | and shared separate from the user instance. Users own their | signature so changes cannot be forged but valid data can be | proxied and cached. User data is fully portable from one vendor | to the next. | | Would you call git federated or decentralized? | NoraCodes wrote: | So far as I understand, Git is both federated and | decentralized - but I could easily be misunderstanding the | definition of "federated" in this context. | mhluongo wrote: | When the federation is per-user, that's typically called "peer- | to-peer" rather than federated...? | teawrecks wrote: | Also, git doesn't work p2p, it uses centralized servers. If i | understand correctly, the only real difference between | Twitter and this is that you have your data downloaded, so | switching to a new platform is a matter of adding a new | remote and pushing it there. | jayd16 wrote: | You can certainly work with git in a p2p fashion. | gtop3 wrote: | My understanding of this implementation is you can use | arbitrary git urls to follow. That could point to any | process serving data. P2P is 100% possible. | | It would be smart to use a personal domain for the git url | you give your followers, so you can update the hosting | location without causing any disruption. | adastra22 wrote: | Git was designed from the beginning to be used p2p. It's | how the Linux kernel development is done. | astrobe_ wrote: | I'm pretty sure _git-daemon_ does work p2p, but maybe that | 's a different p2p you have in mind. | isoos wrote: | > Every user stores their application state in a git repo they | own and control. No other infrastructure is necessary! | | As a long-time user (and writer) of static site generators, I | welcome these ideas, as I think these would allow us to organize | static sites into some kind of decentralized social networks. | Think of this as a bulkier version of RSS, because - for most | practical cases - it is relative cheap to just fetch everything | from a source and present it in a consistent way. | | Even if people were using centralized git repositories, a | separate naming service could allow easy (and cheap/free) | redirects, so data migration wouldn't be an issue. | | Can this be done with mastadon? Of course. But it requires a | database server and other moving parts that need occasional | maintenance. Treating the social network as a network of static | sites makes operations (and federation) so much easier. | | Would this be this specific project that wins us over? Maybe not, | we shall see. But I think the concept could evolve into something | useful. | ClawsOnPaws wrote: | I'm sorry but I believe I'm missing something here. How does this | solve any of the problems that people commonly have with | decentralized, federated social networks? | | * You're still either hosting your own, or at the whim of | whomever hosts your repository. Mastodon.social or GitHub. | | * Hosting your own Git is not particularly easier than hosting | your own GoTo Social or Akkoma. | | * What if you end up with either a big following, or a big | follower list? Aren't you going to be rate limited by GitHub? | | * Is signing up for GitHub easier than signing up for | mastodon.social, especially if Mastodon et al already have good | mobile clients? | | * What about moderation? | | * What about media? | | And I mean... Isn't Git federated by nature? Multiple machines | store multiple copies of the data. That's defederation isn't it? | | But OK, let's put the federated social networks we do have aside | for a moment. | | The site says: Every user stores their application state in a git | repo they own and control. | | But you don't do that if you're on GitHub, right? Not really, | anyway. What is the benefit from doing this over git? What if I | want to delete something? What is the overhead of the git | protocol? | | If it's just a toy, then that's totally cool with me. But it says | that Microsoft Research is involved. I'm a bit confused. What is | this? | jayd16 wrote: | >But you don't do that if you're on GitHub, right? | | How do you push to github without a repo you own and control? | Are people pushing patches through the web interface or | something? | creshal wrote: | Git makes it easy to make copies, but its nature of having one | designated "origin" remote per repository that serves as | upstream source of truth (on platforms like github also across | forks) makes it not really federated/decentralized the way | Mastodon et al. are. | | And I don't reaaally see how this tool solves that problem. Or | any of the other problems you mentioned. | | But that said, Mastodon/ActivityPub don't really feel like | mature solutions yet. It's incredibly opaque how instances | interact, and self-hosting is an exercise in frustration as you | try to figure out why A sees your reactions but B does not and | you can get notifications for C's reactions but not A's, but | B's replies and not... I gave up after a while. It's more | opaque than even email self-hosting, at least exim and postfix | have fairly verbose error logging. | ClawsOnPaws wrote: | > Git makes it easy to make copies, but its nature of having | one designated "origin" remote per repository that serves as | upstream source of truth (on platforms like github also | across forks) makes it not really federated/decentralized the | way Mastodon et al. are. | | That makes sense. Each Activitypub server might also be | considered the source of truth for any given post, but since | you're usually going to fetch them from your own instance | that your account lives on you're not getting it directly | from there unless you specifically do it yourself. | | > But that said, Mastodon/ActivityPub don't really feel like | mature solutions yet. | | Yeah, that makes sense. I think this is partly because | Activitypub is both quite opinionated, but also gives you | quite some wiggle room with how you implement different | functionality, like defederation. And of course the most well | known software in that space is effectively what all others | have to follow. | | Git is probably a more stable protocol, but then again | ActivityPub is served over HTTP, which is also pretty stable. | I believe the same issues would befall this as well, since | Git, to me, doesn't seem to be the biggest factor in this, | and more the append-only nature of it. I've never been a big | fan of append-only social networks. | | I've been running a Mastodon server for a couple of years now | and have had relatively few federation issues, luckily. But I | do agree that trudging through the logs and figuring out | what's going on is not exactly ideal, not to mention | debugging other issues like if something went wrong during | the key exchange with your server and a remote one, or if you | accidentally lose your key and suddenly can't talk to any | other instance since they won't trust your old domain with | the new key. But you might run into similar issues with this, | right? | | Edit: If it came across as downplaying the project or it's | author then that wasn't my intention at all. These were just | some thoughts that immediately popped into my head when I saw | this. They may well have thought through answers to my not | thought through questions, and I certainly don't mean to | pretend like I know better. | piedar wrote: | > one designated "origin" remote | | Git is not limited to a single remote. The default remote is | called "origin" but there's nothing particularly special | about it. | creshal wrote: | But git gives you nothing to handle more complicated | topologies, all remotes you interact with have to result in | a linear history with everything on all other remotes... | unless you feel like doing a manual merge every time you | update your social media feed. Making that work | automagically needs another layer on top of git, none of | which seems documented here. | numtel wrote: | If you want decentralized without hosting your own servers, you | can store data on a public blockchain. Each interaction pays a | small amount of gas that grants them hosting indefinitely. | Protocols are a progression from platforms since they can be | ownerless. Blockchains enable protocols by acting as a general | purpose database. | | This is what I'm doing with https://nonphysical.systems | | It's still under construction so it's on Polygon mumbai testnet | therefore gas is free. The source is linked in the first | message board. | blooalien wrote: | > "Hosting your own Git is not particularly easier than hosting | your own GoTo Social or Akkoma." | | Easiest way I've found (so far) to "host your own git" is | https://github.com/charmbracelet/soft-serve | [deleted] | tedunangst wrote: | It's a more difficult to use version of rss. | cryptonector wrote: | Are we reinventing Usenet? | Dalewyn wrote: | Any time I hear the word "federated" in tech contexts I am led | to presume someone is attempting to reinvent the wheel, and | badly at that. | msla wrote: | That's what it seems like: Usenet built on Git instead of NNTP, | which was, itself, a reinvention of Usenet built on UUCP. | ape4 wrote: | I still miss it | EGreg wrote: | I know Petar Maymoukov and met w him when we started designing | Intercloud. | | I wanted to know the design decisions behind how Kademlia worked | in detail. | | Glad to see this... wondering why we need it if we have | Dat/Hypercore and beaker browser, which already uses Secure | Kademlia DHT for swarming and follows up with SLEEP protocol | instead of Git. It is encrypted and secure, to boot. | | But those saying this is federated are wrong. It is peer to peer, | just like Git is. Email is federated (the domain part is even a | centrally controlled database). Having said that, git can be | hosted even on your own computer! | gtop3 wrote: | I am always highly skeptical of these applications that use git | to store non-code data. Often many of the key features of git | aren't applicable to other problem spaces and this makes | everything less efficient. | | There is a big exception here. You sign commits, so each update | comes with some proof of the identity of the author. I like how | simple this is, and generally prefer it over the way Mastodon and | other federated services handle identity. | csense wrote: | The author is well-known for creating Kademlia [1], a distributed | hash table used to resolve BitTorrent magnet links. | | [1] https://en.wikipedia.org/wiki/Kademlia | jmount wrote: | Seems like it all gets wiped by one git force-push. | jdthedisciple wrote: | How do notifications work with this? | uptown wrote: | I'll let you know. | jdthedisciple wrote: | But will I get notified? | uptown wrote: | See! It's already working! ___________________________________________________________________ (page generated 2023-03-28 23:00 UTC)