title: Strongholdstub: strongholddocument: Engineering Specificationversion: 0000maintainer: Daniel Thompson-Yvetot <email@example.com>contributors: [Dave de Fijter <firstname.lastname@example.org>, tensorprogramming <email@example.com>, Daniel Thompson-Yvetot <firstname.lastname@example.org>, Marcelo Bianchi <email@example.com>]sponsors: [Navin Ramachandran <firstname.lastname@example.org>]licenses: ["CC-BY-INTL-3.0"]updated: 2021-Apr-27
This document introduces the High-Level Specification of the Stronghold.
A Stronghold is composed of several interacting systems at a low level:
- Snapshot - box-encrypted file-based persistence layer
- Vault - a write and use protected, path-based system for storing and using secrets like private keys
- Store - a read/write key:value storage system for dynamic data
- Cache - an in-memory abstraction for vault and store
- Runtime - memory protection system for secrets
- Communication - libp2p based system for communication between strongholds
At the high level, Stronghold provides an official client for interfacing with a Stronghold snapshot and its records.