BOS Installation
Installation of bos-auto
In this first step, we'll install everything we'll need going forward.
Install Dependencies
Note: Dependencies must be installed as root/sudo
Tip: virtualenv
is a best practice for python, but installation can also be on a user/global level.
Install MongoDB
MongoDB is used for persistent storage within BOS.
For additional information on how to use MongoDB refer to tutorials on your distribution.
Important: Make sure that the MongoDB is running reliably with automatic restart on failure.
Install Redis
Redis is used as an asynchronous queue for the python processes in BOS.
For additional information on how to install Redisdb refer to your Linux distribution.
Important: Make sure that RedisDB is running reliably with automatic restart on failure, and that it's run without any disk persistence.
Starting MongoDB and Redis Daemons
It is highly recommended that both daemons are started on start-up.
To start the deamons, execute
Important: Common Issues:
Exception: Can’t save in background: fork or MISCONF Redis is configured to save RDB snapshots.
This indicates that either your queue is very full and the RAM is insufficient, or that your disk is full and the snapshot can’t be persisted.
Create your own Redis configuration file (https://redis.io/topics/config) and use it to deactivate caching and activate overcommit memory:
https://redis.io/topics/faq#background-saving-fails-with-a-fork-error-under-linux-even-if-i-have-a-lot-of-free-ram or https://stackoverflow.com/questions/19581059/misconf-redis-is-configured-to-save-rdb-snapshots/49839193#49839193
https://gist.github.com/kapkaev/4619127
Exception: IncidentStorageLostException: localhost:27017: [Errno 111] Connection refused or similar.
This indicates that your MondoDB is not running properly. Check your MongoDB installation.
Installing bos-auto
Note: bos-auto must be installed as user
You can either install bos-auto via pypi / pip3
(production installation) or via git clone (debug installation).
For production using install bos-auto via pip3 is recommended, but the git master branch is always the latest release as well, making both installations equivalent. Recommended is a separate user.
For debug use, checkout from Github (master branch) and install dependencies manually.
BOS auto is supposed to run in the virtual environment. Either activate it beforehand, as above, or run it directly in the env/bin
folder.
Important: If bos-auto is installed as root
and not user
then you'll likely get errors similar to the following:
Upgrading bos-auto
For production installation, upgrade to the latest version - including all dependencies using:
For debug installation, pull latest master branch and upgrade dependencies manually
Configuration of bos-auto
Next we need to go through the steps required to setup bos-auto properly.
Spinning Up bos-auto
After bos-auto configuration we need to spin-up bos-auto to see if it works properly.
Manual Intervention (MINT)
Bos-mint is a web-based manual intervention module that allows you to work with all sorts of manual interactions with the blockchain.
For more information see:
Monitoring bos-auto
The isalive call should be used for monitoring. The scheduler must be running, and the default queue a low count (< 10).
Here is an example of a positive isalive
check:
Configuration
The default configuration looks like the following and is (by default) stored in config.yaml
:
Both, the API and the worker make use of the same configuration file.
We need to provide the wallet pass phrase in order for the worker to be able to propose changes to the blockchain objects according to the messages received from the data feed.
Command Line Tool
Schema
The messages sent to the API need to follow a particular message schema which is defined in endpointschema.py
Last updated