Starship
Configuration
Feature Toggles

Feature Toggles

Starship allows you to have toggles for some additional services to run with your infra setup. A few of them are mentioned below.

Registry

Following the schema of the cosmos/chain-registry repos, if enabled this service spins up a rest api chain-registry service for the infra you spin up.

Syntax

registry:
  enabled: true  # enable registry service
  localhost: true # default: true, will set chain registry output with api endpoints pointing to localhost, using the chains[].ports for localhost endpoints
  ports:
    rest: 8081   # localhost port for redirecting traffic
  # Optional: resources directive, default cpu: 0.2, memory: 200M
  resources:
    cpu: 0.5
    memory: 200M
  # Optional: image directive, default image:ghcr.io/cosmology-tech/starship/registry:20230614-7173db2
  image: ghcr.io/cosmology-tech/starship/registry:20230614-7173db2

Note: registry.localhost is set to true by default, meaning if the ports are specified in chains[].ports, then we set the various api endpoints of the chain registry to localhost:<port>. Make sure rest, grpc, rpc are set as chain ports (opens in a new tab). If set to false, then it is set to kubernetes internal DNS endpoints.

Usage

Here is a list of available endpoints and how to use them:

EndpointReturns
/chain_idsList of all chain-ids in the current setup
/chainsList of all chain items
/chains/{chain}Chain schema for the given chain ids (name in the chains directive)
/chains/{chain}/assetsAssets of the given chain
/chains/{chain}/keysList of mnemonics used for the setup
/ibcList all ibc info for all chains
/ibc/{chain_1}/{chain_2}IBC information between the 2 chains specified

Proto definition for the service is here (opens in a new tab)

Explorer

In order to provide a full fledged emulation environment, we have a handy toggle to spin up an explorer for the infra.

Currently we support only Ping Pub explorer, but we will be adding more

Syntax

explorer:
  enabled: true  # enable registry service
  type: ping-pub # currently only support for ping-pub explorer
  ports:
    rest: 8080   # localhost port for redirecting traffic
  # Optional: resources directive, default cpu: 1, memory: 2Gi
  resources:
    cpu: 2
    memory: 4Gi
  # Optional: image directive, default image: ghcr.io/cosmology-tech/starship/ping-pub:6b7b0d096946b6bcd75d15350c7345da0d4576db
  image: ghcr.io/cosmology-tech/starship/ping-pub:6b7b0d096946b6bcd75d15350c7345da0d4576db

Available versions for the explorer can be found here (opens in a new tab)

Usage

After performing port-forward, open explorer at: http://localhost:8080 (opens in a new tab)

Ingress

In order to get external traffic into Starship, one can use the ingress directive to create ingress rules on the domain.

NOTE: Prerequists include installing cert-issuer and nginx-ingress controller in the k8s cluster. Domain specified, needs to be pointing to the k8s cluster in which Starship is deployed

Syntax

ingress:
  enabled: true
  type: nginx
  # host must be a wildcard entry, so that we can use the wildcard to create
  # service specific ingress rules.
  host: "*.thestarship.io"
  certManager:
    issuer: "cert-issuer"

Above will create following endpoints with the domain, and valid certs:

  • Explorer at: https://explorere.<host> (if enabled)
  • Registry at: https://registry.<host> (if enabled)
  • Chains at:
    • RPC endpoint: https://rpc.<chain-id>-genesis.<host>
    • Rest endpoint: https://rest.<chain-id>-genesis.<host>
    • Chain exposer: https://rest.<chain-id>-genesis.<host>/exposer
    • Chain faucet: https://rest.<chain-id>-genesis.<host>/faucet
  • Relayers at:
    • Rest endpoint: https://rest.<relayer-type>-<relayer-name>.<host>
    • Exposer endpoint: https://rest.<relayer-type>-<relayer-name>.<host>/exposer