diff --git a/starship/charts/devnet/defaults.yaml b/starship/charts/devnet/defaults.yaml index 5b6d5e71f..47b861f5a 100644 --- a/starship/charts/devnet/defaults.yaml +++ b/starship/charts/devnet/defaults.yaml @@ -798,11 +798,42 @@ defaultChains: exponent: 0 name: XPLA display: XPLA - symbol: XPLA + solana: + image: ghcr.io/hyperweb-io/starship/solana:v1.18.26 + home: /root/.solana + binary: solana-validator + prefix: sol + denom: lamports + prettyName: Solana + coins: 1000000000000000lamports + hdPath: m/44'/501'/0'/0' + coinType: 501 + repo: https://github.com/solana-labs/solana + scripts: + createGenesis: + file: scripts/solana/create-genesis.sh + updateGenesis: + file: scripts/solana/update-genesis.sh + assets: + - base: lamports + description: "The native token of Solana" + name: Solana + display: sol + symbol: SOL logo_URIs: - png: https://raw.githubusercontent.com/cosmos/chain-registry/master/xpla/images/xpla.png - svg: https://raw.githubusercontent.com/cosmos/chain-registry/master/xpla/images/xpla.svg - coingecko_id: xpla + png: "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png" + svg: "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.svg" + denom_units: + - denom: lamports + exponent: 0 + - denom: sol + exponent: 9 + coingecko_id: solana + keywords: ["layer1"] + ports: + rpc: 8899 + ws: 8900 + gossip: 8001 ethereum: image: ghcr.io/hyperweb-io/starship/ethereum/client-go:v1.14.12 home: /ethereum diff --git a/starship/charts/devnet/scripts/solana/create-genesis.sh b/starship/charts/devnet/scripts/solana/create-genesis.sh new file mode 100755 index 000000000..ce3ad3072 --- /dev/null +++ b/starship/charts/devnet/scripts/solana/create-genesis.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +set -eux + +solana-keygen new --no-bip39-passphrase -o $HOME/.solana/validator-keypair.json +solana-keygen new --no-bip39-passphrase -o $HOME/.solana/vote-account-keypair.json +solana-keygen new --no-bip39-passphrase -o $HOME/.solana/stake-account-keypair.json + +solana-genesis \ + --max-genesis-archive-unpacked-size 1073741824 \ + --enable-warmup-epochs \ + --bootstrap-validator \ + $HOME/.solana/validator-keypair.json \ + $HOME/.solana/vote-account-keypair.json \ + $HOME/.solana/stake-account-keypair.json \ + --ledger $HOME/.solana/ledger diff --git a/starship/charts/devnet/scripts/solana/update-genesis.sh b/starship/charts/devnet/scripts/solana/update-genesis.sh new file mode 100755 index 000000000..b0662ff48 --- /dev/null +++ b/starship/charts/devnet/scripts/solana/update-genesis.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -eux + + +echo "Solana genesis already configured" +solana-validator --version diff --git a/starship/charts/devnet/values.schema.json b/starship/charts/devnet/values.schema.json index b852d1090..c310a642f 100644 --- a/starship/charts/devnet/values.schema.json +++ b/starship/charts/devnet/values.schema.json @@ -148,7 +148,8 @@ "hyperweb", "noble", "xpla", - "ethereum" + "ethereum", + "solana" ] }, "numValidators": { diff --git a/starship/docker/chains/Dockerfile.solana b/starship/docker/chains/Dockerfile.solana new file mode 100644 index 000000000..8e8c01e47 --- /dev/null +++ b/starship/docker/chains/Dockerfile.solana @@ -0,0 +1,18 @@ +ARG BASE_IMAGE=alpine:3.17 +FROM ${BASE_IMAGE} + +LABEL org.opencontainers.image.source="https://github.com/hyperweb-io/starship" + +# Set up dependencies +ENV PACKAGES curl make bash jq sed + +# Install minimum necessary dependencies and Solana requirements +RUN apk add --no-cache $PACKAGES libgcc libstdc++ + +# Download and install Solana binaries +RUN curl -sSfL https://github.com/solana-labs/solana/releases/download/v1.18.26/solana-release-x86_64-unknown-linux-gnu.tar.bz2 | \ + tar -xj -C /tmp && \ + mv /tmp/solana-release/bin/solana* /usr/bin/ && \ + rm -rf /tmp/solana-release + +WORKDIR /opt diff --git a/starship/docker/chains/versions.yaml b/starship/docker/chains/versions.yaml index 8158c4de1..97ee49e3c 100644 --- a/starship/docker/chains/versions.yaml +++ b/starship/docker/chains/versions.yaml @@ -1,4 +1,9 @@ chains: + - name: solana + base: alpine:3.17 + file: Dockerfile.solana + tags: + - v1.18.26 - name: osmosis base: ghcr.io/strangelove-ventures/heighliner/osmosis tags: diff --git a/starship/tests/e2e/configs/solana.yaml b/starship/tests/e2e/configs/solana.yaml new file mode 100644 index 000000000..4159235f5 --- /dev/null +++ b/starship/tests/e2e/configs/solana.yaml @@ -0,0 +1,33 @@ +name: starship-e2e-tests +version: 1.7.0 + +chains: + - id: solana-1 + name: solana + numValidators: 1 + metrics: true + ports: + rest: 8899 + rpc: 8900 + exposer: 38083 + faucet: 8003 + gossip: 8001 + resources: + cpu: "0.5" + memory: 500M + genesis: + app_state: {} + +registry: + enabled: true + ports: + rest: 8081 + grpc: 9091 + resources: + cpu: "0.1" + memory: 100M + +resources: + wait: + cpu: "0.1" + memory: 100M