I’m currently working on a project that requires me to implement a canister on the Internet Computer that cannot be shut down under any circumstance. While I understand that there are certain scenarios in which a canister may be forcibly stopped or terminated (such as consuming too many resources), I want to make sure that my canister is as resilient and fault-tolerant as possible.
To achieve this, I plan to use redundant copies of the canister distributed across multiple nodes, and various programming techniques such as error handling and exception handling to ensure stability and operational readiness in the face of unexpected errors or exceptions.
The basic idea is to create an open-source and fully decentralized base no-key-wallet canister on the Internet Computer platform that utilizes ECDSA technology, allowing users to interact safely with other chains without storing their private keys on their devices. Users will authorize and sign transactions on the no-key-wallet canister, which will then pass them on securely to another canister. The ultimate goal of this project is to create a secure and easily accessible solution for users to conduct transactions across multiple chains.
However, I have a couple of questions that I hope someone can help me with:
Is it possible to design a canister that cannot be shut down under any circumstance? If so, what are some strategies or best practices for doing so?
How can I ensure that wallet canister user with enough “cycles” always has access to its account, even in the event of a canister failure or network disruption?
Any advice or guidance on these issues would be greatly appreciated. Thanks in advance for your help!