Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to handle multi-writter scenarios? #2

Open
satazor opened this issue Feb 17, 2019 · 0 comments
Open

How to handle multi-writter scenarios? #2

satazor opened this issue Feb 17, 2019 · 0 comments

Comments

@satazor
Copy link

satazor commented Feb 17, 2019

A IPNS record can be create and updated as long as you have the associated private key. In case of IPID, that private key should be kept super secure because it's in complete control of the DID-Document. Therefore:

  1. If it needs to live in a device, store it encrypted with a passphrase or similar
  2. But even better, store it physically in the form of a Paper Key, cold storage or similar

While rare, what happens if I alter the DID Document in device A and device B concurrently? Note that the "concurrent" meaning here can vary. It can mean that both devices were aware of each-other but they published at nearly the same time, or that both devices were in a split-brain scenario and only were aware of each-other's writings the day after.

Currently, the IPID spec doesn't define the semantics on how these conflicts should be solved. That being said, should the spec state how these situations should be resolved? Should we look into using CRDTs so that all devices converge to the same DID Document that gets published? While I got some ideas on using a operation-based DAG (state based could also work) + pubsub to propagate the heads could solve the problem, I would like to first hear about your thoughts on this matter.

//cc @jonnycrunch @pgte @aschmahmann @dirkmc @jimpick

@satazor satazor changed the title How to handle multi-writter scenario? How to handle multi-writter scenarios? Feb 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant