blinklabs-io / blinklabs-io/dingo
leios: wire BLS voting key registration and rotation into node state
- Dominant language
- Go
- Stars
- 48
- Forks
- 13
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 603
Description
## Summary
CIP-0164 PR cardano-foundation/CIPs#1196 makes stake-based committees the current Leios design and explicitly calls out BLS key rotation as a follow-up spec item. The adaptive-security argument for a public, deterministic committee depends on voting keys being rotated regularly.
Dingo needs a node-side tracking issue for loading, storing, activating, and using Leios BLS voting keys once gouroboros exposes the final ledger/wire types.
## What Needs to Happen
1. Track the CIP follow-up for BLS voting key registration and rotation.
2. Persist Leios voting keys or pool registration extensions in metadata once gouroboros exposes the types.
3. Activate rotated voting keys at the correct epoch boundary and preserve historical keys for certificate validation.
4. Load local block-producer Leios voting signing material from config or the eventual key-management path.
5. Use the correct `(pool, epoch)` verification key when validating votes and aggregate certificates.
6. Handle rollback across registrations or epoch-boundary activation points.
7. Add DevNet coverage once the reference node exposes the same mechanism.
## Dependencies
- gouroboros BLS voting key registration/rotation types.
- Final follow-up CIP for the on-chain rotation mechanism.
- Stake-truncated committee implementation for the voting path.
## References
- CIP PR: https://github.com/cardano-foundation/CIPs/pull/1196
- CIP-0164 Appendix A requirements: https://github.com/cardano-foundation/CIPs/blob/master/CIP-0164/README.md#appendix-a-requirements
- Full Leios integration: #1946
Contributor guide
Research direction
Start with the full Leios integration in #1946, then read CIP-0164 Appendix A and the referenced CIP follow-up. Check the gouroboros BLS registration and rotation types when available, along with the stake-truncated committee voting path. Done means registration, epoch activation, historical-key validation, rollback handling, local signing material, and DevNet coverage all work against the reference node mechanism.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- blockchain, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100