Skip to main content

L16 Public Testnet

The L16 Public Testnet will be the last stable test network before the mainnet launch and will likely stay online in parallel for experimental purposes.

MetaMask

SettingValue
Network NameL16 Beta
New RPC URLhttps://rpc.beta.l16.lukso.network
Chain ID83748374 (0x4FDE616)
Currency SymbolLYXt
Execution Block Explorer URLhttps://explorer.execution.beta.l16.lukso.network/

And if you need it, here is a tutorial on how to do it.

Bootnodes

BootnodeClientValue
0Beaconenr:-MK4QJ170_c4shhTN7NYc0ZiumYUrME_YUcWw_d8W6KKPHtHYVTVogsTqsQZDY_R3VlWnpKW-tIMJeB2JOIvo0D3Gi6GAYDxIN1yh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCBQMXLYgAAcf__________gmlkgnY0gmlwhCJaVcaJc2VjcDI1NmsxoQI6qePHCvwjkh8CMvuUaSWTNiYkFzZpZh3j-DgNjBLvo4hzeW5jbmV0cwCDdGNwgjLIg3VkcIIu4A
Gethenode://c2bb19ce658cfdf1fecb45da599ee6c7bf36e5292efb3fb61303a0b2cd07f96c2[email protected]34.90.85.198:30303

System Requirements

Minimum System Requirements

SettingsValue
Operating SystemLinux or MacOS
Number of CPU cores2
RAM16 GB
SSD100 GB
SettingsValue
Operating SystemLinux or MacOS
Number of CPU cores8
RAM32 GB
SSD512 GB
info

Apple's new M1 chips are not supported natively by our node client. However, you can follow this guide to run it by using Rosetta, Apple's built-in emulation software.

Running a Node

Ports

PortProtocolClientIngress
30303TCPgeth syncingport must be open
30303UDPgeth discoveryport must be open
13000TCPbeacon syncingport must be open
12000UDPbeacon discoveryport must be open
8545TCPgeth apiport should be closed
8080UDPbeacon metricsport should be closed
3500UDPbeacon apiport should be closed
4000UDPbeacon rpcport should be closed

Installing Dependencies

Prepare your environment. You need:

  1. Docker
  2. Docker Compose
  3. curl
Example script for installing docker
# install dependencies
sudo apt-get -y update
sudo apt-get -y install curl

# install docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# install docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

Installing the Node

mkdir lukso-l16-testnet && cd lukso-l16-testnet
curl https://raw.githubusercontent.com/lukso-network/lukso-cli/main/install.sh | sudo bash

The script will download the LUKSO cli into the folder.

lukso network init --nodeName [NAME_HOW_IT_APPEARS_IN_THE_STATS]

Starting the Node

# Start your nodes
lukso network init

# You can check logs with
lukso network logs consensus
lukso network logs execution

# Stop your nodes
lukso network stop

# If you selected a wrong chain, you could reset the setup. This will delete all related data except the keystores.
# NOTE: the network must be stopped
lukso network clear

Check the Network Status

You can see your node on the following page:

  1. https://stats.execution.beta.l16.lukso.network
  2. https://stats.consensus.beta.l16.lukso.network

Become a Validator

Request LYXt Tokens:

  1. Make sure to install MetaMask.

  2. Add the L16 Beta Testnet to MetaMask, by following this tutorial.

  3. Use the MetaMask parameters from above and select L16 Beta from the dropdown.

  4. Copy your MetaMask address to the clipboard using the box icon.

  5. Visit the L16 Faucet, paste the copied address and request your test tokens.

  6. Wait for the transaction to go through and check the balance in your MetaMask. You should have received 35 LYX.

Setup Validator

lukso network validator setup

This will create a key store and a transaction wallet. The purpose of the transaction wallet is to call and pay for the deposit transaction. You can check if the wallet has enough funds by calling

lukso network validator describe

Transfer enough funds to the transaction wallet public address from MetaMask.

Send the transaction.

# submit deposit
lukso network validator deposit_legacy

# wait 8h till validator is activated

You will need to wait for eight hours to activate your validator.

Run the Validator Client

Once your validator is activated, you spin up a validator client.

Make sure your consensus and execution clients are running (by typing ./lukso network start).

lukso network validator start

# You can check logs with
lukso network logs validator

# You can stop the validator using, this will also stop all other nodes
lukso network validator stop

Troubleshooting L16 Beta Testnet

Stalled Synchronization

Context

You found your consensus (prysm) client has no peer and the execution engine (geth) stops syncing after a few blocks.

Proposed Solution:

  1. Open node_config.yaml file using any text editor. For vim the command will be vim node_config.yaml
  2. Change bootnode in the consensus section to a bootnode in the table on the top.
  1. Restart the node by typing: ./lukso network stop && ./lukso network start

Unmarshalling Error

Context

Check your execution log by ./lukso network log execution. For Ubuntu 20.04 LTS you may get an unmarshal-related issue like:

log_execution: err="peer connected on snap without compatible eth support" log_consensus: level=error msg="Could not connect to powchain endpoint: could not dial eth1 nodes: json: cannot unmarshal string into Go struct field SyncProgress.CurrentBlock of type uint64" prefix=powchain

Proposed Solution:

# stop docker container
./lukso network stop
# reset data directory
./lukso network clear
# remove previous images
docker system prune --all --force --volumes
# delete lukso testnet directory
cd .. && rm -rf ./lukso-l16-testnet

After trying out the proposed solution, re-run your node setup from the start.