Try   HackMD

Oracles v1.6 Relayer Upgrade Guide

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.

Upgrade (Relayer Only)

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

Configure Spire, Scuttlebot and Omnia

install-omnia relayer --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 omnia to load the configuration

sudo systemctl restart ssb-server
sudo systemctl restart omnia

[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 spire-agent

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

spire -c /etc/spire.json pull price ETHUSD 0xDA1d2961Da837891f43235FddF66BAD26f41368b

Final steps

Check Status of Omnia and Scuttlebot

sudo systemctl status ssb-server
sudo systemctl status omnia
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 getting messages from both Scuttlebot and Spire. E.g.:

Jul 15 16:34:27 oracle omnia[3087529]: [07/15/21 16:34:27] Polling feed: 0xFbaF3a7eB4Ec2962bd1847687E56aAEE855F5D00
Jul 15 16:34:27 oracle omnia[2583168]: [07/15/21 16:34:27] Pulling ETHUSD price message with transport-ssb
Jul 15 16:34:27 oracle omnia[2583168]: [07/15/21 16:34:27] Pulling ETHUSD price message with transport-spire
Jul 15 16:34:28 oracle omnia[3087529]: [07/15/21 16:34:28] Adding message from 0xFbaF3a7eB4Ec2962bd1847687E56aAEE855F5D00 to catalogue

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

Monitor
Confirm that the relayer is pushing the prices to the medianizer