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:
060f84b48 Interface,Networking(call-v3): Enable synchronous call handler for all Application subnets (#1526)
Review: Looks fine + matches description
Notes: Replaces the whitelist of which subnets have the synchronous call v3 endpoint enabled with a list of which subnets have it disabled, then populates that list only with the system subnets, enabling the feature on all application subnets.
959e8a5a3 Interface,Networking: implement the logic of stripping and assembling of block proposals (#1325)
Review: Looks fine + matches description
Notes: This is the final piece of the puzzle to make block makers propose blocks which only include message Ids rather than the actual messages themselves. The block proposer “strips” the messages from the block, then on the receiving side the replica determines which (if any) messages are missing, gathers them, then uses them to re-assemble the block.
b1e1c0728 Interface: Set default initial notarisation delay for APP subnets to 300ms (#1508)
Review: Looks fine + matches description
Notes: Almost all application subnets have been updated to have their initial notarisation delay set to 300ms, the results have been positive so this change makes the 300ms delay the default.
380182c78 Execution,Interface,Message Routing: Prevent enqueueing multiple responses for the same callback (#1071)
Review: Looks fine + matches description
Notes: Adds the new callbacks_with_enqueued_response
set, which maintains the callback Ids of all responses enqueued in the canister queues. This allows for the detection of duplicate callbacks plus allows timeout responses to be safely generated locally since if a canister response ends up being received it will be detected and dropped.
02cc3657d Consensus,Interface(consensus): Introduce per-peer limit on the number/size of ingress messages in the ingress pool (#1061)
Review: Looks fine + matches description
Notes: Modifies the ingress pool to have a per peer limit on objects in the pool rather than having a global limit. This reduces the impact a malicious node can have plus helps ensure ingress messages are received from all peers.
c99e1478d Execution,Interface: Update instrumentation to adjust costs for instructions in Wasm64 mode (#1452)
Review: Looks fine + matches description
Notes: Changes the cost of a few functions when running in Wasm64 mode.
70dc1a743 Execution,Interface,Message Routing: Ignore non-matching best-effort responses (#1517)
Review: Looks fine + matches description
Notes: If a response is received with no matching callback Id, only return an error if the response had no deadline, else drop the response.
c29dde299 Interface,Message Routing: Don’t allow responses in subnet input queues (#1471)
Review: Looks fine + matches description
Notes: Returns an error if a response is received targeting the management canister, since responses should always go to the canister the management canister is making outgoing requests on behalf of.
e880042de Interface,Node: Configuration revamp (define config structure and config tool) (#1539)
Review: Looks fine + matches description
Notes: Expands the ic_os/config
package which going forward will be used to configure IC-OS deployments.
d64d62905 Node: Update SetupOS base image to 24.04 (#1536)
Review: Looks fine + matches description
Notes: Bumps the SetupOS base image from Ubuntu 20.04 to 24.04.
7a93bcafd Node: Use nightly baremetal tests for benchmarking (#1420)
Review: Looks fine + matches description
Notes: Adds benchmark tests to the schedule-daily.yml
plus makes the necessary adjustments to make the tests work within this pipeline.
160734742 Node: GuestOS base image changes only (#1421)
Review: Looks fine + matches description
Notes: Bumps the GuestOS base image from Ubuntu 20.04 to 24.04.
Bugfixes:
942668985 Consensus,Interface(consensus): Add missing metric for the equivocation pool section (#1500)
Review: Looks fine + matches description
Notes: Starts collecting equivocation_proof
metrics as part of the consensus pool metrics.
d373ce97a Execution,Interface: Remove deprecated assert (#1528)
Review: Looks fine + matches description
Notes: Removes an assertion which is no longer applicable.
7a3fcfa9c Execution,Interface: Fix system API performance regression (#1440)
Review: Looks fine + matches description
Notes: Implements some system API performance optimisations and adds the new benchmark results showing the improvements.
02aba7918 Execution,Interface,Message Routing: CanisterQueues: Check for zero-length encoding after GC (#1480)
Review: Looks fine + matches description
Notes: Adds a debug assertion to check that after running garbage_collect
on a canister queue, when serialized, the output is of length 0.
bbb8a5152 Interface(cmc): Fix the data certification for the get_average_icp_xdr_conversion_rate endpoint (#1423)
Review: Looks fine + matches description
Notes: Fixes the data certification for get_average_icp_xdr_conversion_rate
which was incorrectly using the label for the get_icp_xdr_conversion_rate
value.
f95748820 Interface,Networking(quic-transport): Send RESET_STREAM frame for transport handles that are dropped (#1346)
Review: Looks fine + matches description
Notes: Implements Drop
for SendStreamDropGuard
which sends a QUIC_STREAM_CANCELLED
frame to signal to the recipient that the transmission of the message was cancelled.
1ca9fc370 Owners: revert dependency update (#1497)
Review: Looks fine + matches description
Notes: Reverts the cloudflare
dependency back to using Dfinity’s forked version.
Chores:
b1e6f4ef9 Consensus,Interface: Remove testonly dependencies of ic-replay (#1548)
Review: Looks fine + matches description
Notes: Simplifies the dummy certificates delivered after restoring from a backup, so they are now built from empty signatures allowing a load of dependencies to be removed.
6bbae04ac Execution,Interface(RUN): Upgrade wasmtime 24 dependencies (#1275)
Review: Looks fine + matches description
Notes: Upgrades the versions of wasmparser
, wasmprinter
, and wasm-encoder
, so that they match the versions used by wasmtime
24.0.0.
b60c9012d Execution,Interface: add metric for executed canisters per round (#1485)
Review: Looks fine + matches description
Notes: Adds the executed_canisters_per_round
metric to track how many canisters ended up being executed in each round, previously it was only tracking the number that were eligible for execution.
4a8ed78c9 Execution,Interface: add a metric for tracking fetch_canister_logs query calls (#1408)
Review: Looks fine + matches description
Notes: Adds the new subnet_query_messages
metric and uses it to track metrics for calls to fetch canister logs.
490fbd87f Interface: Pass argument to clamp_debug_len by reference (#1541)
Review: Looks fine + matches description
Notes: Passes the input to clamp_debug_len
by reference rather than moving it.
73e7bd419 Interface(IDX): replace rules_docker with rules_oci (#1512)
Review: Looks fine + matches description
Notes: Replaces the usage of rules_docker
(which is now deprecated) in the Bazel build pipeline with the new and actively maintained rules_oci
, also migrates the image build to using a lockfile and a specific Ubuntu snapshot to makes builds more reproducible.
da62cf633 Interface,Message Routing: Replace some map().unwrap_or() with map_or(). (#1503)
Review: Looks fine + matches description
Notes: Simply replaces a few usages of map(..).unwrap_or(..)
with a single call to map_or(..)
.
0441f4048 Interface,Node: remove unnecessary setupos_tool GenerateMacAddress command (#1564)
Review: Looks fine + matches description
Notes: Removes the unused GenerateMacAddress
command from the SetupOS tool.
5aa7ad88d Node: Update Base Image Refs [2024-09-12-0807] (#1459)
Review: Looks fine + matches description
Notes: Updates the hashes of the base image references.
Refactoring:
b2400524f Consensus,Interface: fix most of the naming in the consensus-p2p interface so it is consistent with the paper submission (#1470)
Review: Looks fine + matches description
Notes: No functionality change, just renames some variables and types, eg. ChangeSets
→ Mutations
.
41f6ce3a7 Interface: Remove dependencies on nns governance crate from sns cli and ic-admin (#1252)
Review: Looks fine + matches description
Notes: Moves proposal validation logic out of ic-nns-governance
and into ic-nervous-system-common-validation
allowing other crates that require this validation logic to stop depending on ic-nns-governance
.
4f4eef293 Interface(nervous-system): Make ic-nervous-system-agent generic over how it calls canisters (#1495)
Review: Looks fine + matches description
Notes: Introduces the CallCanisters
trait and makes each of the canister clients use it rather than the Agent
concrete type. This allows the canister clients to be used in more scenarios where an Agent
may not be applicable.
bfc9da079 Interface(nervous_system): use Runtime trait for Ledger (#1455)
Review: Looks fine + matches description
Notes: Makes the ledger client depend on the Runtime
trait which is implemented by both dfn_core
and ic_cdk
. This will allow the implementation to switch to using ic_cdk
in the future.
7f0f5d5d3 Interface(nervous_system): Use candid methods in ledger canister client (#1454)
Review: Looks fine + matches description
Notes: The ledger exposes candid and protobuf endpoints, up until now the ledger client has been calling into the protobuf endpoints, but this changes switches to the candid versions in preparation to switching to using ic_cdk
.
c19e9b1c9 Node: Update SetupOS script naming (#1473)
Review: Looks fine + matches description
Notes: No functionality change, just renames a few SetupOS scripts.
Tests:
b8845b555 Interface,Networking: fix flaky quic test for sending reset frames (#1552)
Review: Looks fine + matches description
Notes: Modifies a test to use tokio::sync::Barrier
rather than tokio::sync::Notify
which in turn makes it run more reliably.
I have also successfully run the build verification scripts for 7f6a81f48e2a25a28bf07f83ca99f9ec1356da9d and c87abf70cf6f0f81f7f16d9f517c3ff0db1fab1e so have voted to adopt their proposals too.