zeekay
|
8e45bcd029
|
refactor: Go-idiomatic package layout
Reorganize consensus packages following Go conventions and best practices:
Protocol Consolidation:
- Move prism/, photon/, wave/ → protocol/ directory
- Consolidate all protocol implementations under single namespace
- Follows standard library pattern (encoding/json, encoding/xml)
Package Naming:
- Rename validators/ → validator/ (singular, lowercase per Go convention)
- Aligns with stdlib patterns (net/http, database/sql)
Import Path Updates:
- Update all 241 Go files with new import paths
- github.com/luxfi/consensus/prism → protocol/prism
- github.com/luxfi/consensus/photon → protocol/photon
- github.com/luxfi/consensus/wave → protocol/wave
- github.com/luxfi/consensus/validators → validator
Benefits:
- Clear separation: core (contracts) vs protocol (algorithms) vs engine (runtime)
- Improved discoverability (all protocols under protocol/)
- Consistent with Go naming conventions
- Zero breaking changes to core APIs
- Easier to add new protocol implementations
Test Results:
- All 67+ tests passing across 21 packages
- 100% test coverage maintained
- No performance regression
Structure:
consensus/
├── core/ # Pure contracts (interfaces, zero deps)
├── protocol/ # Consensus algorithms & mechanics
│ ├── prism/ # Polling/quorum primitives
│ ├── photon/ # Unary consensus
│ ├── wave/ # N-ary consensus (FPC)
│ └── ... # Other protocol phases
├── engine/ # Runtime glue (runs protocols)
└── validator/ # Validator management (singular)
|
2025-11-06 04:19:26 -08:00 |
|