Bitcoin Forum
November 04, 2024, 06:25:14 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: [XMR] Monero stratum proxy (open-source)  (Read 81858 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
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
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!