---
# System prepended metadata

title: Oracles v1.6 Relayer Upgrade Guide

---

# 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
