Bitcoin Forum
May 06, 2024, 04:24:40 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: 1 2 3 [All]
  Print  
Author Topic: [XMR] Monero stratum proxy (open-source)  (Read 81787 times)
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 12, 2014, 11:31:26 AM
Last edit: August 15, 2014, 01:29:23 PM by Atrides
 #1

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


DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
1714969480
Hero Member
*
Offline Offline

Posts: 1714969480

View Profile Personal Message (Offline)

Ignore
1714969480
Reply with quote  #2

1714969480
Report to moderator
"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 Offline

Activity: 104
Merit: 10


View Profile
August 12, 2014, 02:08:05 PM
 #2

Looks nice.
When will this proxy release?
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 12, 2014, 02:28:49 PM
 #3

Looks nice.
When will this proxy release?
It's released
https://github.com/Atrides/xmr-proxy

DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
Eastwind
Hero Member
*****
Offline Offline

Activity: 896
Merit: 1000



View Profile
August 12, 2014, 03:03:25 PM
 #4


Can we use Claymore's GPU miner?

Will it bypass Claymore's fee?

Can it be used in Windows?
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 12, 2014, 03:51:15 PM
 #5

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.

DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
Eastwind
Hero Member
*****
Offline Offline

Activity: 896
Merit: 1000



View Profile
August 12, 2014, 04:05:49 PM
 #6

Does it work on other pools such as http://monero.crypto-pool.fr/
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 12, 2014, 04:11:24 PM
 #7

Does it work on other pools such as http://monero.crypto-pool.fr/

Not now, I'll send patch to zone117x

DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
Eastwind
Hero Member
*****
Offline Offline

Activity: 896
Merit: 1000



View Profile
August 12, 2014, 05:04:25 PM
 #8

Which version of Python Twisted is need.
Shall we download from https://twistedmatrix.com/trac/?
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 12, 2014, 05:14:12 PM
 #9

Which version of Python Twisted is need.
Shall we download from https://twistedmatrix.com/trac/?

I use standard from repo of ubuntu.

DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
Eastwind
Hero Member
*****
Offline Offline

Activity: 896
Merit: 1000



View Profile
August 12, 2014, 05:30:43 PM
 #10

Is it possible for you to write a detailed installation guide to use in Windows?
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 13, 2014, 02:58:13 PM
Last edit: August 13, 2014, 03:23:13 PM by Atrides
 #11

Is it possible for you to write a detailed installation guide to use in Windows?

HOW-TO install proxy on Windows:

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

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

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

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

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

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

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

Now works!


DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 13, 2014, 03:31:03 PM
 #12

Hi, nice work, will make a try.

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

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

To make a fork of Java-based proxy is a lot of work. My proxy is on Python.
But you have the full statistic on the pool if you use options "ENABLE_WORKER_ID" and "MONITORING"

DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
Eastwind
Hero Member
*****
Offline Offline

Activity: 896
Merit: 1000



View Profile
August 13, 2014, 06:13:50 PM
Last edit: August 13, 2014, 06:38:00 PM by Eastwind
 #13

Thanks for the guide.

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

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

I notice that my rigs usually get 100001 difficulty work from pools, not Dwarf. Is this the maximum a pool will send out? What is the maximum difficulty Dwarf will send out to the proxy?
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 13, 2014, 07:55:38 PM
Last edit: August 13, 2014, 08:25:49 PM by Atrides
 #14

Thanks for the guide.

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

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

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

For your rigs this proxy looks like a pool.

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

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

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

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


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

That means the following use of case:

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

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

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


DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
ballot
Hero Member
*****
Offline Offline

Activity: 969
Merit: 1000



View Profile
August 14, 2014, 02:24:13 AM
Last edit: August 14, 2014, 02:44:09 AM by ballot
 #15

tried under windows works with wolf's miner but not with claymore's
it works when disabling ENABLE_WORKER_ID

and some logs

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

{"error": [-1, "'id'", "Traceback: <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
Hero Member
*****
Offline Offline

Activity: 896
Merit: 1000



View Profile
August 14, 2014, 07:13:32 AM
 #16

The log file grows too fast. Is it possible to disable saving to the file?
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 14, 2014, 07:37:11 AM
 #17

tried under windows works with wolf's miner but not with claymore's
it works when disabling ENABLE_WORKER_ID

and some logs
[skip]


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

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

DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 14, 2014, 08:15:34 AM
 #18

tried under windows works with wolf's miner but not with claymore's
it works when disabling ENABLE_WORKER_ID

Fixed, please update proxy from github


DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
ballot
Hero Member
*****
Offline Offline

Activity: 969
Merit: 1000



View Profile
August 14, 2014, 08:29:24 PM
 #19

i use extremehash.com

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

Traceback (most recent call last):
  File "F:\xmrproxy\stratum\protocol.py", line 240, in lineReceived
    result = self.event_handler._handle_event(msg_method, msg_params, connection_ref=self)
  File "F:\xmrproxy\stratum\event_handler.py", line 7, in _handle_event
    return defer.maybeDeferred(wrap_result_object, self.handle_event(msg_method, msg_params, connection_ref))
  File "F:\xmrproxy\mining_libs\client_service.py", line 45, in handle_event
    (blob, job_id, target, user_id) = params["blob"],params["job_id"],params["target"],params["id"]
KeyError: 'id'
2014-08-14 23:27:56,444 DEBUG protocol protocol.lineReceived # > {u'params': {u'target': u'37894100', u'blob': u'0100ccb7b49f05152c26542948f874e399dd7de2ff63d284eb5018d87dd062815379de28b05f0a0 00000009281034f729cb7264add78fae8fc8ac7f63f5ca86e48ab2e6feb279e6db1f28d02', u'job_id': u'254846778372302'}, u'jsonrpc': u'2.0', u'method': u'job'}
2014-08-14 23:27:56,447 ERROR protocol protocol.process_failure # [Failure instance: Traceback: <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)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 14, 2014, 08:40:50 PM
 #20

i use extremehash.com

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


Quote
Requirements
Works only with pools which support stratum-proxy.
Patch to node-cryptonote-pool by zone117x will be available soon.
Currently works on both DwarfPool servers.

DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
Eastwind
Hero Member
*****
Offline Offline

Activity: 896
Merit: 1000



View Profile
August 15, 2014, 06:21:11 AM
 #21



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

It still grows, although not so fast. Can we disable it totally?
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 15, 2014, 11:39:52 AM
 #22



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

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

Yes, just comment it like here

Code:
#LOGFILE = "logfile.log"

DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
ballot
Hero Member
*****
Offline Offline

Activity: 969
Merit: 1000



View Profile
August 15, 2014, 08:08:56 PM
Last edit: August 15, 2014, 08:22:32 PM by ballot
 #23

i just edited and it works with other pools  Grin

client_service.py

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

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

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





stratum_listener.py

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


but many invalid job_id

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

packet logs:


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

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

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

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

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

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

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

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

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

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

Yanakitu Tenatako
Sr. Member
****
Offline Offline

Activity: 328
Merit: 250


View Profile
August 26, 2014, 01:24:29 PM
 #24

Is it ok to use stratum proxy with minergate pool?

BitFinex, best trading platform ever.
Register here: https://www.bitfinex.com/?refcode=53wNhi4gTx
Atrides (OP)
Hero Member
*****
Offline Offline

Activity: 658
Merit: 500


Admin of DwarfPool.com


View Profile WWW
August 26, 2014, 02:31:26 PM
 #25

Is it ok to use stratum proxy with minergate pool?


currently works only with DwarfPool

DwarfPool Quality you can trust! http://DwarfPool.com Reliable Monero, Zcash and ETH Pool Monero Proxy
Anonymous pool with failover servers and PPS, Profit Calculator and Price chart: [XMR][ETH][ZEC]... Support thread
MoneroClub - free P2P Exchange Platform www.MoneroClub.com
Yanakitu Tenatako
Sr. Member
****
Offline Offline

Activity: 328
Merit: 250


View Profile
September 07, 2014, 08:20:46 PM
 #26

Any chance to have simple windows friendly exe file for proxy?

BitFinex, best trading platform ever.
Register here: https://www.bitfinex.com/?refcode=53wNhi4gTx
9RAY
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
September 08, 2014, 10:11:02 AM
 #27

Where i can get RIGs stat on site? I see only summarized info.
ergou
Newbie
*
Offline Offline

Activity: 59
Merit: 0


View Profile
September 11, 2014, 04:26:00 AM
 #28

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
Hero Member
*****
Offline Offline

Activity: 896
Merit: 1000



View Profile
September 17, 2014, 08:09:35 PM
 #29

Have you implemented the failover pool function?
ballot
Hero Member
*****
Offline Offline

Activity: 969
Merit: 1000



View Profile
October 13, 2014, 04:39:18 AM
 #30

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 Offline

Activity: 9
Merit: 0


View Profile
October 31, 2014, 06:02:23 PM
 #31

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 Offline

Activity: 9
Merit: 0


View Profile
November 02, 2014, 01:45:17 AM
 #32

So I figured it out i just right click on it and select the option that says "edit with IDLE"
gegstore
Member
**
Offline Offline

Activity: 78
Merit: 10


View Profile
August 29, 2016, 04:50:30 PM
Last edit: August 30, 2016, 09:30:13 AM by gegstore
 #33

help the proxy don't go

now go with twisted15 64bit

but i don't can to go the claymore

DarkStar1O9
Sr. Member
****
Offline Offline

Activity: 489
Merit: 260


View Profile WWW
September 10, 2016, 07:13:37 AM
 #34

Mine keeps saying "connection refused" when pointing a miner to it though may be something in my connection settings on the laptop.

ICONOMI - Fund Management Platform ❘|❘ ICO ❘|❘ DISCUSSION
Beave162
Hero Member
*****
Offline Offline

Activity: 809
Merit: 501



View Profile
December 28, 2016, 05:11:45 AM
 #35

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
Full Member
***
Offline Offline

Activity: 213
Merit: 100


View Profile
June 08, 2017, 07:18:57 PM
 #36

Hi! How must I run proxy without PAYMENT_ID for mine to poloniex?
evilcode1
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
June 13, 2017, 08:52:15 PM
 #37

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 Offline

Activity: 31
Merit: 0


View Profile
August 26, 2017, 08:26:48 PM
 #38

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.
]
not.you
Legendary
*
Offline Offline

Activity: 1726
Merit: 1018


View Profile
August 26, 2017, 08:57:08 PM
 #39

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.
Travis90x
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
September 01, 2017, 04:33:43 PM
 #40

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 Offline

Activity: 125
Merit: 2


View Profile
September 12, 2017, 06:42:31 AM
 #41

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
bapparabi
Hero Member
*****
Offline Offline

Activity: 826
Merit: 1000


View Profile
September 12, 2017, 06:57:13 AM
 #42

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 Offline

Activity: 1
Merit: 0


View Profile
September 17, 2017, 02:40:23 AM
 #43

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
Full Member
***
Offline Offline

Activity: 254
Merit: 121



View Profile WWW
October 06, 2017, 08:12:46 PM
 #44

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.

Fairpool https://fairpool.xyz mining pool - Realtime stats, Profit calculation, Instant payouts
LOKI mining pool: https://loki.fairpool.xyz RYO mining pool: https://ryo.fairpool.xyz
XHV Haven mining pool: https://xhv.fairpool.xyz PURK mining pool: https://purk.fairpool.xyz
ETC mining pool: https://etc.fairpool.xyz PGC mining pool: https://pgc.fairpool.xyz
ETP mining pool: https://etp.fairpool.xyz AKA mining pool: https://aka.fairpool.xyz
PASL mining pool: https://pasl.fairpool.xyz NUKO mining pool: https://nuko.fairpool.xyz
yanir99
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
October 17, 2017, 07:54:40 AM
 #45

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 Offline

Activity: 67
Merit: 0


View Profile
October 29, 2017, 11:17:40 PM
 #46

Just tested:
xmr-stak-cpu
xmr-stak-nvidia
on https://xmr.mypool.online
(stratum mine.xmr.mypool.online:3335)

darkstilo
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
January 12, 2018, 10:38:20 PM
 #47

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!
Pages: 1 2 3 [All]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!