Stratum proxy for Zcash
This is a Stratum Proxy for Zcash using JSON-RPC.
Originally developed by the Cryptense team.
Working with Dwarfpool and Nanopool. Also tried on Miningspeed on Zclassic / BitcoinZ / ZenCash coins. Some issues with flypool, better not use with this pool.
Successfully tested with EWBF's Zcash CUDA miner. 0.3.4b and dstm's ZCash Nvidia Miner v0.5 (Linux) with several GPUs Rigs.
WARNING This work is still in development. Please report any broken features or issues.
Pool A < ---+ +------------- > Rig 1 / Worker 1
(Active) | |
| +------------- > Rig 2 / Worker 2
| |
Pool B < ---+--- > StratumProxy < ----+------------- > Rig 3 / Worker 3
(FailOver) |
+------------- > Rig 4 / Worker 4
git clone https://github.com/BScrk/zecproxy.git
cd zec_stratum
npm install
npm start
The proxy will automatically listen on port 8000 for miners.
{
"wallet": "<Your wallet>",
"password" : "<Pool password or just 'x'>",
"port": <Proxy port>,
"proxy_name" : "<Proxy default name>" (shown on the pool if enable_worker_id set to false),
"enable_worker_id": true|false (send worker name to the pool or not),
"pool" : { "host" : "<HOST>" , "port" : <PORT>, "ssl" : true|false },
"pool_failover_enabled": true|false,
"pool_failover" : [ { "host" : "<HOST>" , "port" : <PORT>, "ssl" : true|false },
{ "host" : "<HOST>" , "port" : <PORT>, "ssl" : true|false },
{ "host" : "<HOST>" , "port" : <PORT>, "ssl" : true|false }],
"restart_delay": <delay before restarting the proxy on error>,
"on_rejected_share": {
"strategy" : "<On Rejected Share strategy>" (continue / kill / restart),
"threshold" : <number of rejected shares before applying strategy>
},
"debug" : true|false
}
continue
: ignore and continuerestart
: Restart the proxy (without pm2)kill
: Kill the process (hard restart using pm2)./miner --server <PROXY_ADDRSS> --user <RIG_NAME> --pass <PASS> --port <PROXY_PORT>
exemple : ./miner --server 192.168.0.10 --user miner_1 --pass "x" --port 8000 --solver 0
./miner --server <PROXY_ADDRSS> --user <RIG_NAME> --pass <PASS> --port <PROXY_PORT>
exemple : ./miner --server $192.168.0.10 --port 8000 --user miner_1 --pass "x"
The project is now dockerized for more convenience :)
Find the official image on the Docker Hub bscrk/zecproxy :
docker pull bscrk/zecproxy
git clone https://github.com/BScrk/zecproxy.git
cd zec_stratum
docker run -d --name=zecproxy -p 8000:8000 -v $(pwd)/config.json:/usr/src/app/config.json bscrk/zecproxy:latest
Setup and make your own image :
git clone https://github.com/BScrk/zecproxy.git
cd zec_stratum
docker build . -t zecproxy
docker run -p 8000:8000 -d zecproxy
zec_stratum is build with nodeJS. The requirements for running zec_stratum are:
This software is provides AS-IS without any warranties of any kind. Please use at your own risk.