Hello there!
We are happy to announce that voting is now open for a new GuestOS release.
The NNS proposal is here: IC NNS Proposal 136731.
Here is a summary of the changes since the last GuestOS release:
Release Notes for release-2025-05-23_03-21-base (16825c5cbff83a51983d849b60c9d26b3268bbb6)
This release is based on changes since release-2025-05-15_03-20-base (59ad18a77fbeaf3ebbba863972ff20f7ab588d7a).
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:
2857e0d9d
Consensus,Interface: Use HTTPS to fetch CUPs (#5222)e0d7421a8
Consensus,Interface: Log the chain keys on every CUP height (#5150)566b26b51
Consensus,Interface: add more timeouts to the nns delegation fetching logic (#5153)c546ec087
Crypto,Interface(crypto): Add ic-secp256r1 package (#5061)4be430732
Interface(governance): Added use ic_cdk::println; to files that lack it. (#5233)1f71efe57
Interface(ICRC-Ledger): Implement the standard (#4840)b0a3d6dc4
Interface: Add “Cache-Control: no-store” to all canister /metrics endpoints (#5124)0eb0a97cf
Interface,Message Routing: Drop loopback stream from certified state (#5195)6b7e973c6
Interface,Message Routing: Use actual cross-subnet streams in state_manager tests (#5152)f199fd67d
Interface,Message Routing: Write protobufs asynchronously (#4792)4e32733cb
Interface,Node: Pipe elasticsearch config through SetupOS (#5219)4fea8f598
Interface,Node(node): Configuration revamp (GuestOS integration) (#1563)12ade0592
Interface: Allow zero pre_signatures_to_create_in_advance in vetKD ChainKeyConfig (#5014)a7a57d574
Node(IDX): Add prefix to artifact bundles (#5098)
Bugfixes:
70e34ea9c
Consensus,Interface: canister http response size validation (#5234)6404cdd34
Consensus,Interface: disable https in the proxy client if the http flag is true. (#5229)79472c740
Consensus,Interface: revert “refactor(orchestrator): Remove dependency to canister_client in orchestrator” (#5224)6248e2aeb
Consensus,Interface: properly log the time-out in NNS delegation manager (#5166)7922ceb8f
Execution,Interface,Message Routing: Fix snapshot size calculation (#5148)05fdb3a47
Interface: timestamps in nanoseconds in the registry (#5076)0dba014c1
Owners(IDX): don’t cache jemalloc build (#5174)cd79ce565
Owners(IDX): Re-enable x86-darwin builds (#5165)e42de0834
Node: Fixup test boundary TLS cert ownership (#5221)bcc5b84bf
Node: filebeat exec condition (#5175)b7e15a5d8
Execution,Interface: make upload_chunk idempotent (#5049)80d9fc533
Execution,Interface: clear canister logs before instantiating new canister during reinstall (#5064)
Performance improvements:
6b72db3f9
Consensus,Interface(idkg): Performance improvement when building a transcript of a certain ID (#4999)
Chores:
b55418a22
Consensus,Interface: ramp up the new socks proxy discovery to 100% (#5230)724ca0463
Consensus,Interface(networking): add http_method label for https outcall client metrics (#5143)6d6b47200
Crypto: Replace ic_vetkd_utils with ic_vetkeys (#5238)917b62727
Crypto,Interface(crypto): Remove workaround for RSA signature malleability (#5080)1aeb46aef
Execution(EXC): Improve UserError assert_contains message (#5090)1955ccd84
Execution,Interface: Remove code handling compute and memory allocations in install_code (#5204)db5fc07c4
Execution,Interface: Add error doc link for canister snapshot not enough cycles error. (#5145)6511ed5e2
Execution,Interface: Refactor take_canister_snapshot (#5184)88079a4d7
Interface: bump networking crates (#5188)59a4303a9
Interface: refactor ic-boundary more (#5209)28d24c288
Interface: ic-boundary: remove own caching, use ic-bn-lib (#5156)d0ca0b423
Interface: upgrade ic-bn-lib & ic-gateway (#5114)2949c97ba
Interface: Revert ic-cdk to 0.17.2 (#5139)cc904f521
Node: Update Base Image Refs [2025-05-22-0903] (#5253)2c3d1cbac
Node(IDX): Group artifact uploads (#5142)afa56c9f3
Node: Update Base Image Refs [2025-05-15-0807] (#5140)53ac5a6a1
Consensus,Interface: add more logs to nns delegation manager (#5050)204e1bda4
Consensus,Interface,Node: renaming mentions of ch1-obsdev1 into testnet (#5085)97a0e6132
Crypto: Modify VetKD key derivation (#5088)7a72da08c
Crypto: Use a fixed length domain separator for IBE message mask (#5028)230b080ae
Execution,Interface: refine ErrorHelp::ToolchainError (#5122)f8d49eb9c
Execution,Interface: Add error doc link for canister snapshot limit error. (#5078)e309dc2af
Execution,Interface: Add error doc for CanisterManagerError::ReservedCyclesLimitIsTooLow (#5074)d1dc4c2dc
Interface: Update Rust to 1.86.0 (#5059)f68a58fab
Interface: update Rust to 1.85.1 (#4340)182119f38
Interface,Message Routing: Don’t deliver ALREADY_EXISTS checkpoint in state sync (#5121)7443f1e1c
Owners(IDX): rules_rust: 0.56.0 → 0.61.0 (#4574)dabab3d1c
Node: Update boot args key to extra_boot_args_template (#5073)7269994c8
Node(IDX): move ic-os upload to BUILD.bazel (#5070)f5749622f
Node(IDX): extract file size checks from icos_build (#5054)ebd587595
Node(IDX): rename checksum_rule to artifact_bundle (#5002)f25b30020
Node: Update Base Image Refs [2025-05-08-0807] (#5033)
Refactoring:
1f4a5986f
Consensus,Interface(orchestrator): Remove dependency to canister_client in orchestrator (#5104)830f4caa9
Interface: remove direct dependency on ic-cdk-macros (#5144)d2c64c332
Interface,Node: Factor out generate_guestos_config into a library function and add tests (#5256)bb76b8f5a
Node: Load entire kernel cmdline from boot partition (#5101)b8306005e
Node: Refactor partition image targets to remove redundancy (#5127)492fdcea6
Consensus,Interface(replay): Unit test for Player::get_changes_since in rs/replay. (#5022)59ad18a77
Interface(nervous_system/canister): Test getting large Registry mutations from a canister. (#5043)4b0953166
Interface: Extend some unit tests with vet keys (#5010)
Tests:
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 GuestOS disk image, after installing curl if necessary (sudo apt install curl
), run:
# From https://github.com/dfinity/ic#verifying-releases
curl -fsSL https://raw.githubusercontent.com/dfinity/ic/master/ci/tools/repro-check | python3 - -c 16825c5cbff83a51983d849b60c9d26b3268bbb6 --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
.