You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 19, 2024. It is now read-only.
Copy file name to clipboardExpand all lines: spec/index.md
+18-5Lines changed: 18 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -931,6 +931,8 @@ It must be contained in the canister ranges of a subnet, otherwise the correspon
931
931
932
932
- If the call is to the `provisional_create_canister_with_cycles` method, then any principal can be used as the effective canister id for this call.
933
933
934
+
- If the call is to the `install_chunked_code` method and the `arg` is a Candid-encoded record with a `target_canister` field of type `principal`, then the effective canister id must be that principal.
935
+
934
936
- Otherwise, if the `arg` is a Candid-encoded record with a `canister_id` field of type `principal`, then the effective canister id must be that principal.
935
937
936
938
- Otherwise, the call is rejected by the system independently of the effective canister id.
@@ -959,7 +961,7 @@ All requests coming in via the HTTPS interface need to be either *anonymous* or
959
961
960
962
-`nonce` (`blob`, optional): Arbitrary user-provided data of length at most 32 bytes, typically randomly generated. This can be used to create distinct requests with otherwise identical fields.
961
963
962
-
-`ingress_expiry` (`nat`, required): An upper limit on the validity of the request, expressed in nanoseconds since 1970-01-01 (like [ic0.time()](#system-api-time)). This avoids replay attacks: The IC will not accept requests, or transition requests from status `received` to status `processing`, if their expiry date is in the past. The IC may refuse to accept requests with an ingress expiry date too far in the future. This applies not only to update calls, but all requests alike (and could have been called `request_expiry`).
964
+
-`ingress_expiry` (`nat`, required): An upper limit on the validity of the request, expressed in nanoseconds since 1970-01-01 (like [ic0.time()](#system-api-time)). This avoids replay attacks: The IC will not accept requests, or transition requests from status `received` to status `processing`, if their expiry date is in the past. The IC may refuse to accept requests with an ingress expiry date too far in the future. These rules for ingress expiry apply not only to update calls but all requests alike (and could have been called `request_expiry`), except for anonymous `query` and anonymous `read_state` requests for which the IC may accept any provided expiry timestamp.
963
965
964
966
-`sender` (`Principal`, required): The user who issued the request.
965
967
@@ -2615,7 +2617,12 @@ The canister logs are *not* collected in canister methods running in non-replica
2615
2617
The total size of all returned logs does not exceed 4KiB.
2616
2618
If new logs are added resulting in exceeding the maximum total log size of 4KiB, the oldest logs will be removed.
2617
2619
Logs persist across canister upgrades and they are deleted if the canister is reinstalled or uninstalled.
2618
-
The log visibility is defined in the `log_visibility` field of `canister_settings`: logs can be either public (visible to everyone) or only visible to the canister's controllers (by default).
2620
+
2621
+
The log visibility is defined in the `log_visibility` field of `canister_settings` and can be one of the following variants:
2622
+
2623
+
-`controllers`: only the canister's controllers can fetch logs (default);
2624
+
-`public`: everyone can fetch logs;
2625
+
-`allowed_viewers` (`vec principal`): only principals in the provided list and the canister's controllers can fetch logs, the maximum length of the list is 10.
2619
2626
2620
2627
A single log is a record with the following fields:
2621
2628
@@ -3413,6 +3420,7 @@ CanisterHistory = {
3413
3420
CanisterLogVisibility
3414
3421
= Controllers
3415
3422
| Public
3423
+
| AllowedViewers [Principal]
3416
3424
CanisterLog = {
3417
3425
idx : Nat;
3418
3426
timestamp_nanos : Nat;
@@ -3650,6 +3658,7 @@ delegation_targets(D)
3650
3658
A `Request` has an effective canister id according to the rules in [Effective canister id](#http-effective-canister-id):
0 commit comments