cjb / GitTorrent

A decentralization of GitHub using BitTorrent and Bitcoin
MIT License
4.75k stars 262 forks source link

Decouple GitTorrent from blockchain #82

Open voronoipotato opened 6 years ago

voronoipotato commented 6 years ago

If the title makes you mad take a moment to breathe before reading. My goal is to merely provide many avenues to success.

I think it would be useful to use federated infrastructure as well. This could work similarly to how peertube does where there are servers, you can host your own and they share data freely. This would allow us to piggyback gittorrent with the simpler activitypub model. You could keep going forward with your fully decentralized name solution with basically two repositories one just being the git * torrent architecture without the name tools, and another which uses gittorrent in conjunction with a name tool. This way we can get started much faster.

cjb commented 6 years ago

That's fine. GitTorrent activity stalled out -- I suspect Ethereum and IPFS would be a better backend than BitTorrent and Bitcoin -- but there's no issue with allowing both a Bitcoin naming scheme and, say, plain old DNS TXT records, or a federated gossip network or something, because git clone gittorrent:// takes an URL scheme that we can just change. (say, e.g. git clone gittorrent+dns://)

voronoipotato commented 6 years ago

yes part of what I think would be interesting is if the server could mediate the torrent aspect such that you could do

git clone http://voronoipotato.com/hostname/user/repo or git clone gittorrent://voronoipotato.com/hostname/user/repo

In the first case my server would use gittorrent to both seed and connect to clients. This would mean I can pull in git repos that aren't strictly on my server but might be on someone else's, but if users didn't feel comfortable installing gittorrent right away they wouldn't need to. These federated servers could act as a form of seeding backbone which would make it easy to self-host like gitlab does but also share issues etc with others using activity pub. The issue tracking communication think the primary power of github. The second way you'd still have access to that seed highway, but you could take better advantage of local peers, and would be the recommended path.

I think etherium and IPFS are really great, but the kind of social centralization that occurs around pure decentralization creates a vacuum of control around projects that will likely become untenable for more established projects. I'm nearly certain they'll come up with a way to manage that down the line but this project seemed like it could open up into something more flexible through piggybacking it on something like activitypub and independent hosting like gitlab.

I think this could be a viable alternative to github while mitigating the hosting cost of everyone hosting everyone's code but permitting a kind of window across servers like gnu social does and also of course removing the problem of "X's gitlab is down where else can I get the latest version".

As an aside my last name is also Ball, sorry for spamming your issue board lol.

schwab commented 6 years ago

With the current blue bar across the top of the github pages, it maybe time to officially un-stall this project. What's needed?

DavidGriffith commented 6 years ago

@schwab, In addition to that, I think it would be worthwhile looking into coming up with a means of putting issues, pull requests, wikis, and so on within a git repository itself. The import functionality of Github competitors (ie, Gitlab) is nice, but it would be even nicer to use Git itself to preserve those data.

fictitious commented 6 years ago

You guys might be interested in looking at git over ssb: https://github.com/noffle/git-ssb-intro

SoniEx2 commented 6 years ago

can I use gittorrent with raw hex strings?

can I use gittorrent from java?

can I use gittorrent as an alternative to dat?

can I use gittorrent without ever showing the end-user the hex strings/URIs/etc?

strypey commented 5 years ago

Here's another group working on a decentralized replacement for GH: https://github.com/git-federation/gitpub

See also ActivityPub.rocks for more info about the standard they are building this around, the same one used in 'fediverse' social media networks like GNU social, Mastodon, PeerTube, and PixelFed.

waldyrious commented 5 years ago

Here's another group working on a decentralized replacement for GH: git-federation/gitpub

On that note, I'd also point out https://github.com/git-series/git-series, which aims (aimed?) to implement a mechanism to track the review process (comments, replies, updates to the patches, etc.) within a git repository itself, and therefore preserved in the same distributed fashion as the code, rather than siloed on external platforms like GitHub. There was a Git Minutes episode with its creator, @joshtriplett, that explains the concept in detail.

joshtriplett commented 5 years ago

@waldyrious Still "aims", just slowly. :)

Thanks for the mention.

strypey commented 5 years ago

@waldyrious @joshtriplett there seem to be a few projects aiming to bring dev tools like tickets, code reviews, and docs, into the Git repo. Another one for code review is git-appraise (discussed here: https://news.ycombinator.com/item?id=10726113) and one for bug tracking is Bugs Everywhere: http://bugseverywhere.org/

voronoipotato commented 4 years ago

We could also use SSB for this. (secure scuttlebutt) Keeping the big files on torrent and the comments etc on ssb.