From 06e35108feedbd3706e01ee4427d0075126a5227 Mon Sep 17 00:00:00 2001 From: Hugo Masclet Date: Tue, 19 Sep 2023 16:44:39 +0200 Subject: [PATCH] Improve Node related pages --- docs/networks/mainnet/become-a-validator.md | 54 ++------ docs/networks/mainnet/running-a-node.md | 130 ++++++++++---------- 2 files changed, 72 insertions(+), 112 deletions(-) diff --git a/docs/networks/mainnet/become-a-validator.md b/docs/networks/mainnet/become-a-validator.md index 6480bea567..145f390998 100644 --- a/docs/networks/mainnet/become-a-validator.md +++ b/docs/networks/mainnet/become-a-validator.md @@ -6,17 +6,11 @@ sidebar_position: 3 import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -## Become a validator - -:::info - -The LUKSO Mainnet launched on Tuesday 23rd May, 4:20 PM GMT with validators that previously deposited to the [Genesis Deposit Contract](https://etherscan.io/address/0x42000421dd80D1e90E56E87e6eE18D7770b9F8cC#code). Becoming a validator is paused until the discovery month ends and the LYXe to LYX migration goes live. For more information, have a look into our Medium posts about the [LUKSO launch process](https://medium.com/lukso/its-happening-the-genesis-validators-are-coming-ce5e07935df6) and the [deposit contract freeze](https://medium.com/lukso/genesis-validators-deposit-smart-contract-freeze-and-testnet-launch-c5f7b568b1fc). - -::: +# Become a validator ![Deposit Launchpad](/img/network/mainnet-launchpad.png) -To become a validator, you can use the LUKSO Deposit Launchpad: . +To become a validator, you will need to use [LUKSO Deposit Launchpad](https://deposit.mainnet.lukso.network/) to deposit 32 LYX per validator. Once you have generated your keystore files (`keystore-xxx-[timestamp].json`) and deposited the LYX, you can adjust your node to run as a validator. :::caution Validator Keys @@ -26,16 +20,13 @@ As a validator, you need to import your validator deposit key files (`keystore-x ## Starting a validator -As while running a regular node, you have multiple options to start your validator: +Similar to running a regular node, you have multiple options to start your validator. Please refer to the regular [Node Guide](./running-a-node.md) that explains the differences between those setups and how to get the correct network configurations. -- **LUKSO CLI Validator** -- **Docker Factory** -- **Docker Compose Setup** -- **Configure a LUKSO Compatible Client** +### 📦 With Dappnode -Please refer to the regular [Node Guide](./running-a-node.md) that explains the differences between those setups and how to get the correct network configurations. +The [Dappnode tutorial](https://docs.dappnode.io/docs/user/staking/lukso/solo#2-creating-validator-keys-for-lukso) explains the process. -### Using LUKSO CLI +### 📟 With LUKSO CLI Set up your regular node using the LUKSO CLI as described in the [Node Guide](./running-a-node.md). @@ -153,38 +144,9 @@ For more options, please check the [LUKSO CLI Documentation](https://github.com/ To enable more advanced monitoring for your node, you can check the official [`network-docker-monitoring`](https://github.com/lukso-network/network-docker-monitoring) repository with a step-by-step guide. -### Using Docker - -Our official Docker container provides a base template for images to run the LUKSO validator nodes. Make sure you have -Docker and Docker Compose installed on your system. - -There are 2 ways that you can utilize Docker in LUKSO ecosystem: - -- Use [Docker Factory](https://docker-factory.lukso.tech) app to generate your own docker-compose file. Select your - desired clients, fill the options and copy your generated docker-compose service. - - After the file has been generated, all that is left to do is to download, install and start the clients with your - docker-compose file. - -- Head over to the [network-docker-containers](https://github.com/lukso-network/network-docker-containers) repository - from LUKSO and follow the installation process. You will have to clone the repository to your node machine and - configure various properties, including the genesis files, deposit keys, and node name. - - After the configuration, you can automatically download, install, and start all node clients. Head into the repository - and follow the instructions in - the [README.md](https://github.com/lukso-network/network-docker-monitoring/blob/main/README.md) - -To enable more advanced monitoring for your node, you can check the -official [`network-docker-monitoring`](https://github.com/lukso-network/network-docker-monitoring) repository with a -step-by-step guide. - -### Using Custom configs - -If you are a pro user or want to generate custom genesis files with a different genesis supply of the blockchain, you can follow the instructions in the following repositories: +### 🚢 With Docker -- [Genesis File Generation Tool](https://github.com/lukso-network/tools-lodestar-genesis-ssz-generator/blob/spike/pos-from-the-start/packages/beacon-node/test/utils/README.md) -- [Network Configurations](https://github.com/lukso-network/network-configs/mainnet) -- [Client Specifications](https://github.com/lukso-network/network-configs#binary-applications) +If you are using Docker images in your setup, you need to make sure you have activated the validator related options. ## Need Help? diff --git a/docs/networks/mainnet/running-a-node.md b/docs/networks/mainnet/running-a-node.md index 4301508519..b296d08c72 100644 --- a/docs/networks/mainnet/running-a-node.md +++ b/docs/networks/mainnet/running-a-node.md @@ -8,54 +8,40 @@ import TabItem from '@theme/TabItem'; # Running a Node +Anyone is welcome to participate in the LUKSO network by running her/his own node. On this page, you will find the relevant information to configure and start your node. If you wish to stake LYX and run a validator node, you can check the [Become a Validator page](./become-a-validator.md). + ## System Requirements +The system requirements will depend on the clients you are running. Please refer to the client specs for detailed information. Also, as the LUKSO blockchain is relatively new and small, you will be able to use a smaller SSD for storage as for other chains. + | Settings | Value | | ------------------- | -------------- | -| Operating System | Linux or MacOS | +| Operating System | Linux or macOS | | Number of CPU cores | 4 | | RAM | 16 GB | -| SSD | 100 GB | - -## Ports - -| Port | Protocol | Client | Description | -| ----- | -------- | ------------------- | ----------------- | -| 30303 | TCP | execution syncing | port must be open | -| 30303 | UDP | execution discovery | port must be open | -| 13000 | TCP | consensus syncing | port must be open | -| 12000 | UDP | consensus discovery | port must be open | +| SSD (NVMe) | 100 GB | -## Network Start - -After the [Genesis Deposit Contract](https://etherscan.io/address/0x42000421dd80D1e90E56E87e6eE18D7770b9F8cC#code) was frozen on the 9th of May ([read the article](https://medium.com/lukso/genesis-validators-deposit-smart-contract-freeze-and-testnet-launch-c5f7b568b1fc)), LUKSO mainnet started as a PoS Blockchain on the 23rd of May 2023. The genesis deposit contract received 10.336 deposits from 223 unique addresses, as fetched from the contract's [Dune Analytics Board](https://dune.com/hmc/lukso-genesis-validators)). The network started with about 170 nodes. - -## Supported Clients +## Starting a Node -LUKSO runs the Ethereum protocol, meaning most Ethereum clients will run the LUKSO Blockchain. The currently tested and supported clients are the following: +To start your clients and contribute to the LUKSO network, you have 4 options. -- **Execution Clients**: [Geth](https://geth.ethereum.org/), [Erigon](https://github.com/ledgerwatch/erigon) -- **Consensus Clients**: [Prysm](https://github.com/prysmaticlabs/prysm), [Lighthouse](https://github.com/sigp/lighthouse) -- **Validator Clients**: [Prysm](https://docs.prylabs.network/docs/how-prysm-works/prysm-validator-client), [Lighthouse](https://github.com/sigp/lighthouse) +### 📦 With Dappnode -:::info CLI Development +Difficulty: Easy 🌶️ -You can follow the latest development process on the official [LUKSO CLI repository](https://github.com/lukso-network/tools-lukso-cli/). +![dappnode screenshot](https://docs.dappnode.io/assets/images/lukso-staking-screenshot-605e7ed6329f5a73b11a6b8cc4015c9c.png) -::: +LUKSO has partnered with [Dappnode](https://dappnode.com/) ([announcement](https://twitter.com/DAppNode/status/1696550569249218972)) to provide easy access for solo stakers/node runners. -## Starting a Node +👉 All the information are available in the [Dappnode docs](https://docs.dappnode.io/docs/user/staking/lukso/solo). -To start your clients and contribute to the blockchain network, you have 4 options: +### 📟 With the LUKSO CLI -- **Install the LUKSO CLI**: The [LUKSO CLI](https://github.com/lukso-network/tools-lukso-cli) is a command line tool to install, manage and set up nodes and validators of different clients for the LUKSO blockchain. It provides simple and unified commands to interact with your node and runs natively on your operating system. We recommend this as default for anyone beginning to get into the topic of running a node himself. The LUKSO CLI is officially supported for Ubuntu, Debian, and Mac running on either x86 Intel and AMD Processors or Single Board ARM Computers. -- **Use LUKSO Docker Factory**: [Docker Factory](https://docker-factory.lukso.tech) is a perfect way to configure your own docker-compose file. With an easy-to-use user interface, running a fully configured LUKSO node is a matter of only few clicks. Editing the contents with a user interface makes it especially easy to configure a docker-compose file for any non-technical users, as every option will automatically be saved in the right place. -- **Use Docker Compose**: The official [Docker Containers](https://github.com/lukso-network/network-docker-containers) can make it easy for you if you're already experienced with the Docker ecosystem. Different configurations can be started in the blink of an eye and work in encapsulated containers. The versatility makes it especially useful if you want to run multiple networks on your node at once. The repository features extended documentation. By default, the Docker setup will run as a validator. -- **Configure a LUKSO Compatible Client**: You are in no way limited to the tools we provide for easy onboarding. If you are a pro user, you can download and run the Erigon, Geth, Lighthouse, or Prysm clients in your preferred setup. You can either [download](https://deposit.mainnet.lukso.network/) or [generate](https://github.com/lukso-network/tools-lodestar-genesis-ssz-generator/blob/spike/pos-from-the-start/packages/beacon-node/test/utils/README.md) the genesis files of the LUKSO network and configure your clients manually. Please refer to the respective [clients installation instructions](https://github.com/lukso-network/network-configs#binary-applications) and use the LUKSO [network configuration](https://github.com/lukso-network/network-configs/) repository to start your node. +Difficulty: Medium 🌶️🌶️ -### LUKSO CLI Node Setup +The [LUKSO CLI](https://github.com/lukso-network/tools-lukso-cli) is a command line tool to install, manage and set up nodes and validators of different clients for the LUKSO blockchain. It provides simple and unified commands to interact with your node and runs natively on your operating system. We recommend this as default for anyone beginning to get into the topic of running a node himself. The LUKSO CLI is officially supported for Ubuntu, Debian, and Mac running on either x86 Intel and AMD Processors or Single Board ARM Computers. -You can use the [LUKSO CLI](https://github.com/lukso-network/tools-lukso-cli) to prepare and run your LUKSO mainnet node. For further information, you can check out the official [LUKSO CLI Documentation](https://github.com/lukso-network/tools-lukso-cli/). It is not limiting yourself to running any supported clients, as all configurations and flags can be passed down. The guide will give you a brief introduction. +You can use the [LUKSO CLI](https://github.com/lukso-network/tools-lukso-cli) to prepare and run your LUKSO node. For further information, you can check out the official [LUKSO CLI Documentation](https://github.com/lukso-network/tools-lukso-cli/). It is not limiting yourself to running any supported clients, as all configurations and flags can be passed down. #### Install the LUKSO CLI @@ -90,29 +76,23 @@ lukso init After the initialization is successful, we must download the blockchain clients, which will be managed from the CLI under the hood. They will install globally, need superuser permissions, and are set as default clients within your working directories configuration file. You will be asked which clients you want to download and install during the setup. ```bash -sudo lukso install +lukso install ``` #### Setting your Public IP Address -Your public IP address is a unique identifier assigned to your internet connection by your service provider. Every device connected to the public internet is set as an IP address for communication with other devices. - -To find other nodes in the network, your public IP should be exposed to build solid peer connections and download data more quickly. This Public IP value must be set within the consensus client configuration file that the CLI downloads from the [LUKSO Network Configuration](https://github.com/lukso-network/network-configs) repository. - - - +To find other nodes in the network, your public IP should be exposed to build solid peer connections and download data more quickly. This public IP value must be set within the consensus client configuration file that the CLI downloads from the [LUKSO Network Configuration](https://github.com/lukso-network/network-configs) repository. Within the node's working directory, open up the related configuration file with an editor of your choice: :::info -If you are setting up a node for the testnet, make sure to modify the configuration file within the testnet folder `[PATH_TO_NODE_WORKING_DIRECTORY]/configs/testnet/prysm/prysm.yaml` instead. +If you are setting up a node for the testnet, make sure to modify the configuration file within the testnet folder `[PATH_TO_NODE_WORKING_DIRECTORY]/configs/testnet/...` instead. ::: -```text -[PATH_TO_NODE_WORKING_DIRECTORY]/configs/mainnet/prysm/prysm.yaml -``` + + There are two ways the IP can be configured within Prysm: Regular Host IPs or by using a Dynamic DNS address. Choose what address you are going to use within your setup. If you need further information, please have a look at the [Further Reads](#further-reads) section. @@ -121,13 +101,13 @@ There are two ways the IP can be configured within Prysm: Regular Host IPs or by Exchange the following sample IP address: -```text +```text title="[PATH_TO_NODE_WORKING_DIRECTORY]/configs/mainnet/prysm/prysm.yaml" p2p-host-ip: '0.0.0.0' ``` With your public IP address: -```text +```text title="[PATH_TO_NODE_WORKING_DIRECTORY]/configs/mainnet/prysm/prysm.yaml" p2p-host-ip: '' ``` @@ -152,28 +132,16 @@ p2p-host-dns: '' -Within the node's working directory, open up the related configuration file with an editor of your choice: - -:::info - -If you are setting up a node for the testnet, make sure to modify the configuration file within the testnet folder `[PATH_TO_NODE_WORKING_DIRECTORY]/configs/testnet/prysm/prysm.yaml` instead. - -::: - -```text -[PATH_TO_NODE_WORKING_DIRECTORY]/configs/mainnet/lighthouse/lighthouse.toml -``` - Exchange the following sample addresses: -```text +```text title="[PATH_TO_NODE_WORKING_DIRECTORY]/configs/mainnet/lighthouse/lighthouse.toml" listen-address = "0.0.0.0" enr-address = "0.0.0.0" ``` With your own public IP addresses: -```text +```text title="[PATH_TO_NODE_WORKING_DIRECTORY]/configs/mainnet/lighthouse/lighthouse.toml" listen-address = "" enr-address = "" ``` @@ -258,6 +226,38 @@ For more options, please check the [LUKSO CLI Documentation](https://github.com/ To enable more advanced monitoring for your node, you can check the official [`network-docker-monitoring`](https://github.com/lukso-network/network-docker-monitoring) repository with a step-by-step guide. +### 🚢 With Docker + +Difficulty: Hard 🌶️🌶️ + +We provide a basic repository with examples of `docker-compose.yml` files to run the LUKSO network. + +:::info + +👉 + +::: + +We also created a "docker factory" web interface which allows you to generate your own `docker-compose.yml` files. + +:::tip LUKSO Docker Factory + +👉 + +::: + +### 📄 With your own clients + +Difficulty: Advanced 🌶️🌶️🌶️🌶️ + +You are in no way limited to the tools we provide. If you are a pro user, you can download and run the Erigon, Geth, Lighthouse, Prysm or any other clients in your preferred setup. Please refer to the LUKSO [network configuration](https://github.com/lukso-network/network-configs/) repository to configure and start your node. + +:::info LUKSO Network configuration + +👉 + +::: + ## Need Help? Check the [Network FAQ](../../faq/network/validators.md) section. @@ -266,16 +266,14 @@ Ask your question in the validators channel on the [official LUKSO Discord serve ## Further Reads -You can check out the following links for extended help or advice for setting up your node beyond the LUKSO CLI. - -- [Extended Wiki and LUKSO Node Guide](https://github.com/fhildeb/lukso-node-guide) by Felix Hildebrandt -- [LUKSO Community Guides](https://docs.luksoverse.io/) by Luksoverse -- [ETHStaker Community Discord](https://discord.com/invite/ucsTcA2wTq) for running EVM Clients - -## Further Network Information - - [LUKSO Mainnet Start Process Update #1](https://medium.com/lukso/the-puzzle-comes-together-milestone-update-2022-7b69571f63a2) - [LUKSO Mainnet Start Process Update #2](https://medium.com/lukso/lukso-mainnet-timeline-and-process-dd997fe811c8) - [LUKSO Mainnet Start Process Update #3](https://medium.com/lukso/its-happening-the-genesis-validators-are-coming-ce5e07935df6) - [Genesis Validators Deposit and Testnet Launch](https://medium.com/lukso/genesis-validators-deposit-smart-contract-freeze-and-testnet-launch-c5f7b568b1fc) - [Genesis Validators, start your clients!](https://medium.com/lukso/genesis-validators-start-your-clients-fe01db8f3fba) + +You can check out the following links for extended help or advice for setting up your node beyond the LUKSO CLI. + +- [Extended Wiki and LUKSO Node Guide](https://github.com/fhildeb/lukso-node-guide) by Felix Hildebrandt +- [LUKSO Community Guides](https://docs.luksoverse.io/) by Luksoverse +- [ETHStaker Community Discord](https://discord.com/invite/ucsTcA2wTq) for running EVM Clients