Which client should I run to power the LUKSO network?
Most validator nodes on the LUKSO mainnet are running with Geth and Prysm. However, node operators are responsible for ensuring they split their client usage evenly to the extent of officially supported clients and validators. Therefore, we suggest running Erigon and Lighthouse until they are evenly split. We will prepare a page to check client diversity and distribution during the migration process. You can read more about why client diversity is so important in the Blockchain Architecture section of the FAQ.
How do the supported clients differ?
Currently, LUKSO officially supports Geth, Erigon, Lighthouse, and Prysm. All clients are known to be highly secure and reliable!
Geth is the most popular and widely used Ethereum execution client. It's written in the Go programming language. Geth can be used for various tasks, including creating smart contracts, transferring tokens, mining ether, and exploring block history. It's developed and maintained by the Ethereum Foundation.
Erigon is an Ethereum execution client that aims to offer a more efficient and faster alternative to Geth. It's written in Go and includes several optimizations to reduce the amount of data stored and improve processing speed. However, these optimizations can make Erigon more complex to maintain and update.
Prysm is an Ethereum consensus client written in Go and developed by Prysmatic Labs. Validators widely use it. Performance-wise, Prysm leverages optimized processes and data structures, offering a smooth experience for validators. The client had rigorous testing and auditing processes to ensure the client was secure against potential threats. It also comes with an excellent user-friendly terminal interface.
Lighthouse is an Ethereum consensus client written in Rust and developed by Sigma Prime. From a security perspective, Lighthouse leverages Rust's safety features and undergoes regular security audits to protect against potential vulnerabilities. Regarding efficiency, Lighthouse is designed to perform well even on low-spec hardware, making it accessible to a wide range of users with different skill levels.
Should I run an archive or a full node?
A full node downloads the entire blockchain and validates all blocks and transactions against the network's consensus rules. It stores the current state of the network, including account balances, contracts, storage, and other information. However, it does not keep all historical states. If you need to check the balance of an account at a specific block height in the past, a full node cannot provide this information directly.
An archive node is a particular type of full node. It also downloads the entire blockchain and validates all blocks and transactions like a full node. In addition to the current state of the network, it also stores all historical states since the genesis block. Keeping the entire historical state makes an archive node much more storage extensive than a full node, but it allows you to query any historical state directly on the node.
If you are running a validator, it's the default and recommended option to go with a full node. Archive nodes should only be run by professional setups or data centers with lots of storage.
Can the LUKSO CLI run as an archive node?
By default, the LUKSO CLI is running as a full node. However, you can modify the configuration files and pass any flags to the execution clients by adding the
--erigon-[parameter] flags to the start command.
How much storage does my node need?
The needed storage can be broken down into yearly growth based on other EVM networks and depends on whether you are running an archive node or a full node. We can make a rough estimate by analyzing QuickNode, Ledgerwatch, and YCharts. By default, the LUKSO CLI should store about
120 GB per year using Geth and about
60 GB per year using Erigon. If you pass down archive node flags, the storage will increase to about
1.8 TB per year on Geth and about
320 GB per year using Erigon.
Will there be a GUI for running a node?
The LUKSO Launchpad will streamline the process of generating deposit data and transferring validator funds. However, the node setup and maintenance will require using the terminal for both LUKSO CLI and Docker.
How can I check if my node is working fine?
If you are using the LUKSO CLI, you can use the lukso status command to see if every one of the clients is running. You can also run the lukso logs and lukso status peers commands to see the outputs of the specific clients or their number of peers. After syncing the node, you should see that the execution client's chain head is updated regularly within the execution log files.
If you are running Docker Images, you can run docker ps to check if all containers are running smoothly. The output should state when the blockchain client containers are up and running.
If you want to check if the validator is working properly, please have a look at the validator section of this FAQ.
Is the LUKSO CLI automatically restarting?
The LUKSO CLI only acts as a management tool for the underlying blockchain clients and does not have built-in automation with version 0.8.0. However, if you want to use the LUKSO CLI with automation, you must configure a system service script.
Is it possible to run multiple nodes from the same home network?
Yes, running multiple nodes from the same home network is possible. What matters is the public IP of the node devices, which will be different. However, when you run multiple nodes in one network, you must modify and forward the ports they use, so they do not communicate over the same channel and block each other.
Is there a way to save time on synching during the node setup?
Yes. You can use the LUKSO checkpoint synchronization service to dramatically speed up the process of synchronizing the consensus client. If enabled, your node will begin syncing from a recently finalized consensus checkpoint instead of genesis. It will then download the rest of the blockchain data while your consensus runs. The shortcut is ideal for fresh installations, validator migration, or recovery.
After the synchronization is finalized, you will have equal blockchain data. If you are using the LUKSO CLI, you can use the
--checkpoint-sync flag on every startup. However, it shows the most significant effect when synchronizing from scratch or after an extended downtime. The checkpoint URLs can also be manually added to the clients.
Does the performance of the node machine influence the rewards?
The node's performance does not influence rewards if the recommended hardware requirements are met. However, if your system is below the recommendations or runs additional software in parallel, your node may not be able to process incoming data correctly. The limitation may result in potential crashes or attestation delays. It is always recommended to exceed the minimum requirements to run additional monitoring and security tools.
What are the minimum requirements to run a node?
Using a separate machine or server specifically for the node service is recommended. The minimum hardware can be found within the Node Setup. The platform and processor support will depend on your software to run and monitor the blockchain clients.
Which clients are better suited for nodes with lots of validators?
All consensus clients are suited for large validator numbers. The validator keys are affecting the overall node performance in a minor way. If you still want to optimize, Lighthouse has additional efficiency for nodes with lower hardware specs.
What is the maximum validator number that should be run on one node?
We officially tested running up to 1000 validator keys on one node. However, we recommend not running vast amounts of validator keys on one single node in case of an outage. The more validators on one node when a network issue or outage happens, the higher the total balance loss.
If I run multiple nodes, is it recommended to run different clients?
Yes, it is recommended to run various clients to support client diversity. Advanced users, or people with lots of validator keys, should run software clients of the minority to stabilize the networks and reduce the proneness to potential errors. Client diversity will ensure the network participation does not shrink too much in case there are errors with specific clients
Which operating system should I use to run the LUKSO CLI?
We recommend running the node on server versions of Ubuntu or Debian. Ubuntu and Debian are built on similar foundations, but their philosophies and approaches can lead to different experiences when setting up and running a node. If you're a beginner or value ease of use and good support, Ubuntu might be the best choice. If you're an advanced user who values stability, security, and lower resource usage, Debian might be the better fit.
Either distributions will be capable of running a node successfully. Your personal preferences, familiarity with the distribution, and specific requirements will be the decisive factors. Please note to always run on the latest operating system versions to ensure the best security.
What are the supported platforms for the LUKSO CLI?
The LUKSO CLI is officially supported on Mac, Ubuntu, and Debian for both
x86_64 Intel or AMD processors, and
aarch64 single-board computers such as the M1 or Raspberry. The experience might differ with other setups or versions of these operating systems.
What is a slasher?
A slasher actively watches for offenses or misbehavior on the network and broadcasts them. This might be due to running the same validators or multiple machines, faking proposals, etc.
Slasher is the name of the software that can detect slashable events from validators and report them to the protocol. You can think of a slasher as the network's police. The slasher records the attesting and proposing history for every validator on the network and then cross-references this history with what has been broadcasted to find slashable messages such as double blocks or surrounding votes. Running a slasher is optional.
In theory, all the network needs is one honest, properly functioning slasher to monitor the network because any slashings found are propagated to the entire network for it to be put into a block as soon as possible. Due to uptime, multiple backups in different areas of the network should exist. Network security is generally beneficial if a handful of nodes independently check for slashing conditions.
How to enable the slasher within the LUKSO CLI?
The LUKSO CLI is automatically running the slasher software within all Prysm nodes. In order to disable it, you can pass the
--prysm-no-slasher flag at the end of the start command. If you are using Lighthouse and want to enable slasher, you can pass the