dat-ecosystem-archive / DEPs

Dat Enhancement Proposals. Contains all specs for the Dat protocol, including drafts. [ DEPRECATED - see https://github.com/hypercore-protocol/hypercore-proposals for similar functionality. More info on active projects and modules at https://dat-ecosystem.org/ ]
https://dat-ecosystem.github.io/DEPs
167 stars 17 forks source link

Draft: Multi-Writer DEP #10

Closed bnewbold closed 6 years ago

bnewbold commented 6 years ago

Current status: needs proof-reading, and there are some unresolved issues, but ready for review

Rendered pre-merge

Big TODOs:

aral commented 6 years ago

I’m sure you guys have already looked into the current academic research around CRDTs but I just came out of a deep dive where I reached the same conclusions (DAG with publickey auth weaved into the graph). On the conflict resolution side, have you evaluated the causal tree/Logoot/LSEQTree approaches at all?

Links to all three from the quick summary of my own research: https://indienet.info/other/spikes/crdt/

PS. Given that you’ve basically built what I was planning to, I believe we are going to be using DAT for Indie Site going forward which makes me extremely happy :)

bnewbold commented 6 years ago

@mafintosh needs proof-reading, and there are some unresolved issues, but I think this is mostly ready for review. I left some questions in "unresolved".

I had been procrastinating this for a long time because I thought it was going to be really gnarly, but it's actually super simple compared to all the hyperdb trie nitty gritties.

Looks like the hyperdb DEP will need a small update with the deleted and Header changes.

pfrazee commented 6 years ago

Great work, @bnewbold.

Do we need to take some time to discuss the permissions schemes? I thought we were going to have an owner / writer distinction, where owners can authorize and writers can only write.

bnewbold commented 6 years ago

I integrated most comments.

@pfrazee I think this is the first I've heard of an owner/writer permissions distinction; is that in current hyperdb? If it wasn't in the 3.0 release, I think at this point i'd say we should ship this as draft and update as things change.

pfrazee commented 6 years ago

@bnewbold sounds good