Skip to content

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

Description

@kincaidoneil

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions