Open genacrys opened 6 years ago
https://git.scuttlebot.io/%25n92DiQh7ietE%2BR%2BX%2FI403LQoyf2DtR3WQfCkDKlheQU%3D.sha256 is i think what you're looking for????
I would love to see a federation of self-hosted GitLab instances. The is already an issue on GitLab: https://gitlab.com/gitlab-org/gitlab-ee/issues/4517
try build it based on gogs.io
Perhaps we can build a "network" of independently-hosted GitLab (or similar) instances and join those ? Or perhaps collectively contribute for expenses regarding the hosting of one or more community GitLab (or similar) instance(s).
The way Hyperboria handles new users joining (one needs to ask an existing member to enter the network) may be of interest.
I think all open source should be hosted by a non-profit company, like Mozilla-level. It's pity they don't step in.
@Serphentas I would contribute (with money) to something like gitlab federation.
@revelt I think it is better idea to make it decentralized in the way email or jabber is decentralized. I would rather have all my data on my server, if it didn't kill discoverability and community spirit (no one will register and login on my forgotten web).
@Bystroushaak logical.
Hi 👋 Is nice that you are looking at Gitlab, but descentralized github has existed for a long time ago. As @ghost said
Here is a good intro: https://github.com/noffle/git-ssb-intro
https://zeronet.io/ This project may help for this purpose. A FOSS which makes web apps decentralized.
@ferittuncer I wonder how this compares to Hyperboria, though in essence I think the real problem is finding a service that acts like GitHub. The actual way of hosting that service (if community-driven) is yet another issue.
@Serphentas Nice project, to my understanding Hyperboria is a transport layer solution, help to decentralize the media we transmit our data.
ZeroNet is an application layer solution. It uses WWW at the moment but not restricted to any transport layer afaik.
ZeroNet can help us to build a decentralized GitHub, where each user also hosts the platform. This will guarantee censorship resistance and high-availability.
To build such service, I think we can use git-ssb and we need to build a front-end. We adapt gogs.io front-end to this hypothetical solution as it's open-source.
https://github.com/upend/IF_MS_BUYS_GITHUB_IMMA_OUT/issues/25 We are talking about how to build a decentralized version, that is from the community, for the community.
@ferittuncer @Serphentas There's already a GitHub-like alternative on ZeroNet, called GitCenter (created by @imachug). It uses ZeroNet's merger site concept, which allows users to create their own sites for their repositories, and then the Git Center site aggregates all the merger sites a person has downloaded into one interface.
@krixano Thanks for heads up, gonna check it.
@ferittuncer in https://github.com/upend/IF_MS_BUYS_GITHUB_IMMA_OUT/issues/44#issuecomment-394717214 mentions ZeroNet, specifically https://github.com/imachug/gitcenter as mentionned in #72.
Federated git is definitely what we need. Split those servers and enable a user on any server to interact with everyone else!
Don't re-invent the wheel: https://github.com/noffle/git-ssb-intro
@AnaRobynn GIT-SSB is already on the comparison spreadsheet. Feel free to contribute there.
@millette @Bystroushaak See above, you can suggest other alternatives over there.
The scuttlebot
column should be removed.
@ralphtheninja How so ?
@Serphentas Because it's not related to git or github at all, git-ssb
is an application built on top of scuttlebot
.
Makes sense, removing it then.
Just got some news from @noffle
npm i -g hypergit git-remote-hypergit && \
git clone hypergit://6b3752a2c3b04ed25ae2b4d380f3ed4d3d46a9d6b42850a3522e2dd80c332387 \
lisp-code
git
over dat
:fireworks:
@ralphtheninja Could you please give more details about git over dat?
Hey guys. I love the work you've been doing. Not everyone loves mine. Please read Issue 114.
@ferittuncer Well, afaik (@noffle should really answer the details)
git-remote-hypergit
allows (when installed globally) doing git clone hypergit://...
, i.e. provides a handler for hypergit://
urlshypergit
is another command line tool, with its own commands, see https://github.com/noffle/hypergit/blob/master/bin/cli.js#L21-L86This is very alpha though and more a proof of concept than something really mature and super useful. But it has potential.
hypergit is trying to be a primitive to sync git repositories in a peer-to-peer manner. It's not dat, though it does use some of the same underlying technologies. One could build social elements like issues, PRs, and friend graphs on top of this.
I just pushed some new code and you can fetch the hypergit code itself over hypergit now:
npm install -g git-remote-hypergit hypergit
git clone hypergit://ccc0940b5b13937e5b32ed48b412803d2d70caa18c3ec7ba385c77c204d70c94 hypergit
@ralphtheninja @noffle Can't really find docs on hypergit. How does this work ?
@Serphentas Good question! I've been mostly coding and haven't taken time to write much about it yet. I'll give it a shot:
hypergit wants to be a special git remote, like https://... or ssh://..., except instead of pointing to a specific (centralized) server somewhere on the internet, it points to a peer-to-peer-friendly database on your own computer. When you 'push' to a hypergit remote, you're writing your changes to a local hyperdb, which mirrors how git would lay itself out on the filesystem.
hyperdb's special power is the ability to sync itself with other peers over the internet. Creating a hypergit repo (hypergit create
) adds a remote called swarm
to your .git/config
, and creates a new unique id (it's actually a public key) that identifies that new remote. Something like hypergit://ccc0940b5b13937e5b32ed48b412803d2d70caa18c3ec7ba385c77c204d70c94
. When someone runs git clone hypergit://...
or hypergit seed
, the program will connect to a distributed hash table and find other peers who are interested in that identifier. The ID is hashed before you look for it, so users couldn't discover the repo without knowing the original key. Connections are opened to those peers and you exchange hyperdb state so that you both end up with the same resulting state.
From here you could do a git fetch swarm
to pull down those latest changes. The cool thing is that since the remote lives on your local filesystem, you can do push and pull and fetch even while offline, and your changes will sync to the rest of the peers involved in this repo once you're online again. You can even peer with just other users on the same local network as you and collaborate in offline environments.
This approach differs from federation, where users pick from a set of servers to host their git repositories. With hypergit all of the data lives on peers directly, so everyone with a laptop is a first-class citizen, and doesn't have to choose between hosted services that could go down at some point. By using hypergit seed
you can, not unlike bittorrent, re-host git repos you like on servers and provide them greater availability.
But federation is still somewhat centralized. For example: matrix.org, running the federated matrix protocol, once got DDoSed and almost the whole matrix network went down.
One of the most convincing alternatives so far here is git-ssb
for me. It's great to have a pub-sub-model of communication. One already has an offline copy of the repo and issue tracker, signed by everyone involved and only that. One can follow users, orgs or repos by will, creating less spam on the feed and if the or repo goes down, one can download the sigchain from other peers and verify it easily
reminder this forum is shutting down in 5 hours 20 minutes.
@vassudanagunta Where is the forum being moved to? How can the conversation continue?
please see #114 as i requested about 24 hours ago. (not being snarky. pointing out there was ample warning)
Hello,
The GitHub Evacuation Project has moved to GitLab (not an endorsement or even a final home). Your enthusiasm and contribution is still needed. Please check out the new project home, and read the project wiki for info to get restarted.
Thank you!
vas
Hello all,
This is Javier Peletier, CTO of Epic Labs.
We are working on "ethergit" (temporary name), which is a fully decentralized GitHub replacement that uses Swarm for storage and ethereum smart contracts for consensus.
You install an ethergit node for your home or company that connects to other nodes via Swarm and cache the repositories interesting to you. The node has an SSH interface so you can connect Git to it and a web interface so you can visualize the repository, engage in discussions or PR comment/workflows. All the interaction with your node is shared with other nodes interested in that repository.
Interaction with the smart contract is reduced to creating a repository or registering into a repository as a user for participating. Reading the repository, e.g., cloning, etc, does not require interacting with the contract. You can also register your SSH key globally and access any node.
Alternatively, the user can install a git-remote plugin that allows them to interact directly against the network, without having to run a node. This works with a syntax like this: git clone ethergit://0x9B5Df74C9e1dE9BC268FCF4809aD61b68195Da06
The smart contract code defines how a repository's governance works. Can anyone commit? Am I the approver of all PRs? Who owns what branch?
We are using golang for the back-end node code and TypeScript / Angular 5 for the front-end. The back-end is segregated in a SSH+HTTP daemon + go library that can be reused by other apps. We also provide a JS/TypeScript library that allows nodejs or web applications to access git objects directly off Swarm, without needing a node.
We started work at the beginning of the year, we expect to make a release and open it to contributions in the coming months. Please stay tuned visiting www.ethergit.io and joining our Gitter: https://gitter.im/ethergit-io/Lobby There is also a mailing list in the website you can subscribe to as well.
Please let me know of any comments or questions!
https://github.com/MichaelMure/git-bug : decentralized issue
gitchain
... maybe?