Prediction & Voting Flow
⏱ Round Start
At block height N, candidate block headers are broadcast.
📤 Feature Broadcast
NodeCoordinator emits features: mempool size, proposer ID, block timing, etc.
🧠 Local Inference
Validator runs ONNX model to score each candidate block (score ∈ [0, 1]).
✅ Vote Submission
Sends signed vote:
{ "candidateHash": "...", "score": 0.93 }
🧮 Aggregation & Finalization
Weighted average (stake × reputation) is computed per candidate. Highest score → finalized.