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

Uploaded Source

File details

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

File metadata

  • Download URL: pulumi_svmkit-0.0.13.tar.gz
  • Upload date:
  • Size: 18.3 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.13.tar.gz
Algorithm Hash digest
SHA256 1706c0b6c379d893843718e0b937403d4c786148b04d4500792448bbc0f4f076
MD5 1a9eaff13edd6f4b83ca0931843c83a9
BLAKE2b-256 dfb1c32ffb6cfa8629ebe859cd4206824603165c9311532652d0d4edfec6a55c

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