---
# System prepended metadata

title: Oracles v1.13.3 Upgrade

---

# Oracles v1.13.3 Upgrade

# Changelog


- Upgraded dependencies
    - Omnia `[v1.13.3](https://github.com/chronicleprotocol/omnia/releases/tag/v1.13.3)`
    - Oracle Suite `[v0.7.2](https://github.com/chronicleprotocol/oracle-suite/releases/tag/v0.7.2)`
    - Setzer `[v0.6.1](https://github.com/chronicleprotocol/setzer/releases/tag/v0.6.1)`
- Installer options
    - `--eth-gas` to set gas limit for relay blockchain transactions
    - `--eth-type` option to select blockchain group 
    (`ethereum|optimism|arbitrum`, default: `ethereum`)
    - `--eth-rpc URL` add an Ethereum node rpc url to the list (can be used multiple times)
    - `--eth-rpc-arbitrum URL` add an Arbitrum node rpc url to the list (can be used multiple times)
    `--eth-rpc-optimism URL` add an Optimism node rpc url to the list (can be used multiple times)
- Updated Feed asset pairs
    - Removed `UNI/USD`
    - Added `RETH/USD` with [circuit breaker](https://github.com/chronicleprotocol/oracle-suite/blob/v0.7.2/pkg/price/provider/hooks.go#L77) capability
- Maker Teleport
    - Optimized number of RPC queries
    - New customer universal RPC client to fix EVM backwards compatibility issues between `geth` and Arbitrum
    - Preserve Leeloo configuration between installs
- Gofer
    - Optimized number of RPC queries
    - Removed `UNI/USD` data model
- Relayer
    - Added `RETH/USD` as a new target contract (median) for poke
    - Added support for Optimism and Arbitrum
- Spire
    - Added `RETH/USD`
    - Removed `UNI/USD`

# Prerequisites

**L2 node**
Starting from v1.12, 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](https://hackmd.io/@marcandu/Sya0NeY-j).

Some suggestions for third-party nodes:

- Maker Techops: The Techops CU runs nodes:
    - [https://optimism1.mainnet.makerops.services/rpc](https://optimism1.mainnet.makerops.services/rpc)
    - [https://arbitrum1.mainnet.makerops.services/rpc](https://arbitrum1.mainnet.makerops.services/rpc)
- 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 Feeds have reported working:
    - 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

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

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

**Upgrade Omnia and Dependencies to version 1.13**

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

**Configure Gofer, Spire, Scuttlebot and Omnia**

`install-omnia feed --ssb-external <YOURIP> --eth-rpc <ETHRPCENDPOINT1> --eth-rpc <ETHRPCENDPOINT2> --eth-rpc <ETHRPCENDPOINT3>`

If you're using your own node you can just provide a single --eth-rpc endpoint. If you are using 3rd party node services like Infura, Alchemy, or QuickNode please ensure you enter 3 --eth-rpc endpoints. This ensures that:
1. The Oracles don't go down when Alchemy/Infura goes down
2. The Oracle price can't be manipulated by Alchemy/Infura going malicious or getting compromised


*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
sudo systemctl restart gofer-agent
sudo systemctl restart spire-agent
sudo systemctl restart ssb-server
sudo systemctl restart omnia
sudo systemctl restart leeloo-agent.service
```

**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
sudo systemctl status splitter-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`

If you’re upgrading from v1.12 you’re all set. If you’re upgrading from v1.10 (pre Maker Teleport) please continue with the instructions below.

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

# If upgrading from v1.10…

This procedure activates Maker Teleport, a major new feature that enables Dai users to perform fast withdrawals from L2 chains to Ethereum L1. To learn more about Teleport and how the Oracles power it

- [Introducing Maker Wormhole](https://forum.makerdao.com/t/introducing-maker-wormhole/11550) (original name for Teleport)
- [Teleport Oracle Overview](https://forum.makerdao.com/t/teleport-oracle-overview/15077)

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

```

**Check that leeloo is functional**

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

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

```