⎇ 53dbdf0f1deea10d6fc567ea2b43e1e75d6d60cd
crates/modules/semantic_dht/minga-store/src/lib.rs
Historia
Quién tocó qué
crudo
chore: monorepo inicial con arje + minga + yahweh absorbidos
1//! `minga-store`: backing persistente con `sled` para los stores de Minga.
2//!
3//! Tres stores paralelos a los de `minga-core`:
4//! - [`SledNodeStore`]: hashes → `StoredNode`s, equivalente persistente
5//! de `MemStore`.
6//! - [`SledAttestationStore`]: pruebas criptográficas de autoría
7//! indexadas por content hash.
8//! - [`SledMstStore`]: conjunto de claves del MST. La estructura
9//! probabilística del MST se reconstruye en memoria al cargar
10//! ([`SledMstStore::to_in_memory`]) — solo persistimos las claves
11//! porque el árbol es deterministicamente derivable de ellas.
12//!
13//! Una `PersistentRepo` agrupa los tres sobre una única `sled::Db`
14//! (tres trees con namespaces separados).
15//!
16//! El núcleo (`minga-core`) sigue siendo agnóstico de IO: estos tipos
17//! tienen APIs paralelas (devuelven `Result`, deserializan vía
18//! postcard) y los protocolos de sync se quedan operando sobre los
19//! tipos in-memory. La integración con `MingaPeer` (que hoy usa
20//! `MemStore` concreto) llegará tras un trait genérico — esta
21//! iteración se centra en que la capa de persistencia esté correcta
22//! y testeada.
23
24pub mod attestation_store;
25pub mod error;
26pub mod keypair_file;
27pub mod mst_store;
28pub mod node_store;
29pub mod repo;
30
31pub use attestation_store::SledAttestationStore;
32pub use error::StoreError;
33pub use keypair_file::KeypairFileError;
34pub use mst_store::SledMstStore;
35pub use node_store::SledNodeStore;
36pub use repo::PersistentRepo;