I have reviewed all commits listed in this proposal and in my opinion they all look fine, I have also run the build verification script which completed successfully, so I have voted to adopt the proposal.
Full review:
Features:
ebe9a6230 Execution,Interface: Charge idle canisters for full execution (#1806)
Review: Looks fine + matches description
Notes: Treats idle canisters which were processed in a round as fully executed so that the scheduler lowers their priority in future rounds, making the scheduler fairer especially when there are lots of idle canisters.
fcb719280 Execution,Interface: Charge canisters for full execution (#1782)
Review: Looks fine + matches description
Notes: At the end of each round, charges canisters which were fully executed (they have no more messages or were scheduled first on a core).
15c174d21 Execution,Interface: Limit backtrace visibility (#1624)
Review: Looks fine + matches description
Notes: Ensures the internals of a canister aren’t leaked by removing backtraces from errors if the caller doesn’t have permission to view the canister logs.
8596e9813 Execution,Interface,Message Routing: Keep track of shed inbound responses (#1173)
Review: Looks fine + matches description
Notes: Whenever an inbound response message is dropped its Id and CallbackId get added to the new shed_responses
map. This is then used when processing the inbound message queue to build an appropriate error response given that the message was dropped.
1a1c213f3 Execution,Interface,Networking: Increase install_code limit for application subnets (#1705)
Review: Looks fine + matches description
Notes: I asked for this! It bumps the instruction limit on Application subnets for install_code
messages to 300B, matching the instruction limit on “Verified Application” subnets.
6cb46aac8 Interface(sns-cli): Add sns health command (#1711)
Review: Looks fine + matches description
Notes: Adds the health
command to the SNS CLI tool which outputs stats of each SNS (any canisters low on memory | any canisters low on cycles | number of SNS canister upgrades remaining).
735935aa2 Interface,Networking: Introduce p2p slot table limit and limit allowed ingress slots per peer (#1213)
Review: Looks fine + matches description
Notes: Adds a configurable limit on how many artifacts of a given type the consensus manager may contain at a time from each peer, then sets this limit to 50,000 for ingress messages.
87ed92725 Node: Upgrade GuestOS to 24.04 (#938)
Review: Looks fine + matches description
Notes: Bumps the GuestOS base images to versions built using Ubuntu 24.04 then makes other minor changes required to work with the new versions.
47590772d Node: Upgrade HostOS to 24.04 (#1588)
Review: Looks fine + matches description
Notes: Bumps the HostOS base images to versions built using Ubuntu 24.04 then makes other minor changes required to work with the new versions.
09ddd7d5b Node: Change monitoring strategy for GuestOS VM (#1586)
Review: Looks fine + matches description
Notes: Switches the monitor-guestos.sh
service to using virsh
to manage the liveness of the GuestOS VM.
Bugfixes:
60f1d5562 Execution,Interface: Cap ingress induction debit for cleanup callback (#1777)
Review: Looks fine + matches description
Notes: If a canister traps, it then runs a cleanup callback. This change ensures that there are always enough cycles to run the cleanup callback by cancelling ingress message induction charges if the canister wouldn’t otherwise have enough cycles to process the callback.
ba5ffe01a Execution,Interface: Fix full execution round definition (#1772)
Review: Looks fine + matches description
Notes: Fixes the criteria under which the last_full_execution_round
field of a canister is set.
d2657773d Execution,Interface,Networking: Tweak instruction overhead per canister (#1819)
Review: Looks fine + matches description
Notes: Reduce the number of instructions charged to spin up a new canister sandbox process from 8M to 4M.
a9ebaa9e9 Interface,Networking: use OnceCell to store nns certificate delegation and use it in https outcalls transform function (#875)
Review: Looks fine + matches description
Notes: Switches from using RwLock to OnceCell for passing the NNS certificate delegation around and fixes a bug where the certificate wasn’t being passed to the https outcalls transform function.
77dc52029 Node: query_nns_nodes bug (#1665)
Review: Looks fine + matches description
Notes: Fixes 2 bugs within the assemble_nns_nodes_list
function. The first is to make the metric
argument optional under certain conditions and the 2nd is to make the query_nns_nodes
function return an error if the NNS_URL_LIST
is empty.
Chores:
e773cf5df Consensus,Interface(consensus): avoid recomputing the block hash when notarizing a block (#1726)
Review: Looks fine + matches description
Notes: When notarizing a block proposal, grab the block hash from the proposal content rather than calculating the hash itself.
c972dc928 Consensus,Interface: Remove unused pool reader functions (#1721)
Review: Looks fine + matches description
Notes: Removes some unused code.
9fe63e2f7 Crypto,Interface(crypto): Clean up BIP340 signature processing (#1233)
Review: Looks fine + matches description
Notes: Simplifies the BIP340 signature processing by removing the handling around the y coordinate of the public key being odd because it turns out this special handling isn’t needed.
726cb686a Execution,Interface: Apply priority credit at the round start (#1736)
Review: Looks fine + matches description
Notes: Calls apply_priority_credit
at the round start rather than having to remember the data and then apply it at the end of the round.
286f2cbbe Execution,Interface: Update comments (#1739)
Review: Looks fine + matches description
Notes: Just updates some comments.
fa2329782 Execution,Interface,Message Routing: Drop CanisterQueue::QueueItem proto, part 1 (#1797)
Review: Looks fine + matches description
Notes: This is the first step to move towards a simpler proto format for the CanisterQueues. This step introduces a new version of the queues
field and deprecates the old version, it then handles deserialization from either field, in a subsequent release the old field will be removed.
f8f2d84f3 Execution,Interface,Message Routing: Drop old canister queue implementations (#1733)
Review: Looks fine + matches description
Notes: Removes the code for the old canister queue implementation since everything is now switched over to the new implementation.
6ed86361e Interface: duplicate btc header validation to main repo #769 (#1766)
Review: Looks fine + matches description
Notes: Copies validation code from the bitcoin-canister repo into the IC repo to remove the dependency on the ic-btc-validation
crate, allowing the 2 repos to update their bitcoin
dependencies independently.
0161abba3 Interface: move the xnet endpoint under rs/http_endpoints and share ownership with the NET team (#1762)
Review: Looks fine + matches description
Notes: Simply moves and renames from ic-xnet-endpoint
to ic-http-endpoints-xnet
.
3bbabefb7 Interface(Ledger-Suite): move icp and icrc ledger suites (#1682)
Review: Looks fine + matches description
Notes: Moves the ICP and ICRC ledgers into the new ledger_suites
directory.
42f2bd3d4 Interface: boundary nodes massive cleanup (#1771)
Review: Looks fine + matches description
Notes: Removes a load of code which is no longer used from the boundary nodes.
e2cb3d638 Interface: upgrade prost and tonic crates (#1738)
Review: Looks fine + matches description
Notes: Bumps prost
from 0.13.2 to 0.13.3 and tonic
from 0.12.0 to 0.12.3 + bumps a few other dependencies + replaces many type names with Self
.
9c08b9984 Interface: Implement saturating sub for AmountOf (#1740)
Review: Looks fine + matches description
Notes: Simplifies by using saturating_sub
to calculate min_height
rather than performing the bounds checks manually.
f7791372e Interface: remove old hyper and bump prost and tonic versions (#1597)
Review: Looks fine + matches description
Notes: Consolidates hyper
dependency version by using the workspace version and bumps prost
to 0.13.2 and tonic
to 0.12.2.
d66fdcb4c Interface: bump rust version to 1.81 (#1645)
Review: Looks fine + matches description
Notes: Bumps the Rust version from 1.80.0 to 1.81.0.
c39a8b35b Interface,Message Routing: Refactor list_state_heights and make it an associated method (#1690)
Review: Looks fine + matches description
Notes: Removes list_state_heights
from the StateManager
trait and makes it an associated method of StateManagerImpl
.
a4e281d92 Interface,Message Routing: use the local config for determing the Socket addr of the xnet server (#1372)
Review: Looks fine + matches description
Notes: Avoids calling in to the Registry when starting up the Xnet server and instead reads all the settings from the local config.
91d8f93ed Interface,Message Routing: upgrade hyper in xnet and use http 2 (#1506)
Review: Looks fine + matches description
Notes: Fairly big change to the Xnet endpoint to make it use HTTP2 and update its code to work similarly to some of the other servers (eg. http outcall adapter and the bitcoin adapter).
d9ae74c7d Interface,Networking: remove the is_beyond_last_checkpoint check when serving requests (#1643)
Review: Looks fine + matches description
Notes: Removes the unnecessary is_beyond_last_checkpoint
check from the Bitcoin adapter.
6a2eca082 Interface,Networking: Fix stale doc for enabled sync v3 endpoint (#1704)
Review: Looks fine + matches description
Notes: Fixes a comment now that the value contains the list of subnets for which the call V3 functionality is disabled, rather than enabled.
0279b0f4f Interface,Node: upgrade clap (#1763)
Review: Looks fine + matches description
Notes: Bumps clap
from 4.4.6 to 4.5.18.
a34cbd96a Interface,Node: Remove ipv6_address and make ipv6_prefix required in config tool (#1684)
Review: Looks fine + matches description
Notes: Removes the ipv6_address
field from NetworkInfo
and NetworkSettings
and makes ipv6_prefix
required rather than optional.
90ad56b73 Owners(IDX): Upgrade bazel to 7.3.1 (#1695)
Review: Looks fine + matches description
Notes: Bumps Bazel from 7.0.1 to 7.3.1.
10b880941 Node: Update Base Image Refs [2024-10-01-1619] (#1783)
Review: Looks fine + matches description
Notes: Updates the base image references.
3929437f7 Node: Update Base Image Refs [2024-09-30-2122] (#1759)
Review: Looks fine + matches description
Notes: Updates the base image references.
Refactoring:
afad27aa2 Consensus,Interface: improve docs and methods names in the p2p interface (#1465)
Review: Looks fine + matches description
Notes: Renames get_all_validated
to get_all_for_broadcast
and updates some doc comments.
54c3542bc Execution,Interface: Move ongoing_long_install_code into drain_subnet_queues (#1761)
Review: Looks fine + matches description
Notes: Moves the calculation of ongoing_long_install_code
into drain_subnet_queues
rather being performed just before calling it, this also means it is only calculated in precisely the scenarios where it is required.
3221c5936 Execution,Interface,Message Routing: Typed canister queues and references (#1697)
Review: Looks fine + matches description
Notes: Makes CanisterQueue
generic then defines type aliases for each type of queue (eg. type InputQueue = CanisterQueue<CanisterInput>
).
41a9d9db7 Interface,Node: refactor os_tools and networking code (#1666)
Review: Looks fine + matches description
Notes: Validates the optional mgmt_mac
and deployment_name
input args at the top level rather than within the generate_network_config
library function.
37b9754a8 Owners(IDX): rename merge base env var for candid checks (#1696)
Review: Looks fine + matches description
Notes: Renames CI_PULL_REQUEST_TARGET_BRANCH_SHA
to MERGE_BASE_SHA
.
Tests:
5b4a6e3a5 Execution,Interface: Future proof canister snapshots (#1677)
Review: Looks fine + matches description
Notes: Adds a test that will fail compilation if any fields are added to the canister snapshot state, requiring the developer to see the test and read the comments which detail how to safely add fields.
I have also successfully run the build verification script for 1ff0e709f0d0984a4f9ab06456db177c4b6e48a0 so have voted to adopt their proposals too.