Rob whatever you fixed in latest commit fixed issue I had on my one of my linux sanctuaries,
folders and .dat files deleted, I couldnt get it to reindex, it would be stuck at block 0 for a little bit and crash, works now!
Great!
Yes, we had at least 2 bugs, and Im a little happier when I see the reason for them instead of programming around the issue until we drop.
The first bug, the reason we couldnt sync from 0, was due to a 2 digit rounding error in the old contract. I found out that the grand total magnitude with 25 researchers, out to the 2nd digit in scale was 1000.03, which created an attempted overpayment, and due to the grandfather rule we synced over that block but it "covered" up the problem. Now the system shoots for a 998 magnitude, and uses 3 digit scale, so that appears to have solved the syncing issue permanently.
I have a lot of code coming today so we wont be in this lull long. Ive been working on the integrated integrity feature. I truly think if we can reconcile the rosetta work with utxo's, we will be the first coin to have trustable PODC. PODC that exceeds the righteousness of the Pharisees and scribes, just kidding. No PODC that exceeds the trust of POS, because POS is based on UTXO (unspent outputs).
So with greater integrity comes a greater workload for the controller wallet and the sancs, that means more propensity for clerical errors or should I say technical errors in the sancs. For example what if a sanctuary fails to verify one task out of 100, due to a vultr network tcp error, I would hate to throw the entire contract off (meaning our SanctuaryQuorum would fail and no one would be paid). And that would happen if one unverified task lowered a researchers task integrity level from 100 to 91.123 and other sancs felt a different way about various researchers. The other one is UTXOWeight, although Im not worried about that as much, because it will always verify correctly, but it needs to established that the window of UTXOWeight must be exact, for example if one researcher sent 2 UTXO's in 8 hours of PODC updates, in 24 hours period, then the Sanc creating the contract must have an exact start-endtime snapped into the grid as well.
To handle this, Im creating a UTXO Weight breaks chart. This means researchers will receive a Percentage reward based on the UTXO Stake Amount inside the PODC update from a chart, with relatively large breaks. Something like 1-50000 BBP is in the chart, (the chart ends at 50,000 bbp max to not give much advantage to whales), and we have a break every 10000. This means only 6 allowable reward levels: 0, .2, .40, .60, 1.00 Etc. This way the contracts will tend to "jive" across all sancs. Im doing the same thing with the Task integrity system - the validated tasks as compared to total researcher tasks will snap to a grid, so that the user receives a percentage float result based on .20 breaks. I think what happens in the end is everyone is assessed with 3 values per day that comprise ones magnitude: UTXOWeight (0-100%), TaskWeight (0-100%) and RosettaRAC (Current RAC from Boinc). We multiply your UTXOWeight*TaskWeight*RosettaRAC to arrive at your magnitude while preprocessing the file. These levels will allow us to write an exportable excel report with trustable integrity per day with actual provable details per researcher. (If for example Rosettas SQL DBA is being held up at gunpoint after one of our timestamps, it will disrupt the integrity of those affected researchers due to timestamp manipulation).
Finally, I am adding sporks for system enabling of the UTXOWeight, and TaskWeight as distinct features. This allows us to shutdown those two features and revert back to plain vanilla PODC in case something goes haywire in prod. The most common thing I can think of is not that UTXO "blows up", but that the Task Validation system malfunctions - possibly because the boinc servers are down while Rosetta is up. Im thinking if something in the public interface changes, for example, if boinc shoots out emergency updates that break compatibility with biblepay, we can shut off TaskWeight with a spork, and still survive in our old plain vanilla PODC mode (daily RAC rewards) until that other piece is fixed again. So we would have more granular survival levels: Plain PODC, PODC + UTXO + TaskAudits, or POBH mining only - etc.