Skip to main content

SVMKit allows you to manage Solana SVM software components using infrastructure as code.

Project description

Pulumi SVMKit

The SVMKit Pulumi provider, located in the provider directory, facilitates infrastructure as code (IaC) for managing Solana nodes and related resources. With this provider, users can easily define, deploy, and manage their Solana infrastructure using Pulumi.

Development

This section provides all the necessary information to start contributing to or building SVMKit. It is divided into several subsections for clarity.

Requirement

Ensure the following tools are installed and available in your $PATH:

Build

$ make build install

This will build the pulumi provider, generate language sdks, and prepare host to execute the plugin locally.

Demo

You can find a catalog of example Pulumi projects to help you get started with SVMkit here.

$ cd examples/aws-agave-validator
$ yarn link @svmkit/pulumi-svmkit
$ yarn install
$ pulumi stack init demo
$ pulumi up

In this example, an Agave validator is installed on a machine via SSH, joining the Solana testnet.

Teams can add more validator clients to SVMkit, which will be accessible through the validator namespace in @svmkit/pulumi-svmkit.

new svmkit.validator.Agave(
  "validator",
  {
    connection,
    keyPairs: {
      identity: validatorKey.json,
      voteAccount: voteAccountKey.json,
    },
    flags: {
      entryPoint: [
        "entrypoint.testnet.solana.com:8001",
        "entrypoint2.testnet.solana.com:8001",
        "entrypoint3.testnet.solana.com:8001",
      ],
      knownValidator: [
        "5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on",
        "7XSY3MrYnK8vq693Rju17bbPkCN3Z7KvvfvJx4kdrsSY",
        "Ft5fbkqNa76vnsjYNwjDZUXoTWpP7VYm3mtsaQckQADN",
        "9QxCLckBiJc783jnMvXZubK4wH86Eqqvashtrwvcsgkv",
      ],
      expectedGenesisHash: "4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY",
      useSnapshotArchivesAtStartup: "when-newest",
      rpcPort: 8899,
      privateRPC: true,
      onlyKnownRPC: true,
      dynamicPortRange: "8002-8020",
      gossipPort: 8001,
      rpcBindAddress: "0.0.0.0",
      walRecoveryMode: "skip_any_corrupted_record",
      limitLedgerSize: 50000000,
      blockProductionMethod: "central-scheduler",
      fullSnapshotIntervalSlots: 1000,
      noWaitForVoteToStartLeader: true,
    },
  },
  {
    dependsOn: [instance],
  }
);

Repository Structure

The repository is organized as follows:

Directory/File Description
provider/ Contains the build and implementation logic for the SVMkit Pulumi provider.
sdk/ Houses the generated code libraries.
examples/ Includes Pulumi programs for local testing and CI usage.
Makefile and README Standard project files for building and documentation.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pulumi_svmkit-0.4.0.tar.gz (19.1 kB view details)

Uploaded Source

File details

Details for the file pulumi_svmkit-0.4.0.tar.gz.

File metadata

  • Download URL: pulumi_svmkit-0.4.0.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pulumi_svmkit-0.4.0.tar.gz
Algorithm Hash digest
SHA256 87cb3102fe005ac993f0497fe8b1c0661d501097a353700875b8ff1c145d92f1
MD5 3f9aec09920dd4d98684e4ed85bad355
BLAKE2b-256 2f79067d85fca04e3229352a048958c134498dfc4759c6f9987fe1f7509320e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page