Kevacoin stratum server for solo-mining
Go to file
2016-12-12 02:12:16 +05:00
cnutil Fix cmake and linking 2016-12-06 14:38:28 +05:00
go-pool Add broadcast stats 2016-12-12 02:12:16 +05:00
hashing Revert "Remove nonsensical code" 2016-12-08 17:50:36 +05:00
www Tidy up fractionDigits in Web-UI 2016-12-07 23:59:35 +05:00
.gitignore Update .gitignore 2016-12-06 19:01:25 +05:00
CMakeLists.txt Update CMakeLists.txt 2016-12-05 19:10:26 +05:00
config.example.json Add option to disable Web-UI 2016-12-07 11:47:15 +05:00
LICENSE Initial import 2015-07-05 14:49:07 +05:00
main.go Fix stratum init 2016-12-07 12:32:37 +05:00
README.md Update README.md 2016-12-08 13:45:50 +05:00

go-cryptonote-pool

High performance CryptoNote mining stratum with Web-interface written in Golang.

Stratum feature list:

  • Be your own pool
  • Rigs availability monitoring
  • Keep track of accepts, rejects, blocks stats
  • Easy detection of sick rigs
  • Daemon failover list
  • Concurrent shares processing
  • Beautiful Web-interface

Installation

Dependencies:

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

Linux

Use Ubuntu 16.04 LTS.

Compile Monero source (with shared 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

If you need to bind to privileged ports and don't want to run from root:

sudo apt-get install libcap2-bin
sudo setcap 'cap_net_bind_service=+ep' pool

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 for block rewards
  "address": "46BeWrHpwXmHDpDEUmZBWZfoQpdc6HaERCNmx1pEYL2rAcuwufPN9rXHHtyUA4QVy66qeFQkn6sfK8aHYjA3jk3o1Bv16em",
  // Don't validate address
  "bypassAddressValidation": true,
  // Don't validate shares
  "bypassShareValidation": true,

  "threads": 2,

  "estimationWindow": "15m",
  "luckWindow": "24h",
  "largeLuckWindow": "72h",

  // Interval to poll daemon for new jobs
  "blockRefreshInterval": "1s",

  "stratum": {
    // Socket timeout
    "timeout": "15m",

    "listen": [
      {
        "host": "0.0.0.0",
        "port": 1111,
        "diff": 5000,
        "maxConn": 32768
      },
      {
        "host": "0.0.0.0",
        "port": 3333,
        "diff": 10000,
        "maxConn": 32768
      }
    ]
  },

  "frontend": {
    "enabled": true,
    "listen": "0.0.0.0:8082",
    "login": "admin",
    "password": "",
    "hideIP": false
  },

  "upstreamCheckInterval": "5s",

  "upstream": [
    {
      "name": "Main",
      "host": "127.0.0.1",
      "port": 18081,
      "timeout": "10s"
    }
  ]
}

Donations

License

Released under the GNU General Public License v2.

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