Delegate Stellardynamic recently processed a set of payouts to his voters that utilized a new payout tool we have been collaborating on for some time. The tool itself has the power to audit all payouts, past and present, for utmost accuracy. Here is a breakdown of what this means:
How we got here
In recent times, bugs in both the Lisk API and 3rd party pool software were discovered that could have caused possible payout discrepancies. This led to a need for many delegates to inspect their payout logs very carefully. To compound the problem, some out of date payout mechanisms being used do not provide granular enough tracking in their logs to provide adequate assistance. Realizing that his own pool may have been affected by these issues, Stellardynamic sought out a better solution. Eventually he ended up contacting me to brainstorm. We spent weeks conceptualizing an idea for a new payout tracker that could audit past payouts and provide the most accurate payouts possible. It took even more time to develop and test, but after all this time, we have finally completed what we believe to be the first full audit of a delegates payouts.
The downside of other tools
These other tools all have their merits, but there is one obvious downside. Each payout relies on every other payout to be 100% accurate. This is because they are processed in complete isolation from one another. If there is an error, it remains undetected unless someone is REALLY looking at the data.
It should be noted that these issues with payouts are almost always done inadvertently.
How this new tool solves this problem
The design of this new tool is actually quite simple:
1. Gather a list of all addresses that were voting for the delegate at the moment a block was forged by that delegate
2. Calculate how much Lisk each address had in their account at the time the block was forged
3. Calculate how much Lisk each address is owed from that block
4. Add up all of the Lisk owed to every address from all forged blocks
5. Subtract what was actually paid out – minus exceptions, such as donations
Therefore, the tool looks at the ENTIRE chain and history of payouts when doing its calculations. Nothing is isolated. If there is an error in a previous or future payout, it will be corrected with the next payout.
What this means for the future
Stellardynamic will continue to use this tool as his pending/payout tool for the future, which means his payouts will continue to be audited for accuracy.
If any delegates are interested in utilizing this tool for any reason, please contact me on Lisk.chat (TonyT908). I will be happy to answer any questions you may have.
A very special shout out goes to Lemii. Late in development, we decided to out source the job of creating an actual payout mechanism for the tool. Lemii was an obvious choice, as he has proven to be a very talented, enthusiast, and dedicated member of the Lisk Ecosystem. He was able to make a perfect tool for the job, utilizing Lisk-Elements. Thank you so much Lemii!