proposal - 134408
Vote: ADOPT
Reason:
All the changes align with the commit description and no errors or anomalies found in the code changes introduced. Also, successfully ran the build verification script.
Hash Match: MATCH
Feedback:
Proposer Check: MATCH
Overall Summary:
Updates introduce more robust and flexible configuration and logging to the boundary nodes, including a new environment file, improved metrics and anonymization features, and support for a BIP341-compatible auxiliary field in Schnorr signatures. They also ensure deterministic linking of LMDB, integrate macaddr
and NodeType
for flexible IPv6 and MAC address generation, and refine testing, metrics, and migration logic for ledger and consensus.
Commits Summary
ad36e6b0d
Adds a new environment file ic-boundary.env
and includes it in the boundary node’s startup configuration by using the env-file-reader
crate. The boundary node process is adjusted to read environment variables from the new env file, passing them to the process as part of its startup environment.
af2605ffb
Adds a second optional target for fstrim
to discard unused blocks on the replica data partition if the node is unassigned.
8ec2ca18b
Enables wasm_tail_call
. There were performance improvements when doing ReturnCall
.
a2a6247f8
Optional taproot_tree_root
field to SchnorrArguments
and updates its handling throughout the consensus and execution environment code. It modifies functions, test utilities, and protobuf definitions to accept and process taproot_tree_root
when creating or parsing Schnorr signature arguments. The TODO comment suggest there is more logic on the way.
8d726cc67
Introduces code paths and logic to move ledger data from older, in-memory or legacy formats into stable data structures, using minicbor
for serialization. The changes also include added logic to track migration progress, handle partially migrated states, and eventually finalize the migration so that the ledger can resume normal operations.
This migration seems like a really crucial change to Ledger. I am wondering if there is any way we can test the migration and how it will take place. Is there anything CodeGov can do to help test the migration?
bed178d77
Adds additional metrics about subnet configuration, including subnet size, features, and maximum canister capacity. It also modifies the registry reading logic to populate and record these new metrics.
e41a4efb7
New histograms and updates existing metrics to capture wall-clock latencies and durations for various steps in the consensus and message routing processes, including batch delivery, batch induction, and certification.
b6e0faa05
New file src/update_config.rs
. This file reads various configuration files (like network.conf
, filebeat.conf
, and nns.conf
) and sets up network, logging, and NNS parameters for a node. It then serializes the gathered configuration into JSON and writes it out to config.json
, enabling updates to the node’s configuration without containing secret materials.
8a538aac7
Ensures LMDB is now linked deterministically and at the lmdb-rkv-sys
crate build stage rather than relying on late-stage, accidental static linking. By applying a patch that allows specifying a custom LMDB archive path instead of LMDB_NO_BUILD
, and providing a pre-built liblmdb.a
static archive via Bazel, LMDB is statically linked during the crate’s build.
ee08c5875
Now uses erestorecon
instead of prestorecon
.
bd92560a7
Replaces the taproot_tree_root
field with a more general aux
argument in the SignWithSchnorrArgs
structure, allowing for BIP341-like auxiliary data (e.g., a merkle_root_hash
) to be passed in. It updates all relevant call sites and tests so that the auxiliary argument is consistently used.
05f660259
Renames the anonymization-backend
crate to anonymization_backend
and adjusts its entry point from src/lib.rs
to src/main.rs
, clarifying its usage as an executable rather than a library. Additionally, it updates the ic-agent
and ic-transport-types
dependencies to specified versions and integrates the anonymization client into the boundary node code.
Integrates log anonymization into ic-boundary
by referencing a hard-coded anonymization canister ID and tracking a salt fetched from that canister. This salt is then used to hash sensitive fields like IP addresses and principal IDs in request logs, ensuring they are not stored in cleartext. Changes in core.rs
, metrics.rs
, and related configuration files implement this anonymization logic throughout the boundary node’s request handling and logging process.
1368f04cc
Sets limit for debug_assertions
to 1k cache entries. Matches description.
df6e86ced
Reverts changes from prev commits feat: [NODE-1355] Upgrade build container to 24.04 by Bownairo · Pull Request #1946 · dfinity/ic · GitHub and fix(IDX): libtinfo5-6.4 is no longer available in ubuntu so use 6.3 by basvandijk · Pull Request #2858 · dfinity/ic · GitHub.
23d181e50
Matches description of fixing Elasticsearch URLs and index patterns for testnet environment.
4158ba727
Fix permissions for upgrade-shared-data-store/upgrade-shared-data-store.sh
by replacing the replica
check with the corrected ic-replica
.
796a29be6
Perf refactor for state manager commit_and_certify
. It now calculates next_tip
before self.states.write
.
05c96cbd1
More renaming changes for idkg_key
to chain_key
.
57dc741a9
Removed all tests related to ic-scenario-tests
.
b3ab4bf9a
FIX
There is a spelling error with handle_inbound_conn_attemp
. Logic related to handle_dial
has been consolidated in function can_i_dial_to
improving reuse.
a8d210455
This moves code from canister_client/src/cbor.rs
to separate file canister_client/read_state_response_parser/src/lib.rs
, so now we have a new package ic-read-state-response-parser
.
3466a3205
Streamlines the use of pigz
lib since it is packaged in the Bazel central registry.
9f5674ce6
Updates base image refs.
2a400f53b
Updates base image refs.
0ab07de46
Renames idkg_subnet_public_keys
to chain_key_subnet_public_keys
.
006709366
Mainly improvements to quic
transport error handling. quinn_client_config
, client_config
are moved outside async
conn_fut
.
697c20ccd
Integrate the macaddr
crate and update various configuration files and scripts to use the new macaddr
type and a NodeType
enum rather than relying on hardcoded indices. Modify the generation of deterministic MAC and IPv6 addresses, removing the deterministic_ips
dependency and making the code more flexible.
51f1c7e21
Extends ExhaustiveSet
to include VetKdCurve
, VetKdKeyId
IDkgMasterPublicKeyId
. Changes are related to testing of serialization correctness related to types.
9a95ec743
Matches description to fix race conditions by stopping the background monitoring thread.
aab432742
Test checks that all error codes can be converted to a valid reject code.