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

Migrate to key-value store & improve persistence reliability #23

Open
kincaidoneil opened this issue Mar 9, 2019 · 0 comments
Open
Labels
enhancement New feature or request

Comments

@kincaidoneil
Copy link
Contributor

kincaidoneil commented Mar 9, 2019

Pros:

  • Atomic writes, rather than triggered on a timer (no reliance on a graceful disconnect to ensure everything is written)
  • More reliable cross-platform support
  • Compatible with the existing store model in plugins, which simplifies the implementation
  • If only the values are encrypted (and not keys), we have more data to restore lost funds if users forget their password

Cons:

  • Single JSON file provides a more portable config across machines
  • Some DBs are a pretty heavy dependency, and use native modules that can cause problems with Electron
  • If only the values are encrypted, the keys can expose metadata (likely not a big deal, the pros of this I definitely think outweigh the cons)

My gut feeling is we'll need to implement our own encryption layer for either JSON or a key-value store, since at least for LevelDB/level, it didn't look like there were many great options.

@rhuairahrighairidh Thoughts/anything else?

@kincaidoneil kincaidoneil added the enhancement New feature or request label Mar 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant