Try   HackMD

Oracles v1.6 Upgrade Guide - Step 2

Disclaimer: These instructions are made for Ubuntu 20.04. The commands may not match 100% on other distros, nor is there any guarantee that it will work.

Prerequiste

These instructions are for those who already upgrade to 1.6.0.

Upgrade

Upgrade Omnia and Dependencies to version 1.6.1 (from 1.6.0)
nix-env --install --verbose --file https://github.com/makerdao/oracles-v2/tarball/v1.6.1

Configure Gofer, Spire, Scuttlebot and Omnia

sudo rm /etc/spire.json
install-omnia feed --ssb-caps ~/caps.json --ssb-external <your external ip here>

Manual Configuration for Spire

install-omnia will have copied the spire configuration file to /etc/spire.json

This file configure the signing key for the libp2p message, which is the same as the signing key for price data. It also configure the list of pairs and feeds that your node will relay to other network participant. Pairs and feeds that are not listed are not relayed to mitigate spamming.

sudo vim /etc/spire.json

In rpc, set the address to 127.0.0.1 to an arbitrary port:

  "rpc": {
    "address": "127.0.0.1:31823"
  },

In ethereum, set the from, keystore and password exactly as in /etc/omnia.conf

  "ethereum": {
    "from": "<ethereum address for the feed>",
    "keystore": "<keystore location>",
    "password": "<password file>"
  },

By default, Spire selects a random port to listen for p2p connections. If there is a firewall, if you're doing port mapping, or you intend to act as a bootstrap node to others, add the property listenAddrs to select a static port. Make sure to perform the appropriate change on your infrastructure.

  "p2p": {
    "listenAddrs": ["/ip4/0.0.0.0/tcp/8000"],
    "bootstrapAddrs": [

Set Spire as systemd services and schedule to run on system boot

sudo systemctl daemon-reload
sudo systemctl enable spire-agent.service

Start the spire service for the first time

sudo systemctl start spire-agent

Check spire logs
sudo journalctl --follow --unit spire-agent
Confirm that the agent is running without errors

Enable spire in omnia
This will make omnia pushing price updates to spire in addition to ssb.

sudo vi /etc/omnia.conf

In transports, add transport-spire

  "transports": [
    "transport-ssb","transport-spire"
  ],

Restart the services

sudo systemctl restart gofer-agent
sudo systemctl restart ssb-server
sudo systemctl restart omnia

[fyi] To stop running Omnia, Gofer and Scuttlebot

sudo systemctl stop ssb-server
sudo systemctl stop omnia
sudo systemctl stop gofer-agent

[fyi] To stop Omnia and Scuttlebot from starting on system boot

sudo systemctl disable --now ssb-server
sudo systemctl disable --now omnia
sudo systemctl disable --now gofer-agent

[fyi] To query gofer and confirm that the agent works

gofer prices MANA/USD --config /etc/gofer.json --format=trace

This should return an aggregated price, and the trace for its calculations. Then you can check the agent logs (sudo journalctl -feu gofer-agent) and confirm that there are no errors in the agent logs either.

Final steps

Check Status of Omnia and Scuttlebot

sudo systemctl status ssb-server
sudo systemctl status omnia
sudo systemctl status gofer-agent
sudo systemctl status spire-agent

Check Scuttlebot logs
sudo journalctl --follow --unit ssb-server

Check Omnia logs
sudo journalctl --follow --unit omnia

Here, we want to make sure that omnia is publishing messages to Scuttlebot (e.g. Publishing SOLUSD price message with transport-ssb) and Spire (e.g. Publishing SOL/USD price message with transport-spire) and that it is obtaining the data from gofer (e.g. Querying AAVE/USD prices and calculating median with setzer...).

Check Gofer logs
sudo journalctl --follow --unit gofer-agent
There shouldn't be any errors in the gofer logs.

Check Spire logs
sudo journalctl --follow --unit spire-agent
There shouldn't be any errors in the spire logs.

Review your journalctl settings
The addition of Spire and Gofer increases greatly the volume of logs generated. Make sure journalctl isn't using too much space.

sudo journalctl --disk-usage

You may limit this size by setting dsf in /etc/systemd/journald.conf

SystemMaxUse=2G

Then restart with

sudo systemctl restart systemd-journald

Notify

Let @marcandu on Keybase know that you completed the upgrade, so they can confirm that your feed is properly broadcasting messages on both Spire and Scuttlebot.