Relayers YAML Syntax
We will go into details of the relayers
top level directive in the Starship config file.
Note: By default the
relayers
will open up atransfer
port
name
Name of the relayer, this is used as a unique identifier for the relayer.
relayers:
- name: hermes-osmo-juno
...
type
Type of the relayer to spin up. Currently we support:
- hermes (opens in a new tab)
- ts-relayer (opens in a new tab)
- go-relayer (opens in a new tab)
- neutron-query-relayer (opens in a new tab)
relayers:
- name: hermes-osmo-juno
type: hermes
...
- name: ts-relayer-cosmos-juno
type: ts-relayer
...
image
(optional)
If one wants to use a specific version of the relayer we support, then it can be mentioned via this image directive.
Supported version of relayers can be found:
hermes
versions (opens in a new tab)ts-relayer
versions (opens in a new tab)go-relayer
versions (opens in a new tab)neutron-query-relayer
versions (opens in a new tab)
relayers:
- name: hermes-osmo-juno
type: hermes
image: ghcr.io/cosmology-tech/starship/hermes:1.10.0
...
- name: ts-relayer-cosmos-juno
type: ts-relayer
image: ghcr.io/cosmology-tech/starship/ts-relayer:0.9.0
...
replicas
Number of relayers to spin up. Currently we just support 1 replica for now.
relayers:
- name: hermes-osmo-juno
type: hermes
replicas: 1
...
chains
List of chains to connect to each other, via the Relayer.
Must be id
of chains defined in the chains
directive.
chains:
- name: osmosis-1
...
- name: juno-2
...
- name: gaia-4
...
relayers:
- name: hermes-osmo-juno
type: hermes
replicas: 1
chains:
- osmosis-1
- juno-2
- name: ts-relayer-osmo-gaia
type: ts-relayer
replicas: 1
chains:
- osmosis-1
- gaia-4
config
(optional, hermes only)
For type: hermes
relayer, we support overriding the default config params with the config
directive.
User specified overrides are performed at the start.
Note: Currently we only allow overrides of non chain specific values
relayers:
- name: hermes-osmo-juno
type: hermes
replicas: 1
chains:
- osmosis-1
- juno-1
config:
global:
log_level: "error"
rest:
enabled: false
telemetry:
enabled: false
## event_source is a custom configuration, in hermes is set of each of the chains
## one just needs to mention the mode (push or pull), and we do the rest
## For reference: https://github.com/informalsystems/hermes/releases/tag/v1.6.0
event_source:
mode: "pull" # default is "push"
All allowed config params can be found in the default values (opens in a new tab) (Basically everything in config.toml (opens in a new tab) file for the hermes relayer)
ports
(optional, hermes only)
Ports directive in the relayers
directive is used for kubectl port-forward
forwarding kubernetes service ports to local host.
relayers:
- name: hermes-osmo-juno
type: hermes
replicas: 1
chains:
- osmosis-1
- juno-1
ports:
rest: 3001
exposer: 3002
Available endpoints on
rest
endpoints: https://hermes.informal.systems/documentation/rest-api.html?highlight=rest#rest-api (opens in a new tab)exposer
endpoint/create_channel
endpoint: Supports post request. Proto defination: https://github.com/cosmology-tech/starship/blob/main/starship/proto/exposer/service.proto#L47 (opens in a new tab)
One can use the exposer endpoint on the relayer to create channel from outside. Note: Still an experimental feature on exposer
ics
(optional, hermes only)
ICS directive in the relayers
directive is used for hermes
relayer to specify the ICS setup to use
chains:
- id: neutron-1
name: neutron
numValidators: 1
ics:
enabled: true
provider: cosmoshub-4 # chain id of the provider chain
- id: cosmoshub-4
name: cosmoshub
numValidators: 1
relayers:
- name: neutron-cosmos
type: hermes
replicas: 1
chains:
- neutron-1
- cosmoshub-4
ics:
enabled: true
consumer: neutron-1
provider: cosmoshub-4
If ics
is enabled, then the consumer
and provider
chain must be specified. With that, we automagically open the consumer and provider ports for the relayer.