Currently thinking of an interesting idea to implement on holochain with my team.
I’ve learned from the lisbon hackaton that there are some conversation around the possibility of building a distributed git.
The idea I have is that there will be a git client with holochain being in the background which stores the repo distributedly.
I’m not sure how the fs will be since holochain is more of a database than a file system. I’m thinking maybe ipfs for file system then identity management for holochain?
I think this is totally doable with Holochain — after all, a Git repo is just a database of hash-addressed objects, organised into a DAG of change-sets. And what is a Holochain DHT? A database of hash-addressed objects, which can be linked to form a DAG.
I’m also curious about looking at git-ssb, as @ViktorZaunders mentioned, to see how they connected Git to an SSB-based remote.
Some interesting challenges to work through; would love to hear other people’s clever ideas:
As with any Git repo, blobs might be inordinately taxing on a DHT. Could a Git LFS storage backend live on a separate Holochain-based ‘blob storage DHT’?
Git assumes that every copy of the repo is self-consistent; that is, there’s no uncertainty about where its branch pointers point. If the DHT were treated as a single remote, that breaks that expectation, because it’s possible for two people to advance a branch pointer at the same time and put it into an inconsistent state (conflict detection and resolution coming to Holochain in the future). Does that matter, and if so, what are some alternative designs? Should the DHT even be treated as a single remote?