Skip to content

Instantly share code, notes, and snippets.

@taitruong
Last active April 29, 2024 13:54
Show Gist options
  • Save taitruong/5c9e7bceb7db1cbbc7b472e141bc881f to your computer and use it in GitHub Desktop.
Save taitruong/5c9e7bceb7db1cbbc7b472e141bc881f to your computer and use it in GitHub Desktop.
Hermes config.toml for testnets: Stargaze, Osmosis, Terra, Juno, and Aura
# Description of the parameters below can be found here: https://hermes.informal.systems/documentation/configuration/description.html
# The global section has parameters that apply globally to the relayer operation.
[global]
# Specify the verbosity for the relayer logging output. Default: 'info'
# Valid options are 'error', 'warn', 'info', 'debug', 'trace'.
log_level = 'info'
# Specify the mode to be used by the relayer. [Required]
[mode]
# Specify the client mode.
[mode.clients]
# Whether or not to enable the client workers. [Required]
enabled = true
# Whether or not to enable periodic refresh of clients. [Default: true]
# This feature only applies to clients that underlie an open channel.
# For Tendermint clients, the frequency at which Hermes refreshes them is 2/3 of their
# trusting period (e.g., refresh every ~9 days if the trusting period is 14 days).
# Note: Even if this is disabled, clients will be refreshed automatically if
# there is activity on a connection or channel they are involved with.
refresh = true
# Whether or not to enable misbehaviour detection for clients. [Default: true]
misbehaviour = true
# Specify the connections mode.
[mode.connections]
# Whether or not to enable the connection workers for handshake completion. [Required]
enabled = true
# Specify the channels mode.
[mode.channels]
# Whether or not to enable the channel workers for handshake completion. [Required]
enabled = true
# Specify the packets mode.
[mode.packets]
# Whether or not to enable the packet workers. [Required]
enabled = true
# Parametrize the periodic packet clearing feature.
# Interval (in number of blocks) at which pending packets
# should be periodically cleared. A value of '0' will disable
# periodic packet clearing. [Default: 100]
clear_interval = 0 # set to 0, for requeueing packets as defined below in `tx_confirmation`
# Whether or not to clear packets on start. [Default: true]
clear_on_start = true
# Toggle the transaction confirmation mechanism.
# The tx confirmation mechanism periodically queries the `/tx_search` RPC
# endpoint to check that previously-submitted transactions
# (to any chain in this config file) have been successfully delivered.
# If they have not been, and `clear_interval = 0`, then those packets are
# queued up for re-submission.
# If set to `false`, the following telemetry metrics will be disabled:
# `acknowledgment_packets_confirmed`, `receive_packets_confirmed` and `timeout_packets_confirmed`.
# [Default: false]
tx_confirmation = true
# Auto register the counterparty payee on a destination chain to
# the relayer's address on the source chain. This can be used
# for simple configuration of the relayer to receive fees for
# relaying RecvPacket on fee-enabled channels.
# For more complex configuration, turn this off and use the CLI
# to manually register the payee addresses.
# [Default: false]
auto_register_counterparty_payee = false
# The REST section defines parameters for Hermes' built-in RESTful API.
# https://hermes.informal.systems/rest.html
[rest]
# Whether or not to enable the REST service. Default: false
enabled = true
# Specify the IPv4/6 host over which the built-in HTTP server will serve the RESTful
# API requests. Default: 127.0.0.1
host = '0.0.0.0' # need to set this to `0.0.0.0` to allow external access within docker! check here: https://github.com/informalsystems/hermes/issues/3592#issuecomment-1712645510
# Specify the port over which the built-in HTTP server will serve the restful API
# requests. Default: 3000
port = 3000
# The telemetry section defines parameters for Hermes' built-in telemetry capabilities.
# https://hermes.informal.systems/telemetry.html
[telemetry]
# Whether or not to enable the telemetry service. Default: false
enabled = true
# Specify the IPv4/6 host over which the built-in HTTP server will serve the metrics
# gathered by the telemetry service. Default: 127.0.0.1
host = '0.0.0.0' # need to set this to `0.0.0.0` to allow external access within docker! check here: https://github.com/informalsystems/hermes/issues/3592#issuecomment-1712645510
# Specify the port over which the built-in HTTP server will serve the metrics gathered
# by the telemetry service. Default: 3001
port = 3001
[telemetry.buckets.latency_submitted]
start = 500
end = 20000
buckets = 10
[telemetry.buckets.latency_confirmed]
start = 1000
end = 30000
buckets = 10
[[chains]]
id = 'elgafar-1'
type = 'CosmosSdk'
rpc_addr = 'https://rpc.elgafar-1.stargaze-apis.com:443' # 'https://stargaze-rpc.polkachu.com:443' 'https://rpc.elgafar-1.stargaze-apis.com:443'
grpc_addr = 'http://grpc-1.elgafar-1.stargaze-apis.com:26660' # 'http://stargaze-grpc.polkachu.com:13790' # 'http://grpc-1.elgafar-1.stargaze-apis.com:26660'
rpc_timeout = '10s'
account_prefix = 'stars'
key_name = 'stargaze_ark_relayer'
store_prefix = 'ibc'
default_gas = 40000
max_gas = 1500000
gas_multiplier = 1.3
max_msg_num = 1 # relay only 1 packet, otherwise max gas is exceeded
max_tx_size = 4194304 # 4MiB
clock_drift = '60s'
max_block_time = '30s'
client_refresh_rate = "1/3"
ccv_consumer_chain = false
memo_prefix = 'Powered by Ark Protocol'
sequential_batch_tx = false
# trusting_period = '1209599s' # 14 days (unbonding period) minus 1 sec
# address_type = { derivation = 'cosmos' }
[chains.event_source]
mode = 'push'
url = 'wss://rpc.elgafar-1.stargaze-apis.com:443/websocket' # 'wss://stargaze-rpc.polkachu.com:443/websocket' 'wss://rpc.elgafar-1.stargaze-apis.com:443/websocket'
batch_delay = '500ms'
[chains.trust_threshold]
numerator = '1'
denominator = '3'
[chains.gas_price]
price = 0.04
denom = 'ustars'
[chains.packet_filter]
policy = 'allow'
list = [
# Stargaze ICS721 channels
# IMPORTANT: do NOT change comments for each channel below! `create-channels.sh` does a search and replace!
## ICS721
['wasm.stars1cxnwk637xwee9gcw0v2ua00gnyhvzxkte8ucnxzfxj0ea8nxkppsgacht3', 'channel-880'], # ICS721_CHANNEL_1_STARGAZE_TO_JUNO, channel-910
['wasm.stars1cxnwk637xwee9gcw0v2ua00gnyhvzxkte8ucnxzfxj0ea8nxkppsgacht3', 'channel-887'], # ICS721_CHANNEL_1_STARGAZE_TO_TERRA2, channel-562
['wasm.stars1cxnwk637xwee9gcw0v2ua00gnyhvzxkte8ucnxzfxj0ea8nxkppsgacht3', 'channel-881'], # ICS721_CHANNEL_1_STARGAZE_TO_AURA, channel-125
['wasm.stars1cxnwk637xwee9gcw0v2ua00gnyhvzxkte8ucnxzfxj0ea8nxkppsgacht3', 'channel-909'], # ICS721_CHANNEL_1_STARGAZE_TO_OSMOSIS, channel-7748
]
[chains.packet_filter.min_fees]
[chains.address_type]
derivation = 'cosmos'
[[chains]]
id = 'uni-6'
rpc_addr = 'https://juno-testnet-rpc.polkachu.com:443' # 'https://juno-testnet-rpc.polkachu.com:443' #'https://rpc.uni.junonetwork.io:443' 'http://juno.rpc.t.stavr.tech:1067'
grpc_addr = 'http://juno-testnet-grpc.polkachu.com:12690' # 'http://juno.grpc.t.stavr.tech:504'
rpc_timeout = '10s'
account_prefix = 'juno'
key_name = 'juno_ark_relayer'
store_prefix = 'ibc'
default_gas = 4500
max_gas = 800000
gas_multiplier = 1.5
max_msg_num = 1 # relay only 1 packet, otherwise max gas is exceeded
max_tx_size = 4194304 # 4MiB
clock_drift = '60s'
max_block_time = '30s'
client_refresh_rate = "1/3"
ccv_consumer_chain = false
memo_prefix = 'Powered by Ark Protocol'
sequential_batch_tx = false
# trusting_period = '2419199s' # 28 days (unbonding period) minus 1 sec
# address_type = { derivation = 'cosmos' }
[chains.event_source]
mode = 'push'
url = 'wss://uni.junonetwork.io:443/websocket'
# url = 'wss://juno-testnet-rpc.polkachu.com:443/websocket' # not supported by :( answer here: https://discord.com/channels/888644988584460369/954902712401661993/1051772830112546896
# url = 'wss://http://juno.rpc.t.stavr.tech:1067/websocket' # not supported
batch_delay = '500ms'
[chains.trust_threshold]
numerator = '1'
denominator = '3'
[chains.gas_price]
price = 0.0045
denom = 'ujunox'
[chains.packet_filter]
policy = 'allow'
list = [
# Juno ICS721 channels
# IMPORTANT: do NOT change comments for each channel below! `create-channels.sh` does a search and replace!
## ICS721
['wasm.juno1caxx9y53s7qgw4le9pst3ugw3m0r80jd68c42uch4dmwuu0n4tpquwlg59', 'channel-910'], # ICS721_CHANNEL_1_JUNO_TO_STARGAZE, channel-880
['wasm.juno1caxx9y53s7qgw4le9pst3ugw3m0r80jd68c42uch4dmwuu0n4tpquwlg59', 'channel-908'], # ICS721_CHANNEL_1_JUNO_TO_TERRA2, channel-558
['wasm.juno1lshup5x5hfw5h2ny2lqzwfw60whdsnemk07yzujkwx4lfgrp6krsa597au', 'channel-918'], # ARKITE_CHANNEL_1_JUNO_TO_TERRA2, channel-566
]
[chains.packet_filter.min_fees]
[chains.address_type]
derivation = 'cosmos'
[[chains]]
id = 'pisco-1'
rpc_addr = 'https://terra-testnet-rpc.polkachu.com:443' # 'https://pisco-rpc.terra.dev:443'
grpc_addr = 'https://pisco-grpc.terra.dev' # 'http://terra-testnet-grpc.polkachu.com:1179'
rpc_timeout = '20s'
account_prefix = 'terra'
key_name = 'terra_ark_relayer'
store_prefix = 'ibc'
default_gas = 70000
max_gas = 100000000
gas_multiplier = 1.5
max_msg_num = 1 # relay only 1 packet, otherwise max gas is exceeded
max_tx_size = 100000 # 1k
clock_drift = '45s'
max_block_time = '10s'
client_refresh_rate = "1/3"
ccv_consumer_chain = false
memo_prefix = 'Powered by Ark Protocol'
sequential_batch_tx = false
# trusting_period = '288000s'
# address_type = { derivation = 'cosmos' }
[chains.event_source]
mode = 'push'
url = 'wss:///pisco-rpc.terra.dev:443/websocket'
# url = 'ws://terra-testnet-rpc.polkachu.com:443/websocket' # not supported by polkachu, answer here: https://discord.com/channels/888644988584460369/954902712401661993/1051772830112546896
batch_delay = '500ms'
[chains.trust_threshold]
numerator = '1'
denominator = '3'
[chains.gas_price]
price = 0.15
denom = 'uluna'
[chains.packet_filter]
policy = 'allow'
list = [
# Terra ICS721 channels
# IMPORTANT: do NOT change comments for each channel below! `create-channels.sh` does a search and replace!
## ICS721
['wasm.terra13hd8ctc6cdht72tev9sc3qtwcj29k3g2vjkm0y4r6ppyammxsyzst6s8s0', 'channel-558'], # ICS721_CHANNEL_1_TERRA2_TO_JUNO, channel-908
['wasm.terra13hd8ctc6cdht72tev9sc3qtwcj29k3g2vjkm0y4r6ppyammxsyzst6s8s0', 'channel-562'], # ICS721_CHANNEL_1_TERRA2_TO_STARGAZE, channel-887
['wasm.terra16kaj9phckflqjrrjehhvtp6uveysqta5h03gm35c4vx20rdhvsfq4flx5l', 'channel-566'], # ARKITE_CHANNEL_1_TERR2_TO_JUNO, channel-918
]
[chains.packet_filter.min_fees]
[chains.address_type]
derivation = 'cosmos'
[[chains]]
id = "euphoria-2"
type = "CosmosSdk"
rpc_addr = "https://rpc.euphoria.aura.network:443" # https://rpc-euphoria.aura.palamar.io:443
grpc_addr = "http://grpc.euphoria.aura.network:9090" # https://aura-testnet.grpc.kjnodes.com
rpc_timeout = "10s"
# trusted_node = false
account_prefix = "aura"
key_name = "aura_ark_relayer"
#key_store_type = "Test"
store_prefix = "ibc"
default_gas = 100000
max_gas = 1000000
gas_multiplier = 1.3
max_msg_num = 30
max_tx_size = 180000
# max_grpc_decoding_size = 33554432
clock_drift = "5s"
max_block_time = "30s"
ccv_consumer_chain = false
memo_prefix = ""
sequential_batch_tx = false
[chains.event_source]
mode = "push"
url = "ws://aura.rpc.m.stavr.tech:11047/websocket"
batch_delay = "500ms"
[chains.trust_threshold]
numerator = "1"
denominator = "3"
[chains.gas_price]
price = 0.002
denom = "ueaura"
[chains.packet_filter]
policy = "allow"
list = [
# Aura ICS721 channels
# IMPORTANT: do NOT change comments for each channel below! `create-channels.sh` does a search and replace!
## ICS721
['wasm.aura1dafvgnhg9y3mehkfkstwe060f2d9d0kcfentzargn8z7gcsttvnsygn885', 'channel-125'], # ICS721_CHANNEL_1_AURA_TO_STARGAZE, channel-881
]
[chains.packet_filter.min_fees]
[chains.address_type]
derivation = "cosmos"
[[chains]]
id = "osmo-test-5"
type = "CosmosSdk"
rpc_addr = "https://rpc.osmotest5.osmosis.zone:443" # "osmosis-testnet-rpc.polkachu.com:443"
grpc_addr = "https://grpc.osmotest5.osmosis.zone"
rpc_timeout = "10s"
# trusted_node = false
account_prefix = "osmo"
key_name = "osmosis_ark_relayer"
key_store_type = "Test"
store_prefix = "ibc"
default_gas = 100000
max_gas = 1000000
gas_multiplier = 1.3
max_msg_num = 30
max_tx_size = 180000
# max_grpc_decoding_size = 33554432
# query_packets_chunk_size = 50
clock_drift = "5s"
max_block_time = "30s"
client_refresh_rate = "1/3"
ccv_consumer_chain = false
memo_prefix = ""
sequential_batch_tx = false
[chains.event_source]
mode = "push"
url = "wss://rpc.osmotest5.osmosis.zone/websocket"
batch_delay = "500ms"
[chains.trust_threshold]
numerator = 2
denominator = 3
[chains.gas_price]
price = 0.025
denom = "uosmo"
[chains.packet_filter]
policy = "allow"
list = [
# Osmosis ICS721 channels
# IMPORTANT: do NOT change comments for each channel below! `create-channels.sh` does a search and replace!
## ICS721
['wasm.osmo12hf4huv9vfz7mra78c0gkvrsdgc8azuqt08jlnunw2hezevt75qs5wct3m', 'channel-7748'], # ICS721_CHANNEL_1_OSMOSIS_TO_STARGAZE, channel-909
]
[chains.packet_filter.min_fees]
# [chains.dynamic_gas_price]
# enabled = false
# multiplier = 1.1
# max = 0.6
[chains.address_type]
derivation = "cosmos"
[chains.excluded_sequences]
# [tracing_server]
# enabled = false
# port = 5555
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment