This is an Ethereum mining proxy with simple web interface.
- Features
- Building on Linux
- Building on Windows
- Building on Mac OS X
- Configuration
- Example upstream section
- Running
- Connecting and mining with ethminer to the proxy
- JSON API stats
- Pools that work with this proxy
- TODO
- Acknowledgements
- License
- Increases efficiency and profitability by aggregating work from several miners on a single connection to the pool.
- Simple web interface with statistics.
- Rigs availability monitoring.
- Keep track of accepts, rejects, blocks stats.
- Easy detection of sick rigs.
- Daemon failover list.
- JSON stats output.
Dependencies:
- go >= 1.4
- geth
Export GOPATH:
export GOPATH=$HOME/go
Install required packages:
go get github.com/ethereum/ethash go get github.com/ethereum/go-ethereum/common go get github.com/goji/httpauth go get github.com/gorilla/mux go get github.com/yvasiyarov/gorelic
Compile:
go build -o ether-proxy main.go
Follow this wiki paragraph in order to prepare your environment. Install required packages (look at Linux install guide above). Then compile:
go build -o ether-proxy.exe main.go
If you didn't install Brew, do it. Then install Golang:
brew install go
And follow Linux installation instructions because they are the same for OS X.
Configuration is self-describing, just copy config.example.json to config.json and specify endpoint URL and upstream URLs.
"upstream": [
{
"pool": true,
"name": "NiceHash as primary pool",
"url": "http://ethereum.eu.nicehash.com:3500/n1c3-1CzrFvvieNaZg5aMHkb8eAPCSeVVUfUpax.myproxy/250",
"timeout": "10s"
},
{
"pool": true,
"name": "suprnova.cc as secondary pool",
"url": "http://eth-mine.suprnova.cc:3000/myusername.myproxy/250",
"timeout": "10s"
},
{
"name": "local geth wallet as backup",
"url": "http://127.0.0.1:8545",
"timeout": "10s"
}
],
In this example we specified NiceHash mining pool as main primary mining target. Additionally we specified suprnova.cc and a local geth node as backup.
With "submitHashrate": true|false
proxy will forward eth_submitHashrate
requests to upstream.
./ether-proxy config.json
The syntax is:
ethminer -G -F http://x.x.x.x:8546/miner/N/X
where N = desired difficulty (approximately expected rig hashrate, divided by 2) and X is the name of the rig.
Examples for one AMD and one NVIDIA rig with multiple GPUs:
ethminer -G -F http://x.x.x.x:8546/miner/50/myamdrig ethminer -U -F http://x.x.x.x:8546/miner/30/mynvidiarig
Point your browser to the stats page according to "frontend" settings in config.json:
- NiceHash Ethereum pool with auto-convert to Bitcoin
- suprnova.cc Ethereum pool
- Report block numbers
- Report luck per rig
- Maybe add more stats
- Maybe add charts
Forked from sammy007's ethere-proxy, all credits goes to sammy007.
The MIT License (MIT).