1. Home
  2. Delegate
  3. Linux
  4. Installing Dakk’s Shift Pool on Ubuntu 16.04

Installing Dakk’s Shift Pool on Ubuntu 16.04

Prerequisites

To complete this tutorial, you will need:

  • To have a working Shift instance

Installation

Fork this repo:

https://github.com/MxShift/shift-pool

Rename config.example.json file to config.json then edit and modify the first lines with your settings:

pubkey: your delegate pubkey
percentage: percentage to distribute
minpayout: the minimum amount for a payout
secret: your secret
secondsecret: your second secret or null if disabled
feededuct: true if you want to subtract fees from user payouts
donations: a list of object (address: amount) for send static amount every payout
donationspercentage: a list of object (address: percentage) for send static percentage every payout
skip: a list of address to skip

Now edit docs/index.html and customize the webpage.

Finally edit poollogs.json and put in lastpayout the unixtimestamp of your last payout or the date of pool starting;

Private pool

If you want to run a private pool, you need to edit config.json and:

private: set to true
whitelist: put a list of address you wish to include

Running it

Clone the shift-pool repository and install requests:

git clone https://github.com/MxShift/shift-pool.git

cd shift-pool

sudo apt-get install python3

sudo apt-get install python3-pip

sudo pip3 install requests

Then start it:

python3 liskpool.py

or if you want to use another config file:

python3 liskpool.py -c config2.json

The script is also runnable by cron using the -y argument:

python3 liskpool.py -y

It produces a file “payments.sh” with all payments shell commands. Run this file with:

bash payments.sh

The payments will be broadcasted (every 10 seconds). At the end you can move your generated poollogs.json to docs/poollogs.json and send the update to your git repo.

git add docs/poollogs.json
git commit -m "payouts update"
git push -u origin master

or

bash site-update.sh

To display the pool frontend, enable docs-site on github repository settings.

Batch mode

There is also a ‘run.sh’ file which run liskpool, then payments.sh and copy the poollogs.json in the docs folder.

bash run.sh

Avoid vote hoppers

In some DPOS, some voters switch their voting weight from one delegate to another for receiving payout from multiple pools. A solution for that is the following flow:

1.. Run liskpool.py every hour with –min-payout=1000000 (a very high minpayout, so no payouts will be done but the pending will be updated)

crontab -e
@hourly python3 ~/shift-pool/liskpool.py -y --min-payout=1000000

2.. Run liskpool.py normally to broadcast the payments

bash run.sh

Command line usage

usage: liskpool.py [-h] [-c config.json] [-y] [--min-payout MINPAYOUT]

DPOS delegate pool script

optional arguments:
  -h, --help            show this help message and exit
  -c config.json        set a config file (default: config.json)
  -y                    automatic yes for log saving (default: no)
  --min-payout MINPAYOUT
                        override the minpayout value from config file
Was this article helpful to you? Yes 1 No

How can we help?