Before starting Decimal Guard it is necessary to configure it's parameters.

#Guard configuration

To configure guard tool you should create file .env at directory cmd/guard. Example of the configuration:

NODES_ENDPOINTS="tcp://localhost:26657" MISSED_BLOCKS_LIMIT=8 MISSED_BLOCKS_WINDOW=24 VALIDATOR_ADDRESS="1A42FDF9FC98931A4BB59EF571D61BB70417657D" SET_OFFLINE_TX="ab01282816a90a1a51f5833b0a14d0c71c31a891e5023ae63fd2bcf2732f04f32158120310be031a6a0a26eb5ae987210279f7e074d08a23e2fc7b7fd9e49a0d6570a28bf6c9cb988e92f678c32935097412407979e0cc483f241e48ed3c371d9d668a5b978fb474afc5fea5803c89bd2a2dac3db15eb84fef1fce25e783e279a33bac7b96bbe6786c9608d52c69baecacf9d02218446563696d616c2047756172642074726967676572726564" ENABLE_GRACE_PERIOD=true GRACE_PERIOD_DURATION=15840

Where:

  • NODES_ENDPOINTS - list of Decimal Node RPC endpoints which should be used to listen new blocks (can be specified several endpoints separated by ,)
  • MISSED_BLOCKS_LIMIT and MISSED_BLOCKS_WINDOW - when at least MISSED_BLOCKS_LIMIT blocks of last MISSED_BLOCKS_WINDOW blocks are missed to sign by monitoring validator set_offline transaction will be send to all connected nodes to turn of validator
  • VALIDATOR_ADDRESS - validator address in hex format which should be monitored by the guard. Validator address can be found in file ~/.decimal/daemon/config/priv_validator_key.json
  • SET_OFFLINE_TX - signed tx (ready to broadcast) in hex format which will be used to turn off validator when too many blocks are missed to sign
  • ENABLE_GRACE_PERIOD - checked tx "software_upgrade" and set grace period = [update_block ; update_block+GRACE_PERIOD_DURATION]
  • GRACE_PERIOD_DURATION - duration of the grace period in blocks. At the moment, the duration of the grace period in decimal-go-node is 15840 blocks (~ 24 hours). It is recommended to set the value for the guard the same as for the node - 15840.

#Guard usage

To run guard tool use following commands:

(cd ./cmd/guard && go run guard.go)