The bot supports the following alerts:
- Missed blocks (signing performance)
- Validator status (active/inactive/jailed)
- Governance proposals
- Peggo performance (Injective)
- Balance checks (Injective/Ethereum)
- IBC packets tracking
- Network upgrades (planned)
The bot supports 3 platforms: Slack, Discord and Telegram.
The configuration file is used to set up the AIO Bot for various platforms. It also contains subscription details to receive alerts on each platform, ensure the file is valid and present.
Below is an explanation of each section:
This section configures the platforms (Slack, Discord, Telegram) where the bot will send alerts. Besides the credentials required for each platform's setup, each platform also has separated
Mutual Parameters:
enable
: Toggle to enable or disable the alerting functionality for a specific platform.mode
: Operation mode in each platform:single
andchain
. When the bot operates insingle
mode, it tracks a single validator only, which is helpful for single user, while inchain
modes, the bot track chain's multiple addresses and features, which is suitable for the community.single
mode works only in Slack/Telegram, while Discord supports bothsingle
andchain
mode.channels
: List of channels withid
andname
. It is recommended to use different channels for specific feature, especially inchain
mode.subscriptions
: List of user subscriptions for alerts. These users will be tagged in the messages they subscribe to.
Specifies the blockchain the bot is monitoring. Example: Injective
.
Lists of RPC and API endpoints of the chain, set multiple endpoints for redundancy.
JSON-RPC endpoint for the blockchain, for EVM querying (depend on chains)
This section enables or disables specific bot features and configures their parameters.
enable
: Boolean to enable/disable the feature.params
: Parameters of each feature.
Note:
IBC
feature requiresibc.json
file, which contains a list of IBC channels to check. The endpoints of each chain is fetched from cosmsos/chain-registry repo. Format ofibc.json
file:[ { "chain-1": "chain-1", "client-1": "client-1", "channel-1": "channel-1", "port-1": "port-1", "chain-2": "chain-2", "client-2": "client2", "channel-2": "channel-2", "port-2": "port-2" }, ... ]
Note:
validator
feature has different parameters for each mode. Insingle
mode, the bot checks validator's sign in every block and notifies user afterthreshold
, while inchain
mode, the bot periodically checks signing performance of every active validator in everyinterval
seconds. Eachvalue
inthreshold
params inchain
mode is portion of validator current window misses over maximum window missed allowed before jail (0% ~ 100%).
To setup the bot in different platforms, please checkout Set up section.
To run the bot, follow these commands:
python3 -m venv .aio
source .aio/bin/activate
pip3 install -r requirements.txt
python3 main.py
[WARNING_LEVEL] VALIDATOR has missed more than MISS_PERCENT of the allowed signing window!
Blocks to Jail: Consecutive missed blocks to be jailed
Window Signing Percentage: Current signing window / Minimum signing window
Signing window: Signing window params
[RECOVERING] VALIDATOR is recovering!
Window Signing Percentage: Current signing window / minimum signing window
VALIDATOR is active!
VALIDATOR is inactive!
VALIDATOR is JAILED!
Last Signed Block: Last signed block
Jailed Until: Time to be unjailed
Jailed Duration: Jail duration param
Low balance!
Address: Address
Balance: Balance of the address
Invalid address!
Address: Address
Client CLIENT is about to expire!
From: Source chain
To: Destination chain
Last Updated: Last client update time
Time Left: Time left to be expired
Uncommited packets from SOURCE_CHAIN to DESTINATION_CHAIN!
From: Source chain
To: Destination chain
Port: Channel port
Channel: Channel ID
Missed: Number of missed packets
VALIDATOR has pending valsets!
Pending Valsets: Length of pending valsets
Last Height Checked: Last height checked
VALIDATOR's nonce is lagging behind!
Last Observed Nonce: Chain latest nonce
Last Claimed Ethereum Event Nonce: Operator nonce
Last Height Checked: Last height checked
New Proposal PROPOSAL_ID!
Description: Summary
Type: Proposal type
Title: Proposal name