Solana is a public and open-source blockchain network that was specifically developed to enable the support for smart contract functionality and, as a direct result of that, has become the home to hundreds of decentralized applications (dApps) and has even paved the way for non-fungible tokens (NFTs) minting.
Solana was created in 2017 by Anatoly Yakovenko and Raj Gokal and utilized its own native cryptocurrency known as an SOL token for security through staking, as well as for the process of transferring value across its network.
Due to the vast popularity as well as the level of utility found within this blockchain, a lot of people have become curious about how they can run and maintain a Solana node and, as such, to make this process as simple and as straightforward as possible, today, we are going to go over everything you need to know when it comes to running a Solana node.
- Solana is a high-speed blockchain that has a reputation due to the fact that it can process a large number of transactions per second (TPS), and while its average is around 3,300 TPS, its theoretical throughput can reach 65,500 TPS.
- To achieve this goal, Solana utilizes a consensus mechanism known as Tower BFT on top of Proof-of-History (PoH) as well as Proof-of-Stake (PoS), which uses the synchronized clock allowed by PoH to reach consensus on network transactions.
- SOL is the native cryptocurrency utilized to power the Solana blockchain, and SOl as a cryptocurrency can be utilized to run a verifier node, which can earn a staking reward for being a part of the ecosystem, and SOL is also utilized for transferring value on top of the network.
- You can easily set up a Solana node; however, if you want a simpler way through which you can access all of the blockchain data, you can do so through the utilization of the blockchain-as-a-service provider known as NOWNodes.
What is Solana Node?
Within the case of blockchain technology, nodes are defined as devices that are designed as a means of keeping a copy of the distributed ledger and even serve the role of being a communication point that can execute a variety of different functions which are essential on top of the blockchain that they are powering.
Users can gain easy access to the blockchain’s ledger by leveraging the power provided to them by these nodes, which means that they can keep track of any activity which is carried on within the blockchain, which is transmitted to the nodes.
As a user, you can manually create and run a node by utilizing your own hardware, connection to the internet, and technical prowess. However, you can also utilize a blockchain-as-a-service provider such as NOWNodes to achieve this goal as well.
However, prior to jumping into the node creation process, it is important to have a basic level of understanding of how they work first.
A blockchain node is a network’s stakeholder or a device that is specifically created as a means of keeping a copy of all of the information within the distributed ledger. They can keep the network fair, secure, and immutable. They serve the role of a communication point that can execute a variety of different commands within the network as well.
Every single node is a part of the network and has its own unique identifier so that each node can be distinguished from one another. As such, these nodes exist to ensure that the ledger and its data can always be accessible. So if you were curious what does a solo node do, now you know.
If you want to know how many solana nodes are there, there are currently 1,886 on the mainnet.
Solana utilizes Tower BFT, which is a Proof-of-History (PoH) version of the Practical Byzantine Fault Toleration (PBFT) and is made to take advantage of the synchronized clock. It utilizes PoH as its cryptographic clock, which allows consensus to be reached without the requirement of incurring a massive messaging overhead, which can potentially lead to transaction latency.
Now that you have a basic level of understanding of what a node is, how it works, and how Solana nodes work, we will be diving into how you can create and run one for yourself.
Running SOL Nodes
Here is a step-by-step guide on everything you need to know when it comes to running a SOL node.
- Step 1: Fill out the Minimum Requirements.
There is no strict minimum amount of SOL that is required to run a validator Solana, however, if you want to participate in consensus, a cote account is required that has a rent-exempt reserve of 0.02685864 SOL, and voting also requires sending a vote transaction for each block the validator agrees with, which can cost up to 1.1 SOL on a daily basis.
Furthermore, there are hardware requirements that need to be fulfilled, such as a 12-core and 24-thread CPU at 2.8 GHz or more, 128 GB of ram or more, PCIe Gen3 x4 NVME SSD or better, and the proper software.
You can find the full hardware requirements on the official Solana Documentation, as well as all of the software required. We will be utilizing the Ubuntu 20.04 operating system.
- Step 2: Install the Right Software
In this step, you will need to open Terminal, after which you can type the following command:
sh -c “$(curl -sSfL https://release.solana.com/v1.10.32/install)”
If your procedure was successful, you will see this message:
downloading v1.10.32 installer
Active release directory: /home/solana/.local/share/solana/install/active_release
* Release version: v1.10.32
* Release URL: https://github.com/solana-labs/solana/releases/download/v1.10.32/solana-release-x86_64-unknown-linux-gnu.tar.bz2
Confirm that you have the required version of Solana by running this command:
After you install it successfully, you can use “solana-install update” to easily update the software to its latest version at any point in time.
If you want to manage your install manually, you can download and install the binaries by going to the official GitHub website, downloading solana-release-x86_64-unknown-linux-msvc.tar.bz2, then extracting the archive:
tar jxf solana-release-x86_64-unknown-linux-gnu.tar.bz2
- Step 3: Starting the Validator
Now that we have the proper hardware as well as the proper software set up, we can move towards starting the validator.
Configure Solana CLI with this command:
solana config set –url http://api.devnet.solana.com
Confirm that the cluster is reachable first:
solanasolana config set –url http://api.devnet.solana.com
Then you need to tune your system. On Linux, the Solana Repo includes a daemon to adjust system settings and optimize performance.
The daemon “solana-sys-tuner” is included in the solana binary release. Run it by using this command:
sudo $(command -v solana-sys-tuner) –user $(whoami) > sys-tuner.log 2>&1 &
If you want to manually manage your system settings, use these commands instead:
Optimize sysctl knobs by running:
sudo bash -c “cat >/etc/sysctl.d/21-solana-validator.conf <<EOF
# Increase UDP buffer sizes
net.core.rmem_default = 134217728
net.core.rmem_max = 134217728
net.core.wmem_default = 134217728
net.core.wmem_max = 134217728
# Increase memory mapped files limit
vm.max_map_count = 1000000
# Increase number of allowed open file descriptors
fs.nr_open = 1000000
sudo sysctl -p /etc/sysctl.d/21-solana-validator.conf
You can also increased systemd and session file limits:
sudo systemctl daemon-reload
Now, you can create an identity keypair for your validator as followed:
solana-keygen new -o ~/validator-keypair.json
You will then need to go to https://solana.com/validators/#signup and perform a registration procedure, with the generated pubkey, and wait for the confirmation email from Solana.
The identity public key can be viewed by running:
solana-keygen new -o ~/validator-keypair.json
You can also set up a paper wallet identity and vanity keypair.
However, when you have the keypair, you can set the Solana configuration to use your validator keypair for all following commands:
solana config set –keypair ~/validator-keypair.json
Here, you should see this output:
Config File: /home/solana/.config/solana/cli/config.yml
RPC URL: http://api.devnet.solana.com
WebSocket URL: ws://api.devnet.solana.com/ (computed)
Keypair Path: /home/solana/validator-keypair.json
Now you can airdrop yourself SOL in order to get started:
solana airdrop 1
To view the balance, use this command:
solana balance –lamports
You can create an authorized withdrawal account with this command:
solana-keygen new -o ~/authorized-withdrawer-keypair.json
Now, you can connect your validator to the cluster by running:
–identity ~/validator-keypair.json \
–vote-account ~/vote-account-keypair.json \
–rpc-port 8899 \
–entrypoint entrypoint.devnet.solana.com:8001 \
To confirm that your validator is connected to the network, open a new terminal and run:
Hopefully, now you know a bit more about the Solana nodes and how you can create, run and maintain your own Solana (SOL) node.
Remember that you do not need to be tech-savvy in order to connect to a Solana (SOL) node, as this is a task that can be easily achieved by connecting to a pre-existing node with an API key instead.