Description
Grain (a project-specific token tied to cred) is a vital part of the SourceCred system. However, right now we don’t have any code-reviewed infrastructure for distributing, tracking, or displaying grain balances. Instead, grain is distributed based on non-code-reviewed Observable notebooks (see payouts), recorded in undocumented file formats via a manual process, and then displayed through notebooks.
This system is highly manual, non-robust, and not a good fit for other projects which are adopting SourceCred. We need to build proper infrastructure for distributing, tracking, and displaying Grain.
The scope of this initiative is:
- Create a “Ledger” module which records the history of grain distributions and transfers
- Create a “Distribution” module which, given current cred scores, can compute new grain distributions for contributors
- Build legacy handlers to ingest our existing grain distributions into the new system
- Create a “Display” module in the frontend which shows the grain balances
- Incorporate this new system into the new CLIs and automation that @beanow and @anon60584824 are working on
Status
Championed
Champion
Benefits
- We will automate grain distribution, rather than doing it by hand
- We’ll have a dedicated UI for checking grain balances, rather than random notebooks
- Pre-requisite to formally enabling Grain distributions will switch to opt-in
- Pre-requisite to Grain Vesting
- Pre-requisite for An ERC20 to track Grain
- Will make it far easier for consumers to issue toikens based on Cred (e.g. MetaGame, Maker)
Implementation Plan
- Write the ledger module
- Write the distribution module
- Write the legacy import module
- Write the display module
- Code review, testing
- Integrate with SourceCred CLI and automation
Deliverables
- We deprecate the Observable notebooks
- @decentralion no longer does manual distributions
- Users can check grain balances in teh UI
- MetaGame can track seeds using this system
Dependencies
References
Discussed during Team Meeting Notes (3/5/2020)