Skip to content

Latest commit

 

History

History
150 lines (100 loc) · 3.67 KB

README.md

File metadata and controls

150 lines (100 loc) · 3.67 KB

PayoutScriptArk

PayoutScript for Ark delegates, example of using arkdbtools

This payoutscript uses the arkdbtoolsfunctions to calculate trueblockweight and then uses Core.payoutsender to send the transactions.

To setup a node and configure it, check the arkdbtools repo, whcih also contains some documentation on the settings.

The bashscript has hardcoded directories. It expects the following:

virtualenvironment: /home/ark/PayoutScriptArk/venv/bin/activate plugandplay location: /home/ark/PayoutScriptArk/plugandplay.py

So basically edit that file, or create a user called Ark:

sudo adduser ark
usermod -aG sudo ark

Then clone this repo:

cd
git clone https://github.com/Nijmegen-Consultancy-Group/PayoutScriptArk.git
cd PayoutScriptArk

Next get python 3.6 and a virtual environment:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6
wget https://bootstrap.pypa.io/get-pip.py
sudo python3.6 get-pip.py
sudo pip3.6 install virtualenv

And then create the virtual environment:

virtualenv venv -p python3.6

And start the venv:

source venv/bin/activate

Now we need to pip install the requirements. I have been a bit careless with my dev environment, so you are getting some packages that you don't need. I will later update requirements.txt to reflect what you actually need.

pip install pip install -r requirements.txt

So everything should be setup. Check the config and enter your settings. Leave the secret/passphrase for now.

DELEGATE = {
    'PUBKEY'      : None,
    'ADDRESS'     : None,
    'PASSPHRASE'  : None,
    'REWARDWALLET': None,
    }
    
...

PAYOUTCALCULATOR_TEST = True
PAYOUTSENDER_TEST = True

Next edit the CONNECTION settings with your connection parameters.

CONNECTION = {
    'HOST': None,
    'DATABASE': None,
    'USER': None,
    'PASSWORD': None,
}

Now we should be able to do a test run and see if everything works.

python plugandplay.py

This should take approximately 5 minutes.

Lets check the logs:

nano /tmp/payoutscriptark.log

Check the logs. TxParameterErrors are fine. They are produced when a voter's balance is below the threshold, or if he has had a payout recently the sender then skips these until they have accumulated enough Ark.

If you are okay with the numbers and everything looks good, you can enter your passhrase:

nano /home/ark/PayoutScriptArk/config.py 
DELEGATE = {
...
'PASSPHRASE'  : 'yourpasshprase here',
}

PAYOUTCALCULATOR_TEST = False
PAYOUTSENDER_TEST = False

SECRET = 'string'

If you run the script now, it will recalculate the payments and transfer the Ark.

If everything worked out fine, you could easily automate the script. I recommend running the script at a certain time every day, and since some errors could occur, run it a couple of times, with 30 minute intervals (to make sure your node has processed the transactions)

crontab -e

Cron is a daemon used to run scripts at certain timeintervals. Read the documentation here: http://www.nncron.ru/help/EN/working/cron-format.htm

In this example we run the script every day at 17:00, then again at 18:00, 19:00, 20:00 and 21:00 P.M

00 17 * * * /home/ark/PayoutScriptArk/runpayments
00 18 * * * /home/ark/PayoutScriptArk/runpayments
00 19 * * * /home/ark/PayoutScriptArk/runpayments
00 20 * * * /home/ark/PayoutScriptArk/runpayments
00 21 * * * /home/ark/PayoutScriptArk/runpayments

The script does not charge a fee whatsover. If you use it, consider donating to 'AJwHyHAArNmzGfmDnsJenF857ATQevg8HY', and please us my referall link to create your VPS at digitalocean: https://m.do.co/c/b5eee933a448