Bifrost Relayer Release Report v2.0.0

:warning: 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 documentation.

Summary

This report explains the recent updates to the Bifrost Network’s (CCCP) Relayer. The primary feature of this release is its support for Bitcoin Relay Protocol (BRP).

Client Upgrade

  • V1.1.0 → V2.0.0

:warning: Please note that it is mandatory to upgrade your client and configurations if you’re operating a Relayer on Bifrost Mainnet or Testnet. The details about configuration updates are mentioned below in the section titled “Configuration updates required”.

:fire: High Impact

Integration of the Bitcoin Relay Protocol (BRP)

Ref:

The Bifrost Network has now successfully implemented the Bitcoin Relay Protocol (BRP) on both Testnet and Mainnet. This new protocol, BRP, is built on top of CCCP to enhance interoperability with the Bitcoin network. The inbound bridge, representing the inflow of Bitcoin, transfers assets from the Bitcoin network to the Bifrost network, converting native BTC into wrapped BTC tokens. Conversely, the outbound bridge transfers assets from the Bifrost network to the Bitcoin network, converting wrapped BTC tokens into native BTC, ensuring smooth asset flow between the two networks.

:hammer_and_wrench: Medium Impact

Deprecate Polygon Mumbai chain

Ref:

Previously, Polygon’s Mumbai testnet has been deprecated and a new testnet Amoy has been launched. We will now deprecate Mumbai’s support on CCCP. Please note that Amoy may be supported in future development.

Update Ethereum Sepolia’s Authority contract address

Ref:

The Authority contract serves a crucial role within the CCCP infrastructure. Please note that the contract previously deployed on Ethereum Sepolia has been updated, and the address has been changed to 0xff95B9861eE5d44eC0b489B0DCB73932c7C7074B.

:speech_balloon: Low Impact

Prevent gas estimation if it is already set

Ref:

When the Bifrost Relayer initiates, it examines the mempool for any stalled transactions. If any are found, it increases the gas price and resends the transaction. Previously, the relayer would estimate the gas before attempting to resend the transaction. However, this gas estimation could fail in some cases, causing the transaction to remain stuck in the mempool. To address this issue, the relayer has been updated to bypass gas estimation when the TransactionRequest already includes a specified gas parameter.

Support compatible eth_syncing response format for Arbitrum

Ref:

Previously, the response format for eth_syncing on Arbitrum was changed. This update adjusts the Bifrost Relayer to be compatible with the new response format, preventing any further deserialization errors.

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.

Step 2.

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

rm <PATH_TO_BIFROST_RELAYER_BINARY>

Step 3.

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

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.

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

config.testnet.yaml: bifrost-relayer.rs/configs/config.testnet.yaml at main · bifrost-platform/bifrost-relayer.rs · GitHub

  • [Testnet] Remove evm_providers.mumbai
  • [Testnet] Update authority_address to 0xff95B9861eE5d44eC0b489B0DCB73932c7C7074B for evm_providers.sepolia.
  • [Mainnet / Testnet] Add system.keystore_path (default: ./keys)
  • [Mainnet / Testnet] Add system.keystore_password. (default: no password)
    • Example
    • system:
        private_key: "0x..."
        keystore_path: "./keys"
        keystore_password: "A very strong password"
        debug_mode: false
      
  • [Mainnet / Testnet] Add btc_provider. The Bitcoin RPC provider must be archive-mode enabled.
    • [Mainnet]

    • btc_provider:
        id: 10000
        chain: "main"
        provider: "<YOUR_BITCOIN_MAINNET_RPC_ENDPOINT>"
        call_interval: 10000
        block_confirmations: 2
      
    • [Testnet]

    • btc_provider:
        id: 10001
        chain: "test"
        provider: "<YOUR_BITCOIN_TESTNET_RPC_ENDPOINT>"
        call_interval: 10000
      
  • [Mainnet / Testnet] Add BRP related contracts to evm_providers.bifrost
    • bitcoin_socket_address:
      • [Mainnet] 0x73A9E443F51eE40C1469A740D9CCf0118e8FD9ca
      • [Testnet] 0xc292D9d5c31D5246cfAC67ba91202bbCF0AA8108
    • socket_queue_address: 0x0000000000000000000000000000000000000101
    • registration_pool_address: 0x0000000000000000000000000000000000000100
    • relay_executive_address: 0x0000000000000000000000000000000000000803
1 Like