ICPWatch
Get alerts
IC-OS election

Elect new IC/GuestOS revision (commit e9fd136)

#143734 · Adopted and executed · proposed Aug 28, 2026

Yes 99.7%89.5% of voting power has votedNo 0.3%
tally read NNS governance canister, list_proposals
Action
Revise Elected GuestOS Versions
Proposer neuron
1730676817598423123
Created
Decided
Aug 31, 2026

Release Notes for release-2026-08-27_05-01-base (e9fd136f3fed6cb44625379e056ad63789d52d2c) This release is based on changes since release-2026-08-20_03-30-base (79c01052b5f7f49d3cf53d04d696cb2893294cd3).

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:

  • e4b5aae90 Core Protocol: Respect query walltime limit (#11283)
  • aff3a5e67 Core Protocol: Store the canisters' consumed cycles in SubnetMetrics (#11297)
  • cc0e78043 Core Protocol(subnet-splitting): implement PostSplit CUPs making & validation (#10980)
  • 339d220a8 Core Protocol: Do not route refunds to or from a cooling down subnet (#11277)
  • 662ae8fe9 Core Protocol: Add a cooling_down field to SubnetRecord (#11236)
  • 9c02eb9b9 Core Protocol: Do not route subnet messages to a cooling down subnet (#11230)
  • beb100a98 Core Protocol: introduce UnflushedCheckpointOp::DeleteSnapshot and raise a critical error if snapshots are filtered from tip (#11241)
  • 4061dc52d Core Protocol: Raise a critical error if canisters are filtered from tip (#11232)
  • 771df0e86 Core Protocol: Record canisters dropped by an online subnet split as deleted (#11195)
  • 5425f4211 Core Protocol: Do not route canister messages from a cooling down subnet (#11193)
  • 3f7ae28d2 Core Protocol,Node(system-tests): support API boundary node playnets on the local backend (#11208)
  • e9fd136f3 Node(system-tests): boot nested VMs on the local backend (#11265)
  • 5101fcedb Node: Implement new bazel rules for building SEV recovery GuestOS images (#10571)
  • 0199d9aea Node: Restructure VSOCK code as a starting point for improvements (#11247)

Bugfixes:

  • 1833da795 Core Protocol: Do not charge pay-as-you-go base fee on system subnets (#11209)
  • a1919f7f9 Core Protocol: Update time of HTTP outcalls contexts when moving them to delivered (#11214)
  • afb9ef909 Core Protocol: cap the consumed cycles metrics at the cycles actually charged (#11286)
  • 3f9d25bd4 Core Protocol: Validate consistency when receiving HTTP outcalls shares with a response body (#11288)
  • 0fda806df Core Protocol: Only observe consumed ECDSA/Schnorr/VetKD cycles after all checks succeeded (#11294)
  • 369f5bfe9 Core Protocol: lower the consumed cycles gauge on a full refund (#11274)
  • 04930eb8a Core Protocol: Verify that a DKG dealing's config exists before checking the cache (#11282)
  • edc827050 Core Protocol: Consensus cost is zero for fire-and-forget flexible outcalls (#11281)
  • 6a987d643 Core Protocol: Reserve enough HTTP outcall cycles for any deliverable result to fund itself (#11200)
  • b834a9ac4 Core Protocol: run the outcall cycles migration regardless of subnet activity (#11219)
  • ddf7f349d Core Protocol(registry-helper): get_replica_version_record supports blank replica_version_id. (#11244)
  • 1f89cb871 Core Protocol,Node: enable mld listener queries, disable multicast snooping (#11246)

Performance improvements:

  • 010d4b3cb Core Protocol: Only deserialize each public key once during basic signature batch verification (#11291)
  • a607c61fd Core Protocol(embedders): avoid a redundant copy in save_log_message (#11227)

Chores:

Refactoring:

  • a9ef61047 Core Protocol: Remove ReplicaVersion::default() (#11087)
  • 804f822e9 Core Protocol: Move memory_usage into IngressHistoryStats (#11211)
  • 099c8a92a Core Protocol: cleanup get_replica_version_* methods of registry helpers traits (#11278)
  • dd1e67e02 Core Protocol: resolve the canister log TODOs (#11210)

Tests:

  • c818497b5 Core Protocol(engines): System test for standard engine replica version. (#10939)

Documentation:

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/e9fd136f3fed6cb44625379e056ad63789d52d2c/ci/scripts/repro-check | python3 - -c e9fd136f3fed6cb44625379e056ad63789d52d2c --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.

Official view: dashboard.internetcomputer.org/proposal/143734