Skip to main content

Ethereum stratum proxy

Project description

========
ethproxy
========

.. image:: https://img.shields.io/pypi/v/ethproxy.svg
:target: https://pypi.python.org/pypi/ethproxy

.. image:: https://img.shields.io/travis/narfman0/ethproxy.svg
:target: https://travis-ci.org/narfman0/ethproxy

Description
===========

This is Stratum Proxy for Ethereum based pools (RPCv2) using asynchronous networking written in Python Twisted.

*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
* Fast deployment through Docker

How it works
============

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

Configuration
=============

* ethproxy/settings.py contains settings, all of which can be set via
environment variables

Command line start
------------------

Recommended farm-recheck to use with stratum-proxy is 200::

./ethminer --farm-recheck 200 -G -F http://127.0.0.1:8080/rig1

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.

Requirements
============

eth-proxy is built in python. The requirements for running the software are below.

* Python 2.7+
* python-twisted

Installation
============

[Linux]
-------

With python (and pip) installed, use pip to install::

pip install ethproxy

Start proxy with::

ethproxy

[Windows]
---------

This are old directions, might be easier to pip install but twisted has native
dependencies so good luck with that :)

Download compiled version
https://github.com/Atrides/eth-proxy/releases

Or use python source code

1) Download Python Version 2.7.14 (or greater) 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::

pip 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 eth-proxy. Extract eth-proxy.zip. Change settings and start with command::

python xmr-proxy.py

[Docker]
--------

Use this generic command line (conf references likely need to be updated with package refactor)::

docker run -d -v CONFIG:/app/eth-proxy.conf -p PORT:8080 --name eth-proxy fmauneko/eth-proxy

Exemple::

docker run -d -v /srv/eth-proxy/eth-proxy.conf:/app/eth-proxy.conf -p 8080:8080 --name eth-proxy fmauneko/eth-proxy

TODO
====

* lint and make python more happy

Credits
=======

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

License
=======

Please see LICENSE for further info

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ethproxy-1.0.0.tar.gz (37.6 kB view hashes)

Uploaded Source

Built Distribution

ethproxy-1.0.0-py2.py3-none-any.whl (40.0 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page