Upcoming Registry RoutingTable storage change related to Canister Migrations

TLDR - if you don’t read registry routing_table records, you won’t be affected, and if you’re relying on components inside the IC monorepo, they will be ported to support it. Very likely this will not impact external users.

Hi all -

As part of the preparations for the Canister Migrations feature, we’re planning to update the way the routing table is stored in the registry. Currently, the routing table uses a single routing_table record which is stored as a protobuf record.

It consists of a number of canister range records that allow messages to be routed.

Going forward, this will be replaced by a series of smaller records with the naming scheme:

canister_range_{subnet_id}_{range_start}

These records will contain the same information as the routing_table record, but broken into smaller pieces.

The main impact:

  • Anyone directly relying on the routing_table record will need to update their code.

The RegistryClient and other internal tools in the IC repository will be updated to support the new storage format.

We expect minimal disruption since this change primarily affects internal components, and we believe it’s unlikely external users are directly relying on this registry detail. However, we’re providing this heads-up for transparency and to ensure a smooth transition.

If you have any questions or concerns, please reply here!

Thanks!

7 Likes