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 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
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