Processes for keeping track of dependency changes

Methods to keep up to date with Snowbridge dependency updates.

Polkadot Changes

The polkadot-sdk is ultimately the place where any changes in the following components will be made. Snowbridge has several dependencies on components in the polkadot-sdk:

  • Polkadot's relay chain

  • Bridge Hub parachain

  • Substrate

  • Cumulus

Releases

The best way to get notifications about any changes in the polkadot-sdk, is to watch releases. See the last section on how to turn on notifications for polkadot-sdk releases.

Polkadot-SDK tests

Snowbridge has a set of tests that test common bridge functionality, like register and sending a token from Ethereum to Polkadot, and to send the token back from Polkadot to Ethereum. These tests run on the polkadot-sdk CI, and so any incompatibility stemming from changes made in the polkadot-sdk will be caught by failing tests. These tests use the Rococo bridge hub and asset hub runtimes. It tests runtime configurations and Snowbridge pallets. The developer making the incompatible or breaking changes is responsible for making the fix as well. Noteworthy tests are:

Smoke Tests

Apart from unit and emulated tests in the polkadot-sdk, Snowbridge also has a set of smoke tests, which uses a local testnet with a local Polkadot relay chain, asset hub and bridge hub parachains and Ethereum nodes. These smoke tests ultimately catch changes in the polkadot-sdk that may not have been caught by the polkadot-sdk tests.

These tests are run when a PR is merged into the polkadot-sdk repo - TODO we need to set this up.

Updating Snowfork Polkadot-SDK Fork

Since the Snowbridge team primarily works on a fork of the polkadot-sdk, the fork periodically needs to be updated from the original repository. Pulling the latest code from paritytech/polkadot-sdk:master into snowfork/polkadot-sdk:snowbridge (the “snowbridge” branch is like our “main” branch) is another way to become aware of any changes. This update should be done bi-monthly, at the very least.

Ethereum Changes

Light Client Protocol

Ethereum consensus protocol changes are tracked on https://github.com/ethereum/consensus-specs. Similarly to the polkadot-sdk, the release page should be watched for releases. Apart from this, on the main readme page of the Ethereum consensus repo page, any change stating “Light client sync protocol changes” should be followed:

Ethereum Network Updates

Ethereum network updates are available at https://blog.ethereum.org/category/protocol. At the bottom of the page is an email subscribe form signup. Sign up to get email notifications about protocol changes.

Lodestar

Snowbridge uses Lodestar as consensus node to relay headers to the on-chain light client. Lodestar should be kept up to date to support the latest Ethereum fork. Lodestar’s releases can be followed here:

https://github.com/ChainSafe/lodestar/releases/

The release notes often contain the relevancy for a certain update, e.g. for v1.15.0: “This update is recommended to all users of Lodestar and mandatory for those running Sepolia and Holesky testnets. This release is also ready for the Gnosis Chain Chiado fork.”

Enable Notifications for Releases on Github

To get notifications for Github repository releases, go to the Github repository, click on Watch -> Custom -> Releases.

Recommended repository releases to watch:

Update Notifications Checklist

Last updated