# Bifrost Relayer Release Analysis v1.0.5

**URL:** <https://forum.bifrostnetwork.com/t/bifrost-relayer-release-analysis-v1-0-5/340>\
**Category:** Ecosystem\
**Created:** [October 18, 2023, 7:26am UTC](https://forum.bifrostnetwork.com/t/bifrost-relayer-release-analysis-v1-0-5/340 "2023-10-18T07:26:12Z")\
**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:** [October 18, 2023, 7:26am UTC](https://forum.bifrostnetwork.com/t/bifrost-relayer-release-analysis-v1-0-5/340/1 "2023-10-18T07:26:12Z")

</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 [Arbitrum](https://arbitrum.io/) Mainnet(One) & Testnet (Goerli), as well as some minor fixes. The target client is [bifrost-relayer.rs (Rust)](https://github.com/bifrost-platform/bifrost-relayer.rs/releases/tag/v1.0.5) that has been updated to accommodate these changes.

**Client Upgrade**

- V1.0.4 → V1.0.5

⚠ 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 Arbitrum Mainnet and Testnet

PR: [CCCP-254, feature: officially support arbitrum one & goerli by dnjscksdn98 · Pull Request #97 · bifrost-platform/bifrost-relayer.rs · GitHub](https://github.com/bifrost-platform/bifrost-relayer.rs/pull/97)

We’re thrilled to introduce all of our users that Bifrost Network has integrated with a new network, the [Arbitrum](https://arbitrum.io/) Network, a Layer 2 (L2) blockchain designed to scale Ethereum. CCCP now offers users native cross-chain functionality between Arbitrum and Bifrost Network. As this support is in its early stage, only ETH, USDT and USDC from the Arbitrum Network are supported. However, we plan to include other assets from the Arbitrum Network soon.

Note that Mainnet and Testnet Relayer operators are required to prepare their own Arbitrum node or from [third-party node providers](https://docs.arbitrum.io/node-running/node-providers). The running node must be archive-mode enabled and fully synced. Follow the steps below to upgrade the Relayer binary (for Rust) and configurations after the node is prepared.

Please make sure to correctly configure the RPC endpoint. The chain information is as below.

| **Name** | **Chain ID** | **Block Explorer** | **Environment** |
| --- | --- | --- | --- |
| Arbitrum One | 42161 | [https://arbiscan.io/](https://arbiscan.io/) | Mainnet |
| Arbitrum Goerli | 421613 | [https://goerli.arbiscan.io](https://goerli.arbiscan.io/) | Testnet |

## Improve bootstrap logic for Arbitrum chain

PR: [CCCP-264, fix: resolve invalid bootstrap offset height by dnjscksdn98 · Pull Request #93 · bifrost-platform/bifrost-relayer.rs · GitHub](https://github.com/bifrost-platform/bifrost-relayer.rs/pull/93)

The Bifrost Relayer performs a bootstrap process upon startup to detect any missed CCCP events. This ensures that no events are overlooked, even in cases of unforeseen interruptions of Relayer such as power outages. To utilize this feature, you can activate it by adjusting the `bootstrap_config` in the YAML settings.

Within the Bifrost Relayer, the bootstrap module estimates the block number for each external chain, which will then be designated as the starting block number for spotting missed events. To accomplish this, the Relayer takes the average block time of the target chain. The variable used to store this average block time was an unsigned integer. Consequently, for chains like Arbitrum (the avg.block time is 0.2~0.3 sec), this could sometimes result in the integer variable being set to zero, leading the approximated result to also be zero. To address this, we’ve modified the variable type to a float.

# 💬 Low Impact

## Reduce the maximum bootstrap offset

PR: [CCCP-263, fix: reduce maximum bootstrap offset by dnjscksdn98 · Pull Request #94 · bifrost-platform/bifrost-relayer.rs · GitHub](https://github.com/bifrost-platform/bifrost-relayer.rs/pull/94)

Previously, the maximum bootstrap offset was available to the past 64 rounds. In the case of Bifrost Mainnet, a single round lasts for 12 hours, which means that 64 rounds will approximately lead to the past one month blockchain data. However, we’ve determined that the value was set too high, which could unintentionally cause an overload. To avoid the overhead, we have changed the value from 64 rounds to 14 rounds.

# 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 Arbitrum RPC endpoint please use one of the following [providers](https://docs.arbitrum.io/node-running/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 / Testnet] A new chain named `arbitrum` added to the `evm_providers` section.
- [Mainnet / Testnet] The chain ID of `arbitrum` added to the `watch_list` where the `handler_type` is `BridgeRelay` for `handler_configs`.
