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
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
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.
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.
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.
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.
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).
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
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.
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.
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.
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.
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
from @itamarreif
The text was updated successfully, but these errors were encountered: