-
Notifications
You must be signed in to change notification settings - Fork 7
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
Security, Identity, Onboarding, and Upgrading #145
Comments
there is a lot of prior thinking that we can share from our experience of working on Acorn, and its version update pathways. When deploying with electron, we are able to do When a In addition to all that there are scenarios where the agents have new keys in the new DHT, but it can also be possible that the users prior keys are maintained during the update. Breaking changes to the keystore format are very rare. |
What I would like is feed back to get a better understanding of when agents might receive a new identity. Normally, I'd read through the code, but currently don't have time to read through Holochain, the Launcher, the Keystore, and any glue that binds them together.
I know someone else mentioned this, so I'll at least check to see if it's recorded in their backlog.
The replay to the chain is a pretty simple engineering problem. You just need to be aware of the dependency graph between objects and foreign references and make sure that when you do a depth first traversal of the graph to create a new source chain you track the new references and replace the original references in the objects with the new ones. I did this kind of thing back in 2012 for exporting a sanitized version of data for use as test data. The hard part is ensuring you can build that graph. Currently, we have a similar bit of code in the DataStore that can do this. Also, until we move to hREA we only use paths as references. So as long as we recreate all the paths in the correct order the migration is pretty seamless. The problem is that we haven't bothered to create a user facing interface to use expose this feature.
That's a good idea, but it seems like that's impossible to guarantee. It just always requires lots of out of band communication. Also, if it's done programmatically, it become a DOS attack vector, assuming the attacker can get the right keys to have the right capability grant to enable the freeze. It's unlikely to happen unless someone is just curious about what the 'Initiate upgrade' button does and the UI doesn't warn them. |
@zippy posted up some feature requests / roadmap items for Launcher relating to 'soft updates' |
Awesome! That's going to help us a lot. |
I was reminded about another aspect of all this when I started thinking about the signed-zome-calls changes. We really don't have a good onboarding process or upgrading process. While I've been thinking about the JSON export feature and using the local store for upgrades, there's still a certain amount of play and ongoing change that's unsettling to me.
Here's the current scenario (1):
Let's say we generate a different sort of workflow (scenario 2):
How does the admin become their regular user again to maintain the organization's principle of least access policy? How do other people created other organizations? Using the apps UID parameter?
Ok, so maybe we have something slightly different (scenario 3):
This makes makes sense. I like this kind of model. I think there's still some things to work out about it. But why should we stop with installation. How does upgrading work?
Upgrade scenario:
Is there any way to make this easier?
The text was updated successfully, but these errors were encountered: