아키텍처 개요
Savitri Network는 13개의 git 서브모듈을 가진 모노레포 구조입니다. 각 Rust 크레이트는 로컬 경로 의존성을 통해 독립적으로 운영됩니다.
크레이트 계층 구조
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는 업타임, 스테이크, 하드웨어 성능을 기반으로 검증자를 평가합니다. 쿼럼 2f+1(67%)을 통한 BFT 투표로 비잔틴 결함 허용을 보장합니다.
DAG 스토리지
네트워크 상태는 유향 비순환 그래프(DAG)로 표현됩니다. 샤딩을 통해 독립적인 트랜잭션의 병렬 처리가 가능합니다.
P2P 레이어
트랜잭션 및 블록 전파를 위한 gossipsub이 포함된 libp2p. NUMA를 인식한 서명 검증으로 고부하 시 지연을 줄입니다.
성능 목표
| 지표 | 목표 |
|---|---|
| 처리량 | 125,000+ TPS |
| 최종성 지연 | < 2초 |
| 최소 구성 | 소비자용 하드웨어 |
| 서명 방식 | Ed25519 |