Skip to content

How to create your own mining pool

blockinator edited this page Jun 23, 2019 · 1 revision

How to create your own mining pool

Prepare Server

Create AWS Account

Create an account with Amazon AWS.

pool-aws

Setup Instance

On the home page, click the services tab and then go to compute and click 'EC2'. Once you are there you will chose your region on the top of the page in the header section. Next click the 'Launch Instance' button at the center of the page and then select an AMI. For this tutorial I am using Ubuntu Server 16.04 LTS.

pool-choose

Next you will need to choose an instance type. I am just going to use the t2.large for the tutorial.

pool-choosetype

You can then skip to step six and under the source tap select my IP.

pool-security

Next press Review and Launch and then create a new key pair to be able to connect with your instance. Once the instance is live, you can connect to your instance using an SSH through Terminal, PuTTY or similar program.

pool-createkey

SSH into instance

  1. Download key pair that you created earlier

  2. Make sure you are in the same directory as the key and allow permissions

chmod 600 <key-name>.pem
  1. SSH into instance
ssh -i <key-name>.pem ubuntu@<EC2-IP-Address>

Install dependancies

sudo apt-get install aptitude
sudo aptitude update
sudo aptitude install –with-recommends build-essential autotools-dev autoconf automake libcurl3 libcurl4-gnutls-dev git make cmake libssl-dev pkg-config libevent-dev libunbound-dev libminiupnpc-dev doxygen supervisor jq libboost-all-dev htop
  • Install redis Server
sudo add-apt-repository ppa:chris-lea/redis-server
sudo apt-get update
sudo apt-get install redis-server
  • Install Apache2 for hosting the front end.
sudo apt-get update
sudo apt-get install apache2
  • Adjust firewall to allow Apache full.
sudo ufw allow 'Apache Full'

Clone your coins repository

git clone --recurse-submodules https://github.com/<coin-name>/<coin-name>
cd ./<coin-name>
mkdir ./build
cd ./build
cmake ..
cmake --build . --config Release

Start daemon and let it sync

 cd build/src
tmux
./<coin-name>d
  • Let the blockchain sync before continuing

  • control b + d to exit tmux

Start simple wallet and follow steps to generate a new simplewallet

  • After you generated a new wallet exit it and run this:
tmux
./simplewallet --wallet-file <wallet_name> --password <wallet_password> --rpc-bind-port 8198
  • control b + d to exit tmux

Install pool software

Install dependancies

sudo apt-get install libssl-dev libboost-all-dev
curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash
sudo apt-get install -y nodejs
  • Clone repository
git clone https://github.com/dvandal/cryptonote-nodejs-pool.git pool
cd pool && npm update

Pool Configuration

  • Copy the config_examples/qwertycoin.json file to config.json
cp config_examples/qwertycoin.json config.json

Change the following variables: Line 2 - Pool host to your pools IP Address Line 4 - Change coin name Line 5 - Change coin symbol Line 6 - Set coin units Line 7 - Set coin decimal places Line 8 - Change coin's difficulty target Line 30 - Your simplewallet address that you generated Line 138 - Set your API password Line 125-127 - (Optional) change pool fees

Copy website_example files to html directory

sudo cp -rf js/ lang/ pages/ themes/ admin.html config.js index.html /var/www/html

Configuring website_example

  • Edit config.js to use your pool's specific configuration

pool-config

Start the mining pool

cd && cd pool
node init.js
  • Your pool should now be visible at your server's IP address

  • You can visit your admin page by appending admin.html to your server IP address in your browsers search bar like so:

http://server-ip-address/admin.html

  • Your admin password is your API password you set earlier in config.json
Clone this wiki locally