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.