Run a Node

Running a Node for Local Development

For local development, the ZK Compression CLI test-validator command starts a single-node Solana cluster with all relevant nodes (Photon RPC and Prover), system programs, accounts, and runtime features:

light test-validator

To connect to public networks (Devnet, Mainnet-Beta), you can either work with an RPC infrastructure provider that supports ZK Compression, such as Helius Labs or run your own nodes:

There are three different types of nodes:

Becoming an operator for any node type is permissionless.

Photon RPC Node

RPC nodes index the compression programs, enabling clients to read and build transactions interacting with compressed state.

The canonical compression indexer is named Photon. It can be run locally and requires minimal setup. You need to point it to an existing Solana RPC. See the Github repo for more info:

Prover Node

Provers can generate validity proofs for state inclusion on behalf of app and wallet developers.

Prover nodes can be operated either stand-alone or with an RPC node: in its default configuration, the canonical Photon RPC node implementation by Helius Labs bundles a Prover node. The ZK Compression RPC API specification supports proof generation via the getValidityProof endpoint, making it easy to serve proofs using regular RPC methods via the same port.

Please refer to the Github repo for more info:

Light Forester Node

Developers may choose to have their program-owned state trees serviced by a network of Light Forester nodes. These nodes manage the creation, rollover, and updating of shared and program-owned state trees.

On ZK-Testnet, only shared state trees are supported end-to-end. Once full program-owned state tree support gets rolled out, you can service your program-owned state trees permissionlessly, i.e., self-host a standalone node.

Last updated