Proposal to elect new release rc--2025-02-06_12-26

Proposal 135203 | Tim - CodeGov

Vote: Adopt

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

I’ve reviewed all commits aside from Execution commits as detailed below. Key changes include adding support for Bitcoin Testnet4 and changes to reduce testnet-specific errors, changes to VetKD key share logic and changes to P2P artifact handling.

Review

Features:
[baee73359]
Re-enables the hashes-in-blocks feature by setting the HASHES_IN_BLOCKS_FEATURE_ENABLED flag to true, with the intention of enabling this feature for all subnets.

[a97325591]
In the function to compute a KeyId from an AlgorithmId and a slice of bytes, a new domain separator is added for use when the bytes size is > 2^32 but < 2^64, thus replacing part of the error case used previously. Extends the same logic to other conversions to KeyId, returning Self type rather than Result, such that the conversion will panic if the byte slice length is more than 2^64 (which would not realistically occur).

[8ac49d3dc]
Implements VetKdProtocol for TempCryptoComponentGeneric with methods create_encrypted_key_share, verify_encrypted_key_share, combine_encrypted_key_shares and verify_encrypted_key.

[15a51647e]
Splits some VetKD key share-related error types into more specific types. Adds or removes some implementations for VetKdEncryptedKeyShareContent.

[d343919be]
Adds logic to prepare for the addition of a refund_after_sns_controlled_canister_upgrade command.

[9fcffc7fc]
Adds Testnet4 to the networks accessible by the bitcoin adaptor. Modifies the compute_next_difficulty function to use last_adjustment_header.bits instead of prev_header.bits (only for Testnet4) in order to prevent the difficulty being inappropriately lowered and causing a block storm.

[728875118]
Matches description. Adds rules to keep mr_blocks_proposed_total and mr_blocks_not_proposed_total metrics.

Bugfixes:
[90a1b566e]
Moves bitcoin connection manager metrics from impl Channel for ConnectionManager to impl ConnectionManager so that all messages will be recorded in the metrics.

[fbe09a672]
Adds constant TESTNET4_MAX_IN_FLIGHT_BLOCKS, set at 1000, to replace the previously used value of 100 in the case of Testnet4 so as to prevent the situation where all the queued up blocks are outside the main chain.

[2608017f2]
Adds constant TESTNET4_MAX_RESPONSE_SIZE, set at 1 million, so as to reduce the get_successor_blocks maximum response size from 2MB to 1MB for Testnet4 only, as explained in the description.

[22eda91d6]
Stores blocks using an Arc rather than cloning them in the get_successor_blocks function in order to improve the timing of Testnet4 requests.

[eb4a6d5a8]
Replaces unbounded sender and receiver channels with bounded channels in P2P artifact and consensus managers.

[5703c4382]
Version update for cloudflare-rs.

Chores:
[3868259d1]
Changes return types in the P2P artifact assembler, in most cases by using new enum AssembleResult in place of a Result type, + resulting code changes elsewhere.

[8a5bdfd43]
Moves the ed25519 crate from ‎rs/crypto/ed25519 to packages/ic-ed25519 and renames it accordingly.

[3fd26f17a]
Removes several sections of storage logic used prior to the introduction of LSMT, including the lsmt_status flag and related code.

[192b37ddd]
Updates Boundary GuestOS, GuestOS, HostOS and SetupOS base image container references.

Tests:
[61639eaa4]
Adds smoke tests for VetKD key share creation.

[0206830a6]
Adapts ckBTC tests to remove reliance on EcdsaConfig as this is now obsolete.

[340f17da6]
Changes to the upgrade_sns_controlled_canister_with_large_wasm test as per the description.

Proposal 135204

Vote: Adopt

Reason: Build is successful and hashes match. The proposal consists of a single commit which reverts the enabling of the hashes-in-blocks feature in commit baee73359 above.

About CodeGov…

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these topics and Synapse on most other topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralisation of SNS projects such as WaterNeuron and KongSwap with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.

1 Like