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 134663.
Here is a summary of the changes since the last release:
Release Notes for release-2025-01-03_03-07-base (76a634c31dfb840da25fbe286855eb0be1818ca8)
This release is based on changes since release-2024-12-06_03-16-base (d9fe2076f677a08734bed90c67b1c3f4056ed621).
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.
This release diverges from the latest release. Merge base is 0dac15ce5eb45b4a71f9710e8ba9d8ccb39fbe87. Changes were removed from this release.
Features:
8c82f7f0c
Consensus,Interface(recovery): Allow skipping nodes during certification downloads (#3188)4fe73d512
Consensus,Interface(recovery): Avoid rsync on state uploads during local recoveries (#2948)f5786ca2c
Consensus,Interface: Implement a stubbed VetKd client as part of the IDKG signer (#2936)2aee5555e
Crypto,Interface(crypto): add vault method to create vetKD key share (#2989)dee4fe020
Execution,Interface: Pass SerializedModule via file descriptor (#2850)a3d5146cb
Execution,Interface: Add mint_cycles128 API (#3154)ef3e16a22
Interface: ic-boundary: add ip filter and ip prefix grouping to generic ratelimiter (#3265)6ab4bec6f
Interface(rate-limiting-canister): client facilitating the submission of rate-limiting rules (#3221)4c775dbb9
Interface: Add wasm_memory_threshold to ProposeToUpdateCanisterSettingsCmd (#2864)b006ae993
Interface(ICP-ledger): Implement V3 for ICP ledger - migrate allowances to stable structures (#2818)6015778e4
Interface: Add rate-limiting canister client to ic-boundary (#3005)52e0faca2
Interface,Message Routing: More eagerly remove replicated state at checkpoint heights (#906)c0132ba51
Interface,Node(node): Add node_reward_type field to AddNodePayload and node config (#3116)c44f6612a
Node: Disable start/stop logs for timers (#3244)
Bugfixes:
da448e8ca
Consensus,Interface(consensus): Temporarily increase CUP bounds to reduce noisy alert (#3190)215903692
Execution,Interface: Use memory_usage instead of stable_memory_usage in calculation for checking on_low_wasm_memory_hook (#3017)c7ce2309c
Execution,Interface: Disable anyhow backtraces in sandbox (#2991)5f9c28b3e
Execution,Interface,Message Routing: Record ‘dropped’ status for silently dropped best-effort responses. (#3162)03a9b37a0
Interface(ICP_Ledger): Accept variable length account identifier in account_balance query (#3094)b1f4339d4
Interface(ICP_Ledger): Change length type in GetBlocksArgs (#3092)dfc381085
Interface(ICRC-Ledger): changed certificate version (#2848)e369646b7
Interface: Use default rust edition instead of specifying it in the BUILD rules (#3047)3e1c367b2
Interface,Message Routing: Correctly set best_effort_message_memory_capacity (#3250)a68611e93
Interface,Message Routing: Add exceptions for edge cases for best effort responses. (#3155)5716305a5
Interface,Networking(consensus): disable hashes in blocks feature (#3302)226870df4
Interface,Networking: have single place where we remove the peer from the peer map. (#2988)57205e924
Interface,Networking: properly separate library from binary for the https_outcalls adapter (#3141)235d88fd1
Interface,Networking: adjust timeouts and add static asserts (#3107)390eb4fb8
Interface,Networking: Use futures::Stream and remove redundant functions in rs/async_utils (#3010)bc83b42ae
Interface,Node(node): fix update-config when reward.conf does not exist (#3290)e9ff67e25
Interface,Node(node): update-config in testnet environment (#3072)9064779bd
Interface,Node(node): Add node reward type update-config parsing (#3132)209a613ea
Owners: ic-boundary caching (#3170)12775d559
Node: silence libunwind denials and allow systemd NoNewPrivileges for fstrim_tool (#3180)c25680c49
Node: setupos networking dependency (#3159)
Performance improvements:
Chores:
cb47e5b0f
Crypto,Interface(crypto): Add support for Schnorr aux input to state machine tests (#3016)2b5243dce
Execution,Interface: Name canister sandbox reader threads (#3240)4dac910f1
Execution,Interface: Upgrade wasmtime to 27.0.0 (#2968)65cc20dd0
Execution,Interface,Networking: Increase max number of sandboxes to 7k (#3164)4b40553b9
Interface,Networking: move async_utils (#3156)7d1825b54
Interface,Networking: the adapter lib should expose just a simple function that starts the server (#3144)96861bb86
Interface,Networking: Streamline error handling when a connection or connection attempt fails (#2983)f42fe638d
Interface,Node(node): Remove legacy mercury.dfinity.systems logging targets (#2740)0f35ac817
Interface,Node(node): networking touch-ups (#2926)66f6970a0
Owners: upgrade crates (#2994)718723bc5
Node: Update Base Image Refs [2025-01-02-0807] (#3308)baaf25694
Node: Update Base Image Refs [2024-12-26-0807] (#3293)7e8aba748
Node: Update Base Image Refs [2024-12-19-0807] (#3247)a5ee88c56
Node: Update Base Image Refs [2024-12-17-0145] (#3211)c0e353c7c
Node: Update Base Image Refs [2024-12-12-0807] (#3137)
Refactoring:
Tests:
50fee78b4
Execution,Interface: Test some bench targets (#3237)299bdc559
Execution,Interface: Cover monitor and evict thread with tests (#3196)91dd6b3f0
Execution,Interface: Cover monitor and evict thread with tests (#3133)
Other changes:
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/76a634c31dfb840da25fbe286855eb0be1818ca8/ci/tools/repro-check.sh && chmod +x repro-check.sh && ./repro-check.sh -c 76a634c31dfb840da25fbe286855eb0be1818ca8 --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
.