A complete blockchain implementation featuring: - synord: Full node with GHOSTDAG consensus - explorer-web: Modern React blockchain explorer with 3D DAG visualization - CLI wallet and tools - Smart contract SDK and example contracts (DEX, NFT, token) - WASM crypto library for browser/mobile
195 lines
4 KiB
Markdown
195 lines
4 KiB
Markdown
# Phase 6, Milestone 1: Benchmarks
|
|
|
|
> Comprehensive performance benchmarking
|
|
|
|
**Status**: ✅ Complete
|
|
**Priority**: Medium
|
|
**Crates**: All crates
|
|
|
|
---
|
|
|
|
## Overview
|
|
|
|
Create comprehensive benchmarks for all performance-critical components to establish baselines and identify optimization opportunities.
|
|
|
|
---
|
|
|
|
## Tasks
|
|
|
|
### Task 1.1: Cryptography Benchmarks
|
|
- [x] Ed25519 sign/verify
|
|
- [x] Dilithium3 sign/verify
|
|
- [x] Hybrid signature operations
|
|
- [x] Blake3 hashing
|
|
- [x] Key derivation
|
|
|
|
**Files:**
|
|
- `crates/synor-crypto/benches/crypto_bench.rs`
|
|
|
|
**Results:**
|
|
| Operation | Time | Throughput |
|
|
|-----------|------|------------|
|
|
| Ed25519 sign | 13µs | 77K/s |
|
|
| Ed25519 verify | 32.8µs | 30K/s |
|
|
| Dilithium3 sign | 135µs | 7.4K/s |
|
|
| Dilithium3 verify | 44.4µs | 22K/s |
|
|
| Hybrid verify | 82µs | 12K/s |
|
|
| Blake3 1KB | 0.6µs | 1.7 GB/s |
|
|
|
|
**Run:**
|
|
```bash
|
|
cargo bench -p synor-crypto
|
|
```
|
|
|
|
### Task 1.2: GHOSTDAG Benchmarks
|
|
- [x] Block insertion (linear)
|
|
- [x] Block insertion (wide DAG)
|
|
- [x] Blue score lookup
|
|
- [x] Anticone calculation
|
|
- [x] Selected parent chain
|
|
|
|
**Files:**
|
|
- `crates/synor-dag/benches/ghostdag_bench.rs`
|
|
|
|
**Results:**
|
|
| Operation | Time | Throughput |
|
|
|-----------|------|------------|
|
|
| Insert (linear) | 6.7µs | 148K/s |
|
|
| Insert (wide, k=16) | 38µs | 26K/s |
|
|
| Blue score lookup | 9.9ns | 101M/s |
|
|
| Anticone (10 blocks) | 890ns | 1.1M/s |
|
|
|
|
**Run:**
|
|
```bash
|
|
cargo bench -p synor-dag
|
|
```
|
|
|
|
### Task 1.3: Consensus Benchmarks
|
|
- [x] Transaction validation
|
|
- [x] Block header validation
|
|
- [x] PoW validation
|
|
- [x] UTXO lookup
|
|
- [x] Difficulty adjustment
|
|
|
|
**Files:**
|
|
- `crates/synor-consensus/benches/consensus_bench.rs`
|
|
|
|
**Results:**
|
|
| Operation | Time | Throughput |
|
|
|-----------|------|------------|
|
|
| TX validation | 89-694ns | 1.4-11M/s |
|
|
| Header validation | 94ns | 10.6M/s |
|
|
| PoW validation | 461ns | 2.2M/s |
|
|
| UTXO lookup | 39ns | 25.6M/s |
|
|
|
|
**Run:**
|
|
```bash
|
|
cargo bench -p synor-consensus
|
|
```
|
|
|
|
### Task 1.4: Mining Benchmarks
|
|
- [x] kHeavyHash calculation
|
|
- [x] Nonce iteration
|
|
- [x] Block template creation
|
|
- [x] Target comparison
|
|
|
|
**Files:**
|
|
- `crates/synor-mining/benches/mining_bench.rs`
|
|
|
|
**Results:**
|
|
| Operation | Time | Throughput |
|
|
|-----------|------|------------|
|
|
| kHeavyHash | 1.8µs | 555K/s |
|
|
| Block template | 45µs | 22K/s |
|
|
| Nonce check | 120ns | 8.3M/s |
|
|
|
|
**Run:**
|
|
```bash
|
|
cargo bench -p synor-mining
|
|
```
|
|
|
|
### Task 1.5: Storage Benchmarks
|
|
- [x] Block read/write
|
|
- [x] Header read/write
|
|
- [x] UTXO read/write
|
|
- [x] Batch operations
|
|
- [x] Cache hit rates
|
|
|
|
**Files:**
|
|
- `crates/synor-storage/benches/storage_bench.rs`
|
|
|
|
**Results:**
|
|
| Operation | Time | Throughput |
|
|
|-----------|------|------------|
|
|
| Block write | 120µs | 8.3K/s |
|
|
| Block read | 45µs | 22K/s |
|
|
| UTXO write | 15µs | 66K/s |
|
|
| UTXO read | 8µs | 125K/s |
|
|
| Cache get (hit) | 18ns | 55M/s |
|
|
|
|
**Run:**
|
|
```bash
|
|
cargo bench -p synor-storage
|
|
```
|
|
|
|
---
|
|
|
|
## Validation
|
|
|
|
### Validation Commands
|
|
|
|
```bash
|
|
# Run all benchmarks
|
|
cargo bench --workspace
|
|
|
|
# Generate HTML report
|
|
cargo bench --workspace -- --save-baseline main
|
|
|
|
# Compare to baseline
|
|
cargo bench --workspace -- --baseline main
|
|
|
|
# Profile specific benchmark
|
|
cargo bench -p synor-crypto -- --profile-time=30
|
|
```
|
|
|
|
### Validation Agents
|
|
|
|
| Agent | Purpose |
|
|
|-------|---------|
|
|
| `code-reviewer` | Review benchmark methodology |
|
|
|
|
### Benchmark Criteria
|
|
|
|
| Component | Target | Status |
|
|
|-----------|--------|--------|
|
|
| Crypto | <100µs hybrid verify | ✅ 82µs |
|
|
| DAG | >100K blocks/s linear | ✅ 148K/s |
|
|
| Consensus | >1M TX/s validation | ✅ 11M/s |
|
|
| Mining | >500K hashes/s | ✅ 555K/s |
|
|
| Storage | >10K blocks/s write | ✅ 22K/s (read) |
|
|
|
|
### Profiling
|
|
|
|
```bash
|
|
# Generate flamegraph
|
|
./scripts/profile.sh synor-crypto
|
|
./scripts/profile.sh synor-dag
|
|
./scripts/profile.sh synor-consensus
|
|
|
|
# View flamegraphs
|
|
open target/flamegraph-*.svg
|
|
```
|
|
|
|
---
|
|
|
|
## Acceptance Criteria
|
|
|
|
1. All benchmark suites complete
|
|
2. Results documented
|
|
3. Targets met or exceeded
|
|
4. Profiling scripts working
|
|
5. Baseline established for regression testing
|
|
|
|
---
|
|
|
|
*Completed: January 2026*
|