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
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”.
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.
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
.
Low Impact
Prevent gas estimation if it is already set
Ref:
- fix: gas estimation by alstjd0921 · Pull Request #122 · bifrost-platform/bifrost-relayer.rs · GitHub
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
to0xff95B9861eE5d44eC0b489B0DCB73932c7C7074B
forevm_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
- [Mainnet]
socket_queue_address
:0x0000000000000000000000000000000000000101
registration_pool_address
:0x0000000000000000000000000000000000000100
relay_executive_address
:0x0000000000000000000000000000000000000803