jamescoxon/nano_dpow_server

Smarter distribution of work

Opened this issue · 0 comments

Some enhancements I've been thinking about, with comments and questions for each point:

  1. Track the distribution of response times for each client. One question is how to keep this history when a client disconnects, because they are only identified by account (other clients can use it) and their IP (which can change). This relates to the next point...
  2. Rank the clients by their response times. Newly connected clients should be treated as "low rank".
  3. When sending out work, give it to enough clients such that the expected time is X (example: 1 second for urgent work, 30 seconds for precache work). This will also change with the Dynamic PoW
  4. Send a message to precache clients when work is no longer needed as it has been completed by another client. This is only needed for clients that usually take a long time to do work. Consider not increasing the work count by 1, maybe by 0.5 in this case, or a new column "incomplete work" which is also rewarded?

Point 4 would need a rework of https://github.com/jamescoxon/nano_distributed_pow_client