The main purpose of this proxy is to reduce bandwidth consumption between mining farms and pools.

Overview

This proxy aggregates hashrate on stratum protocol. This doesn't work with Stratum V2. A new version of the proxy which is compatible with both Stratum V1 and V2 will be released soon.

Operating instructions

The proxy natively runs only on Linux. However, the dockerized version works on Windows as well.

It must run on a host that is reachable from all mining devices and the mining devices need to use this host's IP address as a pool address with Stratum V1 (i.e. it doesn't work with Stratum V2).

The proxy needs the configuration of upstream pool ( -o  & -p params) and downstream listener for local mining devices (-sh & -sp params).

Docker instructions (recommended)

This works on any system with Docker (Linux/Mac/Windows) and doesn't need anything other than Git and Docker.

1. Install and run docker for your operating system (https://www.docker.com/products/docker-desktop).

2. Download and extract this directory.

3. Navigate to directory where you've extracted the file in step 2 using cd command. For example:

cd OneDrive\Desktop\stratum-mining-proxy-master

4. To build the docker image run:

docker build -t stratum-mining-proxy .

5.1. Run interactively:

docker run -it --rm -p 3333:3333 stratum-mining-proxy -o us-east.stratum.slushpool.com -p 3333 -sh 0.0.0.0 -sp 3333

5.2. Run as a service:

docker run -d --restart unless-stopped -p 3333:3333 stratum-mining-proxy -o us-east.stratum.slushpool.com -p 3333 -sh 0.0.0.0 -sp 3333

Running stratum-mining-proxy from sources

Advanced option.

1. Install python2 and python2-virtualenv for your distribution.

2. Download and extract this directory.

3. Download stratum dependency:

git clone https://github.com/braiins/stratum.git

4. Execute:

cd stratum-mining-proxy-master
virtualenv .env --python=/usr/bin/python2.7
. .env/bin/activate
python -m pip install -e ../stratum
python mining_proxy.py -o us-east.stratum.slushpool.com -sh 0.0.0.0 -sp 3333 --enable-stratum-extensions

You have to enable the stratum extensions here (unlike in the docker setup where this option is already built in the docker entrypoint).