Proposal to elect new release rc--2025-01-30_03-03

Hello there!

We are happy to announce that voting is now open for a new IC release.
The NNS proposal is here: [IC NNS Proposal Proposal for version 35f39480fe28485694743dc3ef15ac37ea000c74 submitted with ID 135051](https://dashboard.internetcomputer.org/proposal/Proposal for version 35f39480fe28485694743dc3ef15ac37ea000c74 submitted with ID 135051).

Here is a summary of the changes since the last release:

Release Notes for release-2025-01-30_03-03-base (35f39480fe28485694743dc3ef15ac37ea000c74)

This release is based on changes since release-2025-01-23_03-04-base (550209a750be0575cc4afff5e23c04b03048c08e).

Please note that some commits may be excluded from this release if they’re not relevant, or not modifying the GuestOS image. Additionally, descriptions of some changes might have been slightly modified to fit the release notes format.

To see a full list of commits added since last release, compare the revisions on GitHub.

Features:

  • 2da213890 Crypto,Interface(crypto): store registry version in threshold sig data store (#3619)
  • dd37e7009 Crypto,Interface(crypto): VetKD API and testing improvements (#3283)
  • 215a697e1 Interface: ICP-ledger: Implement V4 for ICP ledger - migrate balances to stable structures (#3314)
  • 5c68a6366 Interface(ic-nervous-system-agent): Add management canister functions (#3591)
  • f128ac960 Interface,Message Routing: Load & validate protos asynchronously (#2594)
  • c05b185fe Node: Log guestos.service console logs to tty1 (#3645)

Bugfixes:

  • 623b155ca Consensus,Interface: use api boundary nodes as socks proxies (#2712)
  • 3b2afad38 Consensus,Interface: orchestrator onboarding logs (#3588)
  • 33941442d Consensus,Interface: do not repeat error code in query call reject message (#3465)

Performance improvements:

  • fb75bf40f Node: Move file system population to mkfs.ext4 invocation (#3476)

Chores:

  • 5b6d604af Consensus,Execution,Interface: Fix typo in error message about uninitialized query stats (#3673)
  • fe4d0222f Consensus,Interface: remove last todo comment in HTTP-handler (#3626)
  • 3f14a0806 Consensus,Interface: move out the CLI module from the library (#3169)
  • 2453254c2 Consensus,Interface: remove todo messages in call_v3.rs (#3617)
  • ac12ab0b7 Consensus,Interface: handle panics when joining on cancellations in ingress_watcher event loop (#3618)
  • 55e504b23 Consensus,Interface: change redirect code from 303 to 307 (#3600)
  • 0d0440ff7 Consensus,Interface: listen on socketaddr from config for http handler (#3599)
  • 155bd42f4 Interface: Add dfx-core dependency and use it in the SNS CLI to allow it to use the user’s DFX identities (#2927)
  • 967fe2118 Interface: bitcoin crate upgrade (#3080)
  • 7f0bad6c9 Interface: add todo comment to remind of disabling balances serialization (#3579)
  • 8df78c99e Interface: remove ic_api_version field in IC status response (#3569)
  • 026eda8b9 Interface: Bump Candid to 0.10.12 (#3566)
  • 0b1d6e41d Node: tidy up systemd dependencies (#3574)
  • 0626768a9 Node: normalize config.sh to return empty string (#3502)
  • cf52a5011 Node: delete retry-ipv6-config (#3607)
  • f3a8e93df Node: Update Base Image Refs [2025-01-23-0147] (#3575)

Refactoring:

  • 620e7729d Consensus,Interface: fix legacy naming of some methods (#3664)
  • 1dd3386c4 Consensus,Interface: make the stack construction a little more readable; added comments (#3559)
  • ae3ab5aa3 Interface(nervous-system): Move Request implementations from canister crates to rs/nervous_system/agent (#3657)
  • 69748856b Interface: Use Principal in RemoveNodeOperatorsPayload, instead of Vec (#3386)
  • fcc88deb5 Node: Remove inject_files rule invocations and move injection of binaries to ext4_image (#3497)

Tests:

  • 1ef59e5f3 Interface: remove log synchronization from NNS recovery system test (#3602)
  • ca3b684a4 Interface,Message Routing: Add best effort messages to random traffic canister (#3108)

Full list of changes (including the ones that are not relevant to GuestOS) can be found on GitHub.

IC-OS Verification

To build and verify the IC-OS disk image, run:

# From https://github.com/dfinity/ic#verifying-releases
sudo apt-get install -y curl && curl --proto '=https' --tlsv1.2 -sSLO https://raw.githubusercontent.com/dfinity/ic/35f39480fe28485694743dc3ef15ac37ea000c74/ci/tools/repro-check.sh && chmod +x repro-check.sh && ./repro-check.sh -c 35f39480fe28485694743dc3ef15ac37ea000c74 --guestos

The two SHA256 sums printed above from a) the downloaded CDN image and b) the locally built image, must be identical, and must match the SHA256 from the payload of the NNS proposal.

While not required for this NNS proposal, as we are only electing a new GuestOS version here, you have the option to verify the build reproducibility of the HostOS by passing --hostos to the script above instead of --guestos, or the SetupOS by passing --setupos.

1 Like

Hello there!

We are happy to announce that voting is now open for a new IC release.
The NNS proposal is here: [IC NNS Proposal Proposal for version fb162931586aeea5f21cb19ec6c73382f5fa4fd6 submitted with ID 135052](https://dashboard.internetcomputer.org/proposal/Proposal for version fb162931586aeea5f21cb19ec6c73382f5fa4fd6 submitted with ID 135052).

Here is a summary of the changes since the last release:

Release Notes for release-2025-01-30_03-03-hashes-in-blocks (fb162931586aeea5f21cb19ec6c73382f5fa4fd6)

This release is based on changes since release-2025-01-30_03-03-base (35f39480fe28485694743dc3ef15ac37ea000c74).

Please note that some commits may be excluded from this release if they’re not relevant, or not modifying the GuestOS image. Additionally, descriptions of some changes might have been slightly modified to fit the release notes format.

To see a full list of commits added since last release, compare the revisions on GitHub.

Other changes:

  • fb1629315 Consensus,Interface: Re-enabled hashes-in-blocks feature

IC-OS Verification

To build and verify the IC-OS disk image, run:

# From https://github.com/dfinity/ic#verifying-releases
sudo apt-get install -y curl && curl --proto '=https' --tlsv1.2 -sSLO https://raw.githubusercontent.com/dfinity/ic/fb162931586aeea5f21cb19ec6c73382f5fa4fd6/ci/tools/repro-check.sh && chmod +x repro-check.sh && ./repro-check.sh -c fb162931586aeea5f21cb19ec6c73382f5fa4fd6 --guestos

The two SHA256 sums printed above from a) the downloaded CDN image and b) the locally built image, must be identical, and must match the SHA256 from the payload of the NNS proposal.

While not required for this NNS proposal, as we are only electing a new GuestOS version here, you have the option to verify the build reproducibility of the HostOS by passing --hostos to the script above instead of --guestos, or the SetupOS by passing --setupos.

1 Like

Proposal 135051 - Hamish | CodeGov

Vote: Adopt
Reason: I have successfully run the build script and in my opinion all the commits listed look fine and match their descriptions.

Full review:

Features:

  • 2da213890 Crypto,Interface(crypto): store registry version in threshold sig data store (#3619)
    Review: Looks fine + matches description
    Notes: Stores the registry version along with each NiDkg transcript in the threshold sig store.

  • dd37e7009 Crypto,Interface(crypto): VetKD API and testing improvements (#3283)
    Review: Looks fine + matches description
    Notes: Refactors the core crypto library in preparation for VetKeys and adds a load of tests.

  • 215a697e1 Interface: ICP-ledger: Implement V4 for ICP ledger - migrate balances to stable structures (#3314)
    Review: Looks fine + matches description
    Notes: Updates the ICP ledger to migrate the storage of all balances to stable memory, plus removes the cap on the number of accounts since there is now a huge amount of storage available.

  • 5c68a6366 Interface(ic-nervous-system-agent): Add management canister functions (#3591)
    Review: Looks fine + matches description
    Notes: Extends the helper functions within ic_nervous_system to include more canister calls (eg. chunk store actions and creating canisters).

  • f128ac960 Interface,Message Routing: Load & validate protos asynchronously (#2594)
    Review: Looks fine + matches description
    Notes: Removes the call to load_checkpoint_and_validate_parallel from create_checkpoint_and_switch, and continues with the new checkpoint before it has been validated, then executes validate_checkpoint_and_remove_unverified_marker on a separate thread.

  • c05b185fe Node: Log guestos.service console logs to tty1 (#3645)
    Review: Looks fine + matches description
    Notes: Outputs logs from the start-guestos.sh script to tty1 so that they are visible to the node admin.

Bugfixes:

  • 623b155ca Consensus,Interface: use api boundary nodes as socks proxies (#2712)
    Review: Looks fine + matches description
    Notes: Implements using the API boundary nodes as a SOCKS proxy for http out calls, but for now still uses the old boundary nodes and then for a specified percentage of requests will additionally use the new API boundary nodes and then compare results in order to build confidence in the new system. For now the percentage is set to zero so the new functionality is not yet enabled.

  • 3b2afad38 Consensus,Interface: orchestrator onboarding logs (#3588)
    Review: Looks fine + matches description
    Notes: Simply updates a log message output by the orchestrator during onboarding.

  • 33941442d Consensus,Interface: do not repeat error code in query call reject message (#3465)
    Review: Looks fine + matches description
    Notes: Switches to using user_error.description().to_string() in query rejected messages rather than the Display implementation of user_error which contains data that is already included in the error message.

Performance improvements:

  • fb75bf40f Node: Move file system population to mkfs.ext4 invocation (#3476)
    Review: Looks fine + matches description
    Notes: Updates the build_ext4_image.py script by moving a step into the mkfs invocation, shaving 25% off the time taken to populate the filesystem.

Chores:

  • 5b6d604af Consensus,Execution,Interface: Fix typo in error message about uninitialized query stats (#3673)
    Review: Looks fine + matches description
    Notes: Just fixes a typo, “uninitalized” → “uninitialized”.

  • fe4d0222f Consensus,Interface: remove last todo comment in HTTP-handler (#3626)
    Review: Looks fine + matches description
    Notes: Removes a “TODO” comment which is no longer applicable.

  • 3f14a0806 Consensus,Interface: move out the CLI module from the library (#3169)
    Review: Looks fine + matches description
    Notes: Moves the cli module out of the Bitcoin Adapter core library so that it is only included in the binary target.

  • 2453254c2 Consensus,Interface: remove todo messages in call_v3.rs (#3617)
    Review: Looks fine + matches description
    Notes: Removes some “TODO” comments and replaces some hard coded strings with constants.

  • ac12ab0b7 Consensus,Interface: handle panics when joining on cancellations in ingress_watcher event loop (#3618)
    Review: Looks fine + matches description
    Notes: Updates the ingress watcher to propagate any panic that occurs within the cancellations threads.

  • 55e504b23 Consensus,Interface: change redirect code from 303 to 307 (#3600)
    Review: Looks fine + matches description
    Notes: Updates the http endpoints library to return 307 temporary redirects on 2 endpoints rather than returning 303 responses.

  • 0d0440ff7 Consensus,Interface: listen on socketaddr from config for http handler (#3599)
    Review: Looks fine + matches description
    Notes: Switches the http endpoints server from listening on a hard coded IPv4 address to using the address passed in via the config (which now defaults to an IPv6 address).

  • 155bd42f4 Interface: Add dfx-core dependency and use it in the SNS CLI to allow it to use the user’s DFX identities (#2927)
    Review: Looks fine + matches description
    Notes: Uses dfx-core within SNS CLI to load and use DFX identities by name.

  • 967fe2118 Interface: bitcoin crate upgrade (#3080)
    Review: Looks fine + matches description
    Notes: Updates the bitcoin crate and a few other related crates.

  • 7f0bad6c9 Interface: add todo comment to remind of disabling balances serialization (#3579)
    Review: Looks fine + matches description
    Notes: Simply adds a “TODO” comment to the ICP ledger.

  • 8df78c99e Interface: remove ic_api_version field in IC status response (#3569)
    Review: Looks fine + matches description
    Notes: Removes the unused ic_api_version field from IC status responses.

  • 026eda8b9 Interface: Bump Candid to 0.10.12 (#3566)
    Review: Looks fine + matches description
    Notes: Bumps candid from 0.10.10 to 0.10.12 (although 0.10.13 ends up getting used in a few places).

  • 0b1d6e41d Node: tidy up systemd dependencies (#3574)
    Review: Looks fine + matches description
    Notes: Cleans up some systemd dependencies, removing some that aren’t needed and weakening others where possible.

  • 0626768a9 Node: normalize config.sh to return empty string (#3502)
    Review: Looks fine + matches description
    Notes: Updates get_config_value to return an empty string rather than “null” if the setting isn’t found which simplifies a few downstream scripts that just check if empty rather than checking if empty or equal to “null”.

  • cf52a5011 Node: delete retry-ipv6-config (#3607)
    Review: Looks fine + matches description
    Notes: Deletes the retry-ipv6-config.service service.

  • f3a8e93df Node: Update Base Image Refs [2025-01-23-0147] (#3575)
    Review: Looks fine + matches description
    Notes: Updates the base IC-OS image references.

Refactoring:

  • 620e7729d Consensus,Interface: fix legacy naming of some methods (#3664)
    Review: Looks fine + matches description
    Notes: Renames a few fields within the consensus manager (eg. adverts_received → slot_updates_rx).

  • 1dd3386c4 Consensus,Interface: make the stack construction a little more readable; added comments (#3559)
    Review: Looks fine + matches description
    Notes: Reduces amount of code by introducing AbortableBroadcastChannel which contains the sender and reciever rather than always having to pass in both separately, also renames canister_http_pool to https_outcalls_pool.

  • ae3ab5aa3 Interface(nervous-system): Move Request implementations from canister crates to rs/nervous_system/agent (#3657)
    Review: Looks fine + matches description
    Notes: Moves the Request implementations for calls into NNS and SNS canisters out of the core canister crates and into ic-nervous-system-agent, allowing this crate to depend on the canister API crates rather than the core canister crates themselves.

  • 69748856b Interface: Use Principal in RemoveNodeOperatorsPayload, instead of Vec (#3386)
    Review: Looks fine + matches description
    Notes: Updates RemoveNodeOperatorsPayload to use principals rather than Vecs of bytes so that the payloads can be rendered in human readable form.

  • fcc88deb5 Node: Remove inject_files rule invocations and move injection of binaries to ext4_image (#3497)
    Review: Looks fine + matches description
    Notes: Updates the sysimage build scripts to make them faster in the majority of cases.

Tests:

  • 1ef59e5f3 Interface: remove log synchronization from NNS recovery system test (#3602)
    Review: Looks fine + matches description
    Notes: Modifies some NNS recovery tests to use new_subnet_node.await_status_is_healthy() rather than wait_until_ready_for_interaction.

  • ca3b684a4 Interface,Message Routing: Add best effort messages to random traffic canister (#3108)
    Review: Looks fine + matches description
    Notes: Extends the messaging proptests to generate cases which use best-effort messaging.

Proposal 134967

Vote: Adopt
Reason: I have successfully run the build script and there is only a single additional commit which simply re-enables the HASHES_IN_BLOCKS_FEATURE_ENABLED flag.

About CodeGov…(click to expand)

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 decentralization 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.

2 Likes

Proposal 135051 – ilbert | CodeGov

Vote: ADOPTED.
Reason: All reviewed commits match their description and hashes match.

Review:
For the Execution and Runtime layers, this release doesn’t introduce any significant change.

I’ve reviewed all the commits listed in the proposal, for the Execution and Runtime layers:

5b6d604af:
Matches description


Proposal 135052 – ilbert | CodeGov

Vote: ADOPTED.
Reason: All reviewed commits match their description and hashes match.

Review:
This release is the same as the one in 135051 with the addition of the commit fb1629315, which matches its description.

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 decentralization 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

proposal - 135051 – Cyberowl | CodeGov

Vote: ADOPT

Reason:

All commits match their description and no errors were found. The verification build hash also matches release_package_sha256_hex.

Hash Match: MATCH

2 Urls: MATCH

Feedback: NONE

Proposer Check: MATCH

Overall Summary:

SNS CLI is moving into a closer alignment with the DFX ecosystem, as there are shared functions (such as selecting the network and identity). Improvement in speed and reliability of SOCKS proxy clients. Lots of other refactors and fixes.

Commits Summary

2da213890
New registry_version parameter to functions handling transcript data across multiple modules. Updated the TranscriptData struct to include a registry_version field along with a new accessor method.

dd37e7009
New G1Affine::augmented_hash method. Refactored the vetkd module by removing the TransportSecretKey abstraction and overhauling the encrypted key share combination logic with new helper functions combine_unchecked, combine_all, and combine_valid_shares

215a697e1
Removed the entire “ic‑nns‑inspector” package and its associated build configuration. Deprecated ledger initialization parameters—specifically, maximum_number_of_accounts and accounts_overflow_trim_quantity—and updated the ledger canister’s stable migration and balance storage logic.

5c68a6366
Added new dependencies such as ic-nervous-system-clients, cycles-minting-canister, and registry-canister . New modules in the Nervous System agent—including management_canister, nns/cmc, and nns/registry—with implementations for common operations such as uploading Wasm in chunks, creating canisters via the cycles minting canister, and fetching subnet information from the registry.

f128ac960
ValidateEq derive attribute to QueueStats and integrated equality checks in checkpoint validatio. Renamed functions from verify to validate (e.g., in page_map/storage.rs) and replaced make_checkpoint with make_unvalidated_checkpoint . Helper methods such as component_refs in ReplicatedState and validate_eq_checkpoint_internal to streamline the comparison of various state components, and updated tip handling to include additional context.

c05b185fe
Added a RestartSec=300 setting in the guestos.service unit file to delay automatic restarts by 5 minutes after a failure.
Enhanced the start_guestos function to perform additional troubleshooting steps on failure—such as dumping service logs, printing the host IPv6 address

623b155ca
Implemented a caching layer for SOCKS proxy clients using parking_lot’s RwLock, and added the socks_proxy_addrs field to HTTP outcall requests and their protobuf definitions.
Updated the RPC server and client code to use the new socks proxy addresses, enhanced retry logic.

3b2afad38
Matches description fix log.

33941442d
Fix error log HttpQueryResponse::Rejected.reject_message

fb75bf40f
New -d option with the path constructed from fs_basedir and limit_prefix to the e2fsdroid command-line arguments. Removed the existing -f option.

5b6d604af
Fix error message.

fe4d0222f
Remove TODO comment.

3f14a0806
Removed the unused default_visibility and ALIASES declarations from the BUILD files. Moves the CLI code out of the library target so that command-line interfaces belong solely to the binary targets.

2453254c2
New constants, CALL_V3_STATUS_IS_INVALID_UTF8 and CALL_V3_STATUS_IS_NOT_LEAF, to standardize error messages.

ac12ab0b7
Changed the pattern matching for cancellation tasks in the ingress watcher to handle errors explicitly.

55e504b23
Matches description of change redirect code.

0d0440ff7
Changed the default listen address in the configuration from an IPv4 address to an IPv6 address, using a dedicated constant DEFAULT_IP_V6_ADDR. Updated the HTTP server startup logic to directly use the configured listen_addr.

155bd42f4
Bring the SNS CLI into closer alignment with the DFX ecosystem by moving CLI-specific configuration (such as selecting the network and identity) out of custom local logic and into dfx-core’s shared interface.

967fe2118
Upgrading dependency versions (notably Bitcoin and bitcoincore‑rpc). Adapting to API changes in the Bitcoin crate (moving from the old bitcoin::network modules to the new bitcoin::p2p modules.

7f0bad6c9
Fix comment.

8df78c99e
Removes the concept of reporting an “IC API version” from agent HTTP status responses.

026eda8b9
Matches description, bump candid.

0b1d6e41d
Updates the candid dependency from version 0.10.10 to a later release (0.10.12/0.10.13) across all relevant lock files.

0626768a9
Converts null outputs to empty strings in the configuration getter.

cf52a5011
This change removes all references to the “IPv6 address monitor/retry” functionality from the Boundary GuestOS and GuestOS packaging and documentation.

f3a8e93df
Matches description update Base Image Refs.

620e7729d
This change renames and refactors terminology throughout the consensus manager and its receiver/sender modules to replace “advert” terminology with “slot update” terminology.

1dd3386c4
Adds a new dependency on the consensus manager and refactors various parts of the P2P artifact and consensus initialization to use a new “abortable broadcast channel” abstraction

ae3ab5aa3
New RemoveNodeOperatorsPayload structure that uses PrincipalId directly via an optional NodeOperatorPrincipals field, replacing the old Vec<u8> representation. Removed the deprecated RemoveNodeOperatorsPayload message from the protobuf definitions to consolidate the API interface.

fcc88deb5
The extra files for the root and boot partitions are now injected via the ext4_image rule with a new extra_files parameter instead of using the separate inject_files function.
The prepare_tree_from_tar function in the sysimage toolchain now batches file extraction and extra file injection commands into a single bash script executed under fakeroot.

1ef59e5f3
Matches description remove log syncrhonization from nns recovery system test.

ca3b684a4
Updated dependency versions for ic-cdk and ic-cdk-macros
Refactored the random traffic test canister by restructuring the configuration. Enhanced the recording and reporting of call metrics by introducing timing information and more detailed response types.

proposal - 135052 – Cyberowl | CodeGov

Vote: ADOPT

Reason:

One commit to enable HASHES_IN_BLOCKS_FEATURE_ENABLED. The verification build hash also matches release_package_sha256_hex.

Hash Match: MATCH

2 Urls: MATCH

Feedback: NONE

Proposer Check: MATCH

About CodeGov…(click to expand)

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 decentralization of SNS projects such as WaterNeuron and KongSwap with a known neuron and credible Followees.

Learn more about CodeGov and it’s mission at codegov.org.

1 Like

Proposal 135051 – Zane | CodeGov

Vote: ADOPT

Reason: Build completes successfully, both hashes and reviewed commits match their descriptions, so I’ve decided voted to adopt.

Features:

2da213890 Added registry_version field to TranscriptData struct and require it for both insert_transcript_data_into_store method and insert_transcript_data of ThresholdSigDataStore trait, modified ThresholdSigDataStoreImpl to match the new trait’s interface and populate the TranscriptData version field.

215a697e1 Implement Storable trait for Tokens. Updated ledger_balance_store_entries metric to fetch balances from stable memory. Added memory ID for stable balances and assigned it to BALANCES_MEMORY. Extended migration logic used for allowances to also migrate balances, the instruction limit for the initial batch performed on upgrade has been bumped to 300 billion, if it is reached a timer is scheduled for the next round until all balances have been migrated. Removed logic for balance trimming as it is no longer needed and removed related fields: max_number_of_accounts and accounts_overflow_trim_quantity from LedgerCanisterInitPayloadBuilder and InitArgs structs. Delete ic-nns-inspector package.

5c68a6366 Added helper methods to ic-nervous-system-agent for chunked wasm upload, canister creation through the cycle minting canister, obtaining subnet id for a given canister by calling the registry and modified list_sns_canisters so it returns all SNS dapp canisters alongside the SNS system canisters.

f128ac960 Refactored checkpointing logic in the state manager to offload checkpoint loading and validation to the tip thread. Previously make_checkpoint would call load_checkpoint and return an instance of replicated state derived from the checkpoint layout that was just created, this would then be used in create_checkpoint_and_switch to ensure equality between the ReplicatedState instance used to create the checkpoint and the one obtained from the checkpoint itself. Now make_checkpoint only returns the checkpoint layout and has been renamed to make_unvalidated_checkpoint to better reflect its behaviour. Verification between the current and reference states have been removed from create_checkpoint_and_switch, instead both are passed through TipRequest::ValidateReplicatedState to the tip thread and asynchrounously validated by calling validate_checkpoint_and_remove_unverified_marker, which will crash the replica if a CheckpointError is returned.
Some helper methods have been added to state_manager/src/checkpoint.rs to perform validation on a checkpoint layout and ensure equality with a reference state.
Left a comment here

Bugfixes:

623b155ca Added logic to CanisterHttp struct of the https outcalls adapter to use the new API boundary nodes as sock proxies. The struct has been extended with a cache field to store socks client indexed by their URIs and http_connect_timeout_secs to set the connection timeout when new socks clients are created. Since the feature is being gradually rolled out REGISTRY_SOCKS_PROXY_DARK_LAUNCH_PERCENTAGE constant has been added in the pool manager, which is currently set to 0, this defines the probability api boundary nodes will be used as socks proxies on each make_new_requests invocation, since it is set to 0 the feature is effectively disabled at the moment. Furthermore get_socks_proxy_addrs method was added to fetch a vector containing api boundary nodes addresses from the registry, it is called if the rng check passes, otherwise an empty vec is provided to the http adapter. Once the CanisterHttpRequest is sent to the adapter client, it executes the request using both legacy and new socks proxies, provided a non empty vector was passed, by calling do_https_outcall_socks_proxy method, which will shuffle the vector to ensure the order of the proxies is random. Then it will iterate over the them and if the URI can be correctly parsed then it attempts to load the socks client from the cache, if it is not already in it, then it instantiates a new socks client and stores it in the cache. Finally it will try to perform the request, if it fails then it will retry for up to MAX_SOCKS_PROXY_RETRIES times. If no valid proxies are in the list or all request fails an error will be returned, otherwise the response is provided and compared with the legacy one to ensure feature parity.
New fields have been added to AdapterMetrics to keep track of the cache’s size, number of cache misses and number of connection attempts for each proxy address.

3b2afad38 Made orchestrator log message more accurate.

33941442d Use description value for reject_message field of HttpQueryResponse::Rejected in query method instead of repeating the error code.

Chores:

5b6d604af Same as description.

fe4d0222f Same as description.

2453254c2 Removed TODO comments and use newly added constants CALL_V3_STATUS_IS_NOT_LEAF and CALL_V3_STATUS_IS_INVALID_UTF8 in place of strings. Added warning comment to http_endpoints/public/src/metrics.rs.

ac12ab0b7 Modified IngressWatcher thread to propagate panic if cancellation task fails.

55e504b23 Replaced axum’s Redirect usage to temporary method in make_router so that it uses a 307 status code for "/" and "/_/" routes.

0d0440ff7 Default to ipv6 address format in the http handler config and make use of the cfg listen address when starting tcp listener.

7f0bad6c9 Same as description.

8df78c99e Removed ic_api_version field from HttpStatusResponse.

026eda8b9 Bumped Candid to 0.10.12.

f3a8e93df Bumped ICOS image refs.

Refactoring:

620e7729d Renamed some fields/types/methods to use “slot update” nomeclature over adverts.

1dd3386c4 Introduced AbortableBroadcastChannel from consensus manager which encapsulates both sender and receiver and use it to simplify AbortableBroadcastChannels/AbortableBroadcastChannelBuilder structs and create_ingress_handlers/create_artifact_handler methods. Removed definition and implementation of AbortableBroadcastChannelManager. Renamed canister_http_pool to https_outcalls_pool in ArtifactPools.

69748856b Moved RemoveNodeOperatorsPayload definition from node_operator.proto to registry/canister/src/mutations/do_remove_node_operators.rs and extended it to include a vector of Principals to remove for better readability. Both representation of the principal, serialized and non, can be used at the moment, but providing both will panic.

Proposal 135052 – Zane | CodeGov

Vote: ADOPT

Build completes successfully and hashes, this build is the same as the one proposed with 135051 but with the feature flag for hashes in blocks feature enabled, so I’ve decided voted to adopt.

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 decentralization 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

Proposal 135051 - Ipsita | ZenithCode

Summary

  1. Vote: Adopt
  2. Hash: All the hashes match
  3. Reasons to adopt: The release notes match the commits and the code changes. Builds successfully and all the hashes match

Commits

Features:

  • 2da213890
    Summary: Store registry version in threshold sig data store
    Notes: Enhances the threshold signature store by storing the registry version along with each NiDkg transcript.
    Review: Code changes match the commit message.

  • dd37e7009
    Summary: VetKD API and testing improvements
    Notes: Improves the core cryptographic library to better support VetKeys, including extensive test additions.
    Review: Code changes match the commit message.

  • 215a697e1
    Summary: Implement V4 for ICP ledger - Implement V4 to migrate balances to stable structures
    Notes: Implements storage migration for ICP ledger balances to stable memory, removing account number limitations due to expanded storage capacity.
    Review: Code changes match the commit message.

  • 5c68a6366
    Summary: Add management canister functions
    Notes: Expands ic_nervous_system helper functions by adding canister management capabilities, such as chunk store actions and canister creation.
    Review: Code changes match the commit message.

  • f128ac960
    Summary: Load & validate protos asynchronously
    Notes: Optimizes checkpoint creation by decoupling validation from loading, allowing validation processes to run asynchronously.Executes validate_checkpoint_and_remove_unverified_marker on a separate thread.
    Review: Code changes match the commit message.

  • c05b185fe
    Summary: Log guestos.service console logs to tty1
    Notes: Ensures logs from start-guestos.sh are directed to tty1 for improved visibility by node administrators.
    Review: Code changes match the commit message.

Bug Fixes:

  • 623b155ca
    Summary: Use API boundary nodes as SOCKS proxies
    Notes: Introduces the use of API boundary nodes as SOCKS proxies for outbound HTTP calls. Currently, legacy boundary nodes are still in use, while a fraction of requests are tested with the new system to ensure reliability.
    Review: Code changes match the commit message.

  • 3b2afad38
    Summary: orchestrator onboarding logs
    Notes: Enhances log messages within the orchestrator during onboarding for better tracking.
    Review: Code changes match the commit message.

  • 33941442d
    Summary: do not repeat error code in query call reject message
    Notes: Adjusts query rejection messages to use user_error.description().to_string(), avoiding redundant error code repetitions.
    Review: Code changes match the commit message.

Performance Improvements:

  • fb75bf40f
    Summary: Move file system population to mkfs.ext4 invocation
    Notes: Refactors the build_ext4_image.py script to integrate filesystem population within mkfs, reducing execution time by 25%.
    Review: Code changes match the commit message.

Chores:

  • 5b6d604af
    Summary: Fix typo in error message about uninitialized query stats
    Notes: Fixes a typo, changing “uninitalized” to “uninitialized.”
    Review: Code changes match the commit message.

  • fe4d0222f
    Summary: remove last todo comment in HTTP-handler
    Notes: Deletes an obsolete TODO comment no longer relevant to the HTTP handler.
    Review: Code changes match the commit message.

  • 3f14a0806
    Summary: move out the CLI module from the library
    Notes: Moves the CLI module from the core Bitcoin Adapter library, ensuring it is only included in the binary target.
    Review: Code changes match the commit message.

  • 2453254c2
    Summary: remove todo messages in call_v3.rs
    Notes: Eliminates hardcoded strings, replacing them with constants, and removes outdated TODO comments.
    Review: Code changes match the commit message.

  • ac12ab0b7
    Summary: handle panics when joining on cancellations in ingress_watcher event loop
    Notes: Updates the ingress watcher to handle panics in cancellation threads effectively. Consensus, Interface: HTTP Redirect Code Change from 303 to 307.
    Review: Code changes match the commit message.

  • 55e504b23
    Summary: change redirect code from 303 to 307
    Notes: Updates HTTP endpoints to return 307 Temporary Redirect instead of 303. Consensus, Interface: Config-Based Listening Address for HTTP Handler**
    Review: Code changes match the commit message.

  • 0d0440ff7
    Summary: listen on socketaddr from config for http handler
    Notes: Allows the HTTP server to listen on a configurable address instead of a fixed IPv4 address, defaulting to IPv6.
    Review: Code changes match the commit message.

  • 155bd42f4
    Summary: Add dfx-core dependency and use it in the SNS CLI to allow it to use the user’s DFX identities
    Notes: Enables SNS CLI to utilize user-defined DFX identities via dfx-core.
    Review: Code changes match the commit message.

  • 967fe2118
    Summary: bitcoin crate upgrade
    Notes: Upgrades the Bitcoin crate and other related dependencies.
    Review: Code changes match the commit message.

  • 7f0bad6c9
    Summary: add todo comment to remind of disabling balances serialization
    Notes: Adds a TODO reminder in the ICP ledger regarding balance serialization.
    Review: Code changes match the commit message.

  • 8df78c99e
    Summary: remove ic_api_version field in IC status response
    Notes: Cleans up the IC status response by eliminating the unused ic_api_version field.
    Review: Code changes match the commit message.

  • 026eda8b9
    Summary: Bump Candid to 0.10.12
    Notes: Updates Candid from 0.10.10 to 0.10.12, with some instances utilizing 0.10.13.
    Review: Code changes match the commit message.

  • 0b1d6e41d
    Summary: tidy up systemd dependencies
    Notes: Refines systemd dependencies, removing unnecessary ones and adjusting weak dependencies where possible.
    Review: Code changes match the commit message.

  • 0626768a9
    Summary: normalize config.sh to return empty string
    Notes: Ensures get_config_value returns an empty string instead of null, simplifying downstream script processing.
    Review: Code changes match the commit message.

  • cf52a5011
    Summary: delete retry-ipv6-config
    Notes: Deletes the retry-ipv6-config.service as it is no longer required.
    Review: Code changes match the commit message.

  • f3a8e93df
    Summary: Update Base Image Refs [2025-01-23-0147]
    Notes: Refreshes IC-OS base image references.
    Review: Code changes match the commit message.

Refactoring:

  • 620e7729d
    Summary: Update method names for consistency (#3664)
    Notes: Updates method names for better clarity (e.g., adverts_received renamed to slot_updates_rx).
    Review: Code changes match the commit message.

  • 1dd3386c4
    Summary: Improve stack construction readability and add comments (#3559)
    Notes: Introduces AbortableBroadcastChannel to streamline parameter handling and renames canister_http_pool to https_outcalls_pool.
    Review: Code changes match the commit message.

  • ae3ab5aa3
    Summary: Move Request implementations from canister crates to rs/nervous_system/agent
    Notes: Moves request implementations for NNS and SNS canisters to ic-nervous-system-agent, reducing dependencies on core canister crates.
    Review: Code changes match the commit message.

  • 69748856b
    Summary: Use Principal in RemoveNodeOperatorsPayload, instead of Vec
    Notes: Updates RemoveNodeOperatorsPayload to use Principal instead of Vec<u8>, making payloads more human-readable.
    Review: Code changes match the commit message.

  • fcc88deb5
    Summary: Remove inject_files rule invocations and move injection of binaries to ext4_image
    Notes: Optimizes sysimage build scripts for faster execution.
    Review: Code changes match the commit message.

Tests:

  • 1ef59e5f3
    Summary: Remove log synchronization in NNS recovery system test (#3602)
    Notes: Adjusts NNS recovery tests to use new_subnet_node.await_status_is_healthy() instead of wait_until_ready_for_interaction.
    Review: Code changes match the commit message.

  • ca3b684a4
    Summary: Add best-effort messages to random traffic canister (#3108)
    Notes: Expands messaging tests to include best-effort messaging cases.
    Review: Code changes match the commit message.

Proposal 135052

Summary

  1. Vote: Adopt
  2. Hash: All the hashes match
  3. Reasons to adopt: The release notes match the commits and the code changes. Builds successfully and all the hashes match

Other changes:

  • fb1629315
    Summary: Re-enabled hashes-in-blocks feature
    Notes: Updates HASHES_IN_BLOCKS_FEATURE_ENABLED feature flag from False to True.
    Review: Code changes match the commit message.
1 Like

Proposal: 135051

Summary:

  1. Build Hash: Build has from the proposal, local build and CDN matches and is “15cd9ef47d7a75080798d61e796817bc0f485bd73a4666c420845f0966fa1b80”.
  2. Summary: The release notes matches the code changes
  3. Vote: I vote to adopt the proposals

Detailed Review:

Features:

  • 2da213890 Crypto,Interface(crypto): store registry version in threshold sig data store (#3619)
    Notes: Code changes are done to store the registry version in the threshold signature data for implementation of VetKdProtocol by adding additional parameter to insert_transcript_data function during NI-DKG transcript loading
    Review: Code changes look good and match release notes.
  • dd37e7009 Crypto,Interface(crypto): VetKD API and testing improvements (#3283)
    Notes: Some code changes to support vetkeys. Introduces a new function augmented_hash to G1Affine implementation, so refactor to internal/cryptolib, and a lot of test cases are added.
    Review: Code changes look good and match release notes.
  • 215a697e1 Interface: ICP-ledger: Implement V4 for ICP ledger - migrate balances to stable structures (#3314)
    Notes: This is a one way change to ledger canister, where the balances now moved to stable memory stable structures allowing it to store more data and not limited to 4GB. Now unneeded functions maximum_number_of_accounts and accounts_overflow_trim_quantity are removed as well.
    Review: Code changes look good and match release notes.
  • 5c68a6366 Interface(ic-nervous-system-agent): Add management canister functions (#3591)
    Notes: Certain management canister functions are now implemented in nns agent like create_canister, get_subnet_for_canister etc etc. Also list_sns_canisters now returns dapp canisters too in addition to just sns framework canisters.
    Review: Code changes look good and match release notes.
  • f128ac960 Interface,Message Routing: Load & validate protos asynchronously (#2594)
    Notes: Enhances checkpoint creation by separating validation from loading, enabling validation processes to run asynchronously. Executes validate_checkpoint_and_remove_unverified_marker in a separate thread.
    Review: Code changes look good and match release notes.
  • c05b185fe Node: Log guestos.service console logs to tty1 (#3645)
    Notes: Gues os service logs were not displayed on console because the console was cleared when QEMU was launched. Now the guestos service logs are forwarded to tty1 and hence displayed on the console.
    Review: Code changes look good and match release notes.

Bugfixes:

  • 623b155ca Consensus,Interface: use api boundary nodes as socks proxies (#2712)
    Notes: This PR adds the functionality to use api boundary node for http outcalls ( with having all the IPs of them from registry ). For now it will still use the old boundary nodes controlled by a percentage flag which is set to 0. Further this percentage will be increased to use api boundary nodes, and bring more confidence in this new implementation.
    Review: Code changes look good and match release notes.
  • 3b2afad38 Consensus,Interface: orchestrator onboarding logs (#3588)
    Notes: Updates a log message in node onboarding flow for more clarity.
    Review: Code changes look good and match release notes.
  • 33941442d Consensus,Interface: do not repeat error code in query call reject message (#3465)
    Notes: In query call reject message the reject message will show user_error.description instead of the full user_error object.
    Review: Code changes look good and match release notes.

Performance improvements:

  • fb75bf40f Node: Move file system population to mkfs.ext4 invocation (#3476)
    Notes: Enhancements are done to file system population by modifying mkfs implementation in build_ext4_image.py file by moving os.path.join call from e2fsdroid_args to mke2fs_args .
    Review: Code changes look good and match release notes.

Chores:

  • 5b6d604af Consensus,Execution,Interface: Fix typo in error message about uninitialized query stats (#3673)
    Notes: A very simple typo fix from uninitalized to uninitialized.
    Review: Code changes look good and match release notes.
  • fe4d0222f Consensus,Interface: remove last todo comment in HTTP-handler (#3626)
    Notes: TODO: NET-1667 comment has been removed as not needed anymore.
    Review: Code changes look good and match release notes.
  • 3f14a0806 Consensus,Interface: move out the CLI module from the library (#3169)
    Notes: To include cli module only in the binary target it is removed out of bitcoin core adapter.
    Review: Code changes look good and match release notes.
  • 2453254c2 Consensus,Interface: remove todo messages in call_v3.rs (#3617)
    Notes: A todo is removed and CALL_V3_STATUS_IS_INVALID_UTF8, and CALL_V3_STATUS_IS_NOT_LEAF replaces some hard coded strings for error logging.
    Review: Code changes look good and match release notes.
  • ac12ab0b7 Consensus,Interface: handle panics when joining on cancellations in ingress_watcher event loop (#3618)
    Notes: Ingress watcher has been updated to propagate the panics on cancellation flow…
    Review: Code changes look good and match release notes.
  • 55e504b23 Consensus,Interface: change redirect code from 303 to 307 (#3600)
    Notes: Base router in http_endpoints now returns 307 ( temporary redirect ), rather than returning 303.
    Review: Code changes look good and match release notes.
  • 0d0440ff7 Consensus,Interface: listen on socketaddr from config for http handler (#3599)
    Notes: Code in http_handler is changed to listen to address which is passed by config rather than on a hard coded ipv4 address. The new config will pass ipv6.
    Review: Code changes look good and match release notes.
  • 155bd42f4 Interface: Add dfx-core dependency and use it in the SNS CLI to allow it to use the user’s DFX identities (#2927)
    Notes: To add identity related cli support to SNS CLI, now dfx-core is added as a dependency in SNS CLI.
    Review: Code changes look good and match release notes.
  • 967fe2118 Interface: bitcoin crate upgrade (#3080)
    Notes: bitcoin core create is updated everywhere along with a few other dependencies.
    Review: Code changes look good and match release notes.
  • 7f0bad6c9 Interface: add todo comment to remind of disabling balances serialization (#3579)
    Notes: Adds a todo comment to icrc ledger canister for future reference.
    Review: Code changes look good and match release notes.
  • 8df78c99e Interface: remove ic_api_version field in IC status response (#3569)
    Notes: This PR simply removes ic_api_version from HttpStatusResponse since the field was never updated or populated.
    Review: Code changes look good and match release notes.
  • 026eda8b9 Interface: Bump Candid to 0.10.12 (#3566)
    Notes:Candid has been bumped to 0.10.12 and 0.10.13 at different places.
    Review: Code changes look good and match release notes.
  • 0b1d6e41d Node: tidy up systemd dependencies (#3574)
    Notes: systemd dependencies has been updates, along with adding, removing, and weakening dependencies wherever appropriate. Also some minor logging changes.
    Review: Code changes look good and match release notes.
  • 0626768a9 Node: normalize config.sh to return empty string (#3502)
    Notes: get_config_value function has been modified to return empty string if the key is not set or is null.
    Review: Code changes look good and match release notes.
  • cf52a5011 Node: delete retry-ipv6-config (#3607)
    Notes: Deletes a very old retry-ipv6-config service.
    Review: Code changes look good and match release notes.
  • f3a8e93df Node: Update Base Image Refs [2025-01-23-0147] (#3575)
    Notes: Updates the ic os base image references.
    Review: Code changes look good and match release notes.

Refactoring:

  • 620e7729d Consensus,Interface: fix legacy naming of some methods (#3664)
    Notes: Legacy fields are renamed adverts_received to slot_updates_rx, ReceivedAdvertSender to InboundSlotUpdatesSender etc.
    Review: Code changes look good and match release notes.
  • 1dd3386c4 Consensus,Interface: make the stack construction a little more readable; added comments (#3559)
    Notes: Refactors a bit of code in artifact manager and consensus manager by using this AbortableBroadcastChannel encapsulation. Also renames a few variables.
    Review: Code changes look good and match release notes.
  • ae3ab5aa3 Interface(nervous-system): Move Request implementations from canister crates to rs/nervous_system/agent (#3657)
    Notes: To avoid potential cyclic dependencies Request implementation is now removed from canister crates to nervous_system agent.
    Review: Code changes look good and match release notes.
  • 69748856b Interface: Use Principal in RemoveNodeOperatorsPayload, instead of Vec (#3386)
    Notes: RemoveNodeOperatorsPayload function is modified to use Principal type rather then Vec .
    Review: Code changes look good and match release notes.
  • fcc88deb5 Node: Remove inject_files rule invocations and move injection of binaries to ext4_image (#3497)
    Notes: Build scripts for hostos and guestos are updated to make them faster by building images with inject files rather than having a two step process.
    Review: Code changes look good and match release notes.

Tests:

  • 1ef59e5f3 Interface: remove log synchronization from NNS recovery system test (#3602)
    Notes: ic_mainnet_nns_recovery recovery tests is modified to use new_subnet_node.await_status_is_healthy() instead of wait_until_ready_for_interaction.
    Review: Code changes look good and match release notes.
  • ca3b684a4 Interface,Message Routing: Add best effort messages to random traffic canister (#3108)
    Notes: Changes has been done to random_trafic_test to support best effort calls. This is achieved by now adding a lot of parameters to config and defining best_effort_call_percentage. proptests is replaced with propcompose in memory test, and a new test case is also added.
    Review: Code changes look good and match release notes.

Proposal: 135052

Summary:

  1. Build Hash: Build has from the proposal, local build and CDN matches and is “113483c502f015dcc4e8d47cd2154fdcc81304657884155acfc53f368d0a9505”.
  2. Summary: The release notes matches the code changes
  3. Vote: I vote to adopt the proposals

Detailed Review:

Other changes:

fb1629315 Consensus,Interface: Re-enabled hashes-in-blocks feature
Notes: Updates the feature flag HASHES_IN_BLOCKS_FEATURE_ENABLED from False to True
Review: Code changes look good and match release notes.

1 Like

Proposal 135051 | Tim - CodeGov

Vote: Adopt

Reason: Build is successful, hashes match, commits match descriptions and the reasoning behind the changes is sound. I’ve selectively reviewed Crypto and Node commits along other commits so as to maximise team coverage.

Review

Features:

[2da213890]
Adds registry_version to TranscriptData and stores this in lockable_threshold_sig_data_store as per the description.

[dd37e7009]
Various changes to the VetKD API and tests. Main changes include removal of the TransportSecretKey type and methods (generate, decrypt, etc), changes to some error types, and spitting of the function to combine encrypted key shares into an encrypted key into 3 variations: combine_unchecked, combine_all and combine_valid_shares.

[c05b185fe]
Adds detailed log messages for success or failure of GuestOS start up.

Bugfixes:

[623b155ca]
Adds logic to create a SOCKS proxy client for https outcall requests on API boundary nodes and to compare the results of using this on old boundary nodes with results coming through the new API boundary nodes.

[3b2afad38]
Slight change to onboarding log message to add clarity.

[33941442d]
Changes the http query call error message so as to show the error code just once instead of twice.

Performance improvements:

[fb75bf40f]
Changes Python-generated script for generating the file system image such that this is now generated by mkfs.ext4.

Chores:

[3f14a0806]
Moves cli module, as per description.

[155bd42f4]
Adds dfx-core as a dependency, as well as adding or updating several other dependencies, and then uses it in the SNS CLI as per description.

[967fe2118]
Upgrades version for bitcoin crate and related crates + associated code changes.

[0b1d6e41d]
Changes to several service files, mostly changing Requires to Wants and logging changes.

[0626768a9]
Matches description.

[cf52a5011]
Deletes the retry-ipv6-config service from boundary-guestos.

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

Refactoring:

[ae3ab5aa3]
Moves Request implementations from various NNS canister crates into rs/nervous_system/agent.

[fcc88deb5]
Matches description.

Tests:

[1ef59e5f3]
Removes wait_until_ready_for_interaction logging synchronisation from support_snses and recover_nns_subnet tests.

[ca3b684a4]
Changes to “random traffic” tests of calls and replies as per description, along with new tests in rs/messaging/tests/memory_tests.rs.

Proposal 135052

Vote: Adopt

Reason: Build is successful and hashes match. The proposal consists of a single commit which re-enables the hashes-in-blocks feature by setting the HASHES_IN_BLOCKS_FEATURE_ENABLED flag to true.

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

Proposal 135051 - Yuvika | ZenithCode

Summary

  1. Vote: Adopt
  2. Hash: Hashes match
  3. Reasons to adopt: Builds fine + hashes match + release notes match the commits.

Commits

Features:

  • 2da213890
    Summary: store registry version in threshold sig data store.
    Notes: Modify the insert_transcript_data function to include the registry version in threshold signature data, supporting the VetKdProtocol within the NI-DKG transcript loading process.
    Review: The description matches the code changes.

  • dd37e7009
    Summary: VetKD API and testing improvements.
    Notes: Add vetkeys support, including a new augmented_hash function (moved to internal/cryptolib) and extensive new test cases.
    Review: The description matches the code changes.

  • 215a697e1
    Summary: Implement V4 for ICP ledger - migrate balances to stable structures.
    Notes: The ledger canister now uses stable memory for balances, removing the 4GB limit and eliminating the now-unnecessary maximum_number_of_accounts and accounts_overflow_trim_quantity functions.
    Review: The description matches the code changes.

  • 5c68a6366
    Summary: Add management canister functions.
    Notes: Migrate several management canister functions (e.g., create_canister, get_subnet_for_canister) to the NNS agent and expands list_sns_canisters to include dapp canisters.
    Review: The description matches the code changes.

  • f128ac960
    Summary: Load & validate protos asynchronously.
    Notes: Improve checkpointing by decoupling validation from loading, allowing asynchronous validation in a separate thread (via validate_checkpoint_and_remove_unverified_marker), thus potentially speeding up the process.
    Review: The description matches the code changes.

  • c05b185fe
    Summary: Log guestos.service console logs to tty1.
    Notes: Guest OS service logs are now displayed on the console by forwarding them to tty1, resolving the issue where they were previously cleared upon QEMU launch.
    Review: The description matches the code changes.

Bugfixes:

  • 623b155ca
    Summary: use api boundary nodes as socks proxies.
    Notes: Introduce API boundary nodes for HTTP outcalls, retrieving their IPs from the registry, but initially uses them at 0% while gradually increasing usage to gain confidence in the new implementation.
    Review: The description matches the code changes.

  • 3b2afad38
    Summary: orchestrator onboarding logs.
    Notes: Improve node onboarding logging by updating a message for enhanced clarity.
    Review: The description matches the code changes.

  • 33941442d
    Summary: do not repeat error code in query call reject message.
    Notes: Query call reject messages now displays the user_error.description for clarity, instead of the entire user_error object.
    Review: The description matches the code changes.

Performance improvements:

  • fb75bf40f
    Summary: Move file system population to mkfs.ext4 invocation.
    Notes: Improve file system population by adjusting the mkfs implementation in build_ext4_image.py, specifically moving a path join operation to enhance clarity and efficiency.
    Review: The description matches the code changes.

Chores:

  • 5b6d604af
    Summary: Fix typo in error message about uninitialized query stats.
    Notes: A very simple typo fix from uninitalized to uninitialized.
    Review: The description matches the code changes.

  • fe4d0222f
    Summary: remove last todo comment in HTTP-handler.
    Notes: The obsolete NET-1667 comment has been removed.
    Review: The description matches the code changes.

  • 3f14a0806
    Summary: move out the CLI module from the library.
    Notes: Isolates the CLI module by removing it from the Bitcoin Core adapter and including it only in the binary target.
    Review: The description matches the code changes.

  • 2453254c2
    Summary: remove todo messages in call_v3.rs.
    Notes: Remove a todo and replaces hardcoded error logging strings with constants (CALL_V3_STATUS_IS_INVALID_UTF8 and CALL_V3_STATUS_IS_NOT_LEAF) for improved maintainability.
    Review: The description matches the code changes.

  • ac12ab0b7
    Summary: handle panics when joining on cancellations in ingress_watcher event loop.
    Notes: Update the ingress watcher to propagate panics when the cancellation flow is triggered.
    Review: The description matches the code changes.

  • 55e504b23
    Summary: change redirect code from 303 to 307.
    Notes: The HTTP endpoints base router now uses a 307 (Temporary Redirect) instead of 303 (See Other) for redirects.
    Review: The description matches the code changes.

  • 0d0440ff7
    Summary: listen on socketaddr from config for http handler.
    Notes: The http_handler now listens on an address provided by configuration, including IPv6 support, instead of a hardcoded IPv4 address.
    Review: The description matches the code changes.

  • 155bd42f4
    Summary: Add dfx-core dependency and use it in the SNS CLI to allow it to use the user’s DFX identities.
    Notes: Add identity management commands to the SNS CLI by adding dfx-core as a dependency.
    Review: The description matches the code changes.

  • 967fe2118
    Summary: bitcoin crate upgrade.
    Notes: Update bitcoin core create and other related dependencies across the project.
    Review: The description matches the code changes.

  • 7f0bad6c9
    Summary: add todo comment to remind of disabling balances serialization.
    Notes: Add a TODO comment to the ICRC ledger canister for future development.
    Review: The description matches the code changes.

  • 8df78c99e
    Summary: remove ic_api_version field in IC status response.
    Notes: Remove the unused and unpopulated ic_api_version field from HttpStatusResponse.
    Review: The description matches the code changes.

  • 026eda8b9
    Summary: Bump Candid to 0.10.12.
    Notes: Update Candid to versions 0.10.12 and 0.10.13 in different parts.
    Review: The description matches the code changes.

  • 0b1d6e41d
    Summary: tidy up systemd dependencies.
    Notes: Update systemd dependencies, adjusting them (adding, removing, and weakening as needed) and includes minor logging improvements.
    Review: The description matches the code changes.

  • 0626768a9
    Summary: normalize config.sh to return empty string.
    Notes: get_config_value function now returns an empty string when a requested key is unset or has a null value.
    Review: The description matches the code changes.

  • cf52a5011
    Summary: delete retry-ipv6-config.
    Notes: removes the obsolete retry-ipv6-config service.
    Review: The description matches the code changes.

  • f3a8e93df
    Summary: Update Base Image Refs [2025-01-23-0147].
    Notes: Update the base image references used for the IC OS.
    Review: The description matches the code changes.

Refactoring:

  • 620e7729d
    Summary: fix legacy naming of some methods.
    Notes: Rename legacy advertisement-related fields (e.g., adverts_received to slot_updates_rx) for clarity and consistency.
    Review: The description matches the code changes.

  • 1dd3386c4
    Summary: make the stack construction a little more readable; added comments.
    Notes: Refactor the artifact and consensus managers using an AbortableBroadcastChannel for cleaner code and renames some variables for improved readability.
    Review: The description matches the code changes.

  • ae3ab5aa3
    Summary: Move Request implementations from canister crates to rs/nervous_system/agent.
    Notes: Eliminate potential cyclic dependencies by moving the Request implementation from canister crates to the nervous_system agent.
    Review: The description matches the code changes.

  • 69748856b
    Summary: Use Principal in RemoveNodeOperatorsPayload, instead of Vec.
    Notes: Modify the RemoveNodeOperatorsPayload function to accept Principal types instead of a vector.
    Review: The description matches the code changes.

  • fcc88deb5
    Summary: Remove inject_files rule invocations and move injection of binaries to ext4_image.
    Notes: HostOS and GuestOS build scripts are optimized by using inject files for image creation, streamlining the process and eliminating a two-step build.
    Review: The description matches the code changes.

Tests:

  • 1ef59e5f3
    Summary: remove log synchronization from NNS recovery system test.
    Notes: ic_mainnet_nns_recovery tests now use new_subnet_node.await_status_is_healthy() instead of wait_until_ready_for_interaction for improved reliability during subnet node health checks.
    Review: The description matches the code changes.

  • ca3b684a4
    Summary: Add best effort messages to random traffic canister.
    Notes: random_traffic_test is updated to support best-effort calls via new config parameters and a best_effort_call_percentage, while also switching to propcompose for in-memory tests and adding a new test case.
    Review: The description matches the code changes.

Proposal 135052

Summary

  1. Vote: Adopt
  2. Hash: Hashes match
  3. Reasons to adopt: Builds fine + hashes match + release notes match the commits.

Commits

Other changes:

  • fb1629315
    Summary: Re-enabled hashes-in-blocks feature
    Notes: Enable the HASHES_IN_BLOCKS_FEATURE_ENABLED feature flag by setting it to True.
    Review: The description matches the code changes.
1 Like

Proposal #135051 — Zack | CodeGov

for release-2025-01-30_03-03-base.

Vote: Adopted.
Reason: Builds fine and the hash matches for GUESTOS, HOSTOS and SETUPOS.

Proposal #135052 — Zack | CodeGov

for release-2025-01-30_03-03-hashes-in-blocks.

Vote: Adopted.
Reason: Builds fine and the hash matches for GUESTOS, HOSTOS and SETUPOS.

Other changes:
fb1629315 Consensus,Interface: Re-enabled hashes-in-blocks feature
The only change sets HASHES_IN_BLOCKS_FEATURE_ENABLED to true in order to enable the feature.

About CodeGov (click to expand).

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 decentralization 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.