Running an Edgeware Testnet Validator Node

Ambroid
5 min readMay 4, 2019

--

The company fullnodeTECH (rebranded to 100Towers), which I’m working with, will be publishing educative and guidance articles in an effort to popularize new experimental blockchain protocols.
One of the first official victims of our testing is Edgeware.
The testing was done based on a request by ZeePrime Capital to run a full node for them.

What is Edgeware

Edgeware (EDG) is a smart-contract WASM based platform in the Polkadot ecosystem. The participants in the Edgeware network will be able to vote and finance each other to change and upgrade it. The founders will give away 90% of the network to the direct participants upon the launch of the main-net. This will be in the form of a lockdrop, a modification of an airdrop, where users will be able to lock their Ethereum for a predetermined time (3 months, 6 months, 1 year) and based upon the amount and time they will receive EDG tokens. After the preset time period the participants will receive all their ETH back.

Currently, users can try to run their own node on the Edgeware testnet, to prepare for the mainnet launch. We have tested the official guide on the Edgeware Github, however, we wrote up a more foolproof version. Here it is, step-by-step.
We will try to keep this guide up to date in this article.

Setting up the Virtual Private Server

Create a virtual private server through your favorite cloud provider (AWS, Vultr, …).
We tested our node on 2048 MB RAM and 55 GB SSD, but 1024 MB RAM may also be sufficient.
This guide is suited for a server with Ubuntu 18.04 LTS and 19.04, though that may break. Consider the guide to be fit for 18.04 LTS. The scripts do not work on Ubuntu 18.04.1 LTS.

Building the Edgeware software

Since the software is still in its early stages, most users will encounter some kind of an error on the way. Join the Discord server to troubleshoot.
Console commands are in italic

  1. First we log in to our server (preferably using software like Putty). For those who are new to Putty and SSH keys, here is a very good guide.
  2. Install the server itself and check for updates
    sudo apt-get upgrade
    sudo apt-get update
  3. After making sure we are in the home directory using the command
    cd we want to clone the Edgeware node repository
    git clone https://github.com/hicommonwealth/edgeware-node.git
  4. After this we can want to make sure if everything went well by checking the content of the home directory using
    ls -a
    This explores the directory. A folder called “edgeware-node” should appear.
  5. Now we need to get into the edgeware-node folder
    cd edgeware-node
  6. From inside this directory, we want to run the automated script that’ll set up all the necessary prerequisites and then install the node.
    ./setup.sh
  7. This command will run for a longer time (in the range of hours). We usually see warnings similar to the one below while the setup script is running. These can be ignored.

We ran the setup script several times to build multiple nodes. Hopefully by the time you are trying out Edgeware yourself, the kinks have been resolved.
The below is a chronic error at the end of the script:

As we can see, the script did not compile the “edgeware-executor” which will cause that the node will not start after we would try to run it.
The solution to this is to run the script
./build.sh
after the setup script is finished. This time the node should be built properly.

Running the node

To run the node we first test it using
./target/release/edgeware --chain=edgeware --name <INSERT_NAME>

  1. Instead of <INSERT_NAME> type the name that you want to appear publicly in the testnet explorer.
  2. The node should start synchronizing blocks with other already running nodes. We can check if it is running by finding the name of our new node in the list on the Polkadot Edgeware testnet explorer
Edgeware nodes at the time of writing

Keeping the node online

  1. The node will shut down when we log out from the VM. We need to set it up so it will be running even when we close our Putty terminal. To do that, first we need to log out. Let’s do this using the command
    logout
  2. Now we log into our server again using Putty and get in the edgeware-node folder using
    cd edgeware-node
  3. Putting in the next command with our node name will ensure it stays online even after logging out.
    nohup ./target/release/edgeware --chain=edgeware --name <INSERT_NAME>
  4. Check if the node is running through the explorer.

Running a testnet validator node

To convert our node from a regular node into a validator node, we will need to generate private and public keys and request testnet tokens.

  1. From inside the node directory, we need to create the set of public and private keys with
    ./keygen.sh
  2. Now we should see an output of three key-pairs, the one labeled as “stash address” is what we need to copy. If in Putty, highlight the hex of the address and click left mouse button to save it in the clipboard.
  3. We have to visit the official Edgeware Discord channel labeled as “testnet-edg-faucet”
  4. Next we post our address there and ask for testnet coins from some of the developers.
  5. If we already run the node with nohup then use the command top and find the “edgeware” process and its ID (it should be in the top left corner) using
    kill <PROCESS NUMBER> (without brackets)
  6. To run our node as validator type
    nohup ./target/release/edgeware --chain=edgeware --name <INSERT_NAME> --validator
  7. Check our node in the explorer. Check if we have a circle icon in the column next to the node name. It signifies active validator node status.

Congratulations, you are now validating new Edgeware blocks.

Conclusion

The were several kinks that needed working out with the scripts provided by the developers in the github link above.
Our first nodes had to be build part manually without the scripts to identify where the source of the issue was.
The problems have been worked out extremely quickly — the devs are very responsive.

The scripts work seamlessly now, though the build takes a while.
The node sync itself afterwards takes just as long, so prepare for a day of waiting on the node to do its thing.

--

--

Ambroid

Euphoric Cryptocurrency Speculator turned Depressed Cryptocurrency Speculator