GB’s Magical Guide to Being Awesome at Being a BP! Testnet

GB’s Magical Guide to Being Awesome at Being a BP! Testnet

Hello, GoodBlock Systems Administrator Nathaniel here. This article is part of a series that serves as a distillation of all the knowledge I have gained as a Block Producer on the Telos Blockchain Network. 

In this part, we’re going to set up a testnet node! These are my recommendations for setting up a node in a professional manner for a general block producing usage case. You also learn more about being a block producer from later articles or somewhere else and you may find more specifics than what I detail here which fits your needs. Feel free to deviate to your own needs.

Before installing any software, we need to make sure you’ve got the hardware:

First, you’ll need a server focused on single-thread CPU usage. Nodeos is the program central to running on Antelope blockchains. The nodeos program is single-threaded and does not use GPU to calculate the block hashes which is standard in Proof-of-Stake blockchains.
The server will need to run debian-based Linux, so Ubuntu LTS, CentOS, Amazon Linux, or MacOS. In my experience, running in a VMware environment slows block production by as much as 25%; and running dockerized is another 10% performance hit. Therefore, nodeos is best installed without a hypervisor. I personally am running Ubuntu 20.04 LTS as my operating system. All are fine to use while not producing.

Next, Logical drives should have around 1TB SSD array or drive for the OS.And then use a second array for block storage to separate disk usage. Splitting the arrays will increase disk access speeds. SATA drives are fine types of drives, SSDs are better, NVMe is cutting edge. Speeds on NVMe drives can reach an interface rate of 32 Gb/s with a throughput of 3.9 GB/s. That’s blazing fast. Whichever drive type you choose, you’ll want 12 TB storage space for the entire chain. But you can have less, down to 4TB, if you don’t intend on keeping the entire chain on your drive array; which is useful for history nodes.

RAM is very important to nodeos. You will need at least 12GB to get started. But go big here. In a future article, we will talk about selling RAM for TLOS. As much as you can get. ECC RAM slows down production by 2%, but also prevents random crashes that non-ECC RAM may cause to nodeos when the RAM access-errors. It’s up to you which you want to use. You can always disable ECC RAM in the BIOS but you can’t enable ECC on non-ECC RAM. Just something to consider when choosing your RAM.

Graphics cards are not needed by Telos (and Antelope blockchains) and you can just use an onboard card.

Once your OS is installed, you’ll want to create a user like ‘telos’ and mount the second disk as /telos owned by the telos user.

Next, get Leap. For Telos, the Antelope’s Leap repository has the tools you need to run a node. You can find the github for Leap here. Once installed, make sure the commands nodeos and cleos and keosd are accessible by typing their names into the prompt.
$ wget https://github.com/AntelopeIO/leap/releases/download/v3.1.2/leap-3.1.2-ubuntu20.04-x86_64.deb

$ sudo dpkg -i leap-3.1.2-ubuntu20.04-x86_64.deb

 The install created several folders in your user’s home directory. Move the contents of the testnet folder into the /telos folder. Make sure to edit start.sh which is in your home directory and change the paths to:  –data-dir /telos/data –config-dir /telos/config 

If there isn’t a start.sh, make a new start.sh and paste in:

nodeos –data-dir /telos/data –config-dir /telos/config >> nodeos.log 2>&1 &

Then, ‘chmod start.sh 755’ to give it execute privileges.

Next, move it to the /telos directory. 

After that, we’ll want to visit the config.ini file to add peers. Testnet peers can be found in a variety of places on the Telosnetwork repo, at EosNation’s validator, or generate a live list here at Telos UK. Peering is good for the chain and ultimately block production times. One small task regarding peers, it is good to check in on the nodeos.log occasionally and see if there are connection issues which might mean missing peers. Remove them from your config when you notice them failing.This will help nodeos not wait on peers that won’t ever connect. Peers will be added as a p2p-peer-address at the end of the config.ini. 

Once you have peers, you can launch start.sh and the start script will start outputting logs to the screen. If you ctrl+c here it will not kill the nodeos process, only the logging to the screen. You can also tail -f nodeos.log that was created in your home directory when you launched start.sh. 

Without a snapshot or genesis block, nodeos won’t be able to run. 

TelosCentral has a great repository for snapshots which walks you through how to modify your start.sh for the snapshot. Put the snapshot in /telos/snapshots. Extract it with tar -zvf, and copy the .bin file that you created. Modify start.sh to have two new options: –delete-all-blocks –snapshot ~/path/to/snapshot/snapshot_file.bin

Make sure to remove these after running, as it –delete-all-blocks will delete everything you’ve downloaded from the chain every time it is run as an option. 

Nodeos should begin to request the first blocks from any peers and your node should be running for the first time! If you type http://[yourserverIP]:80/v1/chain/get_info into a browser, you should be able to see the status of your node and the blockchain. 

In the next BP Magical Guide, we’ll talk about snapshots and the features of nodeos and config.ini; but for now, you have a test node that isn’t producing blocks just yet, but is collecting old blocks! 

I heavily relied on these resources to get my BP installed and to write this article. Without them, it would have been much more difficult to make my first node. Have a look at them yourself.
Telos Node Template
Telos Docs – Setting up a Telos Validator Node

GoodBlock Technologies is an app developer and Block Producer candidate on the Telos Blockchain Network, with a focus on 2 of the pillars of Web3.0; Governance (decidevoter.app) and Decentralized Cloud Storage (dstor.cloud). Vote for goodblocktls, and learn more at goodblock.io.

Telos is a cost-effective, energy efficient, fast, and scalable DPoS blockchain that has been operational for over 2 years. The Telos blockchain has leading on-chain governance (Telos Decide), and is built and developed by a core development team using the EOSIO codebase.

GoodBlock Resources and Social Media:

Website: https://goodblock.io/
Twitter: @goodblockio
Medium: https://medium.com/goodblock-io
Telegram: t.me/goodblocktls