Here is a summary of the changes since the last release:
* Consensus: feat(consensus): Do not relay ECDSA support messages * Consensus: fix(consensus): Purge checkpoints only below CUP height * Crypto: Redirecting merge_maturity to stake_maturity. * Crypto: chore(crypto): Add error log if secret key is missing locally * Crypto: chore(crypto): Rename crypto metrics enum variants for proper snake_case conversions * Crypto: chore(crypto): clean-up modeling of time for key rotation * Crypto: chore(crypto): remove obsolete errors for old interactive DKG * Crypto: chore(crypto): reserve unused field `key_id_to_csp_secret_key` * Crypto: feat(crypto): Strip off timestamps in all return values of `PublicKeyStore` * Crypto: fix(crypto): Do not panic in NodePublicKeyData::current_node_public_keys * Crypto: fix(crypto): Initialize metrics to zero * Crypto: fix(crypto): fix race condition also for other key generation methods * Crypto: fix(orchestrator) Make orchestrator metrics endpoint available before attempting to register node * Crypto: perf(crypto): Add a cache for BLS signature verification * Crypto: perf(crypto): extend ic-certification to allow cached verification of BLS signatures * Execution: chore: Remove add_cycles function from cycles account manager * Execution: chore: delete ic-btc-validation crate * Execution: fix: Do not schedule heartbeats or timers for stopped canisters * Message Routing: Get rid of bottlenecks in bi-directional canister-to-canister communication. * Message Routing: More checks for message type accounting in QueueWithReservation. * Message Routing: Reduce the ingress history memory capacity to 4GB * Message Routing: Ensure that we don't remove a checkpoint when any CheckpointLayout still exists * Message Routing: Enforce Tip CheckpointLayout doesn't leave Tip Channel * Message Routing: Remove CheckpointRef * Message Routing: fix(): don't hold mutex when removing files * Networking: Return proper JSON output from ic-admin firewall commands * Networking: [h2 migration][unit tests][Refactor] Create constants representing TransportMessage types and separate legacy/h2 test cases * Networking: fix: Avoid message serialization when creating advert from artifact * Networking: fix: Re-introduce the MetricsHttpEndpoints * Networking: fix: Remove the ingress filter * Networking: fix: [H2 Migration][Unit Tests] Check for 'Some' when unwrapping event handler next request * Networking: fix: [H2 Migration][Unit Tests] Stricter check on receiving messages in drain queue test cases * Networking: fix: add latency tracking to P2P/Gossip events * Networking: fix: fix transport h2 flakiness and problems with the code * Node: Change detection and use of "system drive" * Node: Remove readonly and backup keys from SetupOS template * Node: Set a default to avoid script failure * Orchestrator: feat(): ic backup - better init command * Orchestrator: feat(orchestrator): a mock signer used to test the node registration * Orchestrator: fix(consensus): Fix protobuf serialization for ECDSA data payload * Orchestrator: fix(orchestrator): print the node id on a successful registration * Runtime: Add accumulated priority metrics * Runtime: Make `PageAllocatorRegistry` a regular object * Runtime: Memory barrier for store operators * Runtime: Rework sandbox process eviction * Various tech-debt management: code refactoring, docs, bug fixes, test updates
And a complete list of changes can of course be found on GitHub.
Please reply to this message if you have any questions or comments.