[SD-5] MVPR Architecture: CRDAO #5
Labels
No Label
discussion
draft
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: DGF/dao-governance-framework#5
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Code Review DAO (CRDAO)
Summary
CRDAO is a collection of associates who vote on decisions and accrue reputation tokens for their participation.
The intent is to form a self-governing, autonomous agency, which in this case serves the function of performing code reviews.
Reputation tokens are awarded for successful participation.
Voting power is determined by reputation tokens.
Voters may initiate and participate in votes. Types of vote include code reviews, and internal governance proposals such as onboarding, KYC review, and parameter value changes.
The forum can serve as the vehicle through which these code reviews and other proposals are submitted, discussed, and tracked. The forum is a collection of posts, which may reference one another. In the abstract, (#3) this collection of posts can be a graph with arbitrary edges. In this particular implementation, as a starting point, the edges will correspond to the traditional forum structure of Post, Comment, Up/Down Vote.
Details
CRDAO currently (2022-09-18) includes 5 core contracts and 5 voter contracts.
Core contracts:
Voter contracts:
We propose to add 4 new Forum-related contracts:
Forum
The forum contract will maintain a list of all validated posts.
The on-chain Forum contract provides an access point from which to browse the posts.
To minimize on-chain costs the amount of data in the Forum contract should be minimized.
Additional layers of metadata may be stored off-chain, such as in IPFS.
Post
Creating a post mints new reputation.
This will occur via the Validator voting contract.
A VA may submit a post by staking reputation.
An outsider may submit a post by paying a fee.
Each post must reference a Forum contract.
The reputation stake, or fee, will pay to add a Post to a Forum.
A comment is also a post. It may have a lower associated fee or reputation stake.
Upvoter
Like a comment, the upvote is linked to a parent Post.
Also like a comment, the upvote is a Post.
The Upvoter contract requires a reputation stake or a fee.
If multiple Upvotes pertain to the same Post, they should function as votes.
Validator
Inputs to a Validator vote:
When a Validator vote passes, the reputation minted by the target post is subdivided among the post's:
Interaction of Validator and Forum
When a validator vote passes, the forum contract applies the results, distributing the resulting reputation awards.
Because these awards can be expensive to compute, they should be computed off-chain by the VA client software.
This off-chain computation will need to source data from the on-chain Post contracts.
The results of the computations should be submitted to a Validator contract as part of a vote.
IPFS
Clients should be able to obtain from the Forum contract, the list of posts above a certain reputation threshold.
The clients can use this to participate in IPFS pinning.
Under this model, as long as there are enough active DAO client nodes and IPFS nodes in operation, IPFS can function as a reliable store for off-chain data, such as metadata indices, appendices, datasets, code, media, etc.
This could provide a layer for the forum, allowing more comments to be posted and made visible to other clients without paying blockchain fees. Comments can be transcribed as posts to the blockchain when their value is deemed sufficient.
assigned to @laddhoffman
changed the description
changed the description
changed the description
changed the description
changed the description
changed the description
changed the description
Comments in this thread will represent snapshots of the draft proposal, as checkpoints for reference.
Motivation:
Provide a record so that readers can reference a version of the document they may have previously viewed.
Snapshot
Summary
CRDAO is a collection of associates who vote on decisions and accrue reputation tokens for their participation.
The intent is to form a self-governing, autonomous agency, which in this case serves the function of performing code reviews.
Reputation tokens are awarded for successful participation.
Voting power is determined by reputation tokens.
Voters may initiate and participate in votes. Types of vote include code reviews, and internal governance proposals such as onboarding, KYC review, and parameter value changes.
The forum can serve as the vehicle through which these code reviews and other proposals are submitted, discussed, and tracked. The forum is a collection of posts, which may reference one another. In the abstract, (#3) this collection of posts can be a graph with arbitrary edges. In this particular implementation, as a starting point, the edges will correspond to the traditional forum structure of Post, Comment, Up/Down Vote.
Details
CRDAO currently (2022-09-18) includes 5 core contracts and 5 voter contracts.
Core contracts:
Voter contracts:
We propose to add 4 new Forum-related contracts:
Forum
The forum contract will maintain a list of all validated posts.
The on-chain Forum contract provides an access point from which to browse the posts.
To minimize on-chain costs the amount of data in the Forum contract should be minimized.
Additional layers of metadata may be stored off-chain, such as in IPFS.
Post
Creating a post mints new reputation.
A VA may submit a post by staking reputation.
An outsider may submit a post by paying a fee.
Each post must reference a Forum contract.
The reputation stake, or fee, will pay to add a Post to a Forum.
A comment is also a post. It may have a lower associated fee or reputation stake.
Upvoter
Like a comment, the upvote is linked to a parent Post.
Also like a comment, the upvote is a Post.
The Upvoter contract requires a reputation stake or a fee.
If multiple Upvotes pertain to the same Post, they should function as votes.
Validator
Inputs to a Validator vote:
When a Validator vote passes, the reputation minted by the target post is subdivided among the post's:
Interaction of Validator and Forum
When a validator vote passes, the forum contract applies the results, distributing the resulting reputation awards.
Because these awards can be expensive to compute, they should be computed off-chain by the VA client software.
This off-chain computation will need to source data from the on-chain Post contracts.
The results of the computations should be submitted to a Validator contract as part of a vote.
IPFS
Clients should be able to obtain from the Forum contract, the list of posts above a certain reputation threshold.
The clients can use this to participate in IPFS pinning.
Under this model, as long as there are enough active DAO client nodes and IPFS nodes in operation, IPFS can function as a reliable store for off-chain data, such as metadata indices, appendices, datasets, code, media, etc.
This could provide a layer for the forum, allowing more comments to be posted and made visible to other clients without paying blockchain fees. Comments can be transcribed as posts to the blockchain when their value is deemed sufficient.
So far we've talked about the interactions between the Validation pool and the Forum.
The model we have for our generic MVRP architecture includes two more smart contracts,
an Availability contract and a Business contract.
The Availability contract
The Business contract
Key Points
Why do we need a Forum?
Why do we need part of the Forum to be off-chain?
Therefore off-chain storage is required.
Therefore off-chain transaction batching is required.
How will we secure the off-chain Forum nodes?
Forum node operators should verify this hash before deploying their forum node.
Clients will be authenticated by signing a message with their reputation-holding key.
What are the storage requirements for the off-chain Forum?
Therefore we should avoid centralizing this off-chain storage.
Existing decentralized storage systems can form a part of this solution. i.e. IPFS, filecoin, Arweave, etc.
each forum node will also need access to an operational database.
This will provide the ability to maintain indices, relations, and materialized views,
necessary for serving data to clients and for processing incoming client actions.
Why do we need messaging among the off-chain Forum?
We want each client to be notified when other clients perform actions in the Forum.
We can use this to enable Forum nodes to connect to each other as well.
we need messaging among Forum nodes to support the consensus protocol for a distributed operational database.
What are the on-chain dependencies for the off-chain Forum?
in order to secure communications in the off-chain network.
We can use a smart contract to receive fees for this purpose.
This can function as an investment vehicle. Funders can be paid back when the DAO receives payments from other sources.
Off-chain Forum, High Level Architecture
For simplicity, this diagram omits some contracts, especially various contracts related to DAO governance.
changed title from MVPR Architecture: CRDAO to {+[SD-5] +}MVPR Architecture: CRDAO