Try   HackMD

Oracles v1.12 Upgrade and Leeloo Configuration 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.

Notes

This procedure activates Teleport attestation, a major new feature that will allow Dai users to perform fast withdrawals from L2 chains to Ethereum L1. To learn more about Teleport and how the Maker Oracles are used to enable it:

Changelog

  • oracle-suite v0.6.11. Major changes since v0.5.1
    • Change Teleport event names
    • Remove Starknet signatures for price message
    • Fix: Some CLI commands hang when called by omnia
    • Fix: Wait method in Gofer RPC agent
    • Fix supervisor issues, add health check endpoint
    • Additional Ghost E2E tests
    • Add RETH in Gofer, including reference price check
    • Offboarded asset cleanup

Prerequisites

These instructions are for those running 1.10 and 1.11

L2 node
Starting from this release, feeds require access to Optimism and Arbitrum RPC nodes. Running L2 nodes is currently relatively challenging (requires more attention, frequent upgrades, growing hardware requirements), so for now we do not require that feeds run their own node and may instead use a mix of third-party nodes. To protect against compromised or malicious providers, we will use the same "RPC Splitter" mechanism that is already in used for some price sources.

Even if not required, we encourage you to run your own L2 nodes to use them as your single sources, as these provide additional safety guarantees. This remains the prefered solution and we'll eventually work with you to run individual nodes as usage for Teleport grows. You can find setup instructions for L2 nodes in this guide.

Some suggestions for third-party nodes:

  • Maker Techops: The techops CU runs nodes with an IP allow-list:
  • Another feed: You may exchange node access with other feeds, to gain redundancy.
  • Infura (Free plan ok at projected usage level): Enable the free Optimism and Arbitrum Add-ons in your Plan.
  • Alchemy (Free plan ok at projected usage level)
  • Not tested by our team, but worth trying:
    • Quicknode (1 network in free plan. require $49/m plan to support 2+ networks)
    • Chainstack: (Free plan supports 1 network, Arbitrum only, not tested)

Upgrade

Optional: cleanup nix storage
This might free up several gigabytes of storage.
nix-collect-garbage

Delete the existing leeloo.conf file
rm /etc/leeloo.conf

Upgrade Omnia and Dependencies to version 1.12

nix-env --install --verbose --file https://github.com/chronicleprotocol/oracles/tarball/v1.12.0

Configure Gofer, Spire, Scuttlebot and Omnia

install-omnia feed --ssb-caps ~/caps.json --ssb-external <your external ip here> --eth-rpc <https://node1[:port]/path> --eth-rpc <https://node2[:port]/path> --eth-rpc <https://node3[:port]/path>

check /etc/systemd/system/splitter-agent.service for your current list of rpc nodes

Restart the existing services

sudo systemctl daemon-reload
sudo systemctl restart splitter-agent.service
sudo systemctl restart gofer-agent
sudo systemctl restart spire-agent
sudo systemctl restart ssb-server
sudo systemctl restart omnia

Prepare Leeloo config
Edit file /etc/leeloo.conf

  1. replace :
  "ethereum": {
    "from": "",
    "keystore": "",
    "password": ""
  },

with your keystore information, identical from /etc/omnia.conf

  1. Enter your L2 RPC node information, for each of Arbitrum and Optimism, define 1 or 3 nodes URL inside "rpc": []. e.g.:
  • Optimism:
"teleportEVM": [
        {
          "label": "optimism mainnet teleport gateways",
          "ethereum": {
            "rpc": [
              "http://host1:9991",
              "https://rpcprovider/url",
              "https://rpcprovider2/url"
            ]
  • Arbitrum:
        {
          "label": "arbitrum mainnet teleport gateways",
          "ethereum": {
            "rpc": [
              "http://host1:8547",
              "https://rpcprovider/url",
              "https://rpcprovider2/url"
            ]

Enable and start Leeloo:

sudo systemctl enable leeloo-agent.service
sudo systemctl start leeloo-agent.service

Final steps

Check that leeloo is functionnal

Confirm that the agent started and is not printing errors. Logs should be mostly silent.

journalctl --follow --pager-end --unit=leeloo-agent

Check Status of the other services

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

Recommended: cleanup temporary ssb files
Your /tmp directory may contain hundreds of thousands of uncessary files that may be safely removed
find /tmp -name "multiserver*" -delete

Notify

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