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

Feature: Import/export identity #15

Open
ghost opened this issue Apr 29, 2015 · 5 comments
Open

Feature: Import/export identity #15

ghost opened this issue Apr 29, 2015 · 5 comments

Comments

@ghost
Copy link

ghost commented Apr 29, 2015

To be able to use firestr on multiple computers, it would be great from a usability perspective if one could import/export one's cryptographic identity via the GUI.

@mempko
Copy link
Owner

mempko commented Apr 29, 2015

This is definitely a great a great idea and would improve the usability a lot.

This is always a challenge for a p2p system without a central identity management system. I haven't figured out a good way to do it as there are big problems to overcome.

  1. When you switch to one machine to another, how does a person connected know automatically connect to where you are now?
  2. What happens when two machines are running at a time and you are away from them and someone starts a conversation, which machine should the conversation be part of?
  3. Should apps and conversations be synchronized across all instances of your identity?

Centralized systems solve this problem by having one place where all your data is and knowing when you log into one machine or another. Distributed decentralized systems it becomes harder.

Your virtual identity is different than your physical identity, but from a usability perspective you want it to travel with you, like your real physical self does.

One solution I came up with is what if you had a usb key that stored your identity and apps and firestr in a self contained fashion. You just plug your stick in the machine and go... That way you never have two instances running with your identity and it follows you wherever you go.

@skwerlman
Copy link
Contributor

What if instead of importing/exporting the main identity, it created a superficially similar child identity? Because the main identity would know all of its child identities (it created them), it could automatically distribute them. When a client sent a message to any of someone's related identities, instead of treating them separately, it could iteratively send messages to both the main identity and all its children.

@mempko
Copy link
Owner

mempko commented Jun 21, 2015

@skwerlman This is actually really clever. If the parent identity is used as the keeper of the state, as in the single writer, then this would solve many problems with distribution. The only downside is that the parent identity would have to be online for this to work, which can be an ok tradeoff.

Since firestr does now detect when the user is idle, this can be used to direct traffic to the identity that is active.

I think there needs to be more thinking here, but I like your suggestion @skwerlman

@skwerlman
Copy link
Contributor

My (poorly worded, 4am) thought was more along the lines of the parent advertising its children to known contacts, and having messages meant for the parent be sent to its children also. This way, the parent only needs to be online at the same time as their contacts once; after that, all messages are sent to all children, and no knowledge of who is active is necessary.
As a side effect, this allows a user to use two clients at once and receive messages on both, making it feel a bit more like a centralized service.

@mempko
Copy link
Owner

mempko commented Jun 24, 2015

@skwerlman Ok, I see what you mean. So the child parent relationship is client/server. This is an intriguing idea.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants