Starship
Introduction

Starship

starship

Starship is a unified development environment that allows Cosmos developers to spin up a fully simulated mini-cosmos ecosystem and write end-to-end test cases

Go to the Official Project (opens in a new tab) (👷‍♀️in progress...).

Quick Start Guide

Prerequisites

To get started, you'll need:

For further information, refer to the Starship Documentation (opens in a new tab) on Kubernetes setup and configuration.

Install

Install the CLI @starship-ci/cli:

npm install -g @starship-ci/cli

Configuration

To configure Starship for multichain support, create a configuration file (e.g., config.yaml). Here’s a sample configuration:

name: starship-localnet
version: 0.2.20
 
chains:
- id: osmosis-1
  name: osmosis
  numValidators: 2
  ports:
    rest: 1313
    rpc: 26653
    faucet: 8003
- id: cosmoshub-4
  name: cosmoshub
  numValidators: 2
  ports:
    rest: 1317
    rpc: 26657
    faucet: 8007
 
relayers:
- name: osmos-cosmos
  type: hermes
  replicas: 1
  chains:
    - osmosis-1
    - cosmoshub-4
 
explorer:
  enabled: true
  ports:
    rest: 8080
 
registry:
  enabled: true
  ports:
    rest: 8081

For more details on the configuration options and directives available, refer to the Starship Config (opens in a new tab).

Running Starship

Deploying 🚀

yarn starship start --config config.yaml

Teardown 🛠️

# stop ports and delete deployment
yarn starship stop --config config.yaml

Who is using Starship?

Cosmos-sdk (opens in a new tab)

Cosmos-SDK is running Starship for testing out the latest simapp. Runs in CI/CD (opens in a new tab)

Agoric SDK (opens in a new tab)

Agoric SDK is using Starship to run end-to-end tests for Agoric chain. Runs in CI/CD. Running 4 chains and relayers between them, then using JS based custom e2e testing system that they built.

Mesh-Security (opens in a new tab)

For mesh-security development, Starship is being used to create a dev environment in a cloud cluster to run 2 chains and a relayer, setup mesh-security contracts between them, as well as spin up mesh-security frontend as well.

OsmoJS (opens in a new tab)

JS library using Starship to run end-to-end tests against Osmosis chain. (Run in CI/CD)

persistenceCore (opens in a new tab)

Persistence Core chain using Starship to test chain upgrades. (Run in CI/CD)

Examples

CosmJS based e2e testing (opens in a new tab)

Setup chain multiple chains, write e2e tests for governance, staking and osmosis specific txns. Run tests with JS using CosmJS. Run tests with Golang

Chain Upgrade E2E test (opens in a new tab)

Setup chain with cosmovisor setup with different chain version binaries. Run tests with Golang

Multi chain setup (opens in a new tab)

Multi chain setup with 3 chains, 2 relayers between the chain, explorer and registry