-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathconfig.example.toml
More file actions
146 lines (141 loc) · 6.96 KB
/
config.example.toml
File metadata and controls
146 lines (141 loc) · 6.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# Log configuration
[log]
# Logging level. Set it to "debug" or even "trace" to see more logs, or "warn" or even "error"
# to reduce the logs amount. Defaults to "info".
level = "info"
# If set to true, the app with display logs in JSON, which is handy if you are using
# a logging solution like Loki or Elastic stack. Defaults to false.
json = false
# Database configuration
[database]
# Type of the database. Currently supported DB types are: postgres, sqlite.
type = "sqlite"
# Where the database will be stored.
# If it's a PostgreSQL database, a connection string is expected (like postgres://user:password@host:port/database)
# If it's a SQLite database, a path to the file storing a database is expected.
path = "database.sqlite"
# Prometheus metrics configuration
[metrics]
# Whether to enable metrics. If yes, a web server will be spawned at listen-addr,
# and you can query metrics by fetching "<listen-addr>/metrics", or set a Prometheus
# to scrape it. It's useful, and you can build alerts to see if anything is going wrong.
# Defaults to true
enabled = true
# Metrics webserver listen address. Defaults to ":9570".
listen-addr = ":9570"
# Chains configuration. You need at least 1 chain.
[[chains]]
# Chain codename, used in metrics.
name = "cosmos"
# Chain pretty name. Used in Telegram commands or other places. The app will use fallback
# to name if it's not provided.
pretty-name = "Cosmos Hub"
# RPC endpoints. Need at least 1. Better to have many, so the app would work in case one is down.
rpc-endpoints = [
"https://rpc.cosmos.quokkastake.io",
"https://rpc-cosmoshub.ecostake.com",
"https://rpc.cosmos.dragonstake.io"
]
# Telegram reporter configuration. Needs token and chat. See README.md on how to set it up
telegram = { token = "xxx:yyy", chat = 12345 }
# Discord reporter configuration. Needs token, server ID (aka guild) and channel ID.
# See README.md on how to set it up.
discord = { token = "xxx", guild = "12345", channel = "67890" }
# Explorer configuration, to generate links to validators.
# Currently supported explorers are: Mintscan and Ping.pub, but you can use
# a custom link pattern to generate custom links.
# This chain configuration uses Mintscan, see below for Ping.pub and custom explorers.
# If it's omitted, no links will be generated and everything will be in plain text.
explorer = { mintscan-prefix = "cosmos" }
# How much blocks to store. This should be more than blocks window, as otherwise
# the app would never be able to generate reports as there's always not enough blocks
# to calculate missed blocks counter. Optimal would be to store at least 2x blocks
# of the blocks window. Defaults to 20000 (2x from 10k blocks window).
store-blocks = 20000
# Blocks window to calculate missed blocks counter against. Defaults to 10000.
blocks-window = 10000
# How much blocks a validator needs to sign in any specific window. Defaults to 0.05 (5%)
min-signed-per-window = 0.05
# Reporting thresholds.
# This is an array of percent thresholds for missed blocks groups.
# For example, if it's [0, 50, 100], there are 2 groups: from 0% to 50% and from 50% to 100%
# of missed blocks. An event is going to be sent once a validator's missed blocks count moves
# from one group to another.
# Should be an array of at least 2 values (2 values mean 1 group), the first value
# should be always 0 (as in 0%, the last value should always be 100 (as in 100%).
# Defaults to [0, 0.5, 1, 5, 10, 25, 50, 75, 90, 100]
thresholds = [0, 5, 10, 25, 50, 75, 100]
# An emoji that's going to appear in the message when a validator **enters** this group
# (for example, when a validator is missing blocks and its missed blocks counter moves from one group
# to another).
# This and emoji-end arrays' length should be equal to the amount of missed blocks group
# (so if you have 3 thresholds, you have 2 groups, so these arrays both should have 2 values).
# Defaults to ["🟡", "🟡", "🟡", "🟠", "🟠", "🟠", "🔴", "🔴", "🔴"]
emoji-start = ["🟡", "🟡", "🟠", "🟠", "🔴", "🔴"]
# An emoji that's going to appear in the message when a validator **leaves** this group
# (for example, when a validator is recovering and its missed blocks counter moves from one group
# to another).
# Defaults to ["🟢", "🟡", "🟡", "🟡", "🟡", "🟠", "🟠", "🟠", "🟠"]
emoji-end = ["🟢", "🟡", "🟡", "🟠", "🟠", "🟠"]
# Minimal interval between two snapshots to be reported.
# For example, if a snapshot was generated at block 10, and snapshot-interval is 5,
# then the next snapshot would be done on block 15 or later (if there were errors processing it/fetching datat).
# Defaults to 1, so every block.
snapshots-interval = 10
# Periodical intervals check params. You can omit this completely, or some fields inside and the default
# ones will be used.
[chains.intervals]
# Interval to fetch blocks missed in the local state from chain.
# Setting it to 0 would disable automatic blocks fetching, which is not desired.
# You can set it to something smaller if your websocket connection is lagging.
# Defaults to 30.
blocks = 30
# Interval to fetch slashing params from chain. Set to 0 to disable fetching slashing params from chain
# and use local blocks-window and min-signed-per-window.
# Defaults to 300.
slashing-params = 300
# Interval to fetch soft opt-out threshold from consumer chain.
# (e.g. how much of voting power should sign blocks).
# Set to 0 to disable and use local threshold.
# This param is not used for sovereign chains.
# Defaults to 300.
soft-opt-out-threshold = 300
# Interval to trim local database. Set it to 0 to disable database trimming.
# Defaults to 300.
trim = 300
# Queries pagination params.You can omit this completely, or some fields inside and the default
# ones will be used.
[chains.pagination]
# How many blocks to query at once.
# Defaults to 100.
# Decrease it if the node you're querying has rate limiting and doing too many requests at once
# causes some requests to fail
blocks-search = 100
# How many validators to query at once.
validators-list = 1000
# How many signing infos to query at once.
signing-infos = 1000
# You can specify multiple chain. Each chain should have its own set of reporters,
# and they should not overlap.
[[chains]]
name = "sentinel"
pretty-name = "Sentinel"
rpc-endpoints = [
"https://rpc.sentinel.quokkastake.io",
]
telegram = { token = "zzz:aaa", chat = 54321 }
# Here's how you set up Ping.pub links.
# If the chain is on ping.pub, you just need to set up the ping-prefix variable.
# As Ping.pub is open-source and anyone can set it up, you can also use
# your own version of it, then you also need to specify ping-host variable.
explorer = { ping-prefix = "sentinel", ping-host = "https://ping.pub" }
[[chains]]
name = "decentr"
pretty-name = "Decentr"
rpc-endpoints = [
"https://poseidon.mainnet.decentr.xyz",
]
telegram = { token = "bbb:ccc", chat = 23456 }
# Here's how you specify your custom explorer links.
# When generating links, "%s" is replaced with validator address.
explorer = { validator-page-pattern = "https://ping.pub/decentr/staking/%s" }