Read this. Already done
thank you, I had missed this one.
Lets be realistic here guys, its not the end of the world that MS will own Github in the near future. You will probably see some annoying ads or Clippy asking you about your git push request
But I do like the idea this thread has sparked as I had not thought of that. A decentralized Github implementation on SAFE as well as a decentralized SVN implementation on SAFE would be very valuable. Personally I would like to see MaidSafe attempt at tackling some of the first to market bigger apps on their network mainly because I want them to have a few 4-5 very big coin income pipelines so they can continue to attract/hire developers to work on the network/projects.
I also don’t see anything to fear in the short term. The move by Microsoft is almost certainly designed to take the fight to AWS which has generally been more attractive to developers than Azure, to boost Visual Studio and to polish their open source credentials. Developers have a lot of power these days and Microsoft know that.
Long term it’s probably worth looking for alternatives though as they will doubtless try to monetise their expensive purchase in all the usual ways and it’s always good to avoid being locked in.
git-ssb looks nice (git on secure scuttlebutt):
I like this approach for two reasons:
- serverless/decentralised, secure, works now
- the scuttlebutt ‘log’ based approach could be easily adapted for SAFE Network
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 :
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
Similar Project that could perhaps be ported over. - GitTorrent
I’ve now got scuttlebutt git (git-ssb) working and have pushed a repo!
You can see it here:
via web: https://git-ssb.celehner.com/%oaVPNcXmxQ0jb0%2B5jLDMW7q9U%2B%2Fq5G8YmYqc49I4Z0g%3D.sha256
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…
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:
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).
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
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
I think Pijul is a better contender for decentralized networks than git.
- Git takes a whole snapshot of workspace for each commit
- then it tries to find matching objects at the storage level and stores just the diffs to save space
- thus creates one compressed file which changes each time it’s recreated (
git gcor 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)
- Pijul stores a patch for each commit
- then stores these patches as files at the storage level
- 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
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:
- Merging, patches, and pijul by Joe Neeman (mathematician) https://jneem.github.io/pijul/
- Why Pijul? from the Pijul Docs https://pijul.org/manual/why_pijul.html
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.
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.