Pages:
Author

Topic: [XMR] Monero stratum proxy (open-source) - page 2. (Read 81862 times)

newbie
Activity: 5
Merit: 0
September 08, 2014, 05:11:02 AM
#27
Where i can get RIGs stat on site? I see only summarized info.
sr. member
Activity: 328
Merit: 250
September 07, 2014, 03:20:46 PM
#26
Any chance to have simple windows friendly exe file for proxy?
hero member
Activity: 658
Merit: 500
Admin of DwarfPool.com
August 26, 2014, 09:31:26 AM
#25
Is it ok to use stratum proxy with minergate pool?


currently works only with DwarfPool
sr. member
Activity: 328
Merit: 250
August 26, 2014, 08:24:29 AM
#24
Is it ok to use stratum proxy with minergate pool?
hero member
Activity: 969
Merit: 1000
August 15, 2014, 03:08:56 PM
#23
i just edited and it works with other pools  Grin

client_service.py

    def handle_event(self, method, params, connection_ref):
        '''Handle RPC calls and notifications from the pool'''
        # Yay, we received something from the pool,
        # let's restart the timeout.
        self.reset_timeout()
        
        if method == 'job':
            '''Proxy just received information about new mining job'''
            if 'id' in params:
            (blob, job_id, target, user_id) = params["blob"],params["job_id"],params["target"],params["id"]
         
            # Broadcast to Stratum client
            stratum_listener.MiningSubscription.on_template(job_id, blob, target, user_id)
            
            # Broadcast to getwork clients
            job = Job.build_from_pool(job_id, blob, target)
            log.info("New job %s for %s" % (job_id, user_id))

            self.job_registry.add_job(job, True)
            else:
            (blob, job_id, target) = params["blob"],params["job_id"],params["target"]
            stratum_listener.MiningSubscription.on_template_all(job_id, blob, target)
            job = Job.build_from_pool(job_id, blob, target)
            log.info("New job %s for all" % (job_id))

            self.job_registry.add_job(job, True)
        else:
            '''Pool just asked us for something which we don't support...'''
            log.error("Unhandled method %s with params %s" % (method, params))





stratum_listener.py

    @classmethod
    def on_template(cls, job_id, blob, target, user_id):
        '''Push new job to subscribed clients'''
        #cls.last_broadcast = (job_id, blob, target)
        #if user_id:
        #    cls.user_id = user_id
        if cls.subscribers.has_key(user_id):
            subscr = cls.subscribers[user_id]
            subscr.emit_single({'job_id':job_id, 'blob':blob, 'target':target})
         
    @classmethod
    def on_template_all(cls, job_id, blob, target):
      for subs in cls.subscribers:
         try:
            subscr = cls.subscribers[subs]
            subscr.emit_single({'job_id':job_id, 'blob':blob, 'target':target})
         except Exception:
            pass


but many invalid job_id

{"id":19,"jsonrpc":"2.0","error":{"code":-1,"message":"Invalid job id"}}
not sure why i dont know python very well

packet logs:


{"jsonrpc": "2.0", "params": {"login": "437CToWfQb5HFFraTPhaS8ZfTthUwLdGgPHrciV9uWaS1jivf6r****PnhckPD", "agent": "proxy", "pass": "1"}, "id": 1, "method": "login"}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"id":"560139597905799","job":{"blob":"01009ed5b99f058b1f02b11e7d4dcac5ef8d5f2ac434727a38c9b7055ce59d59d08451f0b9fa4d0 0000000ed5eb0d5b5e8bef1970ff0e8ff6232341225c0c4a275e074aa85da2f7219570801","job_id":"544189373659901","target":"f6bc0800"},"status":"OK"}}

{"jsonrpc": "2.0", "params": {"login": "437CToWfQb5HFFraTPhaS8ZfTthUwLdGgPHrciV9uWaS1jivf6r****PnhckPD", "pass": "1"}, "id": 2, "method": "login"}

{"id":2,"jsonrpc":"2.0","error":null,"result":{"id":"254695240897126","job":{"blob":"01009ed5b99f058b1f02b11e7d4dcac5ef8d5f2ac434727a38c9b7055ce59d59d08451f0b9fa4d0 00000004f7c1e80eb27f4d27b2b6c3120b8173c7778e6cf3cee976b1628bd800e70d27b01","job_id":"434091379633173","target":"f6bc0800"},"status":"OK"}}

{"jsonrpc": "2.0", "params": {"nonce": "d3030000", "result": "c6146f8dc56967a2f17f2bd6c995bcc0bc8814a82451e1d9facc09aa68e80100", "id": "254695240897126", "job_id": "434091379633173"}, "id": 3, "method": "submit"}

{"id":3,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}

{"jsonrpc": "2.0", "params": {"login": "437CToWfQb5HFFraTPhaS8ZfTthUwLdGgPHrciV9uWaS1jivf6r****PnhckPD", "pass": "1"}, "id": 4, "method": "login"}
{"jsonrpc": "2.0", "params": {"login": "437CToWfQb5HFFraTPhaS8ZfTthUwLdGgPHrciV9uWaS1jivf6r****PnhckPD", "pass": "1"}, "id": 5, "method": "login"}

{"id":4,"jsonrpc":"2.0","error":null,"result":{"id":"318788292887620","job":{"blob":"01009ed5b99f058b1f02b11e7d4dcac5ef8d5f2ac434727a38c9b7055ce59d59d08451f0b9fa4d0 0000000bb9d5264e33dca797d5cc076d36f7312c2668a8918014b00c95886c3cf569e0b01","job_id":"329343325784429","target":"f6bc0800"},"status":"OK"}}
{"id":5,"jsonrpc":"2.0","error":null,"result":{"id":"531188863515853","job":{"blob":"01009ed5b99f058b1f02b11e7d4dcac5ef8d5f2ac434727a38c9b7055ce59d59d08451f0b9fa4d0 0000000510959c650a7d9e264ad669f6fd8406e90cefcafe87efac62d7c9ee082bb3f9301","job_id":"420845326664857","target":"f6bc0800"},"status":"OK"}}
{"jsonrpc":"2.0","method":"job","params":{"blob":"01009bd7b99f05d4f387598be1bac5ed947ea47c9a0aee0bace4ac84f7cf40c321e0d78e3c01080 000000075fa367d49fc5499789bf9dd90a2905ba9af403f505c616cbf4a25a53138257308","job_id":"480231605377048","target":"f6bc0800"}}
{"jsonrpc":"2.0","method":"job","params":{"blob":"01009bd7b99f05d4f387598be1bac5ed947ea47c9a0aee0bace4ac84f7cf40c321e0d78e3c01080 00000000b739358ffe4e43ed0c29665ce1aaac5cf2cf74dec4435abb7a452cf561e21d408","job_id":"308798798942007","target":"f6bc0800"}}
{"jsonrpc":"2.0","method":"job","params":{"blob":"01009bd7b99f05d4f387598be1bac5ed947ea47c9a0aee0bace4ac84f7cf40c321e0d78e3c01080 0000000f2c67f46b3cef2d5595731522af860fafce340d548d4d1628c987d02b64107ec08","job_id":"132683923211880","target":"f6bc0800"}}
{"jsonrpc":"2.0","method":"job","params":{"blob":"01009bd7b99f05d4f387598be1bac5ed947ea47c9a0aee0bace4ac84f7cf40c321e0d78e3c01080 00000006811f7c72abb962371f7337cbc65ca76d8e0ed8b807a1f735a4ce94fd8ec319708","job_id":"906486337329261","target":"f6bc0800"}}

{"jsonrpc": "2.0", "params": {"nonce": "92030000", "result": "e4ab04f8efda48353fb9b6f65438f0f1b5597ee4f3ccfa6c98a1b79290f70500", "id": "318788292887620", "job_id": "906486337329261"}, "id": 6, "method": "submit"}

{"id":6,"jsonrpc":"2.0","error":{"code":-1,"message":"Invalid job id"}}

hero member
Activity: 658
Merit: 500
Admin of DwarfPool.com
August 15, 2014, 06:39:52 AM
#22


The log file grows too fast. Is it possible to disable saving to the file?
Yes, in config.py change to
Code:
LOGLEVEL = 'INFO'
DEBUG = False

It still grows, although not so fast. Can we disable it totally?

Yes, just comment it like here

Code:
#LOGFILE = "logfile.log"
hero member
Activity: 896
Merit: 1000
August 15, 2014, 01:21:11 AM
#21


The log file grows too fast. Is it possible to disable saving to the file?
Yes, in config.py change to
Code:
LOGLEVEL = 'INFO'
DEBUG = False

It still grows, although not so fast. Can we disable it totally?
hero member
Activity: 658
Merit: 500
Admin of DwarfPool.com
August 14, 2014, 03:40:50 PM
#20
i use extremehash.com

it just doesnt accepts new jobs new blobs after a few mins it cant make shares because of miner stay at old job


Quote
Requirements
Works only with pools which support stratum-proxy.
Patch to node-cryptonote-pool by zone117x will be available soon.
Currently works on both DwarfPool servers.
hero member
Activity: 969
Merit: 1000
August 14, 2014, 03:29:24 PM
#19
i use extremehash.com

it just doesnt accepts new jobs new blobs after a few mins it cant make shares because of miner stay at old job

Traceback (most recent call last):
  File "F:\xmrproxy\stratum\protocol.py", line 240, in lineReceived
    result = self.event_handler._handle_event(msg_method, msg_params, connection_ref=self)
  File "F:\xmrproxy\stratum\event_handler.py", line 7, in _handle_event
    return defer.maybeDeferred(wrap_result_object, self.handle_event(msg_method, msg_params, connection_ref))
  File "F:\xmrproxy\mining_libs\client_service.py", line 45, in handle_event
    (blob, job_id, target, user_id) = params["blob"],params["job_id"],params["target"],params["id"]
KeyError: 'id'
2014-08-14 23:27:56,444 DEBUG protocol protocol.lineReceived # > {u'params': {u'target': u'37894100', u'blob': u'0100ccb7b49f05152c26542948f874e399dd7de2ff63d284eb5018d87dd062815379de28b05f0a0 00000009281034f729cb7264add78fae8fc8ac7f63f5ca86e48ab2e6feb279e6db1f28d02', u'job_id': u'254846778372302'}, u'jsonrpc': u'2.0', u'method': u'job'}
2014-08-14 23:27:56,447 ERROR protocol protocol.process_failure # [Failure instance: Traceback: : 'id'
C:\Python27\lib\site-packages\twisted\internet\selectreactor.py:151:_doReadOrWrite
C:\Python27\lib\site-packages\twisted\internet\tcp.py:215:doRead
C:\Python27\lib\site-packages\twisted\internet\tcp.py:221:_dataReceived
F:\xmrproxy\stratum\protocol.py:194:dataReceived
--- ---
F:\xmrproxy\stratum\protocol.py:240:lineReceived
F:\xmrproxy\stratum\event_handler.py:7:_handle_event
F:\xmrproxy\mining_libs\client_service.py:45:handle_event
]
Traceback (most recent call last):
  File "F:\xmrproxy\stratum\protocol.py", line 240, in lineReceived
    result = self.event_handler._handle_event(msg_method, msg_params, connection_ref=self)
  File "F:\xmrproxy\stratum\event_handler.py", line 7, in _handle_event
    return defer.maybeDeferred(wrap_result_object, self.handle_event(msg_method, msg_params, connection_ref))
  File "F:\xmrproxy\mining_libs\client_service.py", line 45, in handle_event
    (blob, job_id, target, user_id) = params["blob"],params["job_id"],params["target"],params["id"]
KeyError: 'id'




received packet :
{"jsonrpc":"2.0","method":"job","params":{"blob":"0100c3b6b49f0599eabed7720ce3475584da79ce595076b25c838b473ddfd0d1c7c4df662e7f7e0 0000000723ecf4c44a16fad34cc2b62108b542a189c37fc42fcf2a16abc109f62bb7a1502","job_id":"223006095364689","target":"8a201d00"}}

sent packet:
{"error": [-1, "'id'", "Traceback: : 'id'\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\selectreactor.py:151:_doReadOrWrite\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:215:doRead\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:221:_dataReceived\nF:\\xmrproxy\\stratum\\protocol.py:194:dataReceived\n--- ---\nF:\\xmrproxy\\stratum\\protocol.py:240:lineReceived\nF:\\xmrproxy\\stratum\\event_handler.py:7:_handle_event\nF:\\xmrproxy\\mining_libs\\client_service.py:45:handle_event\n"], "id": 0, "result": null}
hero member
Activity: 658
Merit: 500
Admin of DwarfPool.com
August 14, 2014, 03:15:34 AM
#18
tried under windows works with wolf's miner but not with claymore's
it works when disabling ENABLE_WORKER_ID

Fixed, please update proxy from github

hero member
Activity: 658
Merit: 500
Admin of DwarfPool.com
August 14, 2014, 02:37:11 AM
#17
tried under windows works with wolf's miner but not with claymore's
it works when disabling ENABLE_WORKER_ID

and some logs
[skip]


1) I doesn't have tested it with claymore's miner, but I'll look at this option for this situation
2) regarding errors - proxy currently supported only by dwarfpool

The log file grows too fast. Is it possible to disable saving to the file?
Yes, in config.py change to
Code:
LOGLEVEL = 'INFO'
DEBUG = False
hero member
Activity: 896
Merit: 1000
August 14, 2014, 02:13:32 AM
#16
The log file grows too fast. Is it possible to disable saving to the file?
hero member
Activity: 969
Merit: 1000
August 13, 2014, 09:24:13 PM
#15
tried under windows works with wolf's miner but not with claymore's
it works when disabling ENABLE_WORKER_ID

and some logs

{"jsonrpc":"2.0","method":"job","params":{"blob":"0100b8b9b09f05cd4c855df062a8d42916e51fb78f7a53ae592c884113e05399c403a36cec57ca0 000000023c25616b0eff1d5c9d2026d09290175958219c9acbe1fd2f697a5fa39c11fef01","job_id":"975496102869510","target":"cfb02b00"}}

{"error": [-1, "'id'", "Traceback: : 'id'\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\selectreactor.py:151:_doReadOrWrite\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:215:doRead\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:221:_dataReceived\nF:\\xmrproxy\\stratum\\protocol.py:194:dataReceived\n--- ---\nF:\\xmrproxy\\stratum\\protocol.py:240:lineReceived\nF:\\xmrproxy\\stratum\\event_handler.py:7:_handle_event\nF:\\xmrproxy\\mining_libs\\client_service.py:45:handle_event\n"], "id": 0, "result": null}

{"jsonrpc":"2.0","method":"job","params":{"blob":"0100b8b9b09f05cd4c855df062a8d42916e51fb78f7a53ae592c884113e05399c403a36cec57ca0 000000027b88f80f0989be4ca474e0b8115fcb9ed6e2e26cf8744057bb81e114cad0bbd01","job_id":"682785733276978","target":"37894100"}}

{"error": [-1, "'id'", "Traceback: : 'id'\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\selectreactor.py:151:_doReadOrWrite\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:215:doRead\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:221:_dataReceived\nF:\\xmrproxy\\stratum\\protocol.py:194:dataReceived\n--- ---\nF:\\xmrproxy\\stratum\\protocol.py:240:lineReceived\nF:\\xmrproxy\\stratum\\event_handler.py:7:_handle_event\nF:\\xmrproxy\\mining_libs\\client_service.py:45:handle_event\n"], "id": 0, "result": null}
{"jsonrpc": "2.0", "params": {"login": "437CToWfQb5HFFraTPhaS8ZfTthUwLdGgPHrciV9uWaS1jivf6r9aMJSxius*****yR1wUamLPnhckPD", "pass": "1"}, "id": 5, "method": "login"}
{"jsonrpc": "2.0", "params": {"login": "437CToWfQb5HFFraTPhaS8ZfTthUwLdGgPHrciV9uWaS1jivf6r9aMJSxius*****yR1wUamLPnhckPD", "pass": "1"}, "id": 6, "method": "login"}

{"id":5,"jsonrpc":"2.0","error":null,"result":{"id":"881212914641946","job":{"blob":"0100b8b9b09f05cd4c855df062a8d42916e51fb78f7a53ae592c884113e05399c403a36cec57ca0 0000000df694f5b4163a34eb53000d2abcb6ca5b38b08a0d849434a4cbdefc356aa2b1d01","job_id":"537892240285873","target":"37894100"},"status":"OK"}}
{"id":6,"jsonrpc":"2.0","error":null,"result":{"id":"110588621278293","job":{"blob":"0100b8b9b09f05cd4c855df062a8d42916e51fb78f7a53ae592c884113e05399c403a36cec57ca0 000000074c37f411a0b1d6c0a77cdadb0c9344935b31f00f8a7ad15e7f54268374e520a01","job_id":"533374001155607","target":"37894100"},"status":"OK"}}

{"jsonrpc": "2.0", "params": {"nonce": "c6000000", "result": "4d34f357945bd08b5c84182e229d1a3d8ac861bbe269be49135702eb2aaf3600", "id": "881212914641946", "job_id": "537892240285873"}, "id": 7, "method": "submit"}

{"id":7,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"jsonrpc":"2.0","method":"job","params":{"blob":"0100b8b9b09f05cd4c855df062a8d42916e51fb78f7a53ae592c884113e05399c403a36cec57ca0 00000008b8bf393287c55759f8570b7cfab208783adb824bf6c12a0d9ad0c52b27dd18e01","job_id":"125666949688456","target":"cfb02b00"}}

{"error": [-1, "'id'", "Traceback: : 'id'\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\selectreactor.py:151:_doReadOrWrite\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:215:doRead\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:221:_dataReceived\nF:\\xmrproxy\\stratum\\protocol.py:194:dataReceived\n--- ---\nF:\\xmrproxy\\stratum\\protocol.py:240:lineReceived\nF:\\xmrproxy\\stratum\\event_handler.py:7:_handle_event\nF:\\xmrproxy\\mining_libs\\client_service.py:45:handle_event\n"], "id": 0, "result": null}
{"jsonrpc": "2.0", "params": {"nonce": "a8070000", "result": "b1756ab2ba403b651a7a651915a902cff32a21cd1aef4e4c68eeed3ec85c0200", "id": "881212914641946", "job_id": "537892240285873"}, "id": 8, "method": "submit"}

{"id":8,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}




aaanddd after 3 shares it got crashed


cannot find block data:
{"error":[-2,"{u'message':u'Invalidjobid',u'code':-1}","Traceback:libs.stratum_listener.SubmitException'>:{u'message':u'Invalidjobid',u'code':-1}\
nC:\\Python27\\lib\\site-packages\\twisted\\internet\\defer.py:423:errback\nC:\\
Python27\\lib\\site-packages\\twisted\\internet\\defer.py:490:_startRunCallbacks
\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\defer.py:577:_runCallback
s\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\defer.py:1155:gotResult\
n------\nC:\\Python27\\lib\\site-packages\\twisted\\interne
t\\defer.py:1097:_inlineCallbacks\nC:\\Python27\\lib\\site-packages\\twisted\\py
thon\\failure.py:389:throwExceptionIntoGenerator\nF:\\xmrproxy\\mining_libs\\str
atum_listener.py:188:submit\n"],"id":1,"result":null}
cannot convert blob data


Traceback (most recent call last):
  File "F:\xmrproxy\stratum\protocol.py", line 240, in lineReceived
    result = self.event_handler._handle_event(msg_method, msg_params, connection_ref=self)
  File "F:\xmrproxy\stratum\event_handler.py", line 7, in _handle_event
    return defer.maybeDeferred(wrap_result_object, self.handle_event(msg_method, msg_params, connection_ref))
  File "F:\xmrproxy\mining_libs\client_service.py", line 45, in handle_event
    (blob, job_id, target, user_id) = params["blob"],params["job_id"],params["target"],params["id"]
KeyError: 'id'
2014-08-14 05:27:09,114 DEBUG protocol protocol.lineReceived # > {u'params': {u'target': u'37894100', u'blob': u'010090bdb09f05614adea5fbd041e80871cfb116869b441965973513bf729aacc977489e7b33610 0000000aef192b7270bf49b77e2ebe9463d26c8afbd9f0b5d195639a0386376bfc1f75e01', u'job_id': u'686639868980273'}, u'jsonrpc': u'2.0', u'method': u'job'}
2014-08-14 05:27:09,115 ERROR protocol protocol.process_failure # [Failure instance: Traceback: : 'id'
C:\Python27\lib\site-packages\twisted\internet\selectreactor.py:151:_doReadOrWrite
C:\Python27\lib\site-packages\twisted\internet\tcp.py:215:doRead
C:\Python27\lib\site-packages\twisted\internet\tcp.py:221:_dataReceived
F:\xmrproxy\stratum\protocol.py:194:dataReceived
--- ---
F:\xmrproxy\stratum\protocol.py:240:lineReceived
F:\xmrproxy\stratum\event_handler.py:7:_handle_event
F:\xmrproxy\mining_libs\client_service.py:45:handle_event
]


i think it happens using more than 1 miner at same proxy

C:\Python27\lib\site-packages\twisted\internet\selectreactor.py:151:_doReadOrWrite
C:\Python27\lib\site-packages\twisted\internet\tcp.py:215:doRead
C:\Python27\lib\site-packages\twisted\internet\tcp.py:221:_dataReceived
F:\xmrproxy\stratum\protocol.py:194:dataReceived
--- ---
F:\xmrproxy\stratum\protocol.py:240:lineReceived
F:\xmrproxy\stratum\event_handler.py:7:_handle_event
F:\xmrproxy\mining_libs\client_service.py:45:handle_event
]
Traceback (most recent call last):
  File "F:\xmrproxy\stratum\protocol.py", line 240, in lineReceived
    result = self.event_handler._handle_event(msg_method, msg_params, connection_ref=self)
  File "F:\xmrproxy\stratum\event_handler.py", line 7, in _handle_event
    return defer.maybeDeferred(wrap_result_object, self.handle_event(msg_method, msg_params, connection_ref))
  File "F:\xmrproxy\mining_libs\client_service.py", line 45, in handle_event
    (blob, job_id, target, user_id) = params["blob"],params["job_id"],params["target"],params["id"]
KeyError: 'id'
2014-08-14 05:31:40,562 INFO stats stats.print_stats # 1 peers connected, state changed 1 times
2014-08-14 05:31:51,855 INFO stats stats.print_stats # 2 peers connected, state changed 1 times
2014-08-14 05:31:51,857 DEBUG protocol protocol.connectionMade # Connected 127.0.0.1
2014-08-14 05:31:51,858 DEBUG protocol protocol.lineReceived # > {u'params': {u'login': u'safs', u'agent': u'cpuminer-multi/0.1', u'pass': u'x'}, u'method': u'login', u'id': 1}
2014-08-14 05:31:51,862 DEBUG protocol protocol.writeJsonRequest # < {"jsonrpc": "2.0", "params": {"login": "437CToWfQb5HFFraTPhaS8ZfTthUwLdGgPHrci***UamLPnhckPD", "pass": "1"}, "id": 8, "method": "login"}
2014-08-14 05:31:51,997 DEBUG protocol protocol.lineReceived # > {u'result': {u'status': u'OK', u'job': {u'target': u'37894100', u'blob': u'0100b4beb09f054a8cf672a271a586ea79c0cf39770515b1cae1bfbd4f090df62f5bf1b7d1b9070 0000000c4a626a547fb23d749cc8ab57ca0cf66889f948f5ac97087d479c9d87e2657f003', u'job_id': u'957496638246811'}, u'id': u'190254125557839'}, u'jsonrpc': u'2.0', u'id': 8, u'error': None}
2014-08-14 05:31:52,000 DEBUG protocol protocol.writeJsonResponse # < {"error": null, "jsonrpc": "2.0", "id": 1, "result": {"status": "OK", "job": {"target": "37894100", "blob": "0100b4beb09f054a8cf672a271a586ea79c0cf39770515b1cae1bfbd4f090df62f5bf1b7d1b9070 0000000c4a626a547fb23d749cc8ab57ca0cf66889f948f5ac97087d479c9d87e2657f003", "job_id": "957496638246811"}, "id": "190254125557839"}}
2014-08-14 05:31:53,990 INFO stats stats.print_stats # 3 peers connected, state changed 1 times
2014-08-14 05:31:53,990 DEBUG protocol protocol.connectionMade # Connected 127.0.0.1
2014-08-14 05:31:53,992 DEBUG protocol protocol.lineReceived # > {u'params': {u'login': u'safs', u'agent': u'cpuminer-multi/0.1', u'pass': u'x'}, u'method': u'login', u'id': 1}
2014-08-14 05:31:53,994 DEBUG protocol protocol.writeJsonRequest # < {"jsonrpc": "2.0", "params": {"login": "437CToWfQb5HFFraTPhaS8ZfTthUwLdGgPHrci***UamLPnhckPD", "pass": "1"}, "id": 9, "method": "login"}
2014-08-14 05:31:54,128 DEBUG protocol protocol.lineReceived # > {u'result': {u'status': u'OK', u'job': {u'target': u'37894100', u'blob': u'0100b4beb09f054a8cf672a271a586ea79c0cf39770515b1cae1bfbd4f090df62f5bf1b7d1b9070 0000000304aad2adf2e69edc4b725a2943ec25b801f0298fd701c3da64e63ca3881612203', u'job_id': u'652203538967296'}, u'id': u'511542838136665'}, u'jsonrpc': u'2.0', u'id': 9, u'error': None}
2014-08-14 05:31:54,131 DEBUG protocol protocol.writeJsonResponse # < {"error": null, "jsonrpc": "2.0", "id": 1, "result": {"status": "OK", "job": {"target": "37894100", "blob": "0100b4beb09f054a8cf672a271a586ea79c0cf39770515b1cae1bfbd4f090df62f5bf1b7d1b9070 0000000304aad2adf2e69edc4b725a2943ec25b801f0298fd701c3da64e63ca3881612203", "job_id": "652203538967296"}, "id": "511542838136665"}}
















{"error": [-1, "'id'", "Traceback: : 'id'\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\selectreactor.py:151:_doReadOrWrite\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:215:doRead\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:221:_dataReceived\nF:\\xmrproxy\\stratum\\protocol.py:194:dataReceived\n--- ---\nF:\\xmrproxy\\stratum\\protocol.py:240:lineReceived\nF:\\xmrproxy\\stratum\\event_handler.py:7:_handle_event\nF:\\xmrproxy\\mining_libs\\client_service.py:45:handle_event\n"], "id": 0, "result": null}
{"error": [-1, "'id'", "Traceback: : 'id'\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\selectreactor.py:151:_doReadOrWrite\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:215:doRead\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:221:_dataReceived\nF:\\xmrproxy\\stratum\\protocol.py:194:dataReceived\n--- ---\nF:\\xmrproxy\\stratum\\protocol.py:240:lineReceived\nF:\\xmrproxy\\stratum\\event_handler.py:7:_handle_event\nF:\\xmrproxy\\mining_libs\\client_service.py:45:handle_event\n"], "id": 0, "result": null}
{"error": [-1, "'id'", "Traceback: : 'id'\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\selectreactor.py:151:_doReadOrWrite\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:215:doRead\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:221:_dataReceived\nF:\\xmrproxy\\stratum\\protocol.py:194:dataReceived\n--- ---\nF:\\xmrproxy\\stratum\\protocol.py:240:lineReceived\nF:\\xmrproxy\\stratum\\event_handler.py:7:_handle_event\nF:\\xmrproxy\\mining_libs\\client_service.py:45:handle_event\n"], "id": 0, "result": null}

{"jsonrpc":"2.0","method":"job","params":{"blob":"0100f9bfb09f050c812e4089890ad12ba3154fbe7c20f409036b5b4b14c4dc09a9c55d0a63e02e0 0000000f502f24e3e1ec003db5bbf8927dba3f545c1def0312398f0c6776c62f7c9f3a707","job_id":"841506887343712","target":"37894100"}}
{"jsonrpc":"2.0","method":"job","params":{"blob":"0100f9bfb09f050c812e4089890ad12ba3154fbe7c20f409036b5b4b14c4dc09a9c55d0a63e02e0 00000009e3ed759bd16f5375b767d0c02e60d9d990aebed0d2876c029d5f80b6b14497807","job_id":"135655132913962","target":"37894100"}}
{"jsonrpc":"2.0","method":"job","params":{"blob":"0100f9bfb09f050c812e4089890ad12ba3154fbe7c20f409036b5b4b14c4dc09a9c55d0a63e02e0 00000001ef589b4fc792fd192e76f8083d0d0b54d88897d54e70496c411053403c8c2f907","job_id":"695149249164387","target":"cfb02b00"}}
{"jsonrpc":"2.0","method":"job","params":{"blob":"0100f9bfb09f050c812e4089890ad12ba3154fbe7c20f409036b5b4b14c4dc09a9c55d0a63e02e0 00000004021e27fbb3f7737843262bf474020b737ca3314b1e89f68bc873119f98c13b107","job_id":"716915991599671","target":"cfb02b00"}}

{"error": [-1, "'id'", "Traceback: : 'id'\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\selectreactor.py:151:_doReadOrWrite\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:215:doRead\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:221:_dataReceived\nF:\\xmrproxy\\stratum\\protocol.py:194:dataReceived\n--- ---\nF:\\xmrproxy\\stratum\\protocol.py:240:lineReceived\nF:\\xmrproxy\\stratum\\event_handler.py:7:_handle_event\nF:\\xmrproxy\\mining_libs\\client_service.py:45:handle_event\n"], "id": 0, "result": null}
{"error": [-1, "'id'", "Traceback: : 'id'\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\selectreactor.py:151:_doReadOrWrite\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:215:doRead\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:221:_dataReceived\nF:\\xmrproxy\\stratum\\protocol.py:194:dataReceived\n--- ---\nF:\\xmrproxy\\stratum\\protocol.py:240:lineReceived\nF:\\xmrproxy\\stratum\\event_handler.py:7:_handle_event\nF:\\xmrproxy\\mining_libs\\client_service.py:45:handle_event\n"], "id": 0, "result": null}
{"error": [-1, "'id'", "Traceback: : 'id'\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\selectreactor.py:151:_doReadOrWrite\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:215:doRead\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:221:_dataReceived\nF:\\xmrproxy\\stratum\\protocol.py:194:dataReceived\n--- ---\nF:\\xmrproxy\\stratum\\protocol.py:240:lineReceived\nF:\\xmrproxy\\stratum\\event_handler.py:7:_handle_event\nF:\\xmrproxy\\mining_libs\\client_service.py:45:handle_event\n"], "id": 0, "result": null}
{"error": [-1, "'id'", "Traceback: : 'id'\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\selectreactor.py:151:_doReadOrWrite\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:215:doRead\nC:\\Python27\\lib\\site-packages\\twisted\\internet\\tcp.py:221:_dataReceived\nF:\\xmrproxy\\stratum\\protocol.py:194:dataReceived\n--- ---\nF:\\xmrproxy\\stratum\\protocol.py:240:lineReceived\nF:\\xmrproxy\\stratum\\event_handler.py:7:_handle_event\nF:\\xmrproxy\\mining_libs\\client_service.py:45:handle_event\n"], "id": 0, "result": null}







        if method == 'job':
            '''Proxy just received information about new mining job'''
            
            (blob, job_id, target, user_id) = params["blob"],params["job_id"],params["target"],params["id"]
        
            # Broadcast to Stratum client
            stratum_listener.MiningSubscription.on_template(job_id, blob, target, user_id)



as i logged by a sniffer

{"jsonrpc":"2.0","method":"job","params":{"blob":"0100b4beb09f054a8cf672a271a586ea79c0cf39770515b1cae1bfbd4f090df62f5bf1b7d1b9070 0000000af4d81c94338ec004f8c37427531fdc129a4a8fc9bf0baf8de2691c07a4413be03","job_id":"630570081993937","target":"cfb02b00"}}

there is no any param named as id ?





{"jsonrpc": "2.0", "params": {"login": "437CToWfQb5HFFraTPhaS**R1wUamLPnhckPD", "agent": "proxy", "pass": "1"}, "id": 1, "method": "login"}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"id":"299333235132507","job":{"blob":"0100b2c0b09f05f6376c4daa771281028873db286139f7abfeadbe63f45ea73c661f4efd9347e90 0000000dc804a45ca1a962e70d6b1c20948202570d81ef9d3bcee6831ebf7e6db29e2d001","job_id":"171703355922363","target":"37894100"},"status":"OK"}}


server returns id only with login packet
at other blod datas dont contain id as like that

{"jsonrpc":"2.0","method":"job","params":{"blob":"0100b2c0b09f05f6376c4daa771281028873db286139f7abfeadbe63f45ea73c661f4efd9347e90 0000000ba197bc45c87a6abcb9d0a6ed4797479f705db0c733dd9001ade1062e331460701","job_id":"624886773829348","target":"cfb02b00"}}

hero member
Activity: 658
Merit: 500
Admin of DwarfPool.com
August 13, 2014, 02:55:38 PM
#14
Thanks for the guide.

Is it possible to give a more detailed description of the principle of the proxy?

If I have 6 rigs, will it use much less bandwidth with the proxy? Does the proxy get a very high difficulty work from the pool and then divide/distribute it to the rigs? If so, how does it divide the work?

I notice that my rigs usually get 100001 difficulty work from pools, not Dwarf. Is this the maximum a pool will send out? What is the maximum difficulty Dwarf will send out to the proxy?

For your rigs this proxy looks like a pool.

Proxy set only one connection to the pool (socket) so than inside this physical connection makes virtual login-connections to the pool for every Rig/PC. Therefore every rig get its own difficulty from the pool.

It doesn't reduce the traffic (anyway it's insufficient), but you have better control (wallet and pool settings in one place).

Just put to your miner the proxy as a pool, any number as username and password. Your miners never need any changes anymore.

If you want to change the wallets or other settings, you change it in config.py of proxy and restart it. Miners will be reconnected automatically. In the next version I'll make it without restart, on the fly.


DwarfPool has currently vardiff from 5000 up to 100000. 100k is very rare )) because the pool creates the personal vardiff.

That means the following use of case:

 - you have a lot of rigs or corporate PCs, you can install proxy on one PC with internet connection, and all miners can be inside of intranet

 - you have some geo-distributed miners, so via proxy installed on 1$VPS you can easy to control them

 - on one windows-machine if you use two miners (cpu+gpu) or if you want to control your miner fully and absolutely.

hero member
Activity: 896
Merit: 1000
August 13, 2014, 01:13:50 PM
#13
Thanks for the guide.

Is it possible to give a more detailed description of the principle of the proxy?

If I have 6 rigs, will it use much less bandwidth with the proxy? Does the proxy get a very high difficulty work from the pool and then divide/distribute it to the rigs? If so, how does it divide the work?

I notice that my rigs usually get 100001 difficulty work from pools, not Dwarf. Is this the maximum a pool will send out? What is the maximum difficulty Dwarf will send out to the proxy?
hero member
Activity: 658
Merit: 500
Admin of DwarfPool.com
August 13, 2014, 10:31:03 AM
#12
Hi, nice work, will make a try.

But a fork of this proxy with web stats could be great too !

https://bitcointalk.org/index.php?topic=611338.160;topicseen

To make a fork of Java-based proxy is a lot of work. My proxy is on Python.
But you have the full statistic on the pool if you use options "ENABLE_WORKER_ID" and "MONITORING"
hero member
Activity: 658
Merit: 500
Admin of DwarfPool.com
August 13, 2014, 09:58:13 AM
#11
Is it possible for you to write a detailed installation guide to use in Windows?

HOW-TO install proxy on Windows:

1) Download Python Version 2.7.8 for Windows
https://www.python.org/downloads/

2) Modify PATH variable (how-to http://www.java.com/en/download/help/path.xml) and add
Code:
C:\Python27;C:\Python27\Scripts;

3) Install python setuptools
https://pypi.python.org/pypi/setuptools/#windows-7-or-graphical-install

4) Install Python-Twisted
File Twisted-13.2.0.win32-py2.7.msi (select 32 or 64bit)
https://pypi.python.org/pypi/Twisted/13.2.0

5) Install zope.interface, in console run
Code:
easy_install -U zope.interface

6) Install PyWin32 v2.7
pywin32-219.win32-py2.7.exe or pywin32-219.win-amd64-py2.7.exe
http://sourceforge.net/projects/pywin32/files/pywin32/

7) Download xmr-proxy
https://github.com/Atrides/xmr-proxy/archive/master.zip
Extract xmr-proxy-master.zip
Change settings in config.py and start with command
Code:
python xmr-proxy.py

Now works!

hero member
Activity: 896
Merit: 1000
August 12, 2014, 12:30:43 PM
#10
Is it possible for you to write a detailed installation guide to use in Windows?
hero member
Activity: 658
Merit: 500
Admin of DwarfPool.com
August 12, 2014, 12:14:12 PM
#9
Which version of Python Twisted is need.
Shall we download from https://twistedmatrix.com/trac/?

I use standard from repo of ubuntu.
hero member
Activity: 896
Merit: 1000
August 12, 2014, 12:04:25 PM
#8
Which version of Python Twisted is need.
Shall we download from https://twistedmatrix.com/trac/?
Pages:
Jump to: