[v478] How to set up a sentinel

Setting up your sentinel is only useful when you have a verifier, more info on that can be found in the Verifier Setup category: https://forum.nyzo.community/c/wiki/setup

Installation instructions

Installation of the sentinel is similar to installation of the verifier. However, we do not recommend running the sentinel and the verifier on the same instance. This is not tested and will likely cause either the sentinel or the verifier to malfunction.

To start a sentinel, we recommend creating a t3.micro AWS instance with the latest Ubuntu LTS version and an 8GB EBS volume. Open the SSH port to your IP address so you can access the instance. Then, when you have SSHed into the instance, run the following commands (enter each command separately):

sudo apt update

sudo apt install haveged -y

sudo apt install openjdk-8-jdk -y

sudo apt install supervisor -y

git clone https://github.com/n-y-z-o/nyzoVerifier.git

cd nyzoVerifier

./gradlew build

sudo mkdir -p /var/lib/nyzo/production

sudo cp nyzoSentinel.conf /etc/supervisor/conf.d/

Now, you need to create the file that tells the sentinel which verifiers to manage. This file needs to be created at /var/lib/nyzo/production/managed_verifiers. Use your favorite text editor to create this file on the instance, or create the file on your computer and copy it to your instance using a tool like scp. Each line in the file should contain the following information for one managed verifier, separated by colons:

  • IP address or host name
  • port
  • verifier private seed
  • sentinel transaction flag (optional)

If the sentinel transaction flag is included and the value is “y” or “Y”, a µ1 transaction will be added to any block produced for that verifier. This transaction will have “block produced by Nyzo sentinel” in the sender-data field. This transaction is entirely optional. This option was added mostly for entertainment value; it is not intended to be a penalty or fee. It is optional, and the default behavior of the sentinel is omission of this transaction.

The following shows how the managed_verifiers file might look:

After you have created this file, start the sentinel with the following command:

sudo supervisorctl reload

To ensure that your verifiers have loaded properly, run the following command:

more /var/log/nyzo-sentinel-stdout.log | grep 'ManagedVerifier'

The output should look something like this, with one line for each verifier you specified in the managed_verifiers file:

image

To ensure that the sentinel is tracking the blockchain, run the following command:

tail /var/log/nyzo-sentinel-stdout.log -n 30 | grep 'freezing block'

A later version of the sentinel displays “froze block” instead, so the command for newer versions of the sentinel is:

tail /var/log/nyzo-sentinel-stdout.log -n 30 | grep 'froze block'

The output should look something like this:

image

If you run this command several times, you should see the numbers increasing. Within about 10 minutes, depending on the network performance of your sentinel and the verifiers it manages, the block height should be very close to the frozen edge height displayed on the Nyzo mesh page.