dfinity / ic
Internet Computer blockchain source: the client/replica software run by nodes
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing dfinity/ic in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler view= The Internet Computer Protocol (ICP) :toc: macro ifdef::env-github[] ++++ ++++ endif::[] The Internet Computer is the world’s first blockchain that runs at web speed and can increase its capacity without bound. Like the Internet (which is composed of many machines adhering to TCP/IP protocol) and blockchain protocols (such as Bitcoin and Ethereum). :toc-title: toc::[] == Resources on the Internet Computer === R&D documentation You can learn more about the Internet Computer's Protocol, features, and designs here, here are some helpful resources: Protocol Documentation: • https://medium.com/dfinity/a-technical-overview-of-the-internet-computer-f57c62abc20f[A Technical Overview of the Internet Computer (blog post)] • https://medium.com/dfinity/software-canisters-an-evolution-of-smart-contracts-internet-computer-f1f92f1bfffb[Canisters, an Evolution of Smart Contracts] • https://medium.com/dfinity/applied-crypto-one-public-key-for-the-internet-computer-ni-dkg-4af800db869d[Noninteractive Distributed Key Generation] • https://medium.com/dfinity/the-internet-computers-token-economics-an-overview-29e238bd1d83[The Internet Computer’s Token Economics: An Overview] • https://medium.com/dfinity/understanding-the-internet-computers-network-nervous-system-neurons-and-icp-utility-tokens-730dab65cae8[Understanding the Internet Computer’s Network Nervous System, Neurons, and ICP Utility Tokens] • https://github.com/dfinity/nns-proposals[List of NNS Proposals] • https://medium.com/dfinity/achieving-consensus-on-the-internet-computer-ee9fbfbafcbc[Consensus protocol] Engineering • https://sdk.dfinity.org/docs/developers-guide/concepts/what-is-ic[What is the Internet Computer?] • https://sdk.dfinity.org/docs/quickstart/quickstart-intro.html[Tutorials, SDKs, and sample apps to get started] • https://docs.dfinity.org/[Rust Cargo docs for the replica] === ICP Dashboard You can observe the state of the Internet Computer's infrastructure (Nodes, data centers, subnets) and traditional blockchain metrics (blocks/second, Token Supply, etc) • https://dashboard.internetcomputer.org === The community To interact with the community, check out the developer forum: https://forum.dfinity.org/ === Rust implementation of the ICP This repo contains many different pieces (including testing and other infrastructure components), but the most important one is the source code for the Rust implementation of the "*replica*" (read: "client" in some blockchains) that is compiled and run by the machines that together make up the Internet Computer. === DFINITY Foundation The https://dfinity.org/[DFINITY Foundation] is a Swiss not-for-profit organization based in Zurich, Switzerland, which oversees research centers in Palo Alto, San Francisco, and Zurich. Its goal is to further the design, development, and adoption of the Internet Computer Protocol. == Getting Started === Who should be using this code • *If you are an app developer*, and your intent is to build apps so you want a local Internet Computer replica in your machine to deploy to, you are better off using the https://sdk.dfinity.org/docs/quickstart/quickstart-intro.html[Canister SDK] written by the DFINITY Foundation. It is optimized for this and much more lightweight (less than 2 minutes to get started). It will build and run a local replica and you do not need to get into systems code to run it. • *If you are a blockchain enthusiast*, and your intent is to understand the protocol (not an implementation), you may be better off going to the https://medium.com/dfinity/achieving-consensus-on-the-internet-computer-ee9fbfbafcbc[Consensus protocol] and https://sdk.dfinity.org/docs/interface-spec/index.html[IC Interface Specification]. This content (by the DFINITY research team) is tailor made for understanding the protocol and design. • *If you are a blockchain miner*, you should know that the Internet Computer Protocol (while it is a blockchain) does not have the traditional mining or validating you may come to expect from blockchain projects. The Internet Computer Protocol is designed using new and novel cryptography that does not require "mining"... but it does require independent node providers, which may include yourself. You can of course check out the source code in this repo, but a better resource may be this: https://wiki.internetcomputer.org/wiki/Internet_Computer_wiki#For_Node_Providers[Internet Computer Wiki - For Node Providers] • *If you are an engineer looking to build a new SDK, oracle, wallet or any part that enables and improves the Internet Computer ecosystem*, you should take a look at the https://sdk.dfinity.org/docs/interface-spec/index.html[Interface Specification] which is for low-level interaction with the Internet Computer. • *If you are a systems engineer, security engineer or cryptographer*, and your intent is to see what is going on under the hood by digging through source and building this locally, *_then you are in the right place_*. == Building the code *System requirements* • x86-64 based system (minimum: 16 GB MEM/SWAP, 100 GB available disk space) • Ubuntu 22.04 or newer • https://podman.io/getting-started/installation[Podman] For detailed information on building IC-OS images, please refer to the link:ic-os/README.adoc[IC-OS README] Alternatively, to build all IC-OS images using a simple, containerized environment, run: $ ./ci/container/build-ic.sh -i To build only the binaries and canisters, use the and/or flags: $ ./ci/container/build-ic.sh -b -c All built artifacts will be located in the top-level artifacts/ directory. == Verifying Releases === Overview The Internet Computer provides a robust system for verifying the build reproducibility of IC-OS update images. Each https://dashboard.internetcomputer.org/releases[release proposal] includes detailed verification instructions. === Prerequisites • Ubuntu 22.04 or higher • Python 3.x • curl ( ) • About 100 GB of free disk space in (or another volume, specifed via…