Canister SDK - Developer Tools

The Internet Computer platform is poised to help you start a revolution with a new way to design, build, and release software.

Developing open internet services

Conceptually, the Internet Computer is an extension of the existing internet that enables a global network of computers to provide the computing power for running application software.

In much the same way that the adoption of the transport control protocol (TCP) and Internet protocol (IP) provided rules for transferring data between endpoints that helped to establish the “network of networks” that we know as the internet of today, the Internet Computer relies on a decentralization protocol called the Internet Computer protocol to define the software components that enable a global network of computers to combine their resources to read, replicate, modify, and return application state.

Developer workflow at-a-glance

At a high-level, there are three possible workflows for building applications that run on the Internet Computer.

Development paths

The first path is the most common: you connect to the Internet Computer running locally, then write, compile, and deploy iteratively in a local development environment.

If you prefer to do all of your development work without connecting to a local or remote network, you can follow the second path and only connect to the network when you are ready to compile and deploy. With this option, you only connect to the Internet Computer network and register for a unique identifier after you have a program ready to deploy.

In the third path, you connect to the Internet Computer running on a remote network, then register for a unique identifier before you have a program ready to compile. With this option, you can preregister with the network to receive a unique identifier, then compile and deploy using a known identifier when you are ready to move your application to the network.

Regardless of the development workflow you choose, keep in mind that you must connect to the Internet Computer network running locally or on a remote subnet to register your canister and that registering your canister creates a unique, network-specific identifier for the canister. For example, if you do all of your initial development work locally using a local canister identifier and later want to deploy your application on an Internet Computer network running remotely, you will need to connect to the remote network and register an identifier on that network before you can deploy the application.