Solana Nodes - The Complete Guide (2023)
{{get-started-solana}}
Solana’s high performance blockchain is a network of computers (nodes) executing and validating transactions. Solana has two types of nodes: validator and RPC nodes. This article will explain what a Solana node is, provide step-by-step instructions for running your own Solana node, and provide options for Solana RPC node providers. By the end of this article, you will be able to run a node on Solana and select an RPC node provider.
What is a Solana node?
A Solana node is any computer running the software needed to connect with the Solana cluster, a set of independently owned nodes. These nodes work together to verify the output of untrusted, user-submitted programs. Depending on the specific functionality, Solana nodes can either be RPC nodes or validator nodes.
What is a Solana validator node?
Validator N\nodes (also known as Consensus Nodes) within Solana’s Proof-of-Stake (PoS) consensus model are the entities responsible for confirming if blocks are valid, and ultimately finalizing the transactions by voting on blocks produced by a leader node, or by being the leader.
Solana’s Proof-of-History (PoH) protocol is a cryptographic way to reliably order transactions and events recorded on the decentralized ledger. Solana's architecture enables transactions to be ordered as they enter the network, rather than by block, which is done by the validator nodes.
Solana uses a delegated Proof-of-Stake protocol. Anyone who owns SOL can delegate it to a validator, whereby the validator then earns influence on the network which leads to them being assigned as a leader for more slots, as well as earning more rewards for voting.
What is a Solana RPC node?
A Solana RPC (Remote Procedure Call) Node is a non-voting validator node, which performs all validator node functions except voting on the validity of blocks. Because of this, they also do not receive vote credits.
An RPC node responds to requests about the network and also allows users of the RPC node to submit new transactions. Fleets of RPC nodes usually exist to serve a specific dApp or service (e.g.: decentralized exchanges) for users who want to interact with the Solana blockchain.
What is the difference between RPC nodes and consensus nodes?
There are four main differences between Solana RPC nodes and consensus nodes, primarily cluster consensus, vote credits, transaction costs, and hardware requirements.
1. Cluster Consensus
Consensus nodes participate in the cluster consensus by voting on the blocks produced by the leader whereas RPC nodes do not. If a voting validator has a staked account, it will earn vote credit for performing voting as long as it successfully votes on blocks that are added to the blockchain.
2. Earning Vote Credit
Vote credits are given to all consensus validators that successfully vote on blocks that are added to the blockchain. Additionally, when the validator is the leader, it can earn transaction fees and storage rent fees for each block that it produces that is added to the blockchain. RPC nodes do not receive any vote credit.
3. Transaction Costs
Since all votes in Solana happen on the blockchain, a consensus validator node incurs a transaction cost for each vote that it makes. These transaction fees amount to approximately 1.1 SOL per day. RPC nodes do not incur any transaction cost other than the cost of running and maintaining the node.
4. Hardware Requirements
To provide improved reliability, consensus validator nodes are expected to have higher computational and storage resource than RPC nodes.
What is a Solana RPC node provider?
Solana RPC node providers facilitate easy access for developers to send requests to and receive payloads from nodes on Solana's network instead of requiring Solana dApps to be responsible for their own node infrastructure, which is a heavy cost in terms of time and money.
There are varied use cases that require public and private RPC access depending on the application. For this reason, Solana RPC node providers offer a variety of benefits including developer tools, autoscaling access based on user demand, relaxed rate limits, and dedicated, highly available, reliable, and on-demand RPC services
Top Solana RPC Node providers
Choosing the right node provider for your application’s user case is a tradeoff between reliability, scalability, data correctness, latency, advanced APIs, customer support, and price. For instance, Alchemy's free tier can support the large majority of startups, while GenesysGo is sunsetting their free tier.
Here’s a list of top Solana RPC node providers:
- Alchemy
- Quicknode
- Syndica
- Triton
- GenesysGo
- Chainstack
- Ankr
- Runnode
- Blockdaemon
- Figment
What are the requirements to run a Solana RPC node?
To run a Solana RPC node, you need a minimum reserve of SOL and also possess the minimum memory (128 GB/258GB), computational (12 or 16 cores) and storage requirements.
Minimum SOL Requirements
There is no strict minimum amount of SOL required to run a validator on Solana. However a vote account which has a rent-exempt reserve of 0.02685864 SOL is required to participate in consensus. Voting also requires sending a vote transaction for each block the validator agrees with, which can cost up to 1.1 SOL per day. This cost estimator can be used to calculate the unit economics of running your own validator
Minimum Hardware Requirements
Here are the minimum hardware requirements for running a Solana node in terms of memory, compute, storage, and operating system.
1. Memory
- 128GB, or more for consensus validator nodes
- 258GB, or more for RPC nodes
2. Compute
- 12 cores / 24 threads, or more @ minimum of 2.8GHz for consensus validator nodes
- 16 cores / 32 threads, or more for RPC nodes
3. Storage
For consensus validators:
- PCIe Gen3 x4 NVME SSD, or better
- Accounts: 500GB, or larger. High TBW (Total Bytes Written)
- Ledger: 1TB or larger. High TBW suggested
For RPC nodes:
- A larger ledger disk if longer transaction history is required, Accounts and ledger should not be stored on the same disk
- GPUs are not strictly necessary
- Network: 1 GBPS up and down link speed, must be unshaped and unmetered
4. Operating System
Ubuntu 20.04, Windows 10 or later, macOS High Sierra or later.
With a proper machine, now we can set up the Solana node.
How to Run a Node on Solana
If your application requires a highly specific node configuration, running your own now may be preferable to using a Solana node provider. Running a node on the Solana network requires a few steps, including buying the aforementioned hardware, setting up the server, and creating an account and a Solana wallet.
1. Create a Sol User
First, create a `sol` user with this command from your terminal:
sudo adduser sol
2. Install Solana
Second, install Solana with this command:
sh -c "$(curl -sSfL https://release.solana.com/v1.8.0/install)"
3. Create a Mount for Point for Ledger
Third, create a mount point for ledger (not required if you are just running as a RPC node)
sudo mkdir -p /mnt/ledger
sudo chown -R sol:sol /mnt/ledger
sudo mount /dev/nvme0n1 /mnt/ledger
4. Connect to the Solana Devnet
Fourth, join the Solana Devnet cluster and test your connection:
solana config set --url devnet
solana gossip
5. Create Four Solana Accounts
Fifth, create the four necessary accounts: a system account, a validator identity account, a voting account, and a staking account.
5a. System Account
A system account, which simulates the owners’ wallet, is also used to transfer voting funds to the validator and withdraw rewards from the vote account.
5a. Validator Account
A validator identity account (also known as system account), where the validator’s identity is secured, and is used to securely sign transactions, and pay voting transaction fees.
5c. Voting Account
A voting account is used for voting and receiving validator rewards.
5d. Staking Account
A staking account is used to delegate tokens to validators on the network to potentially earn rewards for the owner of the stake account. Staking accounts are created and managed differently than system accounts.
Benefits and Drawbacks of Running Your Own Node
Running your own node gives you more control over the resources that your hardware provides and often can be more economical than relying on a third party vendor. However, most RPC node providers have more updated hardware and higher bandwidth networking which reduces the need to maintain and update hardware on your own.
How to Become a Solana Validator
Once you have the Solana node set up, participating in the network requires you to just start your node and keep your computer running.
You can start the validator node by running the following command:
You can also start an RPC node by running the following command:
Notice the following options from the command above:
- --no-voting: runs the validator as an RPC node without participating in consensus.
- ---private-rpc: does not publish the validator's open RPC port in the Solana gossip command
More Solana Node Resources
This article has explained what a Solana node provider is and how you can run a node on Solana. The following resources are available to deepen your understanding of Solana nodes:
- https://docs.solana.com/running-validator
- https://solana.com/validators
- https://docs.solana.com/developing/test-validator
- https://docs.solana.com/running-validator/vote-accounts
- https://docs.solana.com/running-validator/validator-reqs
Start Running A Node On Solana
If you want to start building on the Solana blockchain without having to manage your own node infrastructure, sign up for a free Solana node account, the quickest and easiest way to get started.