Ark v2 true block weight utilities
Branch: master
Clone or download
Latest commit d78c877 Feb 18, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
bash added notification (twilio, pushbullet, pushover) Feb 17, 2019
zen readme update Feb 18, 2019
.gitignore Initialization & webhook Oct 17, 2018
LICENSE initial commit Jun 15, 2018 final release v1.0.0 Oct 22, 2018 readme update Feb 18, 2019
VERSION versioning Feb 17, 2019
app.json Payroll algorithm reinforced Oct 27, 2018
app.png Delphinus release Dec 9, 2018
requirements.txt requirement fix Feb 16, 2019 front end improvement Dec 1, 2018 pacakging Oct 19, 2018


zen package, entirely writen in python, provides True Block Weight utilities for DPOS pool.

Support this project

Supported blockchain

  • Ark-core v2

Install last release


zen command

cd ~
./zen --help
    zen (reset | initialize | rebuild | start-tbw | stop-tbw | snap-blockchain | remove-custom-peer)
    zen configure <username> [-s <share> -w <wallet> -t <threshold> -e <excludes> -b <block-delay> -f <fee-level>]
    zen add-delegate <username> -h <webhook-peer>
    zen configure [ --fee-coverage --target-delegate --chunk-size <chubk-size> -c <currency>]
    zen adjust-forge <username> <value>
    zen launch-payroll <username>
    zen retry-payroll <username> -n <name-list>
    zen resume-payroll <username>
    zen remove-delegate [<username>]
    zen append-custom-peer <peer-list>

    -b --block-delay=<block-delay>   : block amount to wait beetween payroll
    -c --currency=<currency>         : configure token display on front-end pages
    -e --excludes=<excludes>         : coma-separated or file address list to exclude from payroll
    -w --wallet=<wallet>             : delegate funds wallet
    -f --fee-level=<fee-level>       : set the fee level for the delegate
    -h --webhook-peer=<webhook-peer> : define the webhook peer to use
    -s --share=<share>               : delegate share rate (0.0<=share<=1.0)
    -t --threshold=<threshold>       : minimum amount for a payment
    -n --name-list=<name-list>       : *.tbw coma-separated name list
    --chunk-size=<chunk-size>        : max transaction per request [default:15]
    --target-delegate                : send transactions to delegate when forging (flag)
    --fee-coverage                   : delegate covers transaction fees (flag)

    reset              : initialization starting from ark-core installation
    initialize         : initialization starting from delegates configuration
    rebuild            : rebuild database from snapshots
    configure          : configure options for a given <username>
    start-tbw          : start the true block weight process
    stop-tbw           : stop the true block weight process
    launch-payroll     : create a payroll for <username> (true block weight status reseted)
    retry-payroll      : retry a specified payroll for <username> (true block weight status unchanged)
    resume-payroll     : resume existing <username> payroll (true block weight status unchanged)
    add-delegate       : add remote <username> (ie ark-core-forger running on remote node)
    remove-delegate    : remove delegate from list or specified by <username>
    snap-blockchain    : update snapshot or create it if no snapshot initialized yet
    append-custom-peer : append custom peer from coma-separated-peer or newline-separated-peer file
    remove-custom-peer : remove one or more custom peer from a selection list

Notification system

4 notification types are available. Notification service is activated if a json configuration file is present in .json folder.

freemobile (french only) Notification option must be enabled in your Free mobile account. Then, copy your parameters in freemobile.json file :

    "user": "12345678", 
    "pass": "..."

twilio Copy your parameters in twilio.json file :

    "sid": "...",
    "auth": "...", 
    "receiver": "+1234567890", 
    "sender": "+0987654321"

Pushover Copy your parameters in pushover.json file :

    "user": "...",
    "token": "..."

Pushbullet Copy your API token in pushbullet.json file :

    "token": "..."

crontab use case

Edit the crontab file

crontab -e

create a snapshot and update it every 12 hours

0 */12 *   *   *     /home/{username}/zen snap-blockchain

Automatic startup on server restart

This tweak does not works with BIP38 encrypted passphrase.

@reboot /usr/bin/pm2 start /home/{username}/core-commander/ecosystem.config.js --only ark-core-relay >> /home/{username}/core-commander/logs/commander.log 2>&1
@reboot sleep 30 && /usr/bin/pm2 start /home/{username}/core-commander/ecosystem.config.js --only ark-core-forger >> /home/{username}/core-commander/logs/commander.log 2>&1
@reboot cd /home/{username}/ark-zen && /usr/bin/pm2 start app.json

zen front-end

zen front-end


Andromeda (v1.2.0)

  • true block weight
  • secured payrolls
  • command line interface
  • light weight HTML front-end
  • multiple pool management


  • enable remote delegate management
  • blockchain database rebuild
  • snapshot management
  • custom peer management

Boötis minor tweaks (v1.3.1)

  • reward distribution improvement

Cassiopeia (v1.4.0)

  • automatic fee coverage
  • transaction history rebuild
  • delegate targetting

Cassiopeia minor tweaks (v1.4.1)

  • fee coverage is now optional
  • delegate targetting is now optional

Cassiopeia minor tweaks (v1.4.2)

  • ark-zen runs with both ark-core mainnet and devnet

Delphinus (v1.5.0)

  • ark-zen runs with ark-core 2.1.x
  • html front-end improvement

TODO (dev version)

  • notification system added (SMS or push)
  • fork sensor
  • auto-rollback