The code details the technical designs, novel protocol math, and cryptography behind the world’s first internet-scale blockchain.
In 2016, the DFINITY Foundation began its mission to extend the internet by developing the Internet Computer, the world’s first web-speed, internet-scale public blockchain, which enables smart contracts to securely serve interactive web content directly into the browsers of end users. The Internet Computer uses smart contracts to power an emerging decentralized ecosystem of interoperable dapps and services.
The Internet Computer’s recent Mercury Genesis launch marks the beginning of this integration with the public internet.
On May 10, following five years of intensive R&D, the DFINITY Foundation published the Internet Computer’s source code. The source code includes technical designs, novel protocol math (documentation), and cryptography. This important release reflects the DFINITY Foundation’s vision to make the code accessible and understandable, while inviting the developer community to inspect and verify it.
The main components of the code are:
- Replica: The “replica” (i.e., “client” in some blockchains) is a collection of protocol components that are necessary for a node to participate in a subnet.
- Nodemanager: The nodemanager is a component of the Internet Computer that manages the replica. Among other things, it continuously determines the correct replica binary to run for this node at any point in time, runs this binary, and monitors this process (e.g., restarting it if it exits unexpectedly).
- Network Nervous System canisters: The NNS is the autonomous algorithmic system that governs the Internet Computer network and manages everything from economics to network structure.
The most important element is the source code for the Rust implementation of the replica that is compiled and run by the node machines that together make up the Internet Computer.
Secondary items such as the build systems, testing infrastructure and the code that defines the Internet Computer Operating System (IC-OS) will be published at a later time.
The code for the Internet Computer is licensed under the Apache License 2.0, except for a few components that are licensed under the Internet Computer Community Source License and Internet Computer Shared Community Source License.
Because clarity and transparency are essential in this new public phase of the Internet Computer, we are providing resources to help give a fuller picture of its technology. To learn more, please see:
- Chain Key cryptography technical explanation and noninteractive distributed key generation (NIDKG) technical explanation
- NNS code, technical explanation, and summary guide
- Consensus layer code and technical explanation
- The Internet Computer Interface Specification
- Technical AMA from the Consensus Team
Stay tuned for more releases detailing the technologies behind the Internet Computer.
The Internet Computer’s Source Code Is Public was originally published in The Internet Computer Review on Medium, where people are continuing the conversation by highlighting and responding to this story.