Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Additional Benefits

The Foundation for Interwallet Operability Board already has needs for a voting system as described here /wiki/spaces/~268441363/pages/15368275 and here FIO Board Member Candidate Submission . If we build this for everyone’s use and not just the Foundation, it can have far more value for the network. Though other solutions may be simpler in the near term for Foundation voting (offchain candidate registration, vote tally from sending funds to specific addresses created for each candidate, etc), they won’t create any additional potential value for the network. Due to the time constraints of the first election, there may not be time to build this FIO Group functionality for the first vote in April.

...

The front end interface could start out simply and follow a similar UI/UX design and onboarding path to what is already being designed for the https://fioprotocol.atlassian.net/wiki/spaces/WP/pages/1572968/FIO+dApp . If we decide to move forward with this idea, we can flesh out the front end more to better understand the complexities involved.

Technical Implementation

Zenuml graph macro lite
uuide4969cc7-bb5f-41c4-9005-ef0c5d979cc5
updatedAt2021-01-14T23:35:09Z

Tables

Expand
titleTables

Groups (groups)

  • group_fio_public_key

    • FIO Public Key of the account which owns the domain.

    • Used for historical purposes once account becomes an msig.

  • domain

  • member_application_fee

    • in SUFs

  • date_created

Pending Members (pendingmembr)

  • member_name_requested

    • FIO address at domain

  • domain

  • account

  • bio

    • limited to 255 characters

  • application_date

Members (members)

  • member_name

  • domain

  • account

  • bio

    • limited to 255 characters

  • date_added

  • last_verified_date

    • Date the member was added to the group and then later updated each time membership is verified.

  • is_admin

    • set to true for groups creator or if elected as an admin of the group)

Admin Candidates (admincandids)

  • domain

  • candidate_account

Votes (votes)

  • domain

  • epoch

    • integer that increases with each election

  • voter_account

  • candidate_account

  • rank

    • (question) use ranked choice voting

    • If a member votes for 5 candidates, they would rank each vote 1 through 5.

Vote Results (voteresults)

  • id

    • (question) auto generated incrementing integer

  • domain

  • epoch

    • integer that increases with each election

  • candidate_account

  • rank

    • The resulting rank for this candidate after the vote is complete

  • votes

    • Total number of votes received by this candidate

Elections (elections)

  • domain

  • epoch

  • vote_time

  • number_of_admins

    • Integer for the number of admins that are being elected.

    • This will be the number of accounts on the msig that owns the domain.

  • vote_threshold

    • Integer for the number of admin votes need to approve any action requiring permissions of the group account.

  • votes_per_member

    • Number of votes each member gets for this election.

    • For example, if doing approval voting like EOS, you might allow for 30 votes to fill 21 spots. Or you could use the eosDAC model of 5 votes to elect 12 positions.

  • is_complete

    • Marks if this election is completed.

    • Note: this field may not be needed if we just want to use “date_certified is not null” to accomplish the same thing.

  • date_certified

    • The date this election was marked as complete.

...