Proposal to elect new release rc--2024-11-07_03-07

Proposal 134032

Vote: Adopt

Reason: Build is successful, hashes match, commits match descriptions and the reasoning behind the changes is sound.

I’ve focused on reviewing Consensus, Crypto and Interface commits in order to complement @ilbert 's review. These include changes to improve network latency and to prepare for the upcoming vetKeys implementation.

Review

Features:

[199229e43]
Reduces the acceptable gap between the finalised height and the certified height from 3 blocks to 2 blocks. Introduces a backlog delay (BACKLOG_DELAY_MILLIS) set as a constant at 2 seconds to replace the existing unit_delay variable. If the gap has increased beyond the acceptable gap, then the notary delay (represented as certified_adjusted_delay) is increased by 2 seconds (the backlog delay) for each block in excess of the acceptable gap. The changes are intended to reduce this gap in order to improve network latency.

[43739c195]
Changes regarding the removal of in-memory states at checkpointed heights in order to remove states sooner. Adds extra_heights_to_keep within remove_inmemory_states_below, to consist of heights of finalised IDKG summary blocks for which there is not yet a CUP artifact. Changes the height at which to check for DKG transcripts from get_highest_summary_block to get_highest_finalized_summary_block.

[210f1ef89]
Removes the Copy trait from struct NiDkgId (ID for non-interactive DKG and enum NiDkgTag so that a String type can be used in the enum in as part of planned changes to incorporate vetKeys, which also necessitates the use of .clone() in several parts of the code.

[d4bba541c]
Adds Taproot support for Schnorr signatures. Relevant dependencies are added, taproot_tree_root is added as a parameter in several functions and required additional logic is added.

[4991a5757]
Adds a metric receive_batch_latency to indicate how long Message Routing had to wait to receive the next batch.

Chores:

[a78ac7f75]
Removes get_block_hash_string function + related changes in order to reduce or avoid doubling up on block hash computation.

[b9cee2240]
Adjusts the required delay for block making by replacing DYNAMIC_DELAY_EXTRA_DURATION (constant of 10 seconds) with settings.unit_delay (varies depending on subnet size).

[44095f27b]
Effectively adds a component transcript_record of type InitialNiDkgTranscriptRecord to ChainKeyInitialization, which is required by subnets using vetKeys. This is done using a Protobuf oneof construction as explained in the commit notes.

[15d752c5d]
Changes the source crate for various types from ic_state_machine_tests to various others so that when StateMachine tests are migrated to PocketIC then PocketIC won’t have to re-export those types.

[150771e1f]
Adds domain field to NodeConfiguration, api_boundary_nodes to TopologyConfig, and various other changes including a testnet setup in order to add API boundary nodes to the system test infrastructure.

[a05b99a4b]
Logging changes for when Consensus has extra states to keep, and addition of an error counter for success or failure of fallback to checkpoint when required states are not available in memory.

[d3ec1a960]
Renaming of various elements, mainly to remove references to “adverts” now that the P2P layer has moved away from this feature.

[ae2693f61]
Removes #[allow(unused)], #[allow(clippy::...)], etc from various code sections in order to prevent skipping over the analysis of various problems, + logging changes.

Proposal 134034

Vote: Adopt

Reason: Build is successful. Hashes match. The proposal consists of a single commit (previously seen) which enables the hashes-in-blocks feature.

Proposal 134035

Vote: Adopt

Reason: Build is successful. Hashes match. The proposal consists of a single commit (previously seen) which upgrades Linux kernel version to 6.11 and installs the kernel.

Proposal 134036

Vote: Adopt

Reason: Build is successful. Hashes match. The proposal consists of a single commit which reverts a previous commit upgrading GuestOS to Ubuntu 24.04.