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.

198 lines
5.3 KiB

5 years ago
# keva-stratum
9 years ago
5 years ago
High performance CryptoNote mining stratum with Web-interface written in Golang. This project is forked from [monero-stratum](https://github.com/sammy007/monero-stratum), with the support for Kevacoin. It includes the part of Monero source code that is required for build and therefore does not need an external Monero source tree. It also builds on Windows through MSYS2.
9 years ago
[![Go Report Card](https://goreportcard.com/badge/github.com/kevacoin-project/keva-stratum)](https://goreportcard.com/report/github.com/kevacoin-project/keva-stratum)
7 years ago
9 years ago
**Stratum feature list:**
8 years ago
* Be your own pool
* Rigs availability monitoring
* Keep track of accepts, rejects, blocks stats
* Easy detection of sick rigs
* Daemon failover list
8 years ago
* Concurrent shares processing
8 years ago
* Beautiful Web-interface
9 years ago
8 years ago
![](https://cdn.pbrd.co/images/jRU3qJj83.png)
8 years ago
## Installation
9 years ago
Dependencies:
6 years ago
* go-1.6
5 years ago
* Everything required to build [Monero](https://github.com/monero-project/monero) or [Kevacoin](https://github.com/kevacoin-project/kevacoin). Follow their build instructions to install the dependencies for your system.
9 years ago
### Linux
8 years ago
5 years ago
Use Ubuntu 16.04 LTS or 18.04 LTS.
9 years ago
7 years ago
Install Golang and required packages:
9 years ago
sudo apt-get install golang
9 years ago
7 years ago
Clone stratum:
9 years ago
git clone https://github.com/kevacoin-project/keva-stratum.git
5 years ago
cd keva-stratum
9 years ago
8 years ago
Build stratum:
mkdir build
cd build
5 years ago
cmake .
7 years ago
make
8 years ago
7 years ago
### Mac OS X
8 years ago
5 years ago
Install Golang and required packages:
brew update && brew install go
Clone stratum:
git clone https://github.com/kevacoin-project/keva-stratum.git
cd keva-stratum
Build stratum:
9 years ago
mkdir build
cd build
8 years ago
cmake .
make
9 years ago
5 years ago
### Windows
Just like Monero, keva-stratum can be built on Windows using the MinGW toolchain within [MSYS2](https://www.msys2.org/) environment.
- Download and install the [MSYS2 installer](https://www.msys2.org/), either the 64-bit or the 32-bit package, depending on your system.
- Open the MSYS shell via the application `mingw32` (for 32-bit Windows) or `mingw64` (for 64-bit windows).
- Update packages using pacman:
pacman -Syu
- Install dependencies:
To build for 64-bit Windows:
pacman -S mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi
To build for 32-bit Windows:
pacman -S mingw-w64-i686-toolchain make mingw-w64-i686-cmake mingw-w64-i686-boost mingw-w64-i686-openssl mingw-w64-i686-zeromq mingw-w64-i686-libsodium mingw-w64-i686-hidapi
Install Golang:
pacman -S mingw-w64-x86_64-go
7 years ago
Clone stratum:
git clone https://github.com/kevacoin-project/keva-stratum.git
5 years ago
cd keva-stratum
9 years ago
8 years ago
Build stratum:
9 years ago
mkdir build
cd build
5 years ago
cmake -G "MSYS Makefiles" .
**IMPORTANT: STOP AND CHECK**
Check the output of `cmake` and make sure it finds the `OpenSSL` library, and the library is **inside** your `MSYS2` directory. e.g. the output should be something like this:
-- Found OpenSSL: C:/msys64/mingw64/lib/libcrypto.dll.a (found version "1.1.1b")
If the `OpenSSL` is not inside your `MSYS2` directory, `cmake` is not using the correct `OpenSSL` library. e.g.
-- Found OpenSSL: C:/OpenSSL-Win64/lib/libeay32.lib (found version "1.0.2q")
5 years ago
In the above case, you need to adjust the search path so that `cmake` uses the correct library.
Now we are ready to build:
7 years ago
make
5 years ago
9 years ago
### Running Stratum
8 years ago
5 years ago
./keva-stratum config.json
8 years ago
8 years ago
If you need to bind to privileged ports and don't want to run from `root`:
sudo apt-get install libcap2-bin
5 years ago
sudo setcap 'cap_net_bind_service=+ep' /path/to/keva-stratum
8 years ago
## Configuration
9 years ago
8 years ago
Configuration is self-describing, just copy *config.example.json* to *config.json* and run stratum with path to config file as 1st argument.
8 years ago
```javascript
{
8 years ago
// Address for block rewards
7 years ago
"address": "YOUR-ADDRESS-NOT-EXCHANGE",
8 years ago
// 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"
8 years ago
}
8 years ago
]
8 years ago
}
```
9 years ago
7 years ago
You must use `anything.WorkerID` as username in your miner. Either disable address validation or use `<address>.WorkerID` as username. If there is no workerID specified your rig stats will be merged under `0` worker. If mining software contains dev fee rounds its stats will usually appear under `0` worker. This stratum acts like your own pool, the only exception is that you will get rewarded only after block found, shares only used for stats.
7 years ago
9 years ago
### License
Released under the GNU General Public License v2.
http://www.gnu.org/licenses/gpl-2.0.html