Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(proof-of-contribution): bootstrap document #954

Merged
merged 12 commits into from
Jul 11, 2023
Merged

Conversation

moul
Copy link
Member

@moul moul commented Jul 6, 2023

This initial documentation serves as a centralized resource for proof-of-contribution, allowing for easy updates through small PRs.

The primary objective is to provide high-level concepts and directions while maintaining implementation flexibility.

Checklists...

Contributors Checklist

  • Added new tests, or not needed, or not feasible
  • Provided an example (e.g. screenshot) to aid review or the PR is self-explanatory
  • Updated the official documentation or not needed
  • No breaking changes were made, or a BREAKING CHANGE: xxx message was included in the description
  • Added references to related issues and PRs
  • Provided any useful hints for running manual tests
  • Added new benchmarks to generated graphs, if any. More info here.

Maintainers Checklist

  • Checked that the author followed the guidelines in CONTRIBUTING.md
  • Checked the conventional-commit (especially PR title and verb, presence of BREAKING CHANGE: in the body)
  • Ensured that this PR is not a significant change or confirmed that the review/consideration process was appropriate for the change

@moul moul self-assigned this Jul 6, 2023
@github-actions github-actions bot added the 🧾 package/realm Tag used for new Realms or Packages. label Jul 6, 2023
@moul moul changed the title dev/moul/poc docs(proof-of-contribution): bootstrap document Jul 6, 2023
@github-actions github-actions bot removed the 🧾 package/realm Tag used for new Realms or Packages. label Jul 6, 2023
@moul moul requested a review from MichaelFrazzy July 6, 2023 19:35
Copy link

@MichaelFrazzy MichaelFrazzy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks great to me, just confirming the terminology and what worxDAO represents. If we are thinking of naming Contributor DAO worxDAO now, I'll make sure all of my docs reflect that if it's decided on.


### `r/system/valset`

A realm (smart contract) that enables the `worxDAO` to update the validator set. Similar to a PoA system, the authority is decentralized in a DAO.
A realm (smart contract) that enables the `worxDAO` to update the validator set.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is worxDAO what we are now thinking of naming the main DAO instead of Contributor DAO? Just making sure, since last meeting we decided to scrap any form of GNOT holder "Token House" in favor of rolling all responsibilities into Contributor DAO.

Copy link
Member Author

@moul moul Jul 6, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, worxDAO derives its name from its reliance on worx as the metric for measuring contributions, but please note that changes may occur in the future.

Edit: hey @MichaelFrazzy, I made minor changes, I suggest you to re-review again, please.

@moul moul marked this pull request as ready for review July 6, 2023 20:03
@moul moul requested a review from a team as a code owner July 6, 2023 20:03

## High-level schema

____ ____ ____ __ _ __ __ _
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use images for graphs? It does not render properly on all screen sizes:
screenshot-github com-2023 07 07-09_52_38

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it looks super cool 😎

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we can if they can be generated from something (graphviz?).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we can if they can be generated from something (graphviz?).

Yes! I usually use Graphviz DOT language to generate the image and keep that code as an HTML comment to make it easier to modify for the next one: https://edotor.net/

@ajnavarro
Copy link
Contributor

Just in case they might be useful, here you have my notes about PoC:

Proof of contribution is a consensus mechanism that tries to remove financial incentives and it is focused on expertise and values.

Proof Of Contribution

It is still a WIP, but a good contribution will be defined by:

  • quality, collaboration ≥ final merge status -> rewarding useful failures
  • template or free-form; on-chain, on GitHub, or other platforms; tech-related, or not
  • predefined tasks or unsolicited, complete or part of a solution
  • -> judged by the [[Evaluation DAO]]

Why PoC?

  • mitigates corrupting influence of tokens on projects
  • minimizes risks of Sybil attacks, takeovers, and alliances
  • enables decentralized voting with individual votes and dynamic voting power based on tiered levels
  • emphasizes project principles and values over monetary gains
  • promotes independence and decentralization through multiple voting methods
  • empower other chains

Copy link
Member

@zivkovicmilos zivkovicmilos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like that the document is concise and to the point 💯

I've left some minor comments, otherwise it looks good

Side question:
What tool did you use (if any) for the ASCII graphics (specifically the diagram)?

Edit by @moul: I currently use Monodraw (on macOS), but I wish I could find an equally excellent tool that works on the web or across multiple platforms.

docs/proof-of-contribution.md Outdated Show resolved Hide resolved
- Governance and distribution managed through smart contracts.
- Chain monitors contract changes (e.g., `valset`) to configure `Tendermint2`.
- No staking involved in consensus.
- Chain fees distributed to contributors and validators, not stakers.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a side question, how would chain fees be distributed to contributors?
I understand that block creators (validators) will get the block creation reward. Would this be a protocol-level distribution per-block?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see in the graphic below that these block rewards are meant to be pooled into a bucket, that will get distributed out to validators and contributors. Is this the general idea?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see in the graphic below that these block rewards are meant to be pooled into a bucket, that will get distributed out to validators and contributors. Is this the general idea?

same question and this is something in my mind too. fees will be collected first into fee pool, and distributed to validators and contributors according to a certain ratio, which is determined by contract side, maybe in the Gor module.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's the idea, a pool with fees, then a distribution mechanism.

We also need to rethink slashing since it will probably not be fully automatic.

Copy link
Member Author

@moul moul Jul 8, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In PoC, validators are not involved in a marketing race like PoS systems. Their compensation may be a fixed ratio or monthly "salary," aiming to incentivize them as reliable infrastructure maintainers.


### Evaluation DAO

The system employed by the `worxDAO` to incentivize contributions with `^worx` tokens.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have any more information on these $worx tokens?

Also, is this a typo (^worx)?

Copy link
Member Author

@moul moul Jul 8, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^worx -> Not a typo; it's not a token, and it's not transferable. It's a score that can only increase. However, in discussions, we may still use the term "token", maybe we can succeed by always using the term "score"?

I suggest you looking this presentation: https://gnolang.github.io/workshops/presentations/2023-06-06--buidl-asia--manfred/presentations.slide.html#6


## High-level schema

____ ____ ____ __ _ __ __ _
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it looks super cool 😎

moul added 2 commits July 10, 2023 18:56
Signed-off-by: Manfred Touron <[email protected]>
@MichaelFrazzy
Copy link

MichaelFrazzy commented Jul 10, 2023 via email

moul added 2 commits July 11, 2023 10:14
@moul moul merged commit 5d32c39 into gnolang:master Jul 11, 2023
@moul moul deleted the dev/moul/poc branch July 11, 2023 11:00
Doozers pushed a commit to Doozers/gno that referenced this pull request Aug 31, 2023
@moul moul added this to the 🚀 main.gno.land (required) milestone Sep 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ✅ Done
Archived in project
Archived in project
Development

Successfully merging this pull request may close these issues.

5 participants