# Phase 1, Milestone 1: Service Wiring

> Complete synord service integration

**Status**: ✅ Complete
**Priority**: Critical
**Application**: `synord`

---

## Overview

Wire all core services in the synord node daemon: storage, consensus, network, sync, RPC, and mining.

---

## Tasks

### Task 1.1: Storage Service Integration
- [x] Initialize RocksDB with column families
- [x] Wire BlockStore from synor-storage
- [x] Wire HeaderStore from synor-storage
- [x] Wire UtxoStore from synor-storage
- [x] Implement actual get/put operations
- [x] Add block import/export commands

**Files:**
- `apps/synord/src/services/storage.rs`
- `apps/synord/src/services/mod.rs`

**Validation:**
```bash
cargo test -p synord --lib storage
```

### Task 1.2: Consensus Service Integration
- [x] Wire TransactionValidator from synor-consensus
- [x] Wire BlockValidator from synor-consensus
- [x] Implement block processing pipeline
- [x] Connect UTXO updates on block acceptance
- [x] Integrate GHOSTDAG ordering

**Files:**
- `apps/synord/src/services/consensus.rs`

**Validation:**
```bash
cargo test -p synord --lib consensus
```

### Task 1.3: Network Service Integration
- [x] Initialize libp2p swarm from synor-network
- [x] Start P2P listener on configured port
- [x] Connect to bootstrap/seed nodes
- [x] Wire GossipSub message handling
- [x] Implement peer discovery

**Files:**
- `apps/synord/src/services/network.rs`

**Validation:**
```bash
cargo test -p synord --lib network
```

### Task 1.4: Sync Service Implementation
- [x] Implement header-first sync strategy
- [x] Download headers from peers
- [x] Validate header chain
- [x] Download blocks in parallel
- [x] Handle chain reorganizations

**Files:**
- `apps/synord/src/services/sync.rs`

**Validation:**
```bash
cargo test -p synord --test sync_protocol
```

### Task 1.5: RPC Service Activation
- [x] Start jsonrpsee HTTP server
- [x] Start jsonrpsee WebSocket server
- [x] Wire handlers to actual service methods
- [x] Replace hardcoded values with real data
- [x] Add blue score block queries

**Files:**
- `apps/synord/src/services/rpc.rs`

**Validation:**
```bash
cargo test -p synord --lib rpc
curl -X POST http://localhost:16110 -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"synor_getInfo","params":[],"id":1}'
```

### Task 1.6: Miner Service Integration
- [x] Spawn mining threads with kHeavyHash
- [x] Wire block template generation
- [x] Handle found blocks submission
- [x] Implement difficulty adjustment

**Files:**
- `apps/synord/src/services/miner.rs`

**Validation:**
```bash
cargo test -p synord --lib miner
```

### Task 1.7: Mempool Service
- [x] Transaction pool management
- [x] Fee-based prioritization
- [x] Dependency tracking
- [x] Expiration and cleanup task

**Files:**
- `apps/synord/src/services/mempool.rs`

**Validation:**
```bash
cargo test -p synord --lib mempool
```

---

## Validation

### Validation Commands

```bash
# Run all synord tests
cargo test -p synord

# Run integration tests
cargo test -p synord --test '*'

# Start node and verify
./target/release/synord init --network devnet
./target/release/synord run --network devnet &
sleep 5
curl http://localhost:16110 -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"synor_getInfo","params":[],"id":1}'
```

### Validation Agents

| Agent | Purpose |
|-------|---------|
| `code-reviewer` | Review service implementations |
| `silent-failure-hunter` | Check error handling in services |
| `Explore` | Verify codebase structure |

### Integration Test Suite

```bash
# Node lifecycle
cargo test -p synord --test node_lifecycle

# Multi-node network
cargo test -p synord --test multi_node_network

# Sync protocol
cargo test -p synord --test sync_protocol

# Fork resolution
cargo test -p synord --test fork_resolution
```

### Security Checks

- [ ] RPC endpoints require authentication for sensitive operations
- [ ] Network service validates peer messages
- [ ] Storage service uses proper file permissions
- [ ] Mempool validates transactions before acceptance
- [ ] No SQL/command injection in RPC handlers

### Performance Criteria

| Metric | Target | Validation |
|--------|--------|------------|
| Block processing | <100ms | Benchmark suite |
| RPC latency | <10ms | Load testing |
| Sync speed | >100 blocks/s | Integration test |
| Memory usage | <2GB idle | Resource monitoring |

---

## Dependencies

- `rocksdb` - Storage backend
- `jsonrpsee` - RPC framework
- `libp2p` - P2P networking
- `tokio` - Async runtime

---

## Acceptance Criteria

1. Node starts without errors
2. All 9 unit tests pass
3. All integration tests pass
4. RPC responds to all documented methods
5. Sync completes with test peers
6. Mining produces valid blocks

---

*Completed: January 2025*
