Canister smart contracts are computational units that include both program and state. A software canister is similar to a container in that both are deployed as a software unit that contains compiled code and dependencies for a dapp or system.
Containerization allows for applications to be decoupled from the environment, allowing for easy and reliable deployment. The canister differs from a container, however, in that it also stores information about the current software state with a record of preceding events and user interactions.
While a containerized application might include information about the state of the environment in which the application runs, a software canister is able to persist a record of state changes that resulted from an application’s functions being used.
This concept of a canister consisting of both program and state is an important one because when a smart contract function is invoked by sending a message to one of its entry points, there are only two types of calls: non-committing query calls and committing update calls.
Learn more about canister smart contracts by visiting the Internet Computer webpage.
Below are some related articles on how to interact with canister smart contracts:
- How can I check the status of a canister smart contract?
- How do I install or deploy a canister smart contract?
- How can I restart a stopped canister smart contract?
- How can I stop a running canister smart contract?
- How do I create a new canister smart contract?
- How can I delete a canister smart contract?