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.0.7.tar.gz (17.9 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: pulumi_svmkit-0.0.7.tar.gz
  • Upload date:
  • Size: 17.9 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.0.7.tar.gz
Algorithm Hash digest
SHA256 71231f3816f1aa26319e405513c031de1c612a4f8bf8bb07e5ff064ad502d2c9
MD5 143b46d5e05e2e9e455a35dd63e1e096
BLAKE2b-256 e519dc7c41a774868b53da38c65d9c092de7ad01db38eb20bf819b5eb68bf38e

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