This is an overdue roadmap update. The last one was published in September. Meanwhile, we are close to the end of the year. We are proud of some recent releases that included major features that kept us busy for many months. We will also provide an update of the 2022 highlights in today’s public global R&D.
We stick to the categories/domains used in the past roadmap updates and highlight the top items that we work on or have released recently.
Core protocol: Every now and then, community members voice concerns that the foundation invests too little into the core protocol. I want to point out that the percentages on top of the roadmap columns indicate the share of the team working in the respective area. You can see that by far the biggest effort keeps going into the protocol.
- Code Bitcoin: In the beginning of December, we finally launched the Bitcoin integration. This milestone completed a longer beta phase. We are excited to see various developer teams building on top of this technology. You may also want to check out the dedicated dashboard.
- Chain-Key Signatures: A key building block for the Bitcoin integration is tECDSA that allows canisters to create ECDSA signatures in a decentralized fashion. tECDSA, often branded as Chain-key Signatures, is a powerful capability beyond the Bitcoin integration. For example, @domwoe and Ben Lynn demonstrated a Uniswap frontend running on the IC combined with an ECDSA signing canister. During the Bitcoin integration beta phase, we further improved tECDSA security by implementing a rotation of IDKG encryption keys.
- 48 GiB stable memory: canisters can now make use of 48 GiB stable memory. Previously, we aimed for 32 GiB and communicated accordingly. But we determined that 48 GiB is possible. This is a 10x bump from the 4 GiB where we started at the beginning of this year.
- Higher-replication subnets: As demonstrated in November by @dsarlis, developers will soon be able to choose the replication factor of the subnet on which their dapp is deployed. Higher replication means stronger security guarantees but also burns more cycles. Lower replication subnets that consist only of a few nodes will follow in the future.
- Inter-canister query calls (ICQC): is a functionality asked for by many developers. @ulan presented the technical tradeoffs related to ICQC and a rough roadmap towards full ICQC support in September.
- 100k canisters per subnet: Currently an IC subnet may slow down if the number of canisters running on it goes beyond 50k. The exciting growth of some dapps hosted on the IC increases the need to address such bottlenecks.
- Support larger WASM modules: The relatively small size of WASM modules supported by canisters today prevents developers from building dapps depending on large libraries. We plan to lift this restriction soon.
- Safe canister upgrades: Currently, canisters cannot be upgraded safely without stopping them to ensure there are no outstanding calls. By introducing named callbacks, canisters can be upgraded without stopping, ensuring that canisters can always be upgraded.
- On-chain encryption: As explained by @ais and @gregory, this feature will bring end-to-end encryption (confidentiality) to user data stored on the IC.
Boundary
- Custom domains: as demonstrated by many developers, e.g. dscvr.one, dapps can be reached by custom domains. However, so far, they rely on web2 infrastructure. With this feature, it will be possible to manage your dapp’s custom domains through a canister hosted on the IC.
- Certified headers: Today, the IC only supports certification of response bodies (e.g., static assets). This feature introduces flexible certification that allows the dapp developer to specify the header fields and assets to be certified, a prerequisite for better caching.
- WebSockets provide a bi-directional communication channel between the client (dapp frontend) and the canister (dapp backend). We started to prototype a WebSocket solution in collaboration with Psychedelic. This enables canisters to push notifications directly to the client and to dynamically update dapp content.
System utils / dapps
- NNS FE dapp: The GIX team has been working hard to extend the NNS FE dapp for the SNS. In parallel, the dapp underwent multiple design and user experience improvements. We are happy to see how the community appreciates these changes and are committed to further improve the experience.
- ckBTC: As demoed in November by @Manu and Leo, the team is currently building the infrastructure for an ICRC-1 compatible token, called ckBTC, that “chain-key-wraps” Bitcoin. We aim to launch in January.
- ICRC-2 token standard: As first ICRC-1 ledgers see the light of the day, the ledger and token working group continues to define ICRC-2. ICRC-2 is an extension of ICRC-1 and specifies a way for an account owner to delegate token transfers to a third party on the owner’s behalf.
Governance
- SNS-1: The launch of the first SNS-decentralized dapp, SNS-1, was a major milestone with huge contributions from many teams. Even though this launch was only considered an experiment, we often called it a “dress rehearsal”, it attracted a lot of community members to participate and created a lot of excitement. We also faced some problems and discovered limitations, which @lara summarized in an extensive lessons learned post.
- Community proposals: We are aware that we didn’t give enough attention to some adopted community governance proposals. For the next few weeks, we anticipate to still be fairly busy with the SNS but we up-prioritized these proposals and plan to tackle them next.
DX
- dfx shared replica: The SDK team releases a stream of dfx updates, packed with quality-of-life improvements. For example, the IC emulator included with dfx is now available system wide.
- Motoko VS Code extension: We improved the VS Code extension for Motoko as demoed by @rvanasa in October. There are many additional Motoko improvements waiting for Motoko devs to be discovered.
- Motoko garbage collection: Building on Deterministic Time Slicing (DTS) released earlier this year, the Motoko team is working on a generational garbage collector (GC), which will reduce cycle costs and allow heavier computations.
- Documentation: We are working on a general overhaul of the developer documentation. We start from the very beginning with a significantly simplified “hello world” and plan to work our way up to more complicated tutorials and explanations.
Platform Engineering
- Gen2 hardware: The generic Gen2 replica node hardware was published a few weeks ago. Since then, the node team has tested numerous compatible machines by different vendors as regularly reported by @garym.
- NP remuneration and self-declaration: the new node provider (NP) onboarding process was published in spring. In the past weeks, @SvenF discussed with the community two NNS proposals that we plan to submit in the next few days. (1) The self-declaration process for NPs will ask future NPs to share more details about their identity and intent with the community. (2) The updated NP remuneration model will account for the increased cost of the Gen2 hardware.
- New node providers: We are happy to see that community members decide to become node providers and that their NNS proposals are being accepted. We know about a dozen of nodes that are being racked and stacked, following the onboarding process described on the Wiki. These nodes will join the network in the near future. Many more new node providers have expressed interest to join the network and are talking to hardware vendors to get quotes.
A very busy year comes to an end. The list above is already fairly long and it’s only the tip of the iceberg. May more team members should have been mentioned but the forum only allows me to mention 10 per post. A big “thank you” to all the community members for their active engagement and feedback. Have a great holiday and we look forward to continuing building the IC and its ecosystem with you in 2023.
Updated on 2022-12-15 adding “safe canister upgrades” that was missing in the initial post.