架构概述
Savitri Network 采用单体仓库结构,包含 13 个 git 子模块。每个 Rust crate 相互独立,通过本地路径依赖进行关联。
Crate 层级结构
savitri-core/
├── savitri-types/ ← 基础类型(交易、账户、密码学)
├── savitri-crypto/ ← Ed25519、哈希、ZKP
├── savitri-mempool/ ← SIMD 评分、队列管理
├── savitri-consensus/ ← PoU、BFT 投票、DAG
├── savitri-storage/ ← RocksDB、状态模型
├── savitri-network/ ← libp2p、gossipsub、节点发现
├── savitri-rpc/ ← JSON-RPC 2.0 服务器
├── savitri-contracts/ ← 智能合约执行
├── savitri-node/ ← 入口点、编排
└── savitri-cli/ ← 命令行工具
数据流
[客户端] → RPC → 内存池 → 共识(PoU+BFT)→ 存储
↓
[P2P 网络] ← → [其他节点]
核心组件
内存池
采用 SIMD 优化的交易队列,评分范围 0–1000。在 x86_64 上使用 AVX2+FMA,在 ARM 上使用 NEON 进行并行签名验证。
PoU+BFT 共识
Proof-of-Unity 根据运行时间、质押量和硬件性能对验证者进行评分。BFT 投票需要 2f+1 法定人数(67%),确保拜占庭容错。
DAG 存储
网络状态以有向无环图(DAG)形式表示。分片允许并行处理独立交易。
P2P 层
使用 libp2p 和 gossipsub 传播交易和区块。NUMA 感知的签名验证降低了高负载下的延迟。
性能目标
| 指标 | 目标 |
|---|---|
| 吞吐量 | 125,000+ TPS |
| 最终确认延迟 | < 2 秒 |
| 最低节点要求 | 消费级硬件 |
| 签名方案 | Ed25519 |