Kevacoin stratum server for solo-mining
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Sammy Libre 46137b5923 Make first block refresh after timers set 8 years ago
cnutil Fix cmake and linking 8 years ago
go-pool Make first block refresh after timers set 8 years ago
hashing Fix cmake and linking 8 years ago
www Tiny UI fix 8 years ago
.gitignore Update .gitignore 8 years ago
CMakeLists.txt Update CMakeLists.txt 8 years ago
LICENSE Initial import 10 years ago
README.md Update README.md 8 years ago
config.example.json Add option to disable Web-UI 8 years ago
main.go Add option to disable Web-UI 8 years ago

README.md

go-cryptonote-pool

High performance CryptoNote mining stratum written in Golang.

Stratum feature list:

  • Concurrent shares processing
  • AES-NI enabled share validation code with fallback to slow implementation
  • Integrated NewRelic performance monitoring plugin

Installation

Dependencies:

  • go-1.6
  • Everything required to build monero
  • Monero >= v0.10.0

Linux

Use Ubuntu 16.04 LTS.

Compile Monero source (with libraries option):

cmake -DBUILD_SHARED_LIBS=1 .
make

Install Golang and packages:

sudo apt-get install golang
export GOPATH=~/go
go get github.com/yvasiyarov/gorelic

Build CGO extensions:

MONERO_DIR=/opt/src/monero cmake .
make

Build stratum:

go build -o pool main.go

Mac OS X

Install Golang and packages packages:

brew update && brew install go
export GOPATH=~/go
go get github.com/yvasiyarov/gorelic

Compile Monero source:

cmake .
make

Now clone stratum repo and compile it:

MONERO_DIR=/opt/src/monero cmake .
make

Build stratum:

go build -o pool main.go

Running Stratum

./pool config.json

Configuration

Configuration is self-describing, just copy config.example.json to config.json and run stratum with path to config file as 1st argument.

{
    // Address to where mined blocks will rain
    "address": "46BeWrHpwXmHDpDEUmZBWZfoQpdc6HaERCNmx1pEYL2rAcuwufPN9rXHHtyUA4QVy66qeFQkn6sfK8aHYjA3jk3o1Bv16em",
    // Don't validate login, useful for other CN coins
    "bypassAddressValidation": false,
    // Don't validate shares for efficiency
    "bypassShareValidation": false,

    "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"
    }
}

Private Pool Guidelines

For personal private pool you can use DigitalOcean 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

In-RAM stats with a simple self hosted frontend.

Donations

License

Released under the GNU General Public License v2.

http://www.gnu.org/licenses/gpl-2.0.html