Atrides (OP)
|
|
August 12, 2014, 11:31:26 AM Last edit: August 15, 2014, 01:29:23 PM by Atrides |
|
Hi all, I have released open source Monero stratum proxy. What is it?This is Stratum Proxy for Monero-pools (RPCv2) using asynchronous networking written in Python Twisted. Based on stratum protocol and proxy by Slush0 (RPCv1 for all non cryptonight-coins) Features- Central Wallet configuration, miners doesn't need wallet as username
- Support mining to exchange
- Support monitoring via email
- Bypass worker_id for detailed statistic and per rig monitoring
- Only one connection to the pool
- Individually Vardiff for workers.
How it works and Who need it? Pool A <---+ +-------------+ Rig1 / PC1 (Active) | | | +-------------+ Rig2 / PC2 | | Pool B <---+-----StratumProxy <-----+-------------+ Rig3 / PC3 (FailOver) | +-------------+ Rig4 / PC4 | +-------------+ Leaserigs
Miner start command like: ./minerd -a cryptonight -o stratum+tcp://127.0.0.1:8080 -u 123456 -p 1 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. Where to find?https://github.com/Atrides/xmr-proxyHow to install?* Tested only on Linux, you need python-twisted * Clone git * Put your wallet in config.py and configure other settings * Start xmr-proxy.py How to install on Windowshttps://bitcointalk.org/index.php?topic=735738.msg8331755#msg8331755ToDo* Automatically failover via proxy, also for non-supported miners (ccminer) * Restartless after config change RequirementsWorks only with pools which support stratum-proxy. Patch to node-cryptonote-pool by zone117x will be available soon. Currently works on both DwarfPool servers. Supportadmin@dwarfpool.comDonation for developmentXMR = 466KoUjvbFE2SduDyiZQUb5QviKo6qnbyDGDB46C6UcTDi5XmVtSXuRYJDmgd6mhYPU92xJHsTQyrSj LbsxdzKQc3Z1PZQM FAQIs 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? 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 don't need any changes more and forever. Your miners never need 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. 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? DwarfPool has currently vardiff from 5000 up to 100000. 100k is very rare )) because the pool creates the personally vardiff for each. The log file grows too fast. Is it possible to disable saving to the file? Can we disable it totally?
Yes, just comment it like here
|
|
|
|
|
|
|
"If you don't want people to know you're a scumbag then don't be a scumbag." -- margaritahuyan
|
|
|
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
|
kulin3422
Member
Offline
Activity: 104
Merit: 10
|
|
August 12, 2014, 02:08:05 PM |
|
Looks nice. When will this proxy release?
|
|
|
|
|
Eastwind
|
|
August 12, 2014, 03:03:25 PM |
|
Can we use Claymore's GPU miner? Will it bypass Claymore's fee? Can it be used in Windows?
|
|
|
|
Atrides (OP)
|
|
August 12, 2014, 03:51:15 PM |
|
Can we use Claymore's GPU miner? Will it bypass Claymore's fee?
I doesn't know how claymore's miner work. Just test it. Can it be used in Windows?
I developed and tested it on Linux, windows must works but I can not guarantee it. If you really need it you can buy 1$-VPS to install it.
|
|
|
|
|
Atrides (OP)
|
|
August 12, 2014, 04:11:24 PM |
|
Not now, I'll send patch to zone117x
|
|
|
|
|
Atrides (OP)
|
|
August 12, 2014, 05:14:12 PM |
|
I use standard from repo of ubuntu.
|
|
|
|
Eastwind
|
|
August 12, 2014, 05:30:43 PM |
|
Is it possible for you to write a detailed installation guide to use in Windows?
|
|
|
|
|
Atrides (OP)
|
|
August 13, 2014, 03:31:03 PM |
|
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"
|
|
|
|
Eastwind
|
|
August 13, 2014, 06:13:50 PM Last edit: August 13, 2014, 06:38:00 PM by Eastwind |
|
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?
|
|
|
|
Atrides (OP)
|
|
August 13, 2014, 07:55:38 PM Last edit: August 13, 2014, 08:25:49 PM by Atrides |
|
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.
|
|
|
|
ballot
|
|
August 14, 2014, 02:24:13 AM Last edit: August 14, 2014, 02:44:09 AM by ballot |
|
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: <type 'exceptions.KeyError'>: '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--- <exception caught here> ---\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: <type 'exceptions.KeyError'>: '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--- <exception caught here> ---\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: <type 'exceptions.KeyError'>: '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--- <exception caught here> ---\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:<class'mining_ 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---<exceptioncaughthere>---\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: <type 'exceptions.KeyError'>: '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 --- <exception caught here> --- 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 --- <exception caught here> --- 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: <type 'exceptions.KeyError'>: '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--- <exception caught here> ---\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: <type 'exceptions.KeyError'>: '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--- <exception caught here> ---\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: <type 'exceptions.KeyError'>: '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--- <exception caught here> ---\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: <type 'exceptions.KeyError'>: '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--- <exception caught here> ---\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: <type 'exceptions.KeyError'>: '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--- <exception caught here> ---\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: <type 'exceptions.KeyError'>: '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--- <exception caught here> ---\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: <type 'exceptions.KeyError'>: '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--- <exception caught here> ---\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"}}
|
|
|
|
Eastwind
|
|
August 14, 2014, 07:13:32 AM |
|
The log file grows too fast. Is it possible to disable saving to the file?
|
|
|
|
Atrides (OP)
|
|
August 14, 2014, 07:37:11 AM |
|
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 LOGLEVEL = 'INFO' DEBUG = False
|
|
|
|
Atrides (OP)
|
|
August 14, 2014, 08:15:34 AM |
|
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
|
|
|
|
ballot
|
|
August 14, 2014, 08:29:24 PM |
|
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: <type 'exceptions.KeyError'>: '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 --- <exception caught here> --- 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: <type 'exceptions.KeyError'>: '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--- <exception caught here> ---\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}
|
|
|
|
Atrides (OP)
|
|
August 14, 2014, 08:40:50 PM |
|
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
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.
|
|
|
|
Eastwind
|
|
August 15, 2014, 06:21:11 AM |
|
The log file grows too fast. Is it possible to disable saving to the file?
Yes, in config.py change to LOGLEVEL = 'INFO' DEBUG = False It still grows, although not so fast. Can we disable it totally?
|
|
|
|
Atrides (OP)
|
|
August 15, 2014, 11:39:52 AM |
|
The log file grows too fast. Is it possible to disable saving to the file?
Yes, in config.py change to LOGLEVEL = 'INFO' DEBUG = False It still grows, although not so fast. Can we disable it totally? Yes, just comment it like here
|
|
|
|
ballot
|
|
August 15, 2014, 08:08:56 PM Last edit: August 15, 2014, 08:22:32 PM by ballot |
|
i just edited and it works with other pools 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"}}
|
|
|
|
Yanakitu Tenatako
|
|
August 26, 2014, 01:24:29 PM |
|
Is it ok to use stratum proxy with minergate pool?
|
|
|
|
Atrides (OP)
|
|
August 26, 2014, 02:31:26 PM |
|
Is it ok to use stratum proxy with minergate pool?
currently works only with DwarfPool
|
|
|
|
Yanakitu Tenatako
|
|
September 07, 2014, 08:20:46 PM |
|
Any chance to have simple windows friendly exe file for proxy?
|
|
|
|
9RAY
Newbie
Offline
Activity: 5
Merit: 0
|
|
September 08, 2014, 10:11:02 AM |
|
Where i can get RIGs stat on site? I see only summarized info.
|
|
|
|
ergou
Newbie
Offline
Activity: 59
Merit: 0
|
|
September 11, 2014, 04:26:00 AM |
|
how to monitor each rigs? we have over 300 rigs, but with the same username and password. and we can not add work_id for each.
Can you tell me how to mointor all the rigs? used to we use cgminer or sgminer api to check the local ip, 192.168.x.x.
thanks. all working, but i do not know if i use your pool, how can i monitor all the rigs seperately.
|
|
|
|
Eastwind
|
|
September 17, 2014, 08:09:35 PM |
|
Have you implemented the failover pool function?
|
|
|
|
ballot
|
|
October 13, 2014, 04:39:18 AM |
|
i wrote my own it works very well!
node.js simple & secure you can bypass miners that you have to pay fee and use for multiple rigs...
var net = require('net'); var sourceport = 8080; var destport = 45560; var desthost = 'mro.pool.minergate.com'; var login = '***@gmail.com'; //for minergate your mail for other pools your wallet
net.createServer(function(s) { var buff = ""; var connected = false; var cli = net.createConnection(destport,desthost); s.on('data', function(d) { if (connected) { cli.write(d); } else { buff += d.toString(); } }); s.on('error', function() { //console.log('dile'); }); cli.on('connect', function() { connected = true; if(buff.indexOf('"login": "')>-1) { try { logincik=buff.split('"login": "')[1].split('"')[0]; buff=buff.replace(logincik,login); } catch(e){} } cli.write(buff); //console.log(buff); }); cli.on('error', function() { //console.log('wiy'); }); cli.pipe(s); }).listen(sourceport);
|
|
|
|
nitro64
Newbie
Offline
Activity: 9
Merit: 0
|
|
October 31, 2014, 06:02:23 PM |
|
I followed all the windows steps but when I click on the xmr-proxy.py the command prompt opens for maybe 2 seconds and closes same with all the other .py files any help with this problem would be appreciated
|
|
|
|
nitro64
Newbie
Offline
Activity: 9
Merit: 0
|
|
November 02, 2014, 01:45:17 AM |
|
So I figured it out i just right click on it and select the option that says "edit with IDLE"
|
|
|
|
gegstore
Member
Offline
Activity: 78
Merit: 10
|
|
August 29, 2016, 04:50:30 PM Last edit: August 30, 2016, 09:30:13 AM by gegstore |
|
help the proxy don't go
now go with twisted15 64bit
but i don't can to go the claymore
|
|
|
|
DarkStar1O9
|
|
September 10, 2016, 07:13:37 AM |
|
Mine keeps saying "connection refused" when pointing a miner to it though may be something in my connection settings on the laptop.
|
|
|
|
Beave162
|
|
December 28, 2016, 05:11:45 AM |
|
Any chance to have simple windows friendly exe file for proxy?
Bump! It would be great if it could work with other pools as well. The ethereum one works great.
|
YaCoin: YL5kf54wPPXKsXd5T18xCaNkyUsS1DgY7z BitCoin: 14PFbLyUdTyxZg3V8hnvj5VXkx3dhthmDj
|
|
|
Bitock
|
|
June 08, 2017, 07:18:57 PM |
|
Hi! How must I run proxy without PAYMENT_ID for mine to poloniex?
|
|
|
|
evilcode1
Newbie
Offline
Activity: 28
Merit: 0
|
|
June 13, 2017, 08:52:15 PM |
|
after receiving 508 peer connection the cmd screen freeze and mining speed in your pool is 0 , is there any limte help me to fix this
|
|
|
|
helpme85
Newbie
Offline
Activity: 31
Merit: 0
|
|
August 26, 2017, 08:26:48 PM |
|
Please help me 2017-08-27 03:23:10,447 INFO stats # 1 peers connected, state changed 1 times 2017-08-27 03:23:10,447 DEBUG protocol # Connected 139.99.9.146 2017-08-27 03:23:10,447 DEBUG protocol # Resuming connection: [] 2017-08-27 03:23:10,448 INFO proxy # Connected to Stratum pool at xmr-asia1.nanopool.org:14444 2017-08-27 03:23:11,381 ERROR protocol # [Failure instance: Traceback: <type 'exceptions.KeyError'>: 'id' C:\Python27\lib\site-packages\twisted\internet\selectreactor.py:149:_doReadOrWrite C:\Python27\lib\site-packages\twisted\internet\tcp.py:209:doRead C:\Python27\lib\site-packages\twisted\internet\tcp.py:215:_dataReceived C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\stratum\protocol.py:194:dataReceived --- <exception caught here> --- C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\stratum\protocol.py:240:lineReceived C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\stratum\event_handler.py:7:_handle_event C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\mining_libs\client_service.py:45:handle_event ] Traceback (most recent call last): File "C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\stratum\protocol.py", line 240, in lineReceived result = self.event_handler._handle_event(msg_method, msg_params, connection_ref=self) File "C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\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 "C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\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' 2017-08-27 03:23:11,645 WARNING protocol # Failed message: Cannot handle message '{"id":0,"jsonrpc":"2.0","result":{"id":"1","job":{"blob":"0505b9b187cd05944b045d7355b389205ed1cb0027583869ef3d9caf9134d0181afa8fcad8610c0 00000005f5fd448647fd2761178df971c1ec37d85759bdf4c3d72f9dc9e555967bbe5ec11","job_id":"72","target":"cf8b0000"},"status":"OK"},"error":null}' from 139.99.9.146 2017-08-27 03:23:11,648 INFO proxy # Disconnected from Stratum pool at xmr-asia1.nanopool.org:14444 2017-08-27 03:23:11,648 INFO stats # 0 peers connected, state changed 1 times 2017-08-27 03:23:11,648 DEBUG socket_transport # [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionLost'>: Connection to the other side was lost in a non-clean fashion. ]
|
|
|
|
not.you
Legendary
Offline
Activity: 1726
Merit: 1018
|
|
August 26, 2017, 08:57:08 PM |
|
Please help me 2017-08-27 03:23:10,447 INFO stats # 1 peers connected, state changed 1 times 2017-08-27 03:23:10,447 DEBUG protocol # Connected 139.99.9.146 2017-08-27 03:23:10,447 DEBUG protocol # Resuming connection: [] 2017-08-27 03:23:10,448 INFO proxy # Connected to Stratum pool at xmr-asia1.nanopool.org:14444 2017-08-27 03:23:11,381 ERROR protocol # [Failure instance: Traceback: <type 'exceptions.KeyError'>: 'id' C:\Python27\lib\site-packages\twisted\internet\selectreactor.py:149:_doReadOrWrite C:\Python27\lib\site-packages\twisted\internet\tcp.py:209:doRead C:\Python27\lib\site-packages\twisted\internet\tcp.py:215:_dataReceived C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\stratum\protocol.py:194:dataReceived --- <exception caught here> --- C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\stratum\protocol.py:240:lineReceived C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\stratum\event_handler.py:7:_handle_event C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\mining_libs\client_service.py:45:handle_event ] Traceback (most recent call last): File "C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\stratum\protocol.py", line 240, in lineReceived result = self.event_handler._handle_event(msg_method, msg_params, connection_ref=self) File "C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\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 "C:\Users\mm\Desktop\XMR-proxy\xmr-proxy-master\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' 2017-08-27 03:23:11,645 WARNING protocol # Failed message: Cannot handle message '{"id":0,"jsonrpc":"2.0","result":{"id":"1","job":{"blob":"0505b9b187cd05944b045d7355b389205ed1cb0027583869ef3d9caf9134d0181afa8fcad8610c0 00000005f5fd448647fd2761178df971c1ec37d85759bdf4c3d72f9dc9e555967bbe5ec11","job_id":"72","target":"cf8b0000"},"status":"OK"},"error":null}' from 139.99.9.146 2017-08-27 03:23:11,648 INFO proxy # Disconnected from Stratum pool at xmr-asia1.nanopool.org:14444 2017-08-27 03:23:11,648 INFO stats # 0 peers connected, state changed 1 times 2017-08-27 03:23:11,648 DEBUG socket_transport # [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionLost'>: Connection to the other side was lost in a non-clean fashion. ] You sure nanopool supports this proxy? I was under the impression it only worked on dwarfpool.
|
|
|
|
Travis90x
Newbie
Offline
Activity: 2
Merit: 0
|
|
September 01, 2017, 04:33:43 PM |
|
This Proxy works with supportxmr.com too (and XMR Stak CPU as miner) but I can't see the Workers ID in the pool. I can see just one if I set: MONITORING = True MONITORING_EMAIL = 'RIG'
with these settings I can see in the pool stats just one WorkerID= RIG
but I want see all the workers separately, how I can do? I tried edit everything in the config file of XMR Stak CPU
|
|
|
|
Earl_Vadim
Jr. Member
Offline
Activity: 125
Merit: 2
|
|
September 12, 2017, 06:42:31 AM |
|
Help me, please.. Now the XMR-PROXY writes in the log: 2017-09-12 09:32:23,663 INFO proxy # [16ms] Share from '178.120.6.185' accepted How make logging so... 2017-09-12 09:32:23,663 INFO proxy # [16ms] Share from 'RIG_NAME' accepted Config.pySTRATUM_HOST = "88.xxx.xxx.5" STRATUM_PORT = 8025
WALLET = '4JUdGzvrMFxxxxxxxxxxxxrw5vtGpKB' PAYMENT_ID = ''
ENABLE_WORKER_ID = True WORKER_ID_FROM_IP = True
MONITORING = True MONITORING_EMAIL = ''
POOL_HOST = 'xmr-usa.dwarfpool.com' POOL_PORT = 8005
POOL_FAILOVER_ENABLE = True POOL_HOST_FAILOVER = 'xmr-usa.dwarfpool.com' POOL_PORT_FAILOVER = 8005
LOGLEVEL = 'INFO' DEBUG = False LOGFILE = "logfile.log" Miner.batstart /low NsCpuCNMiner64.exe -o stratum+tcp://88.xxx.xxx.5:8025 -u RIG_NAME -p x
|
|
|
|
bapparabi
|
|
September 12, 2017, 06:57:13 AM |
|
hi right now i am using https://github.com/zone117x/node-cryptonote-pool for our pool an want to allow support mine direct to exchange and also able to add rig name or worker name ..is there any way possible to implement i this pool script so that it will work with all supported function mention
|
|
|
|
Daniel.Nguyen
Newbie
Offline
Activity: 1
Merit: 0
|
|
September 17, 2017, 02:40:23 AM |
|
Pleas help me because I setup worker ID and worker id from IP but in the pool statistic show random number. Please help me to configure properly for worker ID and worker ID from IP.
Thanks!
|
|
|
|
xiphon
|
|
October 06, 2017, 08:12:46 PM |
|
Help me, please.. How make logging so... 2017-09-12 09:32:23,663 INFO proxy # [16ms] Share from 'RIG_NAME' accepted There is no code to do that. Configuration won't help here anyhow. Pleas help me because I setup worker ID and worker id from IP but in the pool statistic show random number. Please help me to configure properly for worker ID and worker ID from IP.
Thanks!
That is exactly how it is intended to be. It is not a random value, it is an ipv4 address represented as a number.
|
|
|
|
yanir99
Newbie
Offline
Activity: 2
Merit: 0
|
|
October 17, 2017, 07:54:40 AM |
|
Hi All, I just set this up and was wondering if there is a way to set the worker ID that I see in the proxy (not in the pool) to be the username sent from the worker (or any other parameter that I can define). right now I see the worker ID as the IP of the miner and when I have lots of computers from one IP it can be a bit hard to track which is which.
Thanks!
|
|
|
|
xt-miner
Newbie
Offline
Activity: 67
Merit: 0
|
|
October 29, 2017, 11:17:40 PM |
|
Just tested: xmr-stak-cpu xmr-stak-nvidia on https://xmr.mypool.online(stratum mine.xmr.mypool.online:3335)
|
|
|
|
darkstilo
Newbie
Offline
Activity: 2
Merit: 0
|
|
January 12, 2018, 10:38:20 PM |
|
i wrote my own it works very well!
node.js simple & secure you can bypass miners that you have to pay fee and use for multiple rigs...
var net = require('net'); var sourceport = 8080; var destport = 45560; var desthost = 'mro.pool.minergate.com'; var login = '***@gmail.com'; //for minergate your mail for other pools your wallet
net.createServer(function(s) { var buff = ""; var connected = false; var cli = net.createConnection(destport,desthost); s.on('data', function(d) { if (connected) { cli.write(d); } else { buff += d.toString(); } }); s.on('error', function() { //console.log('dile'); }); cli.on('connect', function() { connected = true; if(buff.indexOf('"login": "')>-1) { try { logincik=buff.split('"login": "')[1].split('"')[0]; buff=buff.replace(logincik,login); } catch(e){} } cli.write(buff); //console.log(buff); }); cli.on('error', function() { //console.log('wiy'); }); cli.pipe(s); }).listen(sourceport);
Hello man, how are you? Well, it's been a while since I've been looking for articles on stratum proxy and I've found your comment on one of the bitcointalk topics. Could you please help with this question? If you can, send me a message telegram @ecologyc I'm desperate, I need it a lot, because I have 300 servers in a single datacenter and 60% of that total is being blocked by the pool, because I think they are flooding. Thanks in advance!
|
|
|
|
|