archit120 / Monero-Pool

An open source monero Pool written in C# and C++ for maximum speed and efficiency. Uses Redis as database
20 stars 12 forks source link

Monero-Pool

This project is broken because of changes in the CryptoNight protocol. There are no plans to revive it and getting it to work today can be significant work. Please look for other alternatives.


An open source Crypto Night Pool written in C# and C++ for maximum speed and efficiency for coins such as Monero and Bytecoin. Uses Redis for a high performance database. Also comes with a full fledged front end.

Index

Features

===

Requirements

On Linux:

On Windows:

1) Downloading & Installing

Compiling from source
On Linux:

Clone this repository locally and run make

git clone https://github.com/archit120/Monero-Pool.git
cd Monero-Pool
make

The resulting binaries can be found in /build/

On Windows:

Compile the C++ part of the solution then compile the C# project named Monero-Pool. After doing this copy the C++ dll to same folder as your pool binaries.

Binaries

Binary releases can be found on the repository.

2) Configuration

Have a look the sample config.txt given and configure it to your liking.

Sample config

#Daemon RPC address
daemon-json-rpc=http://127.0.0.1:18081
#Wallet RPC address
wallet-json-rpc=http://127.0.0.1:8082
#Http Server address with port
http-server=http://*:7707/
#Pool wallet address
wallet-address=41jhre5xFk92GYaJgxvHuzUC5uZtQ4UDU1APv3aRAc27DWBqKEzubC2WSvmnbxaswLdB1BsQnSfxfYXvEqkXPvcuS4go3aV
#Redis database server address
redis-server=127.0.0.1
#Redis database Id
redis-database=0
#Number of seconds before removing a miner without getting a response
client-timeout-seconds=60
#Starting difficulty for all miners
base-difficulty=150
#Ban when this percentage of shares are invalid
ban-reject-percentage=50
#Minutes to ban the miner for
ban-time-minutes=60
#Block depth required for transactions to occur
block-confirms=60
#Percentage of pool fee
pool-fee=5
#Base 58 prefix for address
base58-prefix=18
#Enable banning after this many shares
ban-after-shares=10
#Target time for shares
vardiff-targettime-seconds=15
#vardiff deviation from target time allowed
vardiff-targettime-deviation-allowed=5
#Percentage of maximum difficulty change in one step
vardiff-targettime-maxdeviation=10
#Maximum difficulty
vardiff-max-difficulty=15000
#Maximum concurrent works to miner
max-concurrent-works=15
#Tcp server port
stratum-server-port=7706
#Retarget difficulty for miners every this seconds
diffiulty-retarget=5

3) Start the pool

On Linux:
mono MoneroPool.exe
On Windows:
MoneroPool.exe

4) Configure the front-end

Edit the config.json

{"scheme":"tcp","host":"192.168.1.4","port":6379}

Download and extract Predis to the root directroy of front end. Host with a webserver capable of serving PHP files.

Upgrading

When upgrading it is highly recommended to wait for an official release. Since the pool is still in extremely beta stage many big changes may be implemented so follow the step listed in release carefully while upgrading.

Setting up Testnet

No cryptonote based coins have a testnet mode (yet) but you can effectively create a testnet with the following steps:

Credit to surfer43 for these instructions

Credits