patch5.patch 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. From eef7ce9d9504e1e525b40bb138403fd4ed89bc0f Mon Sep 17 00:00:00 2001
  2. From: elbandi <bandispam@gmail.com>
  3. Date: Fri, 21 Aug 2015 21:16:51 +0200
  4. Subject: [PATCH] Apply immediately the first set_difficulty
  5. This is a workaround for pool, who send the first difficulty after notify
  6. ---
  7. util.c | 16 ++++++++++++----
  8. 1 file changed, 12 insertions(+), 4 deletions(-)
  9. diff --git a/util.c b/util.c
  10. index 99a0f0f1cc..d5f3c64d84 100644
  11. --- a/util.c
  12. +++ b/util.c
  13. @@ -2008,7 +2008,9 @@ static bool parse_notify(struct pool *pool, json_t *val)
  14. snprintf(pool->nbit, 9, "%s", nbit);
  15. snprintf(pool->ntime, 9, "%s", ntime);
  16. pool->swork.clean = clean;
  17. - pool->sdiff = pool->next_diff;
  18. + if (pool->next_diff > 0) {
  19. + pool->sdiff = pool->next_diff;
  20. + }
  21. alloc_len = pool->coinbase_len = cb1_len + pool->n1_len + pool->n2size + cb2_len;
  22. pool->nonce2_offset = cb1_len + pool->n1_len;
  23. @@ -2118,8 +2120,13 @@ static bool parse_diff(struct pool *pool, json_t *val)
  24. return false;
  25. cg_wlock(&pool->data_lock);
  26. - old_diff = pool->next_diff;
  27. - pool->next_diff = diff;
  28. + if (pool->next_diff > 0) {
  29. + old_diff = pool->next_diff;
  30. + pool->next_diff = diff;
  31. + } else {
  32. + old_diff = pool->sdiff;
  33. + pool->next_diff = pool->sdiff = diff;
  34. + }
  35. cg_wunlock(&pool->data_lock);
  36. if (old_diff != diff) {
  37. @@ -2917,7 +2924,8 @@ bool initiate_stratum(struct pool *pool)
  38. if (!pool->stratum_url)
  39. pool->stratum_url = pool->sockaddr_url;
  40. pool->stratum_active = true;
  41. - pool->next_diff = pool->sdiff = 1;
  42. + pool->next_diff = 0;
  43. + pool->sdiff = 1;
  44. if (opt_protocol) {
  45. applog(LOG_DEBUG, "Pool %d confirmed mining.subscribe with extranonce1 %s extran2size %d",
  46. pool->pool_no, pool->nonce1, pool->n2size);