Running a LAMINA1 Node
There are a number of reasons why you might want to run a node on the LAMINA1 network:
- The more nodes in the network, generally the more decentralized the platform becomes. By operating a node, you’re contributing to this decentralization and helping secure the platform.
- If you’re developing applications on LAMINA1, you generally need to get or submit data to one of the blockchains. While you can decide to trust a public node’s API, most developers would prefer to run and trust their own node while avoiding potential public node congestion.
- Running a node can be a great way to earn L1 tokens if you decide to become a validator. Validators are nodes that actively participate in consensus and which are secured by staked L1 tokens.
The quickest way to learn about LAMINA1 is to run a node and interact with the network.
In this tutorial, we will:
- Install and run a LAMINA1 node
- Connect to LAMINA1
Note to reader: Much of the documentation below has been pulled and modified from the Avalanche documentation, which can be found here. L1 documentation is still a work in progress. To build upon it or provide feedback, please join us on Discord and share in the designated #testnet-feedback channel.
Requirements
Computer Hardware & OS
LAMINA1 is based on Avalanche, which is an incredibly lightweight protocol, so nodes can run on commodity hardware. Note that as network usage increases, hardware requirements may change.
- CPU: Equivalent of 2 AWS vCPU
- RAM: 4 GiB
- Storage: 100 GiB
- OS: Ubuntu 22.04
Networking
To run successfully, LAMINA1 needs to accept connections from the Internet on the network port 9671. Before you proceed with the installation, you need to determine the networking environment your node will run in.
Running on a Home Connection
You will need to set up inbound port forwarding of port 9671 from the internet to the computer the node is installed on.
As there are too many models and router configurations, we cannot provide instructions on what exactly to do, but there are online guides to be found (like this, or this), and your service provider support might help too.
Please note that a fully connected LAMINA1 node maintains and communicates over a couple of thousand live TCP connections. For some low-powered and older home routers that might be too much to handle. If that is the case you may experience lagging on other computers connected to the same router, nodes getting benched, failing to sync and similar issues.
Set up your node
Let’s install the GoLang implementation of a LAMINA1 node and connect to the LAMINA1 primary network.
Download & Install
The node binary for Ubuntu is now delivered via the apt package manager. To install the node, run the following as root:
echo "deb [trusted=yes arch=amd64] https://snapshotter.lamina1.global/ubuntu jammy main" > /etc/apt/sources.list.d/lamina1.list &&
apt update &&
apt install lamina1-node
Start Node and Connect to LAMINA1
The Linux node binary is automatically registered as a system service during the installation process above, named lamina1-node.testnet.service
. The service is also automatically started, and the systemctl
utility can be used. The highlighted lines below indicate the node is running properly:
$ sudo systemctl status lamina1-node.testnet
● lamina1-node.testnet.service - Lamina1
Loaded: loaded (/etc/systemd/system/lamina1-node.testnet.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-04-18 17:38:36 UTC; 21s ago
Main PID: 2355 (lamina1.node)
Tasks: 8 (limit: 1141)
Memory: 335.8M
CPU: 11.275s
CGroup: /system.slice/lamina1-node.testnet.service
└─2355 /usr/bin/lamina1.node --config-file /etc/lamina1/configs/testnet4/default.json
Apr 18 17:38:36 ip-172-31-83-52 systemd[1]: Started Lamina1.
Bootstrapping Process
When the node starts, it has to bootstrap (catch up with the rest of the network). You will see logs about bootstrapping. Until the bootstrapping process completes, the node is in an unusable state. You can check the status of the bootstrapping process by running the check-bootstrap.sh
script included with the node binary. The desired output is shown below, with isBootstrapped showing true:
$ ./check-bootstrap.sh
{"jsonrpc":"2.0","result":{"isBootstrapped":true},"id":1}
{"jsonrpc":"2.0","result":{"isBootstrapped":true},"id":1}
{"jsonrpc":"2.0","result":{"isBootstrapped":true},"id":1}
If you make other API calls to a chain that is not done bootstrapping, it will return “API call rejected” because chain is not done bootstrapping. If you are still experiencing issues please contact us on Discord.
What Next?
Now that you've launched your LAMINA1 node, what should you do next?
Your LAMINA1 node will perform consensus on its own, but it is not yet a validator on the network. This means that the rest of the network will not query your node when sampling the network during consensus and you are not earning any L1 tokens.
If you want to add your node as a validator:
- Use the Web Wallet at https://wallet-test.lamina1.network to generate a wallet address.
- Using the Web Wallet, check to make sure you have at least 2000 L1 tokens on the P-Chain. You can use the "cross chain" function to transfer your C-Chain or X-Chain tokens to the P chain. If you’d like to get enough testnet tokens to run a node, please contact us on Discord.
- Get your node-id by running
lamina1.get_my_node_id
at the command line. The returnedNodeID-[string]
is your unique node ID.$ lamina1.get_my_nodeid.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 695 100 430 100 265 42302 26069 --:--:-- --:--:-- --:--:-- 77222
NodeID-[string] - Use the Web Wallet to stake your tokens on that node ID, under the "Earn" option from the dropdown menu on the upper right.
Read here to learn more about being a validator, including: parameters, uptime requirements, and setting up your node.