Release issued today
Posted: Sun Sep 24, 2017 4:32 pm
Today, we issued a new release. Here's a list of all the changes that were made to the system since the beginning of the weekend.
- We discovered a major flaw where we there were strong references to some miners left over for long periods of time, which meant that they did not undergo garbage collection for a while after they disconnected. There were a number of effects from this issue, which has been present for at least a year and represents at least 50 hours of investigation.
- Miners who had disconnected but weren't cleared from memory messed with the weights of the coins being mined, causing the system to believe that miners were still mining some coins. Since coins tend to decline in profitability over time and those miners would never be reassigned, I suspect that this caused miners to be paid less than they should have, but I can't be sure. Whatever the case, this issue could not have caused miners to be paid less than the reported profitability, because that's just an average of what everyone is earning. I think the end result will be a slight increase in reported profitability compared to that over the past year.
- Performance was dramatically improved because now these "ghost" miners aren't being included in calculations. For example, I was able to remove a routine that periodically corrected summary tables that would get out of sync.
- All of the lost shares to this point were caused by this error. The error caused weights of coins to be present that could be in error due to having no price, since the miners who were mining those coins had disconnected.
- The next category of issues involves website changes, which I decided to focus on because we want to eliminate support tickets that might actually be caused by display issues rather than the mining server issues that I've been investigating to little success.
- First, I added a check to disconnect users who connect with two miners with the same n= parameter. This is important because n= is used to track miners on the website, and the hashrate of two miners with the same "n=" would constantly swap back and forth on the "earnings" page.
- Second, we added checks to hard disconnect users with an incorrect username, rather than just allowing them to connect and correct the issue later. There are at least 20 users per second being disconnected due to this issue now.
- Third, I discovered and fixed an issue where the share count over two hours never included the shares submitted during the past five minutes, so the count of shares would appear to be lower and converge on the actual number as time went on. The most immediate impact from this fix will be that some may notice that the share count begins increasing five minutes earlier than it would otherwise.
- I also added a line to send out an update when the first share is submitted. That way, instead of the website reading "no valid shares" for the first up to five minutes, now it will read one share for that period, along with "calculating hashrate." This is important especially for users who are mining static coins that have infrequent blocks and therefore won't see updates on the share count very frequently.
- We also discovered an issue that could cause new coins that were just added to be unavailable for mining without a restart. Now, even under that circumstance, new coins will always be available for mining immediately upon addition.