# Bifrost Relayer Release Analysis v1.0.3

**URL:** <https://forum.bifrostnetwork.com/t/bifrost-relayer-release-analysis-v1-0-3/336>\
**Category:** Ecosystem\
**Created:** [August 30, 2023, 5:52am UTC](https://forum.bifrostnetwork.com/t/bifrost-relayer-release-analysis-v1-0-3/336 "2023-08-30T05:52:13Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![BIFROST-Team](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.bifrostnetwork.com/bifrost-team/32/164_2.png) [@BIFROST-Team](https://forum.bifrostnetwork.com/u/BIFROST-Team)\
**Post date:** [August 30, 2023, 5:52am UTC](https://forum.bifrostnetwork.com/t/bifrost-relayer-release-analysis-v1-0-3/336/1 "2023-08-30T05:52:13Z")

</div>

⚠ The following report is a set of changes that deserves to be highlighted due to their impact on the Bifrost Network. Highlights are categorized into High Impact, Medium Impact, and Low Impact for ease of navigation.

For more information on setting up your relayer please follow our [official documentations](https://docs.bifrostnetwork.com/bifrost-network/running-a-node/guide-for-operators/setting-up-a-relayer/bifrost-relayer.rs).

# Summary

This report analyzes the recent updates to the Bifrost Network’s (CCCP) Relayer. The primary feature of this release is its support for Base Mainnet/Testnet, as well as the addition of DAI as a new oracle asset. Both [bifrost-relayer.rs (Rust) v1.0.3](https://github.com/bifrost-platform/bifrost-relayer.rs/releases/tag/v1.0.3) and [bifrost-relayer.py (Python) v0.7.16](https://github.com/bifrost-platform/bifrost-relayer.py/releases/tag/0.7.16) have been updated to accommodate these changes. Moreover, this report specifically highlights the upgrades made to bifrost-relayer.rs.

⚠ Please note that it is mandatory to upgrade your Relayer client and configurations if you’re operating a Relayer on our Mainnet or Testnet.

# High Impact

## Support Base Mainnet and Testnet

Client: Rust, Python

We wish to inform you that Bifrost Network has begun its integration with a new network, the Base Network, an Ethereum Layer 2 (L2) blockchain backed by Coinbase. Currently, CCCP offers users a native cross-chain functionality between Base and Bifrost Network. As this support is in its early stage, only ETH and DAI from the Base Network are supported. However, we plan to include other assets from the Base Network soon.

Please note that Mainnet and Testnet Relayer operators are required to prepare their own Base node or from [third-party node providers](https://docs.base.org/tools/node-providers/). The running node must be archive-mode enabled and fully synced. When after the node is prepared, please follow the steps below to upgrade your Relayer binary (for Rust) or Source code (for Python) and also your configurations.

## DAI Support and Oracle Feeding Enhancement

Client: Rust, Python

Bifrost Network has incorporated support for DAI, a leading stable coin, to function as a price oracle asset. Initially, this update permits users to bridge DAI exclusively between Base and the Bifrost Network. Nevertheless, Bifrost team aims to broaden the bridging capabilities for DAI shortly. Moreover, the latest release have refined the oracle price feeding logic to enhance resilience against various price source failures, including server errors and unforeseen API changes.

# Low Impact

## Update Relayer’s Cost-Efficiency Logic

Client: Rust

In CCCP’s cross-chain operations, the quorum transactions may be reverted if any other relayer has already processed it. This implies that any subsequent relayer could incur wasted operating expenses. To mitigate this, CCCP Relayer employs logic that determines whether the quorum process is complete by monitoring the mempool and blocks on the target blockchain. This release extends that feature to the Base Network. The logic will only have effect when `evm_providers.<chain>.is_relay_target` parameter in your configuration YAML file is set to `true`.

**Txpool namespace availability check logic** : This logic allows only unique transactions for external chains, utilizing the `txpool_content` JSON RPC method. However, activating this feature requires the txpool namespace to be enabled on your running node, that was previously verified through the `txpool_status` method. If the response is successful, txpool verification becomes activated. It’s worth noting that for Base Network, even if the txpool namespace is enabled, the `txpool_content` method may still be unavailable. To address this, we now check availability using the `txpool_content` method directly.

# Process to update bifrost-relayer.rs client

Please follow the steps below to update your relayer client.

**Step 1.**

First, update your configuration YAML file based on the “Configuration updates required” section below. When adding your Base RPC endpoint please use the following [providers](https://docs.base.org/tools/node-providers/).

**Step 2.**

Then, remove or backup the previous `bifrost-relayer` binary file.

```auto
rm <PATH_TO_BIFROST_RELAYER_BINARY>

```

**Step 3.**

Next, install the latest version of `bifrost-relayer` into the same directory and update permissions. (In case of directory changes, the Systemd configuration file should be modified as well)

```auto
wget "https://github.com/bifrost-platform/bifrost-relayer.rs/releases/latest/download/bifrost-relayer"
chmod +x bifrost-relayer

```

**Step 4.**

At last, restart the Systemd service.

```auto
sudo systemctl restart bifrost-relayer

```

### Configuration updates required

`config.mainnet.yaml` : [bifrost-relayer.rs/configs/config.mainnet.yaml at main · bifrost-platform/bifrost-relayer.rs · GitHub](https://github.com/bifrost-platform/bifrost-relayer.rs/blob/main/configs/config.mainnet.yaml)

`config.testnet.yaml` : [bifrost-relayer.rs/configs/config.testnet.yaml at main · bifrost-platform/bifrost-relayer.rs · GitHub](https://github.com/bifrost-platform/bifrost-relayer.rs/blob/main/configs/config.testnet.yaml)

- [Mainnet] A new parameter named `chainlink_dai_usd_address` added to the `evm_providers.ethereum` section.
- [Testnet] A new parameter named `chainlink_dai_usd_address` added to the `evm_providers.bsc` section.
- [Testnet] A new parameter named `chainlink_dai_usd_address` added to the `evm_providers.polygon` section.
- [Mainnet / Testnet] A new chain named `base` added to the `evm_providers` section.
- [Mainnet / Testnet] The chain ID of `base` added to the `watch_list` where the `handler_type` is `BridgeRelay` for `handler_configs`.

# Process to update bifrost-relayer.py client

Please follow the steps below to update your relayer client.

**Step 1.**

First, checkout to the `master` branch and pull new updates. Then update your configuration JSON file based on the “Configuration updates required” section below. When adding your Base RPC endpoint please use the following [providers](https://docs.base.org/tools/node-providers/).

**Step 2.**

Then, activate your virtual environment.

```auto
source venv/bin/activate

```

**Step 3.**

Next, install the updated packages specified in the `requirements.txt` file.

```auto
pip install -r requirements.txt --upgrade

```

**Step 4.**

At last, restart the Systemd service.

```auto
sudo systemctl restart bifrost-relayer

```

### Configuration updates required

`configs/entity.relayer.private.json` : [bifrost-relayer.py/configs/entity.relayer.private.template.json at master · bifrost-platform/bifrost-relayer.py · GitHub](https://github.com/bifrost-platform/bifrost-relayer.py/blob/master/configs/entity.relayer.private.template.json)

`configs-testnet/entity.relayer.private.json` : [bifrost-relayer.py/configs-testnet/entity.relayer.private.template.json at master · bifrost-platform/bifrost-relayer.py · GitHub](https://github.com/bifrost-platform/bifrost-relayer.py/blob/master/configs-testnet/entity.relayer.private.template.json)

- [Mainnet] A new parameter named `BASE_MAIN` added. This should be set to your Base Mainnet RPC endpoint.
- [Testnet] A new parameter named `BASE_GOERLI` added. This should be set to your Base Goerli RPC endpoint.
