GithubHelp home page GithubHelp logo

eth-proxy's Introduction

#Description

This is Stratum Proxy for Ethereum based pools (RPCv2) using asynchronous networking written in Python Twisted. Originally developed for DwarfPool http://dwarfpool.com/eth

NOTE: This fork is still in development. Some features may be broken. Please report any broken features or issues.

#Features

  • Additional up to 20% increase of earning compared to standard pools
  • ETH stratum proxy
  • Automatically failover via proxy
  • Only one connection to the pool
  • Workers get new jobs immediately
  • Submit of shares without network delay, it's like solo-mining but with benefits of professional pool
  • Central Wallet configuration, miners doesn't need wallet as username
  • Support monitoring via email
  • Bypass worker_id for detailed statistic and per rig monitoring
  • pass submitHashrate to pool

#How it works

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

#ToDo


#Configuration

  • all configs in file eth-proxy.conf

#Command line to miner start, recommended farm-recheck to use with stratum-proxy is 200

#External script to restart proxy (made by rain)

Proxy working check

  • To check that proxy works open in browser http://127.0.0.1:8080/ (or your changed ip and port from config)
  • If you see "Ethereum stratum proxy" and some infos about connections.
  • If not then mostly case that you have application running on this port, at example Antivirus.

#Donations

  • ETH: 0xea7263feb7d8a8ab0a11eedd8f1ce04412ab0820

#Requirements

eth-proxy is built in python. I have been testing it with 2.7.3, but it should work with other versions. The requirements for running the software are below.

  • Python 2.7+
  • python-twisted

#Installation and start

  • [Linux]
  1. install twisted
 apt-get install python-twisted
  1. start proxy with
 python ./eth-proxy.py

Or use python source code

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

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

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

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

  5. Install zope.interface, in console run:

   easy_install -U zope.interface
  1. 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/

  2. Download eth-proxy. Extract eth-proxy.zip. Change settings in config.py and start with command:

  python xmr-proxy.py

#Contact

#Credits

  • Original version by Slush0 (original stratum code)
  • More Features added by GeneralFault, Wadee Womersley and Moopless

#License

  • This software is provides AS-IS without any warranties of any kind. Please use at your own risk.

eth-proxy's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eth-proxy's Issues

Is this normal?

Is this normal?
Some mining on go with port 7007 port and this stratum port is 7117 and this is what used in open-ethereum-pool also...

 2017-08-18 22:16:10,242 INFO stats # 1 peers connected, state changed 1 times
 2017-08-18 22:16:10,243 INFO proxy # Connected to Stratum pool at my.site:7007
 2017-08-18 22:16:48,689 INFO proxy # NEW_JOB MAIN_POOL
 2017-08-18 22:19:52,278 INFO proxy # NEW_JOB MAIN_POOL
 2017-08-18 22:23:45,372 INFO proxy # NEW_JOB MAIN_POOL
 2017-08-18 22:25:01,970 INFO proxy # NEW_JOB MAIN_POOL

But nothing doing?
Claymore miner on my new port 7117 tried to connect but doing nothing...

this is config host and port

HOST = "0.0.0.0"
PORT = 7117

I dont see any users mining in this log?

Unhandled error in Deferred between the log lines

From time to time I can see strange error messages with a Traceback. What's the problem here?

2016-04-14 19:29:28,890 INFO proxy # NEW_JOB MAIN_POOL
Unhandled error in Deferred:


Traceback (most recent call last):
Failure: stratum.custom_exceptions.TransportException: SocketTransportClientFactory connection timed out
2016-04-14 19:29:34,910 INFO proxy # NEW_JOB MAIN_POOL

How could I find where the share comes from?

@Atrides Thx
I have 3 computers , one is used to run eth-proxy , the other 2 are used to run ethminer .

Computer 1 :
IP:192.168.80.113
ethproxy -H 192.168.80.113 -P 8080 -W xxxxx -PH eth.f2pool.com -PP 8080 -PHF1 eth.f2pool.com -PPF1 8080 -PHF2 eth.f2pool.com -PPF2 8080 -PHF3 eth.f2pool.com -PPF3 8080

Computer 2:
IP:192.168.80.186
./ethminer --farm-recheck 200 -G -F http://192.168.80.113:8080/rig1

Computer 3:
IP:192.168.80.205
./ethminer --farm-recheck 200 -U -F http://192.168.80.113:8080/rig2

When eth-proxy tells me a solution is accepted by f2pool , How do I find which ethminer solve it . Can it be shown like this below ?

example

Connection bug on startup. (I guess)

Hello everybody. I was testing eth-proxy 0.0.5, searching for some bugs, and I believe that found one. Let me describe what I did.

1 - Disable network adapter
2 - Start eth-proxy.exe
3 - Console: exception "connection timed out"
4 - Enable network adapter (eth-proxy.exe still running)
5 - Console: "1 peers connected, state changed 1 times"
(repeats until reach 4 peers connected)
6 - Console: "Disconnected from Stratum pool at ..."
7 - Console: repeats numbers 5 and 6, infinite loop

I tried to access "http://127.0.0.1:8080" no response: GET connection refused.


Print from Console:
ethproxy-bug


I think this is simple to fix, just restart eth-proxy when exception has been threw. I hope this helps to improve eth-proxy. Bye guys.

Specify Log File Path via Command Line Argument

Greetings,

Great tool here, easy to use.
I am requesting an additional feature:
It is necessary for my purposes to produce log files, time-stamped via file-name.
This could be accomplished with additional command line arguments.

Thanks,
coast

Connect using username

Not so much of an issue but more of a question, if its even possible. Some mining pools require a username to credit you for the work you do (IE: Minergate). Is there a way to send username information from the proxy to connect and get the credit.

Minergate documentation shows the following information for connecting with "ethminer":

ethminer -G -S eth.pool.minergate.com:45791 -u "email address for your account"

proxy job timeout loop

Hi !

Just reporting an issue that appears 2 days ago. My proxy is running for quite some times without any troubles until that happened :

WARNING proxy # Job timeout. Proxy is waiting for an updated job. Please restart proxy!

It loops over and over again without any clear reasons and obviously stopped my rigs from minning.
It happens twice a day now.

Connect through HTTP Proxy

Thanks for the wonderful project. My setup is a bit unique: I'm setting up eth-proxy behind a firewall that can only allow connection through a http/https proxy. In other words, all my machines can only talk to the outside world through this proxy. I wonder if it's easy to support that? I can try to implement it given some pointer.

PS: I'm on Ubuntu 16.04

Thank you!

Parity Node

Is it possible to use this proxy to connect directly to Parity via RPC?

still working ?

Hi

Is eth-proxy still active? Although I installed the software, I could not make the rig connections. Do miner software and pools still support

Cannot connect to proxy??

Hi,

when i will join my proxy with claymore, it says disconnect.
If i join other stratum Proxy Servers from other Pools, it works...

but why?
The Proxy is online and says

  2017-08-18 23:51:06,657 INFO proxy # NEW_JOB MAIN_POOL

Looking on Website says also connected

ENABLE_WORKER_ID not working | Win 10 | v 0.0.5

Hello there,

if you set ENABLE_WORKER_ID = True

Proxy will not start with this error

image

With ENABLE_WORKER_ID = False proxy working correctly.

Windows 10 Pro 64-bit, Ver. 1703, Build 15063.483

Best Regards,
Rogue

Stratum spec

Could you publish spec of this stratum? In other words, what this proxy should send to server, what server should respond, error codes, etc.

LocateETH

If you cared. The rewards is near. Do not fear. Fourth I am here, nowHere! Can you relate then please inticipate.

wrong wallet

says wrong wallet on debian with last vesion whatever I put as wallet

System freez after few minutes

With 2x GTX 1070 8Go and ethminer I'm getting around 57 MH/s out of the box

With 2x GTX 1070 and ethminer + eth proxy it's around 67 MH/s out of the box and before overclocking.. Couldn't be happier, right ?

The only issue is after a few minutes the hash drops to 0 MH/s, and the whole system stops responding and I'm foced te reboot

I run Win 10 pro and have latest Nvidia drivers the 382.33 WHQL and I run Ethminer with -U since -G is giving me error "no GPU with enough memory found...) and I use Stratum

My start-mining.bat file looks like this:

setx GPU_FORCE_64BIT_PTR 0
setx GPU_MAX_HEAP_SIZE 100
setx GPU_USE_SYNC_OBJECTS 1
setx GPU_MAX_ALLOC_PERCENT 100
setx GPU_SINGLE_ALLOC_PERCENT 100

ethminer.exe --farm-recheck 200 -U -F http://127.0.0.1:8080/

And my eth-proxy conf file looks like this:

# Select Ethereum ETH or Expanse EXP
COIN = "ETH"

# Host and port for your workers
HOST = "127.0.0.1"
PORT = 8080

# Coin address where money goes
WALLET = "MyAddress"

# It's useful for individually monitoring and statistic
ENABLE_WORKER_ID = 1

# On DwarfPool you have option to monitor your workers via email.
# If WORKER_ID is enabled, you can monitor every worker/rig separately.
MONITORING = 1
MONITORING_EMAIL = "MyEmail"

# Main pool
POOL_HOST = "eth-us.dwarfpool.com"
POOL_PORT = 8008

# Failover pool
POOL_FAILOVER_ENABLE = 1

POOL_HOST_FAILOVER1 = "eth-us2.dwarfpool.com"
POOL_PORT_FAILOVER1 = 8008

POOL_HOST_FAILOVER2 = "eth-eu.dwarfpool.com"
POOL_PORT_FAILOVER2 = 8008

POOL_HOST_FAILOVER3 = "eth-asia.dwarfpool.com"
POOL_PORT_FAILOVER3 = 8008


# Logging
LOG_TO_FILE = 1

# Enable debug
DEBUG = 0

Anyone experiencing the same issue ? Any ideas ?

DEBUG protocol protocol.lineReceived # > {u'id': 2, u'result': None, u'error': [20, u"Unknown method 'eth_submitLogin'", None]}

Hello,
We getting error with mint.bitminter.com:333
Here this id debug

 {"worker": "Proxy_0.0.5_debug", "jsonrpc": "2.0", "params": ["xxxx", "[email protected]"], "id": 2, "method": "eth_submitLogin"}
2017-05-21 20:25:49,375 DEBUG protocol protocol.lineReceived # > {u'id': 2, u'result': None, u'error': [20, u"Unknown method 'eth_submitLogin'", None]}
2017-05-21 20:25:49,375 WARNING protocol protocol.dataReceived # Failed message: local variable 'meta' referenced before assignment from 74.84.128.158
2017-05-21 20:25:49,375 INFO proxy <string>.on_disconnect # Disconnected from Stratum pool at us1.bitminter.com:3333
2017-05-21 20:25:49,375 INFO stats stats.print_stats # 0 peers connected, state changed 1 times
2017-05-21 20:25:49,375 DEBUG socket_transport socket_transport.clientConnectionLost # [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionLost'>: Connection to the other side was lost in a non-clean fashion.```

Lost Hashrate

I using eth-proxy with 50 miners. Sometime i lost a lot of hashrate.
So how can i solver this ?
Thanks!

ModuleNotFoundError: No module named 'server'

hello
can someone help me pls

py eth-proxy.py Traceback (most recent call last): File "C:\Users\oumish\Desktop\Nouveau dossier (2)\eth-proxy\eth-proxy.py", line 9, in <module> from stratum import settings File "C:\Users\oumish\Desktop\Nouveau dossier (2)\eth-proxy\stratum\__init__.py", line 1, in <module> from server.py import setup ModuleNotFoundError: No module named 'server'

thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.