Make miner slightly more cautious about state #1077
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A recent incident revealed the reputation miner was a bit brittle. It submitted a new reputation hash, but the account being submitted from had (very nearly) run out of xdai, so the transaction was not able to be mined, and just sat pending in the pool with the client
await
ing it. When I topped up the miner, the transaction was mined, and the miner continued, but had missed several cycles and so ended up out-of-sync. This PR is intended to fix that issue, by having the miner check that the on-chain accepted state is the one it expects before applying a reputation update log and continuing to mine.While I was in there, I took the opportunity to abstract some test logic that was repeated in the relevant tests.