You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This PR removes all user endpoints for initiating recovery related actions. It does not, however, remove the concept of recovery entirely as this is part of the puzzle and must be maintained to sync DIDs. It removes the ability to set recovery info on new DIDs, change it on existing ones, or take part in a recovery of a DID.
The motivation behind this PR is that the feature is rarely, if ever, used and creates a lot of wallet surface area even so. The code that supports it is shaky and not well tested, so encouraging further use is likely more harmful than just removing it entirely. Should any user become stranded by this -- which I find quite unlikely -- and actually cares about the DID -- also unlikely -- it is easy enough to downgrade to a previous version to initiate a recovery before returning to a newer version.
(Reviewing the test changes is a little awkward because of how GitHub calculated the diff. I'm not sure how to improve this.)
what kind of evidence do we have that this is rarely used? Has anyone looked for these kinds of spends on the blockchain?
I will cite 3 pieces of evidence:
Testimony by those close to the community. There are never any support requests, and nobody has brought it up or asked for it in newer wallets.
The code quality is part of why I'm deleting it, and it lacks so much test coverage that it almost certainly has bugs. If people were using it, we would have almost certainly received bug reports.
DIDs aren't at all used in the way this feature is set up for. This is not just a recovery method that you set up for yourself, the idea is that it's a "social" recovery in where you identify a set of custom trusted individuals who can recover your identity for you should you lose access to it. This is very important if you have infrastructure tied to this identity, but I've been told that in contemporary use DIDs are basically "glorified folders for NFTs". Losing access to one isn't even really a big deal since you can just make a new "folder" should you need it. It does not prevent you from spending your NFTs.
The reason will be displayed to describe this comment to others. Learn more.
We'll need to make sure that the relevant areas of the documentation are updated to reflect the removed endpoints, and provide instructions that recovery is done by downgrading to a specific version.
ChangedRequired label for PR that categorizes merge commit message as "Changed" for changelog
5 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR removes all user endpoints for initiating recovery related actions. It does not, however, remove the concept of recovery entirely as this is part of the puzzle and must be maintained to sync DIDs. It removes the ability to set recovery info on new DIDs, change it on existing ones, or take part in a recovery of a DID.
The motivation behind this PR is that the feature is rarely, if ever, used and creates a lot of wallet surface area even so. The code that supports it is shaky and not well tested, so encouraging further use is likely more harmful than just removing it entirely. Should any user become stranded by this -- which I find quite unlikely -- and actually cares about the DID -- also unlikely -- it is easy enough to downgrade to a previous version to initiate a recovery before returning to a newer version.
(Reviewing the test changes is a little awkward because of how GitHub calculated the diff. I'm not sure how to improve this.)