0.2.7 |
|
---|---|
0.2.6 |
|
0.2.2 |
|
0.1.7 |
|
0.1.0 |
|
#18 in #policies
143 次每月下载
在 72 个crate中(直接使用13个) 使用
610KB
11K SLoC
id: secure_storage title: 安全存储 custom_edit_url: https://github.com/aptos-labs/aptos-core/edit/main/secure/storage/README.md
安全存储
安全存储为区块链中的敏感数据提供了一个安全、持久的存储解决方案。这里的敏感数据包括用于安全和身份的信息,如加密密钥和共识安全规则,以及运行时配置数据。
概述
有关安全存储的设计概述,包括API、错误类型和政策,请参阅安全存储规范:[TODO(joshlind):发布安全存储规范!]
实现细节
此crate定义了安全存储API,由两个独立的Rust特质(接口)组成
KVStorage
: KVStorage特质提供了一种键值存储抽象(例如,获取和设置键值对)。CryptoStorage
: CryptoStorage特质提供了一种基于Ed25519密钥的加密密钥存储抽象(例如,密钥创建、旋转和签名)。
此crate提供了四种不同的安全存储实现,每种实现都实现了KVStorage
和CryptoStorage
Github
:Github安全存储实现使用Github仓库作为存储后端。Vault
:Vault安全存储实现使用Vault存储引擎(由HashiCorp提供:[https://www.vaultproject.io/](https://www.vaultproject.io/))。Vault安全存储实现是区块链节点在生产环境中主要使用的实现。InMemory
:InMemory安全存储实现提供了一个简单的内存存储引擎。这个引擎仅应用于测试,因为它不提供任何持久性或安全性(即数据仅在DRAM中存储,可能在崩溃或重启时丢失)。OnDisk
:与InMemory类似,OnDisk安全存储实现提供了一个有用的测试实现:一个磁盘存储引擎,其中存储后端使用写入本地磁盘的单个文件实现。与内存存储类似,磁盘存储不应在生产环境中使用,因为它不提供任何安全保证(例如,写入磁盘前的加密)。此外,OnDisk存储目前不支持并发数据访问。
此外,此crate还提供了一个安全存储实现的Namespaced
包装器。使用Namespaced包装器,不同的实体可以在不同的命名空间下共享同一个安全存储实例,提供每个实体都有自己的安全存储后端的抽象。
此模块是如何组织的?
secure/storage/
├── github # Contains the secure storage implementation based on Github.
├── src # Contains the definitions for secure storage (e.g., API and error types),
as well as lightweight implementations for testing (e.g in-memory and on-disk).
|── src/tests # Contains the testsuite for all secure storage implementations.
├── vault # Contains the secure storage implementation based on Vault, including the client
add fuzzing helper functions.
依赖关系
~21-35MB
~733K SLoC