Crypto-Expert / stratum-mining

AIO Stratum mining server for various coins
Other
365 stars 348 forks source link

Trouble with VDIFF_FLOAT = True and VDIFF_MIN_TARGET = 0.004 on quark algo #347

Closed 31337Ghost closed 9 years ago

31337Ghost commented 10 years ago

Here are an exceptions on each submit call from miners:

2014-06-06 13:24:03,350 DEBUG protocol protocol.lineReceived # > {u'params': [u'user.1', u'3f4', u'00000000', u'539188ac', u'58ea0600'], u'method': u'mining.submit', u'id': 4}
2014-06-06 13:24:03,350 DEBUG mining service.submit # user.1 (0, 0, False, False, 1402046635) 0.00% work_id(3f4) job_id(5) diff(0.004000)
2014-06-06 13:24:03,350 DEBUG mining service.submit # Test place 1
2014-06-06 13:24:03,351 ERROR protocol protocol.process_failure # [Failure instance: Traceback: <type 'exceptions.TypeError'>: Decimal('0.004') is not JSON serializable
/usr/local/lib/python2.7/dist-packages/stratum-0.2.12-py2.7.egg/stratum/protocol.py:185:dataReceived
/usr/local/lib/python2.7/dist-packages/stratum-0.2.12-py2.7.egg/stratum/protocol.py:230:lineReceived
/usr/local/lib/python2.7/dist-packages/stratum-0.2.12-py2.7.egg/stratum/services.py:13:_handle_event
/usr/local/lib/python2.7/dist-packages/stratum-0.2.12-py2.7.egg/stratum/services.py:81:call
--- <exception caught here> ---
/usr/local/lib/python2.7/dist-packages/Twisted-13.1.0-py2.7-linux-x86_64.egg/twisted/internet/defer.py:137:maybeDeferred
/usr/local/lib/python2.7/dist-packages/stratum-0.2.12-py2.7.egg/stratum/services.py:78:_run
/home/ginger/pool/stratum-src-new/mining/service.py:167:submit
/home/ginger/pool/stratum-src-new/mining/interfaces.py:69:submit
/usr/local/lib/python2.7/dist-packages/stratum-0.2.12-py2.7.egg/stratum/protocol.py:279:rpc
/usr/local/lib/python2.7/dist-packages/stratum-0.2.12-py2.7.egg/stratum/protocol.py:97:writeJsonRequest
/usr/lib/python2.7/json/__init__.py:231:dumps
/usr/lib/python2.7/json/encoder.py:200:encode
/usr/lib/python2.7/json/encoder.py:263:iterencode
/usr/lib/python2.7/json/encoder.py:177:default
]
None

I'm sorry, but my knowleges in python are pure and I'm stucked on investigating exception's raise place. I'd lost my mind between two places in code: mining/service.py:

def submit(self, worker_name, work_id, extranonce2, ntime, nonce):
....
        log.debug("%s (%d, %d, %s, %s, %d) %0.2f%% work_id(%s) job_id(%s) diff(%f)" % (worker_name, valid, invalid, is_banned, is_ext_diff, last_ts, percent, work_id, job_id, difficulty))
        if not is_ext_diff:
            log.debug("Test place 1")
            Interfaces.share_limiter.submit(self.connection_ref, job_id, difficulty, submit_time, worker_name)
            log.debug("Test place 2")
.....

and mining/basic_share_limiter.py:

def submit(self, connection_ref, job_id, current_difficulty, timestamp, worker_name):
        log.debug("Test place 3")
        ts = int(timestamp)
....

I were waiting at least line "Test place 3" in debug log, but it didnt came. On this step my brain blowed up. Could you help me in understanding of this exception roots.

Thank you in advance!

31337Ghost commented 10 years ago

Sorry - also here are part of configuration file:

VDIFF_X2_TYPE = False
VDIFF_FLOAT = True

POOL_TARGET = 0.004  

VARIABLE_DIFF = False   

USE_COINDAEMON_DIFF = True     
DIFF_UPDATE_FREQUENCY = 86400 
VDIFF_MIN_TARGET = 0.004     
VDIFF_MAX_TARGET = 100         
VDIFF_MIN_CHANGE = 0.004      
VDIFF_TARGET_TIME = 10   
VDIFF_RETARGET_TIME = 120  
VDIFF_VARIANCE_PERCENT = 1  

ALLOW_EXTERNAL_DIFFICULTY = False