Can we haz GitSafe plz?

That looks great ! I had never heard of them before. I also like that they use petnames. Will definetely give a try .

Indeed, this looks like a great model to inspire from, like Solid.

Edit : working :

1 Like

BTW I had forgotten about this:

@Jimmy_HUGUET are you there? Be nice to see this on alpha2!


I am still here, I haven’t touched the code of this project in a while but it was working last time I checked and the code is still available on the link provided if you want to try it


It will need updating first, because the network you used was pre-alpha2. I may try something similar in Nodejs, but not planning to get back into C++ myself. Currently looking for shortcuts :slight_smile:

Similar Project that could perhaps be ported over. - GitTorrent


I’ve now got scuttlebutt git (git-ssb) working and have pushed a repo! :slight_smile:

You can see it here:
via web:

scuttlebutt ID: %25oaVPNcXmxQ0jb0%2B5jLDMW7q9U%2B%2Fq5G8YmYqc49I4Z0g%3D.sha256

So @nice and I now both have decentralised git repos working via Scuttlebut!


keybase did launch an encrypted git some time ago - the challenges are probably exactly the same as with git on safe (because it needs to be purely client side encrypted and everything) - hmhmmm - but seems like it’s written in go


GitPub - a federated git based on ActivityPub (the SoLiD team are well into this, Dokieli for example):

More on ActivityPub:

W3c ActivityPub Spec: ActivityPub

According to Solid chat today ActivityPub has been getting a lot of adoption. This might make it interesting for SAFE projects like Decorum or for general compatibility between the Standard Web and SAFEnetwork, although I’m not sure such a Federated based approach maps well to SAFE. Having said that, yesterday I was thinking that the ssb-git (which is federated, ie git over secure scuttlebutt) could map really nicely to SAFEnetwork for a SAFE-Git, so these approaches are worth looking into, or a topic to discuss with Tim at some point. cc @Viv @krishna

Both @nice and I have been playing with ssb-git and Scuttlebutt apps with some success:


i kinda do dislike ssb. i think it has the same issues as blockchains in regard to scalability. It’s ok if you have your own pub and thus only see a slice of the “world” but if you try to download the whole “world” then you’re lost.

Come on SAFE’ers this Solid chaps are off…



SAFE git & github - A Plan

I have a plan for how, but not the time to do this for now (want to get virtual drive done first). So if anyone wants to get this started I can suggest how to build it and help things along thanks to noffle, one of the Scuttlebutt guys, see:

SAFE git remote

We can build a git remote-helper for git with Nodejs using the CLI Boilerplate I made. This will enable people to use SAFEnetwork as a git remote with push, pull and fetch etc.

It would use a similar method to git-ssb to publish changes to a feed which others can consume (kind of pub/sub I think).

SAFE gitweb

If the first part is similar enough to git-ssb it should be a simple matter to modify git-ssb-web to make a web front end similar to github.

Who’s in?

Anyone fancy a go at this? I don’t mind you taking it over, me helping out, me leading, or me doing it in my own, but can’get it done quickly by myself. In fact it will be verrrry slow :wink:

Interested devs, please follow up on the Dev forum topic (cross posted here).

If you are interested or just want to play with git-ssb and git-ssb-web see the following post for instructions:

Maybe a future CEP @dugcampbell?


Great idea @happybeing - sounds like an ideal candidate for a CEP to me :slight_smile:


I think Pijul is a better contender for decentralized networks than git.

  1. Git takes a whole snapshot of workspace for each commit
  2. then it tries to find matching objects at the storage level and stores just the diffs to save space
  3. thus creates one compressed file which changes each time it’s recreated (git gc or autogc), resulting in a completely new file containing all the repository data, which can’t be efficiently stored (deduplication) on a content-addressable-network (immutable data)
  1. Pijul stores a patch for each commit
  2. then stores these patches as files at the storage level
  3. thus one additional commit is just one additional file => old patch files don’t change thus they can be efficiently stored on a content-addressable-network

tldr: git compresses all data to one file at the storage level, resulting in non-deduplicatable data. pijul works with compressed data (patches) at all levels, thus all patches can be stored as self-contained units allowing deduplication.


Thanks, not heard of Pijul, might take a look.

I think SAFE itself has a very efficient mechanism: make a snapshot of the data maps, save to Immutable Data and keep a pointer to that in a list along with tags etc. Not thought through, but illustrates the idea.

With that as the backend I think you can write a ‘git bridge’, to use git as the front end. Possibly there are also similar ways to use other Version Control Systems as the front end, with a very efficient SAFE VCS backend.

All just ideas for now though! Busy elsewhere :slight_smile:

Thanks for this though, it triggered the above thought!

UPDATE: I looked into Pijul a bit and it is interesting, although still alpha and obviously not well known or adopted. One to watch. Here are two articles I found helpful:

I had a conversation with them on twitter too, see thread:


Pijul is also implemented in the Safe Network’s native language, Rust. I had not heard of this VCS before it looks very interesting and appears to be much better suited to the Safe Network way of doing things.

From “Merging, patches, and pijul”:

pijul’s effortless merging and reordering might really lead to new and productive workflows. Are you old enough to remember when git was new and most people were still on SVN (or even CVS)? Lots of people were (quite reasonably) skeptical. “Who cares about easy branching? It’s better to merge changes immediately anyway.” Or, “who cares about distributed repositories? We have a central server, so we may as well use it.” Those arguments sound silly now that we’re all used to DVCSes and the workflow improvements that they bring, but it took time and experimentation to develop those workflows, and the gains weren’t always obvious beforehand. Could the same progression happen with pijul?

Grow into a new modern Safe Network, and a new VCS, the projects could complement one another.


After reading some about Pijul, I am quite curious to try it out.
I manage a lot of Git merging from our software projects, and Pijul has some really nice characteristics that would have made things much easier. It seems like a more elegant solution.

1 Like

Isn’t SAFE cloned and backed up on multiple repositories, not just github? If not it should be. This move by Microsoft just proves the over dependence on centralization, even on an opensource brand like Github, breeds in weakness.

1 Like

At minimum, before we have a truely safe based repository system, I would like to be able to check the checksums from outside github when Maidsafe releases binaries and distribute these on Github. The checksums should be computed locally at Ayr, and could be published here on the forum, for instance. I have absolutely no trust in Microsoft, and would love to be able to make sure they don’t stuff nasty blobs in the files.

1 Like

you can sign git tags (releases) (and commits) with an pgp key, and also “plain” files (released binaries).

1 Like

zeronet and i2p I think have their own versions of github

1 Like