Talk:DGF Smart Contract Specs
Here are the guts of Ladd's WorkDAO On-Chain Requirementsthat he's handing off to Maciej.
Terms
- Decentralized Autonomous Organization (DAO)
- Work Reputation (WREP)
- Validation Pool (VP)
- Work Smart Contract (WSC)
- Work Evidence (WEV)
Overview
There are three ways to earn Work Reputation (WREP).
1. Contribute to defining a Work Smart Contract (WSC)
- as the author of a WSC, or
- as the author of a post cited by a WSC, or
- as the author of a post cited by a post cited by a WSC, etc.
(depth limited by Reference Chain Limit parameter).
2. Contribute to performing work that fulfills a WSC
- as the author of a Work Evidence post (WEV), or
- as the author of a post cited by a WEV, or
as the author of a post cited by a post cited by a WEV, etc. (depth limited by Reference Chain Limit parameter).
3. Staking WREP in a Validation Pool (VP),
- to validate a VP,
- or to police a VP.
Note that WREP is ONLY minted in proportion to fungible tokens submitted to a Validation Pool (VP).
When fungible tokens are submitted to a WSC
The WSC must select a worker to whom the work is assigned.
The recommended way to select a worker is as follows:
- DAO members (a.k.a. WREP holders) indicate their availability by staking their WREP toward the WSC.
- WSC selects a worker randomly, with probability of selection for each worker weighted by that worker’s staked WREP.
- To handle the initial case when no WREP has yet been minted, the WSC can accept an availability stake of 0 WREP, and all such stakes should be given equal weight in the random selection.
When WEV is submitted to a WSC
1. The WSC initiates a VP targeting the WEV.
2. The fungible tokens are transferred to the VP.
3. The WREP staked by the worker toward availability is transferred to stake in favor of the VP.
4. All WREP holders have an opportunity to stake for or against the VP.
When VP is initiated
1. WREP is minted in proportion to the fungible tokens received.
2. The proportion is determined by the WREP Minting Ratio parameter.
When VP is approved
1. Minted WREP is transferred to the WEV post, and propagated to its authors and citations, up to the depth specified by the Reference Chain Limit parameter.
2. Fungible tokens are distributed to all WREP holders in proportion to their WREP.
When VP is rejected
1. Minted WREP is transferred to the DAO members who staked against the WEV.
2. Fungible tokens are distributed to all WREP holders in proportion to their WREP.
Note that there may be multiple alternative WSC in play at a given time.
In order to promote a healthy culture, WSC and WEV SHOULD cite contributions of other DAO members.
Members SHOULD vote against WEV that violates the community’s standards.
Members SHOULD vote against WEV that is submitted to an improper WSC.
Smart Contracts
Forum
- Contains Posts
- Each post may have one or more authors
- If a post has multiple authors, each author may have a weight
- Author weights sum must equal 1
- Each post may cite zero or more other posts
- Each citation has a weight between -1 and 1
- Sum of all positive weights must not be greater than 1
- Sum of all negative weights must not be less than -1
- Each post may have one or more authors
- Propagates WREP
- To cited posts, recursively up to Reference Chain Limit
- To post authors
Validation Pool
- Accepts fungible tokens to initiate a VP targeting a given Post
- Mints WREP in proportion to fungible tokens
- Parameter: Minting Ratio
- Accepts WREP stakes for or against the targeted Post
- Awards WREP to winning voters, whether for or against
- If the VP is approved, awards WREP to the targeted post
Reputation
- Extends ERC 721 (Non-fungible token)
- Associates a floating point value with each token
- Allows VP and Forum to transfer value from one token to another, as specified above
Work
- Accepts WREP stakes for worker availability
- Accepts fungible token fees from customers
- Assigns work to workers
- Accepts WEV submissions
- Initiates VP to approve WEV