Generated: 2025-12-01
Status: Pre-RC1 Critical Path Analysis
This document identifies all unimplemented, stubbed, or critical features required for Release Candidate 1.
Status: Mocked/Not Implemented
Files: crates/bitcell-zkp/src/*.rs
-
Groth16Proof: Currently returns mock 192-byte proof data
- Location:
bitcell-zkp/src/lib.rs:49 verify()only checks if data is non-empty (line 65)- No actual circuit constraints implemented
- Location:
-
BattleCircuit: Stub implementation
- Location:
bitcell-zkp/src/battle_circuit.rs:45 generate_proof()returnsGroth16Proof::mock()- No CA evolution verification
- Location:
-
StateCircuit: Stub implementation
- Location:
bitcell-zkp/src/state_circuit.rs:41 generate_proof()returnsGroth16Proof::mock()- No Merkle tree verification
- Location:
Impact: Battles and state transitions are NOT cryptographically verified
Status: Not Implemented
Files: crates/bitcell-node/src/blockchain.rs
- VRF Output & Proof Generation
- Location:
blockchain.rs:139 - Currently:
vrf_output: [0u8; 32](hardcoded zeros) - Comment:
// TODO: Implement VRF
- Location:
Impact: Block proposer selection is deterministic, not random
Status: Partially Mocked
Files: crates/bitcell-node/src/rpc.rs, crates/bitcell-wallet-gui/src/main.rs
-
Transaction Building (Wallet GUI)
- Location:
wallet-gui/src/main.rs:393 - Currently:
format!("mock_tx:{}:{}:{}", ...)(string format) - Comment:
// TODO: Build real tx
- Location:
-
Raw Transaction Decoding (RPC)
- Location:
bitcell-node/src/rpc.rs:193 - Currently returns mock hash
- Comment:
// TODO: Decode transaction, validate, and add to mempool
- Location:
-
Balance Fetching (RPC)
- Location:
bitcell-node/src/rpc.rs:161 - Returns hardcoded "0x0"
- Comment:
// TODO: Parse address and fetch balance from state
- Location:
Impact: Transactions cannot be created, sent, or processed
Status: libp2p Integration Incomplete
Files: crates/bitcell-network/src/transport.rs
- Gossipsub Broadcasting
- Locations: Lines 50, 56, 62, 68
- All broadcast methods:
// TODO: Implement with libp2p gossipsub - Methods affected:
broadcast_block()broadcast_transaction()broadcast_commitment()broadcast_reveal()
Current Implementation: Custom TCP-based P2P (functional but not production-grade)
Impact: Network may not scale; gossip protocol needed for decentralization
Status: In-Memory Only
Files: crates/bitcell-state/src/storage.rs
- Production Storage Backend
- Location:
storage.rs:166 - Comment:
# TODO: Production Implementation - Current: In-memory HashMap
- Need: RocksDB or similar persistent storage
- Location:
Impact: Data lost on restart; not production-ready
Status: Mock Data
Files: crates/bitcell-admin/src/api/metrics.rs
- Real-Time Metrics Collection
uptime: Line 96 -// TODO: Track actual node start timesaverage_block_time: Line 106 -// TODO: Calculate from actual block timesmessages_sent/received: Lines 113-114 -// TODO: Add to node metricsaverage_trust_score: Line 119 -// TODO: Add trust scorestotal_slashing_events: Line 120 -// TODO: Add slashing eventscpu_usage: Line 124 -// TODO: System metrics (sysinfo crate)memory_usage_mb: Line 125 -// TODO: System metricsdisk_usage_mb: Line 126 -// TODO: System metrics
Impact: Admin panel shows fake data; unusable for monitoring
Status: Mock/Incomplete
Files: crates/bitcell-admin/src/api/blocks.rs
- Real Block Data Fetching
- Location:
blocks.rs:86 - Comment:
// For now, we'll return mock data get_blocks(): Line 110 - Mock block list generationget_block_by_hash(): Line 140 - Returns mock data
- Location:
Impact: Block explorer not functional
Status: Partial
Files: crates/bitcell-admin/src/api/wallet.rs
- Real RPC Transaction Submission
- Location:
wallet.rs:105 - Comment:
// For now, we'll just mock the RPC call
- Location:
Impact: Admin wallet cannot send real transactions
Status: Placeholder
Files: crates/bitcell-node/src/rpc.rs
-
Node ID in getNodeInfo
- Location:
rpc.rs:202 - Currently:
"node_id": "TODO_NODE_ID" - Comment:
// TODO: Expose node ID from NetworkManager
- Location:
-
Additional Network Metrics
- Location:
rpc.rs:222 - Comment:
// TODO: Add more metrics
- Location:
Status: Not Exposed
Files: crates/bitcell-node/src/rpc.rs
-
Get Reputation RPC
- Location:
rpc.rs:609 - Comment:
// TODO: Expose reputation from TournamentManager
- Location:
-
Miner Stats
- Location:
rpc.rs:628 - Returns:
"miner": "TODO"
- Location:
Status: Hardcoded
Files: crates/bitcell-node/src/rpc.rs
- Auto-Miner Status Check
- Location:
rpc.rs:676 - Returns:
"auto_miner": false - Comment:
// TODO: Check auto miner status
- Location:
Status: Not Used
Files: crates/bitcell-node/src/main.rs
- Utilize --data-dir Flag
- Location:
main.rs:95 - Comment:
// TODO: Use data_dir - Currently ignored
- Location:
Status: Ad-hoc Implementation
Files: crates/bitcell-node/src/rpc.rs
- Proper Hex Parsing Library
- Locations: Lines 302, 398
- Comment:
// TODO: Use proper hex parsing util - Current: Manual string slicing
bitcell-ca/src/grid.rs:165-panic!("target_size must be between 1 and {}", GRID_SIZE)bitcell-state/src/bonds.rs:73-panic!("Expected unbonding status")
Action: Replace with proper error handling using Result<T, Error>
- Total TODO comments: 33
- Mock implementations: 18
- Panic calls: 2
- Critical blockers: 4
- High priority: 8
- Medium priority: 6
- Transaction System - Enable real tx creation/processing
- State Persistence - Implement RocksDB backend
- Balance Queries - Connect RPC to state manager
- VRF Implementation - For random block proposer selection
- ZKP Circuits - At minimum, basic battle verification
- Network Hardening - Complete libp2p integration
- Metrics Collection - Real-time system/network metrics
- Block Explorer - Connect to actual blockchain data
- Error Handling - Replace panic! with Result
- Reputation system exposure
- Auto-miner status tracking
- Hex parsing utilities
- Data directory integration
- ✅ Block reward halving mechanism
- ✅ Economic constants centralization
- ✅ Keypair CLI management
- ✅ Battle visualization (CA simulation)
- ✅ Tournament orchestration (sans ZKP)
- ✅ TCP-based P2P networking (functional)
- ✅ RPC server infrastructure
- ✅ Wallet GUI (sans tx submission)
- ✅ Admin dashboard UI (needs real data)
- Transactions can be created, signed, and broadcast
- Balances update correctly after transactions
- State persists across node restarts
- VRF provides randomness for block proposers
- ZK proofs verify battle outcomes (even if simplified)
- Network gossip propagates blocks/transactions
- Metrics dashboard shows real node data
- No panic! calls in production code paths
- Block explorer displays actual chain data
- Integration tests pass for end-to-end flows
Next Steps: Prioritize Phase 1 items. Transaction system is the most critical user-facing feature.