Nodes & Blockchain Clients

Internet Computer Protocol (ICP)Open-Source Node Software Guide

Explore Internet Computer Protocol: what the open-source node software does, Linux and Windows requirements, safe install steps and how it compares to other node clients.

Free Open source Windows: Likely v24.04-b Updated 30 Oct 2026
10 min read Last update 30 Oct 2026 github.com/dfinity/ic

Internet Computer Protocol (ICP) is open-source node software for people who want to study a blockchain protocol at the code level. It suits systems engineers, security engineers and cryptographers who would rather read the source and build it locally than trust a prebuilt file. The software is free under the Apache 2.0 license, and its technology stack includes Rust, Go and Python.

The main caveat is the platform. The project is documented for Linux, specifically Ubuntu 22.04 or newer, and the latest release is tagged from November 2024. Windows support is listed as likely because the project mentions Windows builds, but you should confirm that on the releases page before planning a Windows setup. This guide covers what the project documents, how to verify a download, and how it compares with other node clients.

02

What Is the Internet Computer Protocol?

A blockchain protocol is a set of rules that tells computers, called nodes, how to agree on the state of a shared ledger. The protocol itself is a specification, and node software is the program that implements it. Internet Computer Protocol (ICP) is published as that kind of implementation, so the code is the most direct way to see how the rules are applied.

For most users of blockchain networks, node software stays out of sight. A wallet app or exchange sits on top of the network and hides the details. Running or reading node software reverses that relationship. You see how messages are ordered, how nodes check each other, and which assumptions the design depends on.

This makes the project more of a study resource than a consumer application. It rewards patience. The codebase is large, and the documentation is aimed at engineers who already understand distributed systems. If you approach it expecting a simple desktop tool, the experience will feel slow and technical.

03

Why Reproducible Builds Matter for Trust

When you download a compiled program, you usually trust the publisher. A reproducible build changes that arrangement. If the same source code, compiled with the same settings, produces the same output every time, anyone can rebuild it and compare results. A mismatch signals that something differs between the published code and the shipped binary.

The project's reproducibility check follows this idea. It fetches a script from the repository at a fixed commit and runs it to verify the build. Using a commit hash rather than a moving branch name keeps the check tied to one exact state of the code, which is important for repeatable results.

An attestation is a signed statement that a binary was built from certain source code. Attestations are useful, but they still ask you to believe the signer. Reading the source and comparing builds lets you test the claim directly. For security researchers, that difference is the whole point of publishing the code in the open.

04

Who Should Use This Node Software?

The software fits a few clear groups. Security researchers can use it to audit the implementation and check whether documentation matches behavior. Academic teams can use it in courses on distributed systems, consensus and cryptography. Independent developers can study the code to understand design choices before building their own tools.

Example scenario: a graduate student is writing a paper on how node software enforces protocol rules. She clones the repository, reads the modules that handle the relevant logic, and runs the reproducibility check on a Linux server she already uses for research. The source is what she needs, and a polished interface would add nothing.

The software is a weaker fit for someone who wants a quick, graphical tool on a home Windows PC. The documented setup is Linux-based, the hardware requirements are substantial, and the build process demands time and disk space. Matching the tool to the job will save frustration.

05

Understanding Hardware Needs for Node Software

Node software is often heavier than end-user applications because it has to keep up with network activity and store the data needed to verify it. That is why the documented minimum calls for 16 GB of memory and swap on an x86-64 system, along with about 100 GB of free disk space. Those numbers are the baseline, not a promise of smooth performance on every machine.

Disk space deserves special attention. The guidance points to your home directory or another volume you specify. If your system drive is small, you can direct the work to a larger secondary disk. Plan the location before you start, because moving large working directories later is tedious.

Memory matters for a related reason. Build steps and checks can require significant working memory, and swap space softens the impact when physical RAM runs short. Swap is slower than RAM, so a system that depends heavily on it may feel sluggish, even if the process completes.

06

Key features

Full source transparency

The codebase is published on GitHub under the Apache 2.0 license, so you can read the protocol implementation yourself rather than relying only on a compiled binary. This matters most for people auditing consensus logic or trying to understand how the network is assembled from its parts.

Reproducibility check script

The project includes a script that helps confirm that a build matches the published source. You run it with Python 3 and point it at a specific commit. Reading the source and rebuilding it gives you a stronger basis for trust than accepting a signed attestation alone, because you check the claim yourself.

Permissive open-source license

Apache 2.0 allows you to use, modify and redistribute the software under clear, widely understood terms. The software itself is free to obtain, which makes it practical for research groups, university labs and independent reviewers who need to study the code without a licensing budget.

Mixed technology stack

The project combines Rust, Go and Python. Developers who already know one of these languages can find a starting point in the codebase, and the Python tooling used for checks is simple to run from a terminal once its prerequisites are in place.

Linux-first documented environment

The documented setup targets Linux, with Ubuntu 22.04 or newer as the reference point. Anyone planning to run or build the software should treat that environment as the tested baseline and plan any Windows use around it.
07

Supported coins

The project documentation mentions Bitcoin (BTC) and Ethereum (ETH). The listed mining algorithm is SHA-256, which is a useful detail when comparing this project with other node software in the same catalog.

08

How to install Internet Computer Protocol (ICP) on Windows

  1. 1

    Confirm your operating system

    The documented environment is Ubuntu 22.04 or newer on an x86-64 system. Check your version with the lsb_release -a command. If you are on Windows, confirm on the releases page that a Windows build is available for the version you want before investing time in setup.

  2. 2

    Install the prerequisites

    Install curl with sudo apt install curl. Confirm that Python 3.10 or higher is present by running python3 --version. If the version is older, update Python first, because the reproducibility script depends on it.

  3. 3

    Prepare disk space and memory

    Make sure about 100 GB of free space is available in your home directory or on another volume you plan to use. Confirm you have 16 GB of memory and swap combined. Close heavy applications before starting, so the process has enough resources.

  4. 4

    Download the source or release

    Get the code only from the official source: the dfinity/ic repository on GitHub or its Releases page. Choose the commit or release you want to verify. If a SHA-256 checksum or signature is published for a download, compare it with your local file before running anything.

  5. Run the verification step

    Review the script in the repository first, then run the reproducibility check with the command from the documentation, replacing the commit placeholder with a real commit hash. Keep the output for your records. The check confirms consistency, so read the result carefully rather than assuming success.

09

System requirements

  • x86-64 based system
  • Minimum 16 GB of memory and swap
  • About 100 GB of free disk space in $HOME or another specified volume
  • Ubuntu 22.04 or newer
  • Python 3.10 or higher, needed to run the reproducibility check script
  • curl, installed with sudo apt install curl
  • Internet access
10

How to use Internet Computer Protocol (ICP)

Using the project is less about clicking buttons and more about following a verification workflow. Work in a terminal, keep notes on each commit you check, and avoid mixing outputs from different builds. The steps below assume you have finished the installation checks.

  1. Open a terminal on your Linux system and create a clean working folder with enough free space.
  2. Identify the commit you want to check on the official GitHub repository, and copy its full hash.
  3. Replace the COMMITID placeholder in the documented command with that hash.
  4. Review the remote script in your browser or with a text viewer before running it.
  5. Run the command with the -p option, as shown in the documentation, so the reproducibility check runs.
  6. Save the output and compare it with any published checksum or attestation for the same commit.
  7. Record the commit hash, date and results so the check can be repeated later.
11

Pros & cons

Pros
  • Source code is public under the permissive Apache 2.0 license
  • Free to download and study
  • Supports reproducibility checks that let you verify a build yourself
  • Technology stack spans Rust, Go and Python
  • Well suited to security research and academic study
  • Clear documented baseline for Linux users
Cons
  • Documented for Linux, with Windows support only listed as likely
  • Requires substantial memory, swap and disk space
  • Setup assumes comfort with terminals and build processes
  • Not a simple consumer application with a graphical interface
  • Most recent tagged release listed is from November 2024, so check current activity before relying on it
12

Is Internet Computer Protocol (ICP) safe?

Node software deserves the same care as any program that touches a network and your system. Download only from the official GitHub repository or its Releases page. Confirm a SHA-256 checksum or signature when the publisher provides one, and do not run files from unofficial mirrors. The documented install command pipes a remote script directly into Python, which is convenient but risky. Read the script first, and confirm the commit it comes from. Keep antivirus protection active, and expect that some security tools may question unfamiliar build outputs. Never disable protection to make a check run. If you need the most recent information on versions and status, check the official website or repository before installing.

  • Official source only. Download from github.com/dfinity/ic. Ignore ads and lookalike domains.
  • Check the SHA-256. Compare the installer hash with the value the developer publishes before running it.
  • Never share your seed phrase. No developer, support agent or website — including CryptApps — will ever ask for it.
13

Alternatives

Most entries in this part of the catalog focus on a single blockchain network, and that is where Internet Computer Protocol differs. Geth and Erigon are Ethereum execution clients, with Geth written in Go and Erigon focused on performance. Nethermind is an Ethereum client built on .NET, while OpenEthereum was the former Parity client and is closed. Electrum Personal Server serves a personal Electrum wallet, and Elements is a sidechain platform.

Internet Computer Protocol is oriented toward its own protocol and toward transparency for reviewers. Its main draw is the ability to read the code and verify builds against published commits. If you need to run an Ethereum node for daily use, one of the Ethereum clients is the more natural choice. If your goal is auditing a protocol implementation, this project belongs on the shortlist.

14

Specifications

Price
Free
Type
Open source
License
Apache 2.0
Latest version
release-2024-11-21_03-11-24.04-base-kernel
Last update
30 Oct 2026
Windows support
Likely (builds for Windows; check releases)
Source code
github.com/dfinity/ic
15

Frequently asked questions

The project is documented for Linux, specifically Ubuntu 22.04 or newer. Windows support is listed as likely because the project mentions Windows builds, but the releases page is the place to confirm. Check that a Windows build exists for the version you want before you plan any setup work on a Windows machine.

Yes. The software is listed as free and open source under the Apache 2.0 license, so you can download, study and modify the code at no cost. Free licensing does not cover hardware, storage or electricity, which can be significant for node software that needs lots of disk space and memory.

The public code helps reviewers, but safety depends on where you get the files and whether you verify them. Download from the official GitHub repository, check any published checksum or signature, and review scripts before running them. The safety section explains the full checklist in more detail.

The documented minimum is 16 GB of memory and swap on an x86-64 system, plus about 100 GB of free disk space in your home directory or another volume you specify. Plan for those numbers before you begin, since builds and checks write a large amount of data.

You do not need to write code to run the reproducibility check, but Python 3.10 or higher is required for the script. Reading the source is much easier if you already know Rust, Go or Python, because those are the languages the project uses.

An attestation is a signed claim that a binary came from specific source code. Building the code yourself and comparing the result lets you test that claim directly, which is why the project describes reading the source as providing stronger proof than an attestation alone.

The project lists SHA-256 among its algorithms, but this page treats it as node software for studying and verifying a protocol. No mining results or income are promised, and anyone considering mining should research the economics and hardware costs independently first.

16

Verdict

Internet Computer Protocol suits security researchers, auditors, academics and engineers who want to read and build node software from source under a permissive open-source license. It is less suitable for people who want a simple Windows application with a graphical interface. Before committing time, confirm the current Windows status on the releases page, plan for the memory and disk requirements, and verify every download before running it.

Download now