Starship
Get Started
Step 3

Step 3: Spin up Starship

In this step, we will spin up couple of cosmos chains and relayers between them.

By the end of this tutorial you should be able to have osmosis and gaia chain running on your machine.

3.1) Setup Starship Helm charts

We use helm as the package manager for starship.

Run

starship setup

3.2) Define the desired infrastructure

We will now define the infrastructure for our starship, specify the chains and relayers run between them.

We will run:

  • Osmosis chain (single validator)
  • Cosmos hub chain (single validator)
  • Hermes relayer between osmosis and cosmos chain
    • Opens transfer channel between osmosis and cosmos chain
  • Ping Pub explorer for the chains (experimental feature)

Create a directory to play around in

mkdir getting-started
cd getting-started
touch config.yaml

Add following content to starship.yaml with the following content

chains:
  - id: osmosis-1
    name: osmosis
    numValidators: 1
    ports:
      rest: 1313
      rpc: 26653
  - id: gaia-1
    name: cosmoshub
    numValidators: 1
    ports:
      rest: 1317
      rpc: 26657
 
relayers:
  - name: osmos-gaia
    type: hermes
    replicas: 1
    chains:
      - osmosis-1
      - gaia-1
 
registry:
  enabled: true
  ports:
    rest: 8081

Above configuration would use around 4 CPUs and 4GB of RAM. If you are constrained on resources, checkout the next step for tiny-starship.yaml (opens in a new tab)

Documentation has more details on the configuration options and how to reduce the resource usage. For the tutorial we will keep it simple.

3.3) Spin up the infrastructure

Spin up the infrastructure with

starship start --helmFile config.yaml

This command will:

  • Create the necessary kubernetes resources
  • Deploy the chains and relayers and registry
  • Wait for pods to be in Running state
  • Runs port forwarding for the chains and registry to local ports

This will take some time to spin up the infrastructure, you can check the status in another terminal with

kubectl get pods
# OR, to watch the pods
watch kubectl get pods

3.4) Check the status of the infrastructure

starship get-pods

Check chain registry status

curl http://localhost:8081/chains | jq