title: Stronghold stub: stronghold document: Engineering Specification version: 0000 maintainer: 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.