IntersectMBO / IntersectMBO/cardano-ledger
Uncouple DReps from Committee Members
- Dominant language
- Haskell
- Stars
- 295
- Forks
- 179
- Avg merge
- 4d 7h
- Merged PRs (30d)
- 29
Description
Current design in the spec forced a suboptimal code structure. Namely DRep and Constitutional Committee members are grouped throughout the codebase into Gov entity. This is incorrect, because Stake Pools and regular ADA holders also participate in the governance.
Starting with Conway we'll have four entities in Cardano:
* StakeCredentials - delegators: voting power
* StakePools - delegatee: community block producers and voters
* DReps - delegatee: community voters
* Constitutional Committe members - voters
We should split their logic accordingly wherever it makes sense:
* [x] - Introduce `CommitteeState`
* [ ] - Introduce `DRepsState`
* [ ] - Remove VState.
* [ ] - Inline `CommitteState` and `DRepsState` into `CertsState`
* [ ] - Split GOVCERTS into `DREP` and `COMMITTEE` rules
* [ ] - Split `GovCert` into `DRep` and `Committee` certs.
Contributor guide
Research direction
Start by reading the current Gov entity structure and the existing CommitteeState implementation in the cardano-ledger codebase. Trace how DReps and Constitutional Committee members are represented, then work through the remaining checklist items. Done means their logic and certificates are separated as described, with VState and the shared GovCert/GOVCERTS structures removed or split where appropriate.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- blockchain
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100