Node Setup Manual (testnet)
How to Operate Tellor Layer Node.
Recommended Hardware Specs
Operating a node for a personal RPC can be done using most modern computers.
For running a validator, more power is recommended:
Modern cpu with at least 8 cores / threads
ram: 32 gb + (16gb swap space recommended)
storage: 1000gb+ @ NVME gen4
network: 500mb/s DL, 100mb/s UL (the faster the better)
Software Prerequisites
jq, yq, sed, curl, wget, make, and Go are required for running the various config scripts and commands in this guide:
sudo apt install jq yq sed curl wget build-essentialInstall go if you want to build binaries from the layer repo:
Go version 1.22: Use the default install instructions here.
jq, yq, sed, and wget are required for running the various commands and config scripts in this guide:
brew install jq yq sed wget && xcode-select --installGo ≥ 1.22: Use the default install instructions here.
Commands shown should just work while logged in as a user (not root).
If you are using an older Mac with an intel chip, the linux versions (amd64) in step 1 below may be used. (just remember to use the mac commands!)
If on raspberry pi or similar, use the binary downloads for "arm64".
Choose How you will Sync your Node
There are two ways to get a node running on layertest-5:
State Sync: Your node is configured with seeds and peers from which it will try to download recent chain state snapshots. This sync method is faster, but you will not be able to query block info (like transactions) for any blocks that were produced before the day of your sync.
Genesis sync: Your node will start with the genesis binary and sync the entire chain. A different binary will be needed for each upgrade since genesis. This sync method can take a long time depending on how long layertest-5 has been live.
1. Download and Organize the layerd Binary(s)
layerd Binary(s)Be sure to select the tabs that work for your setup! You will get errors if you use the linux commands on mac and vice-versa.
First, download the binary from the Tellor Github.
Initialize .layer folder in your home directory: layerd init [moniker] [flags]
2. Set System Variables for Layerd
A Layer node uses the following variables:
TOKEN_BRIDGE_V2_ADDRESS: the token bridge contract address.
Edit .bashrc or .zshrc file with a text editor like nano:
Add this line to the bottom of the file.
Exit nano with ctrl^x then enter y to save the changes.
Load the new variables:
3. Edit Chain Configuration for Tellor.
We need to open up the tellor layer config files and change some variables. You can use any local text editor like code, vim, or nano.
Note: All variables not shown can be safely left as is.
To open the API up to the local network or set a custom port: In ~/.layer/config/app.toml:
In ~/.layer/config/client.toml:
In ~/.layer/config/config.toml:
Note: Peer connection errors can be normal for a few minutes after start.
4. Sync the Node
Before starting your node, it's a good idea to think about how you want to run it so that the process does not get killed accidentally. This is not obvious for beginners. Try GNU screen or tmux. More advanced setups can be achieved using systemd services.
Choose the tab depending on whether or not you are doing a genesis sync, or a state sync:
We need to make a few more config edits to make sure your state sync goes smoothly.
To find a good trusted height to use for a snapshot sync, we need to find the height of a snapshot available from
https://node-palmito.tellorlayer.com/rpc/. Copy and paste this entire block of commands into a terminal and hit enter:
The output should be something like:
Edit config.toml:
Open your config file:
Scroll or search (ctrl^w) the file and edit the state sync variables shown here to match the trusted height and trusted hash you found above:
Be sure to replace the trust_height and trust_hash with the block number and hash from the curl command above.
Exit nano with ctrl^x then enter y to save the changes.
Start your node:
The node should start up quickly and begin downloading snapshots from peers.
Some errors related to peer connections can be expected even if the snapshot sync is working properly. (e.g. "we need more peers", or "Failed to reconnect")
Last updated
Was this helpful?

