Skip to content

Commit

Permalink
Improve Node related pages
Browse files Browse the repository at this point in the history
  • Loading branch information
Hugoo committed Sep 19, 2023
1 parent 67fe09b commit 06e3510
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 112 deletions.
54 changes: 8 additions & 46 deletions docs/networks/mainnet/become-a-validator.md
Original file line number Diff line number Diff line change
Expand Up @@ -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: <https://deposit.mainnet.lukso.network/>.
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

Expand All @@ -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).

Expand Down Expand Up @@ -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?

Expand Down
130 changes: 64 additions & 66 deletions docs/networks/mainnet/running-a-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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.

<Tabs>
<TabItem value="prysm-config" label="Prysm">
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
```
<Tabs>
<TabItem value="prysm-config" label="Prysm">

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.

Expand All @@ -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: '<your-public-ip-address>'
```

Expand All @@ -152,28 +132,16 @@ p2p-host-dns: '<your-hostname-address>'
</TabItem>
<TabItem value="lighthouse-config" label="Lighthouse">

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 = "<your-public-ip-address>"
enr-address = "<your-public-ip-address>"
```
Expand Down Expand Up @@ -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

๐Ÿ‘‰ <https://github.com/lukso-network/network-docker-containers>

:::

We also created a "docker factory" web interface which allows you to generate your own `docker-compose.yml` files.

:::tip LUKSO Docker Factory

๐Ÿ‘‰ <https://docker-factory.lukso.tech/>

:::

### ๐Ÿ“„ 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

๐Ÿ‘‰ <https://github.com/lukso-network/network-configs/>

:::

## Need Help?

Check the [Network FAQ](../../faq/network/validators.md) section.
Expand All @@ -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

0 comments on commit 06e3510

Please sign in to comment.