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:
- Kubernetes setup (recommended: Docker Desktop with Kubernetes support for local setups): Docker Desktop (opens in a new tab)
kubectl
: Installation Guide (opens in a new tab)helm
: Installation Guide (opens in a new tab)
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