Vue d'ensemble de l'architecture
Savitri Network est structuré comme un monorepo avec 13 sous-modules git. Chaque crate Rust est indépendant avec des dépendances locales par chemin.
Hiérarchie des crates
savitri-core/
├── savitri-types/ ← primitives (transactions, comptes, crypto)
├── savitri-crypto/ ← Ed25519, hachage, ZKP
├── savitri-mempool/ ← scoring SIMD, gestion de file d'attente
├── savitri-consensus/ ← PoU, vote BFT, DAG
├── savitri-storage/ ← RocksDB, modèle d'état
├── savitri-network/ ← libp2p, gossipsub, découverte de pairs
├── savitri-rpc/ ← serveur JSON-RPC 2.0
├── savitri-contracts/ ← exécution de contrats intelligents
├── savitri-node/ ← point d'entrée, orchestration
└── savitri-cli/ ← outils en ligne de commande
Flux de données
[Client] → RPC → Mempool → Consensus (PoU+BFT) → Stockage
↓
[Réseau P2P] ← → [Autres nœuds]
Composants clés
Mempool
File d'attente SIMD-optimisée avec scoring de transactions (0–1000). Utilise AVX2+FMA sur x86_64 et NEON sur ARM pour la vérification parallèle des signatures.
Consensus PoU+BFT
Proof-of-Unity évalue les validateurs selon l'uptime, le stake et les performances matérielles. Le vote BFT avec quorum 2f+1 (67%) assure la tolérance aux pannes byzantines.
Stockage DAG
L'état du réseau est représenté comme un graphe acyclique dirigé (DAG). Le sharding permet le traitement parallèle des transactions indépendantes.
Couche P2P
libp2p avec gossipsub pour la propagation des transactions et blocs. La vérification de signatures NUMA-aware réduit la latence sous haute charge.
Objectifs de performance
| Métrique | Cible |
|---|---|
| Débit | 125 000+ TPS |
| Latence de finalisation | < 2 secondes |
| Configuration minimale | Matériel grand public |
| Schéma de signature | Ed25519 |