forum.dfinity.org
Open in
urlscan Pro
2602:fd3f:3:ff01::2b
Public Scan
Submitted URL: http://forum.dfinity.org/
Effective URL: https://forum.dfinity.org/
Submission: On January 19 via api from US — Scanned from DE
Effective URL: https://forum.dfinity.org/
Submission: On January 19 via api from US — Scanned from DE
Form analysis
1 forms found in the DOMPOST /login
<form id="hidden-login-form" method="post" action="/login" style="display: none;">
<input name="username" type="text" id="signin_username">
<input name="password" type="password" id="signin_password">
<input name="redirect" type="hidden">
<input type="submit" id="signin-button" value="Anmelden">
</form>
Text Content
Zum Hauptinhalt springen RegistrierenAnmelden * * SUMMARY We would like to announce that we started looking into the canister backup/restore problem. We are currently in the design phase and are looking for your input on: * Importance of the problem for you and your use cases. This would help us to prioritise this relative to other problems. * Your thoughts on the potential snapshot-based solution presented here. * Your suggestions of alternative solutions. BACKGROUND & PROBLEM STATEMENT Currently, there is no easy way on the Internet Computer to backup data in the event of corruption or data loss, and to restore it by reverting to a previous state. Developers must manually implement a way to serialise the state of the canister, download it off-chain, and then manually upload it if they need to restore the data. This approach is error-prone, not scalable, expensive, and cannot be easily done in a reasonable amount of time. To address this issue, the IC should provide a way for canisters to take snapshots of their state and restore them when necessary. Additionally, it would be ideal if the data could be exported and imported to and from a local environment, but this would require further engineering effort and can be implemented in future iterations. By solving this problem at the protocol level, controllers can fix a broken canister by rolling back to a previously saved snapshot in the event of a bug. This is a common problem encountered, especially when upgrading a canister. POTENTIAL SOLUTION At this stage, our current idea is to concentrate solely on developing a prototype that offers endpoints for capturing on-chain snapshots of canister states and loading the snapshots to canisters. A snapshot will naturally consist of both the stable memory and the heap. Of course, the initial iteration will have a few constraints, which will help to make the problem as straightforward as possible while providing an improved developer experience. * Only controllers have the authority to take a snapshot and restore it. * While it is not explicitly enforced, creating a snapshot only after stopping the canister is recommended. This follows the same principle as with upgrading a canister, as making sense of the callbacks may not be possible. * During the first iteration, only one snapshot per canister will be allowed, and taking a new snapshot will replace the old one. In later iterations, we may expand this feature to enable multiple snapshots per canister. Below, you can find an API sketch for interacting with the IC when there is a need to take a snapshot or recover the state from a snapshot identified by snapshot_id. type timestamp = nat; type bytes = nat; type snapshot = record { id: snapshot_id; taken_on: timestamp; label: opt text; total_size: bytes; // Checksum for correctness verification. checksum: blob; }; service: { // Takes a snapshot of the given canister's state. take_snapshot: (canister_id, label: opt text) -> (snapshot_id); // Loads the snapshot to the canister identified by `canister_id`. load_snapshot: (snapshot_id, canister_id) -> (); // List the snapshots of the canister. list_snapshots: (canister_id) -> (vec snapshot); // Deletes the snapshot with the given ID. delete_snapshot: (snapshot_id) -> (); } FUTURE OUTLOOK In the future, it should be possible to incorporate support for more features on top of the existing proposal. Potential additional features that could be implemented include: * Endpoint for downloading a snapshot of a canister to the local environment. * Endpoint for uploading a snapshot from a local environment to the IC. * Ability to create new canisters based on snapshots. These new features are useful in scenarios such as downloading snapshots to a local environment for debugging or backup purposes, restoring canister states from an off-chain backup or creating new canisters with the data from previously taken snapshots. However, implementing these features would require considerable engineering effort, including developing tools for manipulating local snapshots, debugging and inspecting data from a snapshot. WHAT WE ARE ASKING THE COMMUNITY Please let us know if the problem of backup/restore is important for you. It would be great if you could share your use case and requirements. We would also like to know if the snapshot-based solution would work for you. We welcome any alternative proposals that you may have. Thank you for taking the time to share your thoughts with us. 1. alle Kategorien 2. alle Schlagwörter alle * Aktuell * Angesagt * Kategorien Thema Antworten Aufrufe Aktivität Announcing Technical Working Groups Developers Hello everyone, We at the DFINITY Foundation have been working to provide greater visibility into our roadmap and more opportunities for the community to provide feedback on DFINITY’s contributions to the Internet Compu… weiterlesen 33 15,7 T. Dez. '23 Welcome to the DFINITY Developer Forum Welcome to the DFINITY Discourse Forum! In this post, you’ll find some helpful information and resources about DFINITY as well as some guidelines for contributing to and interacting within our forum. Introduction to DF… weiterlesen 2 13,3 T. Juli '21 Voting for a new IC release - 2024-01-18_23-01 Governance releasereplica 0 14 12 min Fix: NF Neurons Not Available for Direct Voting in NNS Dapp Governance 0 19 27 min Assigned: BNT-5 - ICRC-7 NFT Implementation (Rust or Motoko) Bounties NFT 62 2,6 T. 32 min Proposal to create an SNS DAO for SNEED Governance community-considerationsns 111 7,2 T. 1 h ICP PR Collaborative - Open Offer To ICP Founders General 1 240 2 h Protocol suite for chain-key ED25519? Developers 8 225 2 h Trading is very slow is it the issue of limited boundary nodes? Developers Discussingcommunity-consideration 6 118 2 h Overview of EstateDAO - Revolutionizing Vacation Home Investment Governance community-considerationsns 0 28 2 h Local Development test environment Developers 1 39 3 h Canister Logging Support [Community Consideration] Developers community-consideration 11 307 3 h Comprehensive Overview of Gold DAO Governance community-considerationsns 82 8,8 T. 3 h Boundary Node Roadmap Roadmap Boundary-nodes 71 5,5 T. 3 h BitBasel - A marketplace for buying and selling fine digital artwork Showcase 4 124 3 h Allow installation of large Wasm modules Developers Discussingcommunity-consideration 68 2,4 T. 4 h ckETH integration Language Support 1 70 4 h Hobbi, the disruptive social platform that changed the rules of the game Showcase 4 215 5 h Technical Working Group DeAI Developers 68 2,6 T. 5 h Increased Canister Smart Contract Memory Roadmap in-progress 178 22,7 T. 5 h Node-motoko Question - Dependency on oCAML? Language Support 16 544 6 h Question about getting the Representation-Independent hashing of a Structure Data Developers 10 105 6 h Add “Staking” category to the ICP ecosystem showcase General 0 57 11 h What do you need from ICP in 2024? Developers 68 2,1 T. 12 h New Node Provider Proposals Roadmap community-considerationin-progress 345 14,7 T. 14 h IC WebSocket: Stable Release General 35 1,9 T. 15 h Call for Participation: NFT Token Standard Working Group [Status Updated] Developers 161 4,3 T. 19 h Non replicated HTTPS outcalls Developers 13 408 19 h How do I serialize an object into CBOR format in Motoko? Developers 8 165 22 h Collaboration on Reviving a Classic Amiga Game within the IC Ecosystem Showcase 3 110 23 h Invalid date Invalid date