A “daily” superblock for BiblePay is the generic smart contract (GSC) reward block that occurs every 205 blocks. This is the daily reward for your involvement in the current campaigns such as Proof of Giving (PoG), Healing (write prayers), and Proof of Orphan Mining (POOM) – sponsoring CameroonONE orphans. You would think “daily” superblock is timed to occur every 24 hours, but in the blockchain world, a block day does not always line up to a 24 hour day. It is never exact since the process of mining does not allow for exact predictable times. Over time though, the role of a good difficulty algorithm should allow the “daily” super block to be consistent and very close to 24 hours.
Height: 150080 , 150285, 150490, 150695, 150900, etc
Should a “daily” super block be 24 hours?
The time between daily super blocks (e.g. GSC Smart-Contract Reward) is 23 hours instead of 24 hours. BiblePay was initially designed with 7 minute blocks for 205 blocks per day. 86400 seconds in a day divided by 205 blocks is 421.463414634 seconds. Convert those seconds into minutes and you get 7.0243902439 minutes per block.
Reason why “daily” superblock is 23 hours
I posted this as an issue on BiblePay Evolution’s GitHub. I am under the impression that Dark Gravity Wave (DGW) should be able to re-adjust the difficulty so that block times are closer to 24 hours (205 blocks) per day. Since the daily super block times averaging 23 hours a day, why is the “daily” superblock not occurring every 24 hours?
Rob said this is the reason for the clock being a little faster:
What I am doing is taking a look at the big picture: from the grand scheme, our clock has been SLOW. (We emitted 142000 out of 169000 expected). Now we are running fast in the short term with ABN. So the masterclock mitigation figure will recommend that we run DGW fast until we near the target.
This means that technically right now, because we ran slow for 2 years and we are running fast right now, we will most likely see a cancellation and will need to take NO action for the next wallet release.
The benefit with the current situation with Anti Bot Net (ABN) turned on is that the variance in block time is much tighter. That means from block to block, the time between blocks is in a shorter. Previously, with high difficulty, a block may have taken 45 minutes to mine where your target is 7 minutes. The current setup allows for better experience to wallet users.
The advantage is that smart contract rewards occur more often, so your rewards receive an extra reward. The downside is that time the “daily” superblock changes each day. Is it important that the “daily” block occur at the same time each day?
Chart Data
If you look at the past 60 days (August 2019 to September 2019), one super block day is 23 hours instead of 24 hours. The trend started when 1.4.4.x in July 2019 was released (around block 130k). See the downward trend in the charts below.
Chart 1 – Daily drift reset
In chart 1, after each daily super block (e.g. GSC Smart-Contract Reward block), I reset the drift. You see after block 130k, the drift (in minutes) is always negative (e.g. daily super block is less than 24 hours). Contrasting this, you can see before block 130k, the drift was more varied where the drift could be either positive or negative.
Chart 2 – Drift not resetIn chart 2, I set the ideal block time at 86400 seconds )24 hours) and it does not reset each day. This allows you to see the drift from block 118100 until the near present (in minutes). The trend is very noticeable travelling downward since July 2019.
Other difficulty adjustment algorithms
You may be interested in reading other difficulty adjustment algorithms:
- Dark Gravity Wave (DGW): Currently utilized by DASH. BiblePay is a fork of DASH.
- DigiByte’s DigiShield. Currently utilized by DigiByte and Lynx (an eco-friendly cryptocurrency)
- FeatherCoin’s enhanced Hash Rate Compensation (eHRC). Currently utilized by HTMLCOIN, FeatherCoin, Uniform Fiscal Object (UFO), GunCoin.
Source Data courtesy of chainz
You can review the source data I used from the chainz BBP explorer that I imported into Google sheets.