Voter Reward Payout Script for DPOS Nodes


#1

To be able to automatically calculate the rewards for voters of each elected node, a script may need to be developed. An often used script for the same purpose has been already developed for Lisk and Ark and because of the MIT License it may as well be adjusted for ELA: https://github.com/dakk/lisk-pool

I will review and plan the process of the development and also help with development. Of course, it will be open sourced and anyone is welcome to contribute.

If you think this should be developed, please like this post so we may see the demand.


#2

Thanks for put this up to CR, I’m supporting this initiative.


#3

Hey,
Much needed indeed. Ark uses a script called TBW: https://github.com/eugeneli/Ark-TrueBlockWeight
I believe the average Ark delegate node shares about 90% of its total rewards, which highly incentivizes ARK holders to stake on those delegates.
An open-source script that allows Elastos pariticpant nodes to share their rewards will lead to a more robust and distributed network of nodes. Therefore I am in total support of this initiative.

Cheers.

–Pookiedoge


#4

Thank you so much Strauss this is very much needed. I hope to see it come true :slight_smile:


#5

As there is a large demand for the script, we will start with the research, planning and development of the script soon.

Thanks everyone for the feedback!


#6

You can also take a look of the DPOS Alliance , this being written by Chinese community.


They is a revised version for 36 votes eligibility , the english version should be out soon.


#7

Thanks @strauss, I believe the community lacks tools for now and your help in this field will be a huge asset for the long term development of Elastos and its ecosystem


#8

The following should serve as a collection of possibilities for voters to see public details about the payouts from a specific supernode and some details about its voters, as well as the options for supernodes to collect statistics about their voters into a list. As the last step, the payout initiation is to be decided if it should be handled by the same script, or done manually from a separate wallet.

Please read through the options and add any missing details or options in the comments you would require as a voter or as a supernode.

Voter Reward Payout Script for DPOS Nodes

Public Supernode Overview:

The public supernode overview is the public facing collection of statistics about the supernode, its voters and payout details anyone can see in their browser.

  • Supernode unique short description & links (optional)

  • Date of last payout

  • Date of next payout

  • Rank of supernode

  • Productivity (uptime since eligibility to forge rewards)

  • Approval (percentage of votes across entire network)

  • Total payout until now

  • Total pending payout (since last payout)

  • Number of voters

  • List of voters by address -> sorted in descending order by vote weight

  • Language switcher (localization)

Supernode Payout Options:

The supernode payout options can be set by the supernode in the configuration. These settings are protected and are only available to the supernode.

  • Calculate own costs ( monthly costs in USD -> convert USD to amount of Rewards)
  • Total percentage of rewards to distribute from profit (income minus costs) OR total
  • Distribution schedule: weekly, monthly, custom, manual
  • Minimum payout amount
  • Minimum voter weight to be eligible for payout
  • Subtract transaction fee from voter payout (yes/no)
  • Coins to release: ELA + (later from sidechains) checkbox
  • Blacklist address from payout (for example if key is lost by voter)

Required Voter Details:

  • Voter public address
  • Voter DID
  • Initial vote or Change of vote (initial vote, and for every change of votes: repeat + log)
    • Start date of vote + vote weight for node
    • End date of vote -> set vote weight to null

Supernode Payout Process:

The payout process is the distribution of funds based on the previously collected statistics about voters.

1.Manual Payout Option (Most secure):

  • Download list of voter statistics into a csv / xml / json format

  • Open wallet

  • Load list

  • Double check list (full overview)

  • Submit transactions -> payout

  • Optional: Statistics Script running on server may recognize payouts or can be marked manually

  • Requirements: Allow downloads of statistics from script, Web Wallet integration for uploads and starting bulk transactions OR custom desktop wallet for supernodes

2.Automated Payout option:

  • Script gathers voter statistics automatically

  • Payouts are initiated based on cron jobs (scheduled)

  • Requirements: Wallet API integration -> very high security standards needed


#9

Thank you Strauss. This will help us a lot.


#10

Very good progress! Thanks for your help


#11

Nice Good work!! AN idea, could we have for the voter’s side a message showing
“Participent Node, Standy-by Node and Active Node” and the ratios for each activity? (and show it like Red, Orange and Green?)


#12

@guikoo Great idea, thank you!


#13

DMA has also mentioned that they could make a script. Are you already cooperating by chance? I think between the two of you, it would be extremely fail-safe and trustworthy.