Skip to content

Version 16.0.0

Latest

Choose a tag to compare

@mraszyk mraszyk released this 01 Sep 14:42
· 1 commit to main since this release
a980c33

16.0.0 - 2026-09-01

Added

  • The endpoint /instances/<instance_id>/update/mock_flexible_canister_http to mock the responses of the committee nodes
    of a pending flexible canister HTTP outcall, i.e. one made through the flexible_http_request management canister endpoint.
  • The endpoint /instances/<instance_id>/read/get_canister_http reports two additional fields for every pending canister HTTP
    outcall: replication, describing how the outcall is replicated across the nodes of its subnet (FullyReplicated,
    NonReplicated, or Flexible with the outcall's total_requests, min_responses, and max_responses), and
    pricing_version, reporting whether it is priced with the Legacy or the PayAsYouGo pricing model.
  • Enabling beta features (the field beta_features of icp_config when creating an instance) now enables the
    flexible_http_request management canister endpoint on subnets that charge for HTTP outcalls; without beta features that
    endpoint is only available on subnets where HTTP outcalls are free (system subnets and subnets with a free cycles cost
    schedule). Beta features also enable the pay-as-you-go pricing model, which flexible outcalls are always priced with and
    which an http_request can select through its pricing_version field.

Changed

  • The endpoint /instances/<instance_id>/auto_progress (and creating an instance with automatic progress enabled)
    only returns after the certified time of the PocketIC instance has been updated for the first time.
  • Mocked canister HTTP responses report the cycles their node actually spent on the outcall, instead of reporting no spend at
    all. This applies to /instances/<instance_id>/update/mock_canister_http and
    /instances/<instance_id>/update/mock_flexible_canister_http. The spend is derived from the size of the mocked response;
    unlike a real node, a mocked one is charged no response time, so what a mocked outcall costs does not depend on how fast the
    machine running the test is.
  • Mocking a canister HTTP response whose reject message exceeds 1 KiB now fails. Such a response is not one any node could have
    reported.
  • A node that cannot pay for gossiping its mocked reject reports an out-of-cycles reject instead of the mocked one, matching
    what a node of a real subnet does under pay-as-you-go pricing.

Full changelog: CHANGELOG.md
Commit hash: fc21803c3c3a8dd452b3b58b959751c41fecb89c