Subnet splitting forum announcement template

From Internet Computer Wiki
Revision as of 12:10, 30 October 2023 by David (talk | contribs) (Create template page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page provides a template process that can be used to announce an upcoming series of proposals to split a subnet.

Step 1: Heads up template, before starting the process


Hello everybody,

We are planning to submit the proposals to split subnet <fill in subnet ID> because <fill in reason>. Currently this subnet is assigned the canister ID ranges <fill in ranges; in both representations>. Ranges are inclusive, i.e. they include the beginning and the end of the range. We are proposing to split off the canisters corresponding to ID ranges <fill in ranges; in both representations> to a new subnet. The ranges were chosen so that <fill in how ranges were chosen>. For more details on subnet splitting please refer to this wiki page.

Generally the subnet splitting process is designed in a way that – apart from downtime (<fill in expected downtime if available>) – it is transparent to canisters provided that they properly handle transient errors when sending canister-to-canister messages. Note that these transient errors routinely occur during normal subnet functioning – so a correct canister implementation should properly handle these errors. In case you are unsure whether your canister properly handles these transient errors you might want to consider stopping it and restarting it after the split is complete.

It will be possible to verify whether the proposed split is authentic by verifying the splitting related artifacts as described here. The required artifacts will be obtained after the proposal to halt the source subnet at a CUP boundary was accepted and the subnet successfully halted. They will be published in a follow up post in this thread.

Subsequent updates will also be shared in this thread.

Hint: to make sense of the ranges and whether your canister is inside or outside some range, the state tool enables the conversion of canister IDs to their hex representation which allows to compare them as numbers. For example, to convert canister ID qoctq-giaaa-aaaaa-aaaea-cai to its hex representation one can:

  • Clone the IC repo from https://github.com/dfinity/ic
  • From within the repo, enter the dev container via ./gitlab-ci/container/container-run.sh
  • Run bazel run --config local //rs/state_tool:state-tool -- canister_id_to_hex --canister_id qoctq-giaaa-aaaaa-aaaea-cai

Step 2: Once the source subnet is halted and the artifacts were obtained

After the proposal for halting the source subnet was accepted and the subnet is halted one can obtain the artifacts needed for end to end verification and share it with the community. To do so one can follow the steps below:

  1. Run through the verification process manually to verify whether everything works. Only proceed with subsequent steps if verification matches.
  2. Post the artifacts in the thread and link to the verification process again so that community can verify.
  3. Continue with subsequent splitting proposals.