You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.5 KiB
108 lines
3.5 KiB
# Sibcoin Sentinel
|
|
|
|
> An automated governance helper for Sibcoin Masternodes.
|
|
|
|
[](https://travis-ci.org/dashpay/sentinel)
|
|
|
|
Sentinel is an autonomous agent for persisting, processing and automating Sibcoin governance objects and tasks, and for expanded functions in the upcoming Sibcoin V17 release (Evolution).
|
|
|
|
Sentinel is implemented as a Python application that binds to a local sibcoind instance on each Sibcoin Masternode.
|
|
|
|
|
|
## Table of Contents
|
|
- [Install](#install)
|
|
- [Dependencies](#dependencies)
|
|
- [Usage](#usage)
|
|
- [Configuration](#configuration)
|
|
- [Troubleshooting](#troubleshooting)
|
|
- [Maintainer](#maintainer)
|
|
- [Contributing](#contributing)
|
|
- [License](#license)
|
|
|
|
## Install
|
|
|
|
These instructions cover installing Sentinel on Ubuntu 16.04 / 18.04.
|
|
|
|
### Dependencies
|
|
|
|
Make sure Python version 2.7.x or above is installed:
|
|
|
|
python --version
|
|
|
|
Update system packages and ensure virtualenv is installed:
|
|
|
|
$ sudo apt-get update
|
|
$ sudo apt-get -y install python-virtualenv
|
|
|
|
Make sure the local Sibcoin daemon running is at least version 16.4 (160400)
|
|
|
|
$ sibcoin-cli getinfo | grep version
|
|
|
|
### Install Sentinel
|
|
|
|
Clone the Sentinel repo and install Python dependencies.
|
|
|
|
$ git clone https://github.com/ivansib/sentinel.git && cd sentinel
|
|
$ virtualenv ./venv
|
|
$ ./venv/bin/pip install -r requirements.txt
|
|
|
|
## Usage
|
|
|
|
Sentinel is "used" as a script called from cron every minute.
|
|
|
|
### Set up Cron
|
|
|
|
Set up a crontab entry to call Sentinel every minute:
|
|
|
|
$ crontab -e
|
|
|
|
In the crontab editor, add the lines below, replacing '/path/to/sentinel' to the path where you cloned sentinel to:
|
|
|
|
* * * * * cd /path/to/sentinel && ./venv/bin/python bin/sentinel.py >/dev/null 2>&1
|
|
|
|
### Test Configuration
|
|
|
|
Test the config by running tests:
|
|
|
|
$ ./venv/bin/py.test ./test
|
|
|
|
With all tests passing and crontab setup, Sentinel will stay in sync with sibcoind and the installation is complete
|
|
|
|
## Configuration
|
|
|
|
An alternative (non-default) path to the `sibcoin.conf` file can be specified in `sentinel.conf`:
|
|
|
|
sibcoin_conf=/path/to/sibcoin.conf
|
|
|
|
## Troubleshooting
|
|
|
|
To view debug output, set the `SENTINEL_DEBUG` environment variable to anything non-zero, then run the script manually:
|
|
|
|
$ SENTINEL_DEBUG=1 ./venv/bin/python bin/sentinel.py
|
|
|
|
## Maintainer
|
|
|
|
[@ivansib](https://github.com/ivansib)
|
|
|
|
## Contributing
|
|
|
|
Please follow the [Sibcoin Core guidelines for contributing](https://github.com/ivansib/sibcoin/blob/master/CONTRIBUTING.md).
|
|
|
|
Specifically:
|
|
|
|
* [Contributor Workflow](https://github.com/ivansib/sibcoin/blob/master/CONTRIBUTING.md#contributor-workflow)
|
|
|
|
To contribute a patch, the workflow is as follows:
|
|
|
|
* Fork repository
|
|
* Create topic branch
|
|
* Commit patches
|
|
|
|
In general commits should be atomic and diffs should be easy to read. For this reason do not mix any formatting fixes or code moves with actual code changes.
|
|
|
|
Commit messages should be verbose by default, consisting of a short subject line (50 chars max), a blank line and detailed explanatory text as separate paragraph(s); unless the title alone is self-explanatory (like "Corrected typo in main.cpp") then a single title line is sufficient. Commit messages should be helpful to people reading your code in the future, so explain the reasoning for your decisions. Further explanation [here](http://chris.beams.io/posts/git-commit/).
|
|
|
|
## License
|
|
|
|
Released under the MIT license, under the same terms as Sibcoin Core itself. See [LICENSE](LICENSE) for more info.
|