invader
|
|
February 28, 2014, 10:26:36 PM Last edit: March 01, 2014, 02:38:55 PM by invader |
|
Может кто знает утилиту наподобие stratum mining proxy от slush'а для использования в целях переключения воркера на разные пулы? (изменения хоста-логина-пароля в stratum протоколе) Пытаюсь, собственно, использовать эту штуку на своем хосте в качестве средства для отладки и перенаправления китайского барахла на нужный пул, но оно почему-то не работает как надо. Судя по краткому изучению проблемы, дело в каком-то хитром сочетании версии cgminer'а на этих самых китайских поделиях и особенностей stratum mining proxy. Вот что наблюдается 2014-02-28 16:50:49,862 DEBUG protocol protocol.writeJsonRequest # < {"params": ["invader_7", "1393618305 21849", "02000000", "5310ed81", "6c462936"], "id": 5, "method": "mining.submit"} 2014-02-28 16:50:49,865 DEBUG protocol protocol.writeJsonRequest # < {"params": ["invader_7", "1393618305 21849", "02000000", "5310ed81", "c6093180"], "id": 6, "method": "mining.submit"} 2014-02-28 16:50:49,867 DEBUG protocol protocol.writeJsonRequest # < {"params": ["invader_7", "1393618305 21849", "02000000", "5310ed81", "daba8012"], "id": 7, "method": "mining.submit"} 2014-02-28 16:50:49,873 DEBUG protocol protocol.writeJsonRequest # < {"params": ["invader_7", "1393618305 21849", "02000000", "5310ed81", "f247ad94"], "id": 8, "method": "mining.submit"} 2014-02-28 16:50:49,885 DEBUG protocol protocol.writeJsonRequest # < {"params": ["invader_7", "1393618305 21849", "02000000", "5310ed81", "b55c5aa6"], "id": 9, "method": "mining.submit"} 2014-02-28 16:50:49,909 DEBUG protocol protocol.lineReceived # > {u'error': [23, u'H-not-zero', None], u'result': None, u'id': 5} 2014-02-28 16:50:49,909 INFO proxy stratum_listener.submit # [47ms] Share from 'invader_7' REJECTED: (23, u'H-not-zero', None) 2014-02-28 16:50:49,954 DEBUG protocol protocol.lineReceived # > {u'error': [23, u'H-not-zero', None], u'result': None, u'id': 6} 2014-02-28 16:50:49,955 INFO proxy stratum_listener.submit # [89ms] Share from 'invader_7' REJECTED: (23, u'H-not-zero', None) 2014-02-28 16:50:49,955 DEBUG protocol protocol.lineReceived # > {u'error': [23, u'H-not-zero', None], u'result': None, u'id': 7} 2014-02-28 16:50:49,955 INFO proxy stratum_listener.submit # [88ms] Share from 'invader_7' REJECTED: (23, u'H-not-zero', None) 2014-02-28 16:50:49,956 DEBUG protocol protocol.lineReceived # > {u'error': [23, u'H-not-zero', None], u'result': None, u'id': 8} 2014-02-28 16:50:49,956 INFO proxy stratum_listener.submit # [82ms] Share from 'invader_7' REJECTED: (23, u'H-not-zero', None) 2014-02-28 16:50:49,956 DEBUG protocol protocol.lineReceived # > {u'error': [23, u'H-not-zero', None], u'result': None, u'id': 9} 2014-02-28 16:50:49,957 INFO proxy stratum_listener.submit # [71ms] Share from 'invader_7' REJECTED: (23, u'H-not-zero', None)
Причем иногда даже проскакивает accepted, но количество их несопоставимо мало. 2014-02-28 16:51:20,407 DEBUG protocol protocol.writeJsonRequest # < {"params": ["invader_7", "1393618403 21850", "02000005", "5310ede3", "b9c642c3"], "id": 638, "method": "mining.submit"} 2014-02-28 16:51:20,408 DEBUG protocol protocol.writeJsonRequest # < {"params": ["invader_7", "1393618403 21850", "02000006", "5310ede3", "c0d72bb3"], "id": 639, "method": "mining.submit"} 2014-02-28 16:51:20,471 DEBUG protocol protocol.lineReceived # > {u'error': None, u'result': True, u'id': 638} 2014-02-28 16:51:20,471 INFO proxy stratum_listener.submit # [63ms] Share from 'invader_7' accepted, diff 2 2014-02-28 16:51:20,525 DEBUG protocol protocol.writeJsonRequest # < {"params": ["invader_7", "1393618403 21850", "02000006", "5310ede3", "3c66a94c"], "id": 640, "method": "mining.submit"} 2014-02-28 16:51:20,555 DEBUG protocol protocol.lineReceived # > {u'error': [23, u'H-not-zero', None], u'result': None, u'id': 639}
Направленное напрямую на eligius китайское поделие работает нормально. Однако, будучи перенаправленным на него же через stratum mining proxy, выдает режекты с ошибками "H-not-zero". Ясное дело, проблема где-то в stratum mining proxy, но пока так и не понял как это исправить. EDIT: Похоже, этот патч мне помог! Взял отсюда. Это нужно исключительно для исправления несовместимости stratum mining proxy и некоторых версий cgminer. Корректно будет работать только в конфигурации с одним воркером. ( - remove; + add) jobs.py: ~ line 61 - return self.coinb1_bin + extranonce + self.coinb2_bin + return self.coinb1_bin + extranonce + self.extranonce2 + self.coinb2_bin
stratum_listener.py: ~ line 155 - subs2 = Pubsub.subscribe(self.connection_ref(), MiningSubscription())[0] - defer.returnValue(((subs1, subs2),) + (self.extranonce1+tail, extranonce2_size)) + subs2 = Pubsub.subscribe(self.connection_ref(), MiningSubscription())[0] + extranonce2_size = extranonce2_size + 1; + log.info("Expected extranonce2_size of '%s'" % (extranonce2_size)) + defer.returnValue(((subs1, subs2),) + (self.extranonce1, extranonce2_size))
~line 171 - result = (yield self._f.rpc('mining.submit', [worker_name, job_id, tail+extranonce2, ntime, nonce])) + result = (yield self._f.rpc('mining.submit', [worker_name, job_id, extranonce2, ntime, nonce]))
|