From 72f133069f12c579b0896bc1e89c40dc1db2c1b6 Mon Sep 17 00:00:00 2001 From: Jessie Mongeon Date: Wed, 23 Oct 2024 09:29:36 -0500 Subject: [PATCH 1/3] add cycles reservation info --- docs/developer-docs/gas-cost.mdx | 2 + roadmap/roadmap.d.ts | 4 +- roadmap/roadmap.json | 102 ++++++++++++------------------- 3 files changed, 43 insertions(+), 65 deletions(-) diff --git a/docs/developer-docs/gas-cost.mdx b/docs/developer-docs/gas-cost.mdx index 59d5b9fd62..30d0896702 100644 --- a/docs/developer-docs/gas-cost.mdx +++ b/docs/developer-docs/gas-cost.mdx @@ -92,6 +92,8 @@ Note that query messages are currently free, but this may change in the future. To handle an incoming message or task such as a timer or heartbeat, the canister executes the function specified in the message. +ICP reserves cycles to execute the message's response callback or cleanup. The amount reserved is equivalent to the amount that would be needed for maximum execution. For example, a DTS execution of 40B instructions on a 13-node subnet would reserve 16B cycles. From this reservation, 5% is reserved for the cleanup callback. The cleanup callback can hit the 5% limit, though it is not expected. + By default, canisters are scheduled for execution in a "best-effort" manner. Canisters that require guaranteed execution can get a share of compute capacity by setting `compute_allocation` in their canister settings. Compute allocation is expressed in percents and denotes the percentage of an execution core reserved for the canister. Setting even 1% compute allocation provides a significant advantage over canisters that use the "best-effort" scheduling: diff --git a/roadmap/roadmap.d.ts b/roadmap/roadmap.d.ts index f3daa3bb7d..abe3561cc5 100644 --- a/roadmap/roadmap.d.ts +++ b/roadmap/roadmap.d.ts @@ -8,7 +8,7 @@ interface Milestone { name?: string | string; milestone_id: string; description: string; - eta: null | string; + eta: null | string | string; status?: string; elements: Element[]; } @@ -28,5 +28,3 @@ interface Element { description?: string; } - - diff --git a/roadmap/roadmap.json b/roadmap/roadmap.json index a1c2116aaa..f0da273c63 100644 --- a/roadmap/roadmap.json +++ b/roadmap/roadmap.json @@ -7,7 +7,7 @@ "name": "Reduced End-to-end Latency", "milestone_id": "Tokamak", "description": "This milestone marks a significant reduction of user-perceived end-to-end latency for processing ingress messages. It is achieved by multiple concerted measures at different levels of the protocol stack and brings the user experience of Web3 closer to Web2.", - "eta": null, + "eta": "October 2024", "status": "in_progress", "elements": [ { @@ -41,7 +41,7 @@ "proposal": "", "docs": "", "eta": "", - "status": "deployed", + "status": "in_progress", "is_community": false, "in_beta": false, "milestone_id": "Tokamak" @@ -52,7 +52,7 @@ "name": "Increased Storage Capacity and Throughput", "milestone_id": "Stellarator", "description": "Increased storage capacity of ICP subnets, storage per canister smart contract, and message throughput between subnets. Those improvements lead to each subnet being able to host larger workloads and better utilization of ICP’s hardware resources. The world's largest smart contracts can now grow even larger, far surpassing smart contracts on any other chain.", - "eta": null, + "eta": "November 2024", "status": "in_progress", "elements": [ { @@ -665,17 +665,6 @@ "is_community": true, "in_beta": false }, - { - "title": "Reduction of call latencies", - "overview": "Reduce call latencies for the most-used call patterns that negatively affect dapp responsiveness.", - "status": "", - "forum": "", - "proposal": "", - "docs": "", - "eta": "", - "is_community": true, - "in_beta": false - }, { "title": "WASI V2 support", "overview": "WASI V2 is the upcoming standard for running Wasm programs outside of browser environments. It is expected to become the de-facto standard and be targeted by many libraries and thus should be supported by ICP.", @@ -775,17 +764,6 @@ "is_community": false, "in_beta": false }, - { - "title": "P2P unicast", - "overview": "Utilizing unicast at the P2P layer to communicate artefacts instead of gossip to decrease bandwidth requirements and improve throughput.", - "forum": "", - "proposal": "", - "docs": "", - "eta": "", - "status": "", - "is_community": false, - "in_beta": false - }, { "title": "Blob storage", "overview": "Storage of large amounts of data in a subnet using a new blob storage architecture with the cost of around 2x the SSD cost. More efficient and cheaper compared to regular storage on ICP.", @@ -1045,10 +1023,10 @@ "overview": "RPC canister connecting to Solana RPC providers to integrate with the Solana network. Enables two-way communication with the Solana network.", "forum": "", "proposal": "", - "docs": "", + "docs": "https://github.com/mfactory-lab/ic-solana", "eta": "", - "status": "upcoming", - "is_community": false, + "status": "in_progress", + "is_community": true, "in_beta": false, "milestone_id": "Helium" } @@ -1418,8 +1396,8 @@ "forum": "https://forum.dfinity.org/t/threshold-key-derivation-privacy-on-the-ic/16560", "proposal": "", "docs": "https://internetcomputer.org/docs/current/developer-docs/integrations/vetkeys/technology-overview", - "eta": "2024", - "status": "", + "eta": "Q2 2025", + "status": "in_progress", "is_community": false, "in_beta": false, "milestone_id": "Niobium", @@ -1431,8 +1409,8 @@ "forum": "", "proposal": "", "docs": "", - "eta": "2024", - "status": "", + "eta": "Q2 2025", + "status": "in_progress", "is_community": false, "in_beta": false, "milestone_id": "Niobium", @@ -1545,7 +1523,7 @@ "name": "Edge Infrastructure is Fully Decentralized", "milestone_id": "Solenoid", "description": "ICP is accessible through a decentralized edge infrastructure, which is split into NNS-controlled API Boundary Nodes and HTTP Gateways. The NNS will appoint node machines to run API Boundary Nodes and anyone will be able to run HTTP Gateways, enabling a much more decentralized ICP edge infrastructure with a diverse set of service providers.", - "eta": null, + "eta": "December 2024", "status": "in_progress", "elements": [ { @@ -2389,7 +2367,7 @@ "name": "Oisy, a Multi-chain Wallet Powered by Chain Fusion", "milestone_id": "Toroidal", "description": "Oisy is a wallet with a unique combination of properties. It is the first smart contract wallet that is self-custodial, multi-chain and uses passkeys for authentication, while being fully accessible through the browser. Oisy supports ICP-based dapps through ICRC-21, EVM-based dapps through WalletConnect, and easily converts between native Ethereum tokens and their ck twins.", - "eta": null, + "eta": "November 2024", "status": "in_progress", "elements": [ { @@ -2420,7 +2398,7 @@ "name": "The Orbit Multi-Custody Asset Framework", "milestone_id": "Poloidal", "description": "Orbit is a comprehensive digital assets framework, enabling simple to advanced rules over user digital assets. Initially tailored for token management, it provides robust support for 1-out-of-M to complex approval policies for financial transactions. It also supports secure management of infrastructure like canister installations and upgrades. Teams and businesses can confidently handle ICP, ckETH, and compatible tokens using Orbit's advanced security features, vital for those seeking a stable and reliable management over their treasury.", - "eta": null, + "eta": "November 2024", "status": "in_progress", "elements": [ { @@ -2755,6 +2733,19 @@ "in_beta": false, "milestone_id": "Plasma" }, + { + "title": "ICRC-1 token imports", + "overview": "One of the most requested community features is to allow users of the NNS dapp to import any token that supports ICRC-1 to store in their account.", + "description": "One of the most requested community features is to allow users of the NNS dapp to import any token that supports ICRC-1 to store in their account.", + "forum": "https://forum.dfinity.org/t/feature-proposal-importing-tokens-to-the-nns-dapp/31230", + "proposal": "", + "docs": "", + "eta": "", + "status": "deployed", + "is_community": true, + "in_beta": false, + "milestone_id": "Plasma" + }, { "title": "Improved SNS upgrades", "overview": "Upgrading SNS canisters is crucial for SNS DAOs to receive the latest features and security updates. These updates are not straightforward and may require multiple proposals. This feature is about simplifying SNS upgrades.", @@ -2780,19 +2771,6 @@ "is_community": true, "in_beta": false, "milestone_id": "Plasma" - }, - { - "title": "ICRC-1 token imports", - "overview": "One of the most requested community features is to allow users of the NNS dapp to import any token that supports ICRC-1 to store in their account.", - "description": "One of the most requested community features is to allow users of the NNS dapp to import any token that supports ICRC-1 to store in their account.", - "forum": "https://forum.dfinity.org/t/feature-proposal-importing-tokens-to-the-nns-dapp/31230", - "proposal": "", - "docs": "", - "eta": "", - "status": "in_progress", - "is_community": true, - "in_beta": false, - "milestone_id": "Plasma" } ] }, @@ -3558,7 +3536,7 @@ "name": "Canister DevOps", "milestone_id": "Beryllium", "description": "This milestone provides substantial simplifications and improvements for the developer lifecycle of canisters, particularly regarding their development and operations. Snapshotting capabilities, a powerful logging infrastructure and improved error handling as well as push of relevant events brings canisters closer to Web2 services in terms of DevOps.", - "eta": null, + "eta": "October 2024", "status": "in_progress", "elements": [ { @@ -3586,19 +3564,6 @@ "milestone_id": "Beryllium", "imported": true }, - { - "title": "Canister lifecycle hooks", - "overview": "Push model for canisters receiving notifications from the ICP, e.g., when they are low on cycles. More resource efficient than periodic pulling.", - "forum": "https://forum.dfinity.org/t/canister-lifecycle-hooks/17089", - "proposal": "https://dashboard.internetcomputer.org/proposal/106146", - "docs": "", - "eta": "", - "status": "in_progress", - "is_community": true, - "in_beta": false, - "milestone_id": "Beryllium", - "imported": true - }, { "title": "Standardized canister response codes", "overview": "Standardize canister response codes, particularly error codes, to enable better composability of services from canister smart contracts.", @@ -3631,6 +3596,19 @@ "eta": null, "status": "in_progress", "elements": [ + { + "title": "Canister lifecycle hooks", + "overview": "Push model for canisters receiving notifications from the ICP, e.g., when they are low on cycles. More resource efficient than periodic pulling.", + "forum": "https://forum.dfinity.org/t/canister-lifecycle-hooks/17089", + "proposal": "https://dashboard.internetcomputer.org/proposal/106146", + "docs": "", + "eta": "", + "status": "upcoming", + "is_community": true, + "in_beta": false, + "milestone_id": "Thorium", + "imported": true + }, { "title": "Cycles and instruction insights", "overview": "Give canister controllers insights on cycles consumption of their canisters to help them optimize cycles consumption.", From 9a17caa74eaf4bfc65eaf3e3bb108355528d1d44 Mon Sep 17 00:00:00 2001 From: Jessie Mongeon <133128541+jessiemongeon1@users.noreply.github.com> Date: Wed, 23 Oct 2024 09:31:24 -0500 Subject: [PATCH 2/3] Update roadmap.d.ts --- roadmap/roadmap.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roadmap/roadmap.d.ts b/roadmap/roadmap.d.ts index 058f7921ee..0f67486a40 100644 --- a/roadmap/roadmap.d.ts +++ b/roadmap/roadmap.d.ts @@ -8,7 +8,7 @@ interface Milestone { name?: string | string; milestone_id: string; description: string; - eta: null | string | string; + eta: null | string; status?: string; elements: Element[]; } From 95770c6fba740fe7ea7e0164ed6a585d6c78b40e Mon Sep 17 00:00:00 2001 From: Jessie Mongeon <133128541+jessiemongeon1@users.noreply.github.com> Date: Wed, 23 Oct 2024 09:31:53 -0500 Subject: [PATCH 3/3] Update roadmap.json --- roadmap/roadmap.json | 102 ++++++++++++++++++++++++++----------------- 1 file changed, 62 insertions(+), 40 deletions(-) diff --git a/roadmap/roadmap.json b/roadmap/roadmap.json index 1e15069817..24c0eecdd7 100644 --- a/roadmap/roadmap.json +++ b/roadmap/roadmap.json @@ -7,7 +7,7 @@ "name": "Reduced End-to-end Latency", "milestone_id": "Tokamak", "description": "This milestone marks a significant reduction of user-perceived end-to-end latency for processing ingress messages. It is achieved by multiple concerted measures at different levels of the protocol stack and brings the user experience of Web3 closer to Web2.", - "eta": "October 2024", + "eta": null, "status": "in_progress", "elements": [ { @@ -41,7 +41,7 @@ "proposal": "", "docs": "", "eta": "", - "status": "in_progress", + "status": "deployed", "is_community": false, "in_beta": false, "milestone_id": "Tokamak" @@ -52,7 +52,7 @@ "name": "Increased Storage Capacity and Throughput", "milestone_id": "Stellarator", "description": "Increased storage capacity of ICP subnets, storage per canister smart contract, and message throughput between subnets. Those improvements lead to each subnet being able to host larger workloads and better utilization of ICP’s hardware resources. The world's largest smart contracts can now grow even larger, far surpassing smart contracts on any other chain.", - "eta": "November 2024", + "eta": null, "status": "in_progress", "elements": [ { @@ -665,6 +665,17 @@ "is_community": true, "in_beta": false }, + { + "title": "Reduction of call latencies", + "overview": "Reduce call latencies for the most-used call patterns that negatively affect dapp responsiveness.", + "status": "", + "forum": "", + "proposal": "", + "docs": "", + "eta": "", + "is_community": true, + "in_beta": false + }, { "title": "WASI V2 support", "overview": "WASI V2 is the upcoming standard for running Wasm programs outside of browser environments. It is expected to become the de-facto standard and be targeted by many libraries and thus should be supported by ICP.", @@ -764,6 +775,17 @@ "is_community": false, "in_beta": false }, + { + "title": "P2P unicast", + "overview": "Utilizing unicast at the P2P layer to communicate artefacts instead of gossip to decrease bandwidth requirements and improve throughput.", + "forum": "", + "proposal": "", + "docs": "", + "eta": "", + "status": "", + "is_community": false, + "in_beta": false + }, { "title": "Blob storage", "overview": "Storage of large amounts of data in a subnet using a new blob storage architecture with the cost of around 2x the SSD cost. More efficient and cheaper compared to regular storage on ICP.", @@ -1023,10 +1045,10 @@ "overview": "RPC canister connecting to Solana RPC providers to integrate with the Solana network. Enables two-way communication with the Solana network.", "forum": "", "proposal": "", - "docs": "https://github.com/mfactory-lab/ic-solana", + "docs": "", "eta": "", - "status": "in_progress", - "is_community": true, + "status": "upcoming", + "is_community": false, "in_beta": false, "milestone_id": "Helium" } @@ -1396,8 +1418,8 @@ "forum": "https://forum.dfinity.org/t/threshold-key-derivation-privacy-on-the-ic/16560", "proposal": "", "docs": "https://internetcomputer.org/docs/current/developer-docs/integrations/vetkeys/technology-overview", - "eta": "Q2 2025", - "status": "in_progress", + "eta": "2024", + "status": "", "is_community": false, "in_beta": false, "milestone_id": "Niobium", @@ -1409,8 +1431,8 @@ "forum": "", "proposal": "", "docs": "", - "eta": "Q2 2025", - "status": "in_progress", + "eta": "2024", + "status": "", "is_community": false, "in_beta": false, "milestone_id": "Niobium", @@ -1523,7 +1545,7 @@ "name": "Edge Infrastructure is Fully Decentralized", "milestone_id": "Solenoid", "description": "ICP is accessible through a decentralized edge infrastructure, which is split into NNS-controlled API Boundary Nodes and HTTP Gateways. The NNS will appoint node machines to run API Boundary Nodes and anyone will be able to run HTTP Gateways, enabling a much more decentralized ICP edge infrastructure with a diverse set of service providers.", - "eta": "December 2024", + "eta": null, "status": "in_progress", "elements": [ { @@ -2367,7 +2389,7 @@ "name": "Oisy, a Multi-chain Wallet Powered by Chain Fusion", "milestone_id": "Toroidal", "description": "Oisy is a wallet with a unique combination of properties. It is the first smart contract wallet that is self-custodial, multi-chain and uses passkeys for authentication, while being fully accessible through the browser. Oisy supports ICP-based dapps through ICRC-21, EVM-based dapps through WalletConnect, and easily converts between native Ethereum tokens and their ck twins.", - "eta": "November 2024", + "eta": null, "status": "in_progress", "elements": [ { @@ -2398,7 +2420,7 @@ "name": "The Orbit Multi-Custody Asset Framework", "milestone_id": "Poloidal", "description": "Orbit is a comprehensive digital assets framework, enabling simple to advanced rules over user digital assets. Initially tailored for token management, it provides robust support for 1-out-of-M to complex approval policies for financial transactions. It also supports secure management of infrastructure like canister installations and upgrades. Teams and businesses can confidently handle ICP, ckETH, and compatible tokens using Orbit's advanced security features, vital for those seeking a stable and reliable management over their treasury.", - "eta": "November 2024", + "eta": null, "status": "in_progress", "elements": [ { @@ -2733,19 +2755,6 @@ "in_beta": false, "milestone_id": "Plasma" }, - { - "title": "ICRC-1 token imports", - "overview": "One of the most requested community features is to allow users of the NNS dapp to import any token that supports ICRC-1 to store in their account.", - "description": "One of the most requested community features is to allow users of the NNS dapp to import any token that supports ICRC-1 to store in their account.", - "forum": "https://forum.dfinity.org/t/feature-proposal-importing-tokens-to-the-nns-dapp/31230", - "proposal": "", - "docs": "", - "eta": "", - "status": "deployed", - "is_community": true, - "in_beta": false, - "milestone_id": "Plasma" - }, { "title": "Improved SNS upgrades", "overview": "Upgrading SNS canisters is crucial for SNS DAOs to receive the latest features and security updates. These updates are not straightforward and may require multiple proposals. This feature is about simplifying SNS upgrades.", @@ -2771,6 +2780,19 @@ "is_community": true, "in_beta": false, "milestone_id": "Plasma" + }, + { + "title": "ICRC-1 token imports", + "overview": "One of the most requested community features is to allow users of the NNS dapp to import any token that supports ICRC-1 to store in their account.", + "description": "One of the most requested community features is to allow users of the NNS dapp to import any token that supports ICRC-1 to store in their account.", + "forum": "https://forum.dfinity.org/t/feature-proposal-importing-tokens-to-the-nns-dapp/31230", + "proposal": "", + "docs": "", + "eta": "", + "status": "in_progress", + "is_community": true, + "in_beta": false, + "milestone_id": "Plasma" } ] }, @@ -3536,7 +3558,7 @@ "name": "Canister DevOps", "milestone_id": "Beryllium", "description": "This milestone provides substantial simplifications and improvements for the developer lifecycle of canisters, particularly regarding their development and operations. Snapshotting capabilities, a powerful logging infrastructure and improved error handling as well as push of relevant events brings canisters closer to Web2 services in terms of DevOps.", - "eta": "October 2024", + "eta": null, "status": "in_progress", "elements": [ { @@ -3564,6 +3586,19 @@ "milestone_id": "Beryllium", "imported": true }, + { + "title": "Canister lifecycle hooks", + "overview": "Push model for canisters receiving notifications from the ICP, e.g., when they are low on cycles. More resource efficient than periodic pulling.", + "forum": "https://forum.dfinity.org/t/canister-lifecycle-hooks/17089", + "proposal": "https://dashboard.internetcomputer.org/proposal/106146", + "docs": "", + "eta": "", + "status": "in_progress", + "is_community": true, + "in_beta": false, + "milestone_id": "Beryllium", + "imported": true + }, { "title": "Standardized canister response codes", "overview": "Standardize canister response codes, particularly error codes, to enable better composability of services from canister smart contracts.", @@ -3596,19 +3631,6 @@ "eta": null, "status": "in_progress", "elements": [ - { - "title": "Canister lifecycle hooks", - "overview": "Push model for canisters receiving notifications from the ICP, e.g., when they are low on cycles. More resource efficient than periodic pulling.", - "forum": "https://forum.dfinity.org/t/canister-lifecycle-hooks/17089", - "proposal": "https://dashboard.internetcomputer.org/proposal/106146", - "docs": "", - "eta": "", - "status": "upcoming", - "is_community": true, - "in_beta": false, - "milestone_id": "Thorium", - "imported": true - }, { "title": "Cycles and instruction insights", "overview": "Give canister controllers insights on cycles consumption of their canisters to help them optimize cycles consumption.",