Bitcoin Forum

Alternate cryptocurrencies => Mining (Altcoins) => Topic started by: Atrides on August 12, 2014, 11:31:26 AM



Title: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on August 12, 2014, 11:31:26 AM
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?

Code:

   Pool A <---+                        +-------------+ Rig1 / PC1
 (Active)      |                       |                                                
               |                       +-------------+ Rig2 / PC2
               |                       |                                                
  Pool B <---+-----StratumProxy  <-----+-------------+ Rig3 / PC3
(FailOver)                             |                                                
                                       +-------------+ Rig4 / PC4
                                       |                                                
                                       +-------------+ Leaserigs

Miner start command like:
Code:
    ./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-proxy

How 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 Windows
https://bitcointalk.org/index.php?topic=735738.msg8331755#msg8331755

ToDo

* Automatically failover via proxy, also for non-supported miners (ccminer)
* Restartless after config change

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 (http://dwarfpool.com/xmr) servers.

Support
admin@dwarfpool.com

Donation for development
XMR = 466KoUjvbFE2SduDyiZQUb5QviKo6qnbyDGDB46C6UcTDi5XmVtSXuRYJDmgd6mhYPU92xJHsTQyrSj LbsxdzKQc3Z1PZQM


FAQ

Quote
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?

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.

Quote
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.

Quote
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

Code:
#LOGFILE = "logfile.log"



Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: kulin3422 on August 12, 2014, 02:08:05 PM
Looks nice.
When will this proxy release?


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on August 12, 2014, 02:28:49 PM
Looks nice.
When will this proxy release?
It's released
https://github.com/Atrides/xmr-proxy


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Eastwind on August 12, 2014, 03:03:25 PM
Looks nice.
When will this proxy release?
It's released
https://github.com/Atrides/xmr-proxy


Can we use Claymore's GPU miner?

Will it bypass Claymore's fee?

Can it be used in Windows?


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on 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.


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Eastwind on August 12, 2014, 04:05:49 PM
Does it work on other pools such as http://monero.crypto-pool.fr/


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on August 12, 2014, 04:11:24 PM
Does it work on other pools such as http://monero.crypto-pool.fr/

Not now, I'll send patch to zone117x


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Eastwind on August 12, 2014, 05:04:25 PM
Which version of Python Twisted is need.
Shall we download from https://twistedmatrix.com/trac/?


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on August 12, 2014, 05:14:12 PM
Which version of Python Twisted is need.
Shall we download from https://twistedmatrix.com/trac/?

I use standard from repo of ubuntu.


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Eastwind on August 12, 2014, 05:30:43 PM
Is it possible for you to write a detailed installation guide to use in Windows?


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on August 13, 2014, 02:58:13 PM
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!



Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on August 13, 2014, 03:31:03 PM
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"


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Eastwind on August 13, 2014, 06:13:50 PM
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?


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on August 13, 2014, 07:55:38 PM
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.



Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: ballot on August 14, 2014, 02:24:13 AM
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"}}



Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Eastwind on August 14, 2014, 07:13:32 AM
The log file grows too fast. Is it possible to disable saving to the file?


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on 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
Code:
LOGLEVEL = 'INFO'
DEBUG = False


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on 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



Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: ballot on 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}


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on 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


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.


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Eastwind on 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
Code:
LOGLEVEL = 'INFO'
DEBUG = False

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


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on 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
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"


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: ballot on August 15, 2014, 08:08:56 PM
i just edited and it works with other pools  ;D

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"}}



Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Yanakitu Tenatako on August 26, 2014, 01:24:29 PM
Is it ok to use stratum proxy with minergate pool?


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Atrides on August 26, 2014, 02:31:26 PM
Is it ok to use stratum proxy with minergate pool?


currently works only with DwarfPool


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Yanakitu Tenatako on September 07, 2014, 08:20:46 PM
Any chance to have simple windows friendly exe file for proxy?


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: 9RAY on September 08, 2014, 10:11:02 AM
Where i can get RIGs stat on site? I see only summarized info.


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: ergou on 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.


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Eastwind on September 17, 2014, 08:09:35 PM
Have you implemented the failover pool function?


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: ballot on 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);


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: nitro64 on 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


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: nitro64 on 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"


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: gegstore on August 29, 2016, 04:50:30 PM
help the proxy don't go

now go with twisted15 64bit

but i don't can to go the claymore


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: DarkStar1O9 on 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.


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Beave162 on 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.


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Bitock on June 08, 2017, 07:18:57 PM
Hi! How must I run proxy without PAYMENT_ID for mine to poloniex?


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: evilcode1 on 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


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: helpme85 on August 26, 2017, 08:26:48 PM
Please help me

Quote
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.
]


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: not.you on August 26, 2017, 08:57:08 PM
Please help me

Quote
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.


Title: supportxmr.com + XMR Stak CPU
Post by: Travis90x on 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


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Earl_Vadim on September 12, 2017, 06:42:31 AM
Help me, please..

Now the XMR-PROXY writes in the log:

Code:
2017-09-12 09:32:23,663 INFO proxy # [16ms] Share from '178.120.6.185' accepted

How make logging so...

Code:
2017-09-12 09:32:23,663 INFO proxy # [16ms] Share from 'RIG_NAME' accepted


Config.py
Code:
STRATUM_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.bat
Code:
start /low NsCpuCNMiner64.exe -o stratum+tcp://88.xxx.xxx.5:8025 -u RIG_NAME -p x


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: bapparabi on 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


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: Daniel.Nguyen on 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!


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: xiphon on October 06, 2017, 08:12:46 PM
Help me, please..
How make logging so...
Code:
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.


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: yanir99 on 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!


Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: xt-miner on 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)



Title: Re: [XMR] Monero stratum proxy (open-source)
Post by: darkstilo on 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!