2015-07-05 14:49:07 +05:00
# go-cryptonote-pool
2016-08-07 07:44:08 +05:00
High performance CryptoNote mining stratum written in Golang.
2015-07-05 14:49:07 +05:00
**Stratum feature list:**
2016-08-07 09:05:02 +05:00
* Concurrent shares processing
2016-12-06 00:32:20 +05:00
* AES-NI enabled share validation code with fallback to slow implementation
2015-07-05 14:49:07 +05:00
* Integrated NewRelic performance monitoring plugin
2016-12-06 14:37:21 +05:00
## Installation
2015-07-05 14:49:07 +05:00
Dependencies:
2016-08-07 07:17:41 +05:00
* go-1.6
2016-12-05 19:10:26 +05:00
* Everything required to build monero
2016-12-06 14:37:21 +05:00
* Monero >= **v0.10.0**
2015-07-05 14:49:07 +05:00
2016-12-06 14:37:21 +05:00
### Linux
2016-08-07 11:25:06 +05:00
2016-12-06 14:37:21 +05:00
Use Ubuntu 16.04 LTS.
2015-07-05 14:49:07 +05:00
2016-12-06 14:37:21 +05:00
Compile Monero source (with libraries option):
2015-07-05 14:49:07 +05:00
2016-12-06 14:54:33 +05:00
cmake -DBUILD_SHARED_LIBS=1 .
make
2015-07-05 14:49:07 +05:00
2016-12-06 14:37:21 +05:00
Install Golang and packages:
2015-07-05 14:49:07 +05:00
2016-12-06 14:37:21 +05:00
sudo apt-get install golang
export GOPATH=~/go
go get github.com/yvasiyarov/gorelic
2015-07-05 14:49:07 +05:00
2016-12-06 14:37:21 +05:00
Build CGO extensions:
2015-07-05 14:49:07 +05:00
2016-12-06 14:37:21 +05:00
MONERO_DIR=/opt/src/monero cmake .
2015-07-05 14:49:07 +05:00
make
2016-08-07 11:25:06 +05:00
Build stratum:
go build -o pool main.go
2016-12-06 14:37:21 +05:00
### Mac OS X
2015-07-05 14:49:07 +05:00
2016-12-06 14:37:21 +05:00
Install Golang and packages packages:
2015-07-05 14:49:07 +05:00
2016-12-06 14:37:21 +05:00
brew update & & brew install go
2016-08-07 11:25:06 +05:00
export GOPATH=~/go
go get github.com/yvasiyarov/gorelic
2016-12-06 14:37:21 +05:00
Compile Monero source:
2015-07-05 14:49:07 +05:00
2016-12-06 00:21:58 +05:00
cmake .
2016-12-06 14:37:21 +05:00
make
2015-07-05 14:49:07 +05:00
2016-12-06 14:37:21 +05:00
Now clone stratum repo and compile it:
2015-07-05 14:49:07 +05:00
2016-12-05 19:10:26 +05:00
MONERO_DIR=/opt/src/monero cmake .
2015-07-05 14:49:07 +05:00
make
2016-08-07 07:30:11 +05:00
Build stratum:
2015-07-05 14:49:07 +05:00
2016-08-07 11:25:06 +05:00
go build -o pool main.go
2015-07-05 14:49:07 +05:00
2016-12-06 14:37:21 +05:00
### Running Stratum
2016-08-07 09:05:02 +05:00
./pool config.json
2016-12-06 14:37:21 +05:00
## Configuration
2015-07-05 14:49:07 +05:00
2016-12-06 00:21:58 +05:00
Configuration is self-describing, just copy *config.example.json* to *config.json* and run stratum with path to config file as 1st argument.
2016-08-07 09:05:02 +05:00
```javascript
{
// Address to where mined blocks will rain
"address": "46BeWrHpwXmHDpDEUmZBWZfoQpdc6HaERCNmx1pEYL2rAcuwufPN9rXHHtyUA4QVy66qeFQkn6sfK8aHYjA3jk3o1Bv16em",
// Don't validate login, useful for other CN coins
"bypassAddressValidation": false,
2016-12-06 00:21:58 +05:00
// Don't validate shares for efficiency
"bypassShareValidation": false,
2016-08-07 09:05:02 +05:00
"threads": 2,
// Mining endpoints
"stratum": {
// TCP timeout for miner, better keep default
"timeout": "15m",
// Interval to poll monero node for new jobs
"blockRefreshInterval": "1s",
"listen": [
{
"host": "0.0.0.0",
"port": 1111,
// Stratum port static difficulty
"diff": 5000,
"maxConn": 32768
},
{
"host": "0.0.0.0",
"port": 3333,
"diff": 10000,
"maxConn": 32768
}
]
},
// Monero daemon connection options
"daemon": {
"host": "127.0.0.1",
// Monero RPC port, default is 18081
"port": 18081,
"timeout": "10s"
}
}
```
2015-07-05 14:49:07 +05:00
### Private Pool Guidelines
For personal private pool you can use [DigitalOcean ](https://www.digitalocean.com/?refcode=2a6767e6285f ) droplet. With recent blockchain-db merged into Monero it's ok to run it even on 5 USD plan. You will receive 10 USD free credit there.
### TODO
2016-08-07 09:05:02 +05:00
In-RAM stats with a simple self hosted frontend.
2015-07-05 14:49:07 +05:00
### Donations
* **BTC**: [16bBz4wZPh7kV53nFMf8LmtJHE2rHsADB2 ](https://blockchain.info/address/16bBz4wZPh7kV53nFMf8LmtJHE2rHsADB2 )
* **XMR**: 4Aag5kkRHmCFHM5aRUtfB2RF3c5NDmk5CVbGdg6fefszEhhFdXhnjiTCr81YxQ9bsi73CSHT3ZN3p82qyakHwZ2GHYqeaUr
### License
Released under the GNU General Public License v2.
http://www.gnu.org/licenses/gpl-2.0.html