# rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# build-essential:
sudo apt-get install build-essential -y
# git:
sudo apt install git-all -ysudo useradd -m -d /ibc/hermes hermessudo sudo -u hermes -s
mkdir /ibc/hermes/source
mkdir /ibc/hermes/bin
cd /ibc/hermes/sourcegit clone https://github.com/informalsystems/ibc-rs.git hermes
cd hermes
git checkout v0.9.0
cargo build --release
cp target/release/hermes ~/bin
cdhermes@demo:~$ bin/hermes version
Nov 04 15:52:48.299 INFO ThreadId(01) using default configuration from '/ibc/hermes/.hermes/config.toml'
hermes 0.9.0nano $HOME/.hermes/config.toml[mode.clients]
enabled = true
refresh = true
misbehaviour = false
[mode.connections]
enabled = true
[mode.channels]
enabled = true
[mode.packets]
enabled = true
[[chains]]
id = 'secret-4'
rpc_addr = 'http://127.0.0.1:26657'
websocket_addr = 'ws://127.0.0.1:26657/websocket'
grpc_addr = 'http://127.0.0.1:9090'
rpc_timeout = '10s'
account_prefix = 'secret'
key_name = 'secret-relayer'
store_prefix = 'ibc'
default_gas = 350000
max_gas = 1500000
gas_multiplier = 1.2
max_msg_num = 30
max_tx_size = 2097152
clock_drift = '5s'
max_block_time = '30s'
trusting_period = '14days'
memo_prefix = ''
[chains.trust_threshold]
numerator = '1'
denominator = '3'
[chains.gas_price]
price = 0.1
denom = 'uscrt'
[chains.packet_filter]
policy = 'allow'
list = [
['transfer', 'channel-1'], #osmosis
]
[chains.address_type]
derivation = 'cosmos'
[[chains]]
id = 'osmosis-1'
rpc_addr = 'http://127.0.0.1:26557'
websocket_addr = 'ws://127.0.0.1:26557/websocket'
grpc_addr = 'http://127.0.0.1:9091'
rpc_timeout = '10s'
account_prefix = 'osmo'
key_name = 'osmosis-relayer'
store_prefix = 'ibc'
default_gas = 500000
max_gas = 1500000
gas_multiplier = 1.2
max_msg_num = 20
max_tx_size = 209715
clock_drift = '20s'
max_block_time = '10s'
trusting_period = '10days'
memo_prefix = ''
[chains.trust_threshold]
numerator = '1'
denominator = '3'
[chains.gas_price]
price = 0.0025
denom = 'uosmo'
[chains.packet_filter]
policy = 'allow'
list = [
['transfer', 'channel-88'],
]
[chains.address_type]
derivation = 'cosmos'hermes@Demo:~$ bin/hermes -c .hermes/config.toml config validate
Success: "validation passed successfully"hermes -c .hermes/config.toml keys restore secret-4 -m "mnemonics" -n "secret-relayer" -p "m/44'/529'/0'/0/0"
hermes -c .hermes/config.toml keys restore osmosis-1 -m "mnemonics" -n "osmosis-relayer"bin/hermes keys list secret-4hermes config validatehermes health-checkINFO ThreadId(01) [secret-4] chain is healthy
INFO ThreadId(01) [osmosis-1] chain is healthybin/hermes start[Unit]
Description=Hermes IBC relayer
ConditionPathExists=/ibc/hermes/hermes
After=network.target secret-node.service cosmos.service osmo.service
[Service]
Type=simple
User=hermes
WorkingDirectory=/ibc/hermes
ExecStart=/ibc/hermes/hermes start
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.targetsudo systemctl start hermes.service
sudo systemctl enable hermes.servicegit clone https://github.com/cosmos/relayer.git
cd relayer && git checkout v2.4.0
make installrly config initrly chains add secretnetwork
rly chains add osmosis
rly fetch paths osmosis-secretnetworkglobal:
api-listen-addr: :5183
timeout: 10s
memo: Relayed by Me
light-cache-size: 20
chains:
secret:
type: cosmos
value:
key-directory: /home/<user>/.relayer/keys/secret-4
key: default
chain-id: secret-4
rpc-addr: http://127.0.0.1:26657
account-prefix: secret
keyring-backend: default
gas-adjustment: 1.2
gas-prices: 0.1uscrt
min-gas-amount: 1
debug: false
timeout: 20s
block-timeout: ""
output-format: json
sign-mode: direct
extra-codecs: []
coin-type: 529
broadcast-mode: batch
osmosis:
type: cosmos
value:
key-directory: /home/<user>/.relayer/keys/osmosis-1
key: default
chain-id: osmosis-1
rpc-addr: http://127.0.0.1:26557
account-prefix: osmo
keyring-backend: default
gas-adjustment: 1.2
gas-prices: 0.01uosmo
min-gas-amount: 10000000
debug: false
timeout: 20s
block-timeout: ""
output-format: json
sign-mode: direct
extra-codecs: []
coin-type: 118
broadcast-mode: batch
paths:
osmosis-secretnetwork:
src:
chain-id: osmosis-1
client-id: 07-tendermint-1588
connection-id: connection-1244
dst:
chain-id: secret-4
client-id: 07-tendermint-2
connection-id: connection-1
src-channel-filter:
rule: ""
channel-list: []rly keys add secret [key-name]
rly keys add osmosis [key-name]rly keys restore secret [key-name] "mnemonic words here"
rly keys restore osmosis [key-name] "mnemonic words here"rly startAll Chains and their respective IBC channels with Secret Network are listed below