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

Consider upgrade path for existing wallet users #245

Closed
kyranjamie opened this issue Sep 17, 2020 · 6 comments
Closed

Consider upgrade path for existing wallet users #245

kyranjamie opened this issue Sep 17, 2020 · 6 comments
Labels
Enhancement 💡 Functionality needed or wanted by users

Comments

@kyranjamie
Copy link
Collaborator

What behaviours should we support for users of the previous wallet versions? @yknl brought this up in an earlier call.

More than likely, we want existing wallet users to be able to seamlessly transition over to this wallet.

@markmhendrickson
Copy link
Collaborator

markmhendrickson commented Sep 18, 2020

I believe @yknl mentioned recently that we can't push an update dialog to the existing wallet upon open, so there's no way to way to integrate such an upgrade path into existing installs exactly.

I also assume that the existing wallet will simply stuff functioning / start throwing errors upon usage once we switch to 2.0, though perhaps it's not so straightforward as that (@yknl any ideas here?).

We'll update https://wallet.blockstack.org/, of course, to list the new wallet and encourage all existing wallet users to remove the old install and upgrade there. But I'm not sure we need any special information in that context, though perhaps @ryanarndtcm has ideas?

@markmhendrickson markmhendrickson removed their assignment Sep 18, 2020
@markmhendrickson markmhendrickson added the Enhancement 💡 Functionality needed or wanted by users label Sep 18, 2020
@kyranjamie
Copy link
Collaborator Author

Sure. I was thinking more along the lines of detecting a previous wallet install, and offering a "wallet import" option.

@yknl
Copy link
Contributor

yknl commented Sep 18, 2020

I also assume that the existing wallet will simply stuff functioning / start throwing errors upon usage once we switch to 2.0, though perhaps it's not so straightforward as that (@yknl any ideas here?).

The existing version of the wallet will prevent any transactions from being broadcasted once mainnet 2.0 is live.

In terms of migrating to the new version, there doesn't seem to be a clean way of migrating automatically. The user needs to input a password for the new version in order to encrypt the private key and data. In addition, the private key is never stored on disk in the current version for security reasons. This means the user needs to go through the full onboarding flow again. (This is not necessary for hardware wallet setups)

Another area of concern is the structure of the data persisted by electron store. After updating to the new version, assuming the app will try to read the old persisted data from the same storage location, will it crash due to the incompatible format?

@kyranjamie
Copy link
Collaborator Author

Perhaps it's not that valuable, and we can reasonably expect users to re-enter their seed, but;

Assuming we were to do it, we'd have to find a reliable way of identifying an earlier wallet install. I think it'd be safer to install with a separate software name, as to not risk any overwriting etc, and require an import wallet, then delete old wallet step. electron-store has a version migration feature, which might be handy. Though, owing to this issue of one of its dependencies, we might have to remove it.

Alternatively, we could just display some additional content for users with an existing wallet install. Providing them extra guidance that, firstly, their funds are safe, and then prompting them to restore/reconfirm their wallet with their seed phrase. A great opportunity to make sure they still have it.

@ryanarndtcm
Copy link

ryanarndtcm commented Sep 18, 2020 via email

@kyranjamie
Copy link
Collaborator Author

The previous wallet doesn't persis the seed phrase in anyway, so there's little value in detecting whether the previous version was installed. Further, the new wallet will be installed in parallel to the current one. So closing out this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement 💡 Functionality needed or wanted by users
Projects
None yet
Development

No branches or pull requests

4 participants