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.
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.
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).
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.
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
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 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)
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.
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:
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.
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.
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.