A Guide to Solana Permissioned Environments

Solana is a high-performance blockchain that is designed to scale. While it's mostly known for the Solana mainnet, fundamentally mainnet if just one deployment and configuration of the adaptable Solana software stack. The existing Solana software can be parametrized in a more controlled and permissioned way with purpose-specific logic suitable for Enterprise use-cases. This is where Solana Permissioned Environments (SPEs) come in.

Why Should You Build With Solana Permissioned Environments? #

While Solana's high-speed network offers exceptional performance, certain sectors and use cases require more than a fully public, permissionless network like Solana mainnet can provide. Solana Permissioned Environments provide a solution, allowing organizations to establish private or semi-private Solana-based Networks.

SPEs deliver the following differences:

  • Full Control: Unlike mainnet, operators of SPEs have full control over the network's participants, infrastructure, and consensus mechanisms. They can define the network's validator set to ensure all network participants are known and meet necessary compliance standards.
  • Infrastructure Sovereignty: Operators of SPEs can host their own nodes for direct control or strategically allocate node management responsibilities to specific partners. This enables a high degree of flexibility in shaping the network's physical infrastructure.
  • Adaptable Consensus: To match the needs of a particular use case, SPEs can be configured with a variety of consensus mechanisms or opt for an alternative consensus algorithm. This adaptability is ideal when working within strict regulatory constraints or specific business logic.

With Solana Permissioned Environments, organizations gain the ability to leverage the core speed and scalability of the Solana blockchain within a framework designed explicitly for their unique business, security, and regulatory requirements. It's a solution offering exceptional control over participants, infrastructure, and even consensus mechanisms.

Depending on the complexity of the solution you are seeking we generally categorize integrations in “Levels of Integration” ranging from low-tech tokenization use-cases to complex smart contract projects.

What are the Levels of Integration with Solana Permissioned Environments? #

Solana Permissioned Environments can be integrated at various levels of complexity, depending on the use case and requirements. To simplify adoption and maximize flexibility, consider approaching SPE implementation through progressive levels of integration.

Aligning these levels with an organization's goals and regulatory constraints can help when deciding which level is most suitable for your use case. Each level is non-exclusive, meaning you can start at a lower level and progress to higher levels as your needs evolve.

Level 1: Native Tokenization #

The first level of integration involves issuing and managing custom tokens representing assets or digital rights on the blockchain. This level is suitable for organizations looking to leverage the speed and scalability of Solana for tokenization use cases. The requirements to achieve this level of integration are minimal, as it involves utilizing the existing Solana Program Library token tooling to deploy tokens.

Level 2: Utilizing Existing Solana Programs #

The second level of integration involves utilizing existing Solana programs to build custom solutions on top of your Solana Permissioned Environment. These existing programs can add complex functionality with your tokens such as escrow, vesting, or a decentralized exchange. These integrations can further enhance the tokenization found in level one, but does require a familiarity with the current ecosystem and available programs. You can find many programs to use in the level in the Solana Program Library.

Level 3: Custom Programs #

The third level of integration brings the highest level of customization for your SPE: Custom Programs. With custom programs, you can implement tailor-made on-chain mechanics to address highly specific business requirements or regulatory constraints. Custom programs can help you leverage privacy features, complex applications, and design unique consensus mechanisms. The requirements for this level are the highest, as they require a deep understanding of Solana development and resources.

How do I Deploy a Solana Permissioned Environment? #

Deploying a Solana Permissioned Environment can be done in a variety of ways, depending on your organization's needs and resources. SPEs can be deployed locally for testing and development, or within custom infrastructure. You can also utilize some SPE providers such as Helius, Triton, or Edgevana to deploy your SPE.

How to Deploy a SPE Locally #

Prerequisites #

Before proceeding, ensure that Docker is installed on your system. Docker is essential for creating a contained and controlled environment for your SPE, facilitating ease of deployment and management. If you haven't installed Docker yet, please follow the installation guide for your respective operating system at the official Docker documentation.

Setting Up Your SPE #

The process of setting up a Solana Permissioned Environment locally involves cloning the repository, understanding its structure, and executing the necessary commands to get your SPE running. The repository containing all necessary components and instructions is hosted on GitHub, managed by monogon. You can find the repository here.

Step 1: Clone the Repository #

Open your terminal and clone the solana-spe repository using the following Git command:

git clone https://github.com/monogon-dev/solana-spe.git

Navigate to the cloned repository's directory:

cd solana-spe

Step 2: Understanding the Repository Structure #

Before proceeding with the deployment, familiarize yourself with the repository's structure by reviewing the README file. This document provides an overview of the project, including its purpose, configuration options, and detailed instructions for setting up your SPE.

Step 3: Deploying with Docker #

With Docker installed and the repository cloned, you're ready to deploy your SPE. The repository includes a Dockerfile and docker-compose files that define the SPE's environment, ensuring a seamless setup process.

Execute the following command to build and start your SPE using Docker:

docker-compose up --build

This command initiates the building process of the Docker image based on the provided Dockerfile and starts the SPE once the build is complete. The --build option ensures that Docker rebuilds the image, incorporating any changes you might have made to the configuration or Dockerfile.

Step 4: Verifying the Deployment #

Once the Docker containers are up and running, you can verify the successful deployment of your SPE by accessing the Solana CLI or any web interface provided for interaction with the SPE. The README file in the repository should offer guidance on performing basic operations and verifying the network's functionality.

Customizing Your SPE #

The SPE's configuration can be tailored to meet specific requirements. Explore the the .env file within the repository to adjust parameters such as ports, solana version, consensus mechanism, network permissions, and transaction processing limits.

For more detailed customization, refer to the Solana documentation and the README file in the repository, which may provide insights into advanced configuration and optimization techniques suitable for enterprise applications.

Conclusion #

SPEs provide a versatile solution for organizations seeking to leverage Solana's high-performance blockchain within a controlled and permissioned environment. By deploying an SPE, organizations can harness the speed and scalability of Solana while maintaining full control over network participants, infrastructure, and consensus mechanisms. SPEs come with varying levels of implementation that can help you organization meet their unique business requirements and regulatory constraints.