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.
PR in process to allow tracking solution status as it is updated. PR grew into a refactoring of the CM/Pool code since solution status can be updated at any of several nodes depending on the mining configuration.
One change not yet implemented that I'd plan to do later: have nodes report solution status to each other via a new POST /xxxx endpoint rather than have the solution status be returned in an HTTP response. This is to avoid having long running HTTP requests waiting on a tree of other HTTP requests before they learn the solution status.
@ldmberman also suggested an improvement: have some generic way for all nodes to report status to the Pool Server or CM exit node. When we revisit this PR it may be worht giving some thought to how nodes communicate status with each other - i.e. we may not need a dedicated "solution status" endpoint but rather a generic "status" endpoint that all nodes use to keep each other up today.
This change was also beginning to deduplicate the communication protocol - there are several CM and Pool endpoints that do the same thing. When we revist this PR we can also look into having CM operate more like a Pool (e.g. use jobs) this may also allow us to simplify a lot of code by removing redundant endpoints and communication channels.