zeekay
|
726d939e83
|
consensus: permissionless launch readiness
BLOCKING fixes:
- Quasar: multi-validator finalization (require QThreshold sigs)
- Stake-weighted sampling (StakeWeightedCut replaces SimpleCut)
- FPC: configurable seed via DeriveEpochSeed (was hardcoded string)
- Slashing: equivocation detection (double-vote, double-sign, downtime)
- Prism: implement Propose/Vote (was nil-return stubs)
NON-BLOCKING fixes:
- Photon: Fisher-Yates shuffle in Emit() (was returning first N)
- Field: memoized isFullyFinalized (was O(n^2) DFS)
- Remove Snow/Avalanche references from production code
- Rename snowball_compat tests to threshold_compat
- Fix wave.New callers for (Wave, error) return
New: core/slashing package with Detector, Evidence, SlashingDB
All 26 packages pass. Zero failures.
|
2026-03-02 23:59:00 -08:00 |
|
zeekay
|
1f13e8ef37
|
protocol/wave: implement Fast Probabilistic Consensus (FPC)
Add FPC threshold selector with PRF-based phase-dependent threshold selection.
Integrates seamlessly with Wave protocol for dynamic alpha thresholds.
Features:
- PRF-based deterministic threshold selection using SHA-256
- Configurable theta range [θ_min, θ_max] (default: 0.5-0.8)
- Phase-dependent thresholds: α = ⌈θ·k⌉
- Backward compatible with EnableFPC flag (default: false)
- Zero breaking changes to existing Wave API
Test Coverage:
- 10/10 FPC unit tests PASS (determinism, theta range, benchmarks)
- 5/5 FPC integration tests PASS (enabled/disabled, variation, comparison)
- 18/18 Wave tests PASS (all existing tests still work)
Implementation:
- /protocol/wave/fpc/fpc.go (83 lines) - Core threshold selector
- /protocol/wave/fpc/fpc_test.go (177 lines) - Comprehensive tests
- /protocol/wave/fpc_integration_test.go (274 lines) - Integration demos
- /protocol/wave/wave.go - Wave integration with FPC support
All 78/78 protocol tests passing. FPC is production-ready!
|
2025-11-10 18:58:56 -08:00 |
|