mirror of https://github.com/vacp2p/rfc.git
28/STATUS-FEATURING: Propose community featuring spec (#432)
This commit is contained in:
parent
b2765e759d
commit
7cd14d049b
|
@ -0,0 +1,56 @@
|
||||||
|
---
|
||||||
|
slug: 28
|
||||||
|
title: 28/STATUS-FEATURING
|
||||||
|
name: Status community featuring using waku v2
|
||||||
|
status: raw
|
||||||
|
tags: waku-application
|
||||||
|
editor: Szymon Szlachtowicz <szymon.s@ethworks.io>
|
||||||
|
---
|
||||||
|
|
||||||
|
This spec is a proposition of voting on community featuring over waku v2.
|
||||||
|
|
||||||
|
# Overview
|
||||||
|
|
||||||
|
When there is a active community that is seeking new members, current users of community should be able to feature their community so that it will be accessible to larger audience.
|
||||||
|
Status community curation DApp should provide such a tool.
|
||||||
|
|
||||||
|
Rules of featuring:
|
||||||
|
- Given community can't be featured twice in a row.
|
||||||
|
- Only one vote per user per community (single user can vote on multiple communities)
|
||||||
|
- Voting will be done off-chain
|
||||||
|
- If community hasn't been featured votes for given community are still valid for the next 4 weeks
|
||||||
|
|
||||||
|
Since voting for featuring is similar to polling solutions proposed in this spec could be also used for different applications.
|
||||||
|
|
||||||
|
# Voting
|
||||||
|
|
||||||
|
Voting for featuring will be done through waku v2.
|
||||||
|
|
||||||
|
Payload of waku message will be :
|
||||||
|
```ts
|
||||||
|
type FeatureVote = {
|
||||||
|
voter: string // address of a voter
|
||||||
|
sntAmount: BigNumber // amount of snt voted on featuring
|
||||||
|
communityPK: string // public key of community
|
||||||
|
timestamp: number // timestamp of message, must match timestamp of wakuMessage
|
||||||
|
sign: string // cryptographic signature of a transaction (signed fields: voterAddress,sntAmount,communityPK,timestamp)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
timestamp is necessary so that votes can't be reused after 4 week period
|
||||||
|
|
||||||
|
# Counting Votes
|
||||||
|
|
||||||
|
Votes will be counted by the DApp itself.
|
||||||
|
DApp will aggregate all the votes in the last 4 weeks and calculate which communities should be displayed in the Featured tab of DApp.
|
||||||
|
|
||||||
|
Rules of counting:
|
||||||
|
- When multiple votes from the same address on the same community are encountered only the vote with highest timestamp is considered valid.
|
||||||
|
- If a community has been featured in a previous week it can't be featured in current week.
|
||||||
|
- In a current week top 5 (or 10) communities with highest amount of SNT votes up to previous Sunday 23:59:59 UTC are considered featured.
|
||||||
|
|
||||||
|
# Copyright
|
||||||
|
|
||||||
|
Copyright and related rights waived via
|
||||||
|
[CC0](https://creativecommons.org/publicdomain/zero/1.0/).
|
||||||
|
|
|
@ -9,6 +9,7 @@ bookMenuLevels: 1
|
||||||
- [21/WAKU2-FTSTORE]({{< relref "/docs/rfcs/21/README.md" >}})
|
- [21/WAKU2-FTSTORE]({{< relref "/docs/rfcs/21/README.md" >}})
|
||||||
- [24/STATUS-CURATION]({{< relref "/docs/rfcs/24/README.md" >}})
|
- [24/STATUS-CURATION]({{< relref "/docs/rfcs/24/README.md" >}})
|
||||||
- [25/LIBP2P-DNS-DISCOVERY]({{< relref "/docs/rfcs/25/README.md" >}})
|
- [25/LIBP2P-DNS-DISCOVERY]({{< relref "/docs/rfcs/25/README.md" >}})
|
||||||
|
- [28/STATUS-FEATURING]({{< relref "/docs/rfcs/28/README.md" >}})
|
||||||
- Draft
|
- Draft
|
||||||
- [1/COSS]({{< relref "/docs/rfcs/1/README.md" >}})
|
- [1/COSS]({{< relref "/docs/rfcs/1/README.md" >}})
|
||||||
- [3/REMOTE-LOG]({{< relref "/docs/rfcs/3/README.md" >}})
|
- [3/REMOTE-LOG]({{< relref "/docs/rfcs/3/README.md" >}})
|
||||||
|
|
Loading…
Reference in New Issue