Skip to content

unit214/aepp-governance

 
 

Repository files navigation

Governance Aepp

This repository will hold the full system used for the aeternity polling system. It consists of the used smart contracts, including their tests. A trustless backend service used for aggregation and caching of results for better presentation. Additionally, there will be an frontend-aepp that allows for user-friendly registration, discovery and participation in polls.

Resources

Introduction

Earlier this year there was a proposal to include a polling system directly in the aeternity protocol, in Polling System Protocol, but this was not finalized yet.

This project aims to build a first version of the aeternity polling system as smart contract and aepp to explore governance models better, so in a later stage a more informed decision can be made of what to include on protocol level.

The governance aepp will implement a delegated weighted polling mechanism, polls and votes will be registered on-chain together with minimal meta information. Discussions about poll proposals should happen off-chain, e.g. the aeternity forum. Due to building this as smart contract system a few limitations are introduced, for example the final poll results will not be published within the smart contract, but will be verifiable using external scripts.

Rules

  • Poll voting options are non-binary but limited to one vote per account or delegatee
  • There can only be one delegation from one account, but multiple for one account
  • Delegations are global and permanent, meaning one delegation is in effect for all polls
  • Delegations can be updated and revoked at any time by the delegator
  • Delegations can be recursive
  • Voting on polls does overwrite a delegation from this account for the single poll
  • Votes can be updated and revoked until a poll is closed
  • A poll is counted with the state of its closing height, meaning considering the active delegations and account stakes at this height
  • The closing height is defined on poll creation, but is optional to be able to create ongoing signaling systems

Ideas

  • Each poll should be a single smart contract and in the future there could be multiple registries that provide different views on the same polls
  • Standardizing the polling system as aeternity aexpansion could yield more powerful alternative implementations without breaking compatibility in the future
  • Certain events should be logged in the smart contract to be able to listen for them

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 52.3%
  • Vue 42.4%
  • SCSS 3.5%
  • HTML 0.7%
  • CSS 0.5%
  • Dockerfile 0.4%
  • Shell 0.2%