New release coming today
Posted: Tue Apr 09, 2019 9:30 am
This afternoon, we will be issuing a new release. We hope that the downtime will only be 30 seconds, but it could be longer, due to the complexity of this release. There are two main features we want to put out.
First, we discovered a flaw in ethash mining that affects E3 miners and other miners using the legacy "getWork" protocol. These miners poll the system repeatedly for new blocks. We discovered that, if a new block template is available for the miners but they have not polled for it, the submitted share for the block the miners still think is the latest will be compared to the hash of the latest block. Those shares are all rejected as stale, resulting in high reject rates. I corrected the code so that the correct blocks are compared for valid work, and the miner will receive 87.5% uncle credit, instead 0% for a rejected share.
Second, I added a UUID field to the block templates that are sent from the coin daemons. The purpose of this field is to be able to track how every mining server is reacting to every update. There is a bug that has been reported three times involving Litecoin Cash being in error, although we have not recorded it in error ourselves. I want to prove that all the mining servers are always consistent in all coins' error states at all times. We'll be able to write a debug program to alert us if the mining servers are out of sync, and continue investigating the Litecoin Cash issue next week.
The UUID change requires changes to several components of the system, so if any one of them is deployed incorrectly, the system will have bugs and the release might take longer than expected.
First, we discovered a flaw in ethash mining that affects E3 miners and other miners using the legacy "getWork" protocol. These miners poll the system repeatedly for new blocks. We discovered that, if a new block template is available for the miners but they have not polled for it, the submitted share for the block the miners still think is the latest will be compared to the hash of the latest block. Those shares are all rejected as stale, resulting in high reject rates. I corrected the code so that the correct blocks are compared for valid work, and the miner will receive 87.5% uncle credit, instead 0% for a rejected share.
Second, I added a UUID field to the block templates that are sent from the coin daemons. The purpose of this field is to be able to track how every mining server is reacting to every update. There is a bug that has been reported three times involving Litecoin Cash being in error, although we have not recorded it in error ourselves. I want to prove that all the mining servers are always consistent in all coins' error states at all times. We'll be able to write a debug program to alert us if the mining servers are out of sync, and continue investigating the Litecoin Cash issue next week.
The UUID change requires changes to several components of the system, so if any one of them is deployed incorrectly, the system will have bugs and the release might take longer than expected.