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

Universe architecture v1 #34

Closed
guylepage3 opened this issue Aug 9, 2019 · 3 comments
Closed

Universe architecture v1 #34

guylepage3 opened this issue Aug 9, 2019 · 3 comments
Assignees
Labels
strategy Architecture, coding, business or marketing strategy related item(s) and issue(s)
Projects

Comments

@guylepage3
Copy link
Contributor

guylepage3 commented Aug 9, 2019

Description
We need to design a software architecture that is scalable, secure, modular, and as open as possible. The architecture also needs to provide an exceptional UX for users and be as decentralized as possible.

Elements

  1. Core
    A Go service that runs locally, orchestrating between the different parts of the system. It will handle incoming requests from the UI or API, routing them to what is now the Bluetooth (feather/notary) device or the storage node. Similarly it will pass information returned from the Bluetooth device back to the UI or API.
  2. User interface (e.g. web app, CLI)
    The user interface will communicate with the Core service using a locally exposed REST API (for now, this will, most likely, be changed). Actions initiated by the user will be passed to the Core service for handling.
    This will be a modular part for which Universe will build a web application implementation, but a CLI or a different web app could be built just the same, each offering a different experience, or different levels of control over security parameters.
  3. API
    For integration into other apps, an API providing functionality such as signing transactions, logging in, etc., will be exposed in a similar fashion from the Core service.
  4. Key Manager (e.g. Bluetooth device, Ledger, Apple's enclave)
    This is the only part that accesses the plain keys. It will be isolated from the rest of the system for security, and will return the signed transactions, validated tokens, etc.
    The intention is for this part to also be modular, allowing for the integration of any device that securely stores the keys. For example, a Ledger driver or an implementation using Apple's Secure Enclave could both be built.
  5. Vault storage & recovery
    This is the software that will run on Universe's home nodes. These nodes will contain a local backup of a user's vault ciphertext. However, this could be replaced by other implementations in a similar manner. For example, one could use their personal home backup system (e.g. Apple Time Machine).

v1 Universe software architecture hand sketch

2019-08-09-universe-software-architecture

from @itamarreif
@guylepage3 guylepage3 added the strategy Architecture, coding, business or marketing strategy related item(s) and issue(s) label Aug 9, 2019
@guylepage3 guylepage3 added this to To do in Universe 6 via automation Aug 9, 2019
@guylepage3
Copy link
Contributor Author

@itamarreif can you update and add to the comment above by going here #34 (comment) and click on the ellipsis. Thanks.

@guylepage3 guylepage3 changed the title Proposed Universe architecture Universe architecture v1 Aug 9, 2019
@guylepage3
Copy link
Contributor Author

IMG_20190810_152030

@guylepage3
Copy link
Contributor Author

Closing this issue.

Universe 6 automation moved this from To do to Done Aug 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
strategy Architecture, coding, business or marketing strategy related item(s) and issue(s)
Projects
No open projects
Universe 6
  
Done
Development

No branches or pull requests

6 participants