Comments (1)
I don't think such a comparison exists. Thanks for the pointer to Herb Caudill's presentation.
I heard the ending of your presentation at Braid's meeting the other day and got a feeling there were some things in common with HHS there too. I'd also love to chat about this!
HHS also uses a signed merkle DAG to model the history of each "object" in the system, so that's similar to what Herb was describing. He mentioned that the ACL could be held in an Automerge object at some point, and that's how it works on HHS: the permissions are stored in one object, and then there's a way to express that operations on other objects depend on some predicate on the ACL being true at that point in time (actually, at a given point in the DAG history). When an object depends on the state of another like that, their histories are cross-referenced at points when these predicates can change (in this case, when the ACL changes).
The end-result of all that machinery is that, eventually, everybody agrees on whether an use of a capability granted by the ACL was valid or not (e.g. it had been revoked). All the operations in the history are reversible, and when such a thing happens the state is changed to reflect the correct sequence of events (by automatically undoing and re-doing whatever is necessary).
One limitation of this approach is that the permissions are strictly stratified: there's an owner, who can add/remove/change everybody's permissions. Admins who can do the same for everybody except the owner and the other admins, and the rest who cannot change any permissions.
I think this system is already on the fringes of what can be called "coordination-free", because of the potential extensive undoing you may need to incur. But that limitation can be lifted, of course, by using more on-line coordination.
In HHS, this inter-entity dependency mechanism is general, and not tied specifically to user permissions. We've prototyped ledger settlements in this way, for example, when there is some level of trust (and reverting to this undoing when that trust is breached).
The general principle we used is very old, and was introduced in the 1985 paper Virtual time by D. R. Jefferson.
from hyperhyperspace-core.
Related Issues (20)
- Comparison with other p2p efforts HOT 7
- Assumptions/questions after a few days of reading HOT 4
- Create an identity management module
- Make the Store & its backends support checkpointing HOT 1
- Add support for marking some prevOps as obsolete
- Make sync status visible from outside the MeshNode
- Support recursive sync
- Support for changing the default PeerGroup in MeshNode
- Basic API docs via JSDoc annotations
- Investigate a local-first mesh implementation using Agregore
- Stop & start space sync seems to fail HOT 1
- Mesh/peer abstractions don't have a way to express only-send or only-receive relationships for sync HOT 1
- Dump and restore spaces to JSON
- Finish design of state-transition logbooks HOT 1
- Implement checkpointing for core data types
- add optimizations to the store needed for faster auto-checkpoints
- Occasional failure to remove element from a `CausalArray`
- make a generic interface to `HashedObject.literalizeField`
- using generalized `HashedObject.literalizeField` for checkpoints HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hyperhyperspace-core.