True Block Weight Delegate Payout Script
Type of Project
July 1, 2017 - August 23, 2017
Funding Amount Requested
Project Description - Summary
Right now, the best way to disincentive pool hoppers is @toons’s Arky script. Which works great using fidelity. But fidelity only estimates how much a person contributed to the pool over time by looking at timestamps and how long they’ve been in the pool. If you set fidelity to 1 day, people who joined in less than 24 hours but did stay to help forge a few blocks won’t get paid for their contribution.
TBW will give a perfect calculation of how much a voter contributed to the delegate by looking at each forged block, whether or not a voter was voting for that delegate when that block was forged, and how much their vote weight was for that block at that time. This will allow us to calculate a perfectly accurate share for each voter per block forged.
We also plan on adding rolling average balance (RAB) tracking after the initial TBW script is complete. Calculating each voter’s RAB will add another layer of deterrence against different types of pool hoppers including:
- People who leave a wallet voting for a delegate with 0 balance and then move a large amount of ARK in before the delegate pays out.
- People who change their wallet’s vote right before a delegate pays out.
biz_classic delegate team
Phase 0 - Research how Ark nodes actually work, this includes running a local node so we can peer into the postgres database, researching how everything fits together, and writing code to read from the database. (1000 ark)
Phase 1 - Verifying the blockchain data in the database is correct and can be used to do calculations. (500 ark)
Phase 1.5 - Debugging and testing the code from Phase 0. (500 ark)
Phase 2 - Write a proof-of-concept vote weight script based on the block data in the database. (1000 ark)
Phase 3 - Start working on the actual true block weight script after confirming the proof-of-concept works. (1000 ark)
Phase 3.5 - Do test runs using TBW to confirm it correctly calculates payouts for voters. (500 ark)
Phase 3.75 - Do test runs using TBW on pool hopping addresses to confirm it accurately punishes them for hopping. (500 ark)
Phase 4 - After the TBW script is complete, wrap it up into a nice API for other delegates to be able to use and write documentation on installation and usage. (1000 ark)
Phase 5 - After TBW is released for public use, we will most likely have to handle bug reports and other community feedback and then implement their requested changes. (500 ark)
Phase 6 - Once the TBW is out in the wild, we’ll start implementing RAB on top of TBW to further deter pool hoppers. The development process for RAB will be similar to TBW in that we will first have a proof of concept, then testing, then release for feedback. (1500 ark).
We are currently at Phase 2. We have a local node running that updates the postgres database with new block data and can get live blockchain data from it. This mean we can start writing a proof-of-concept true block-weight payout script.