- Notifications
You must be signed in to change notification settings - Fork0
Internet Computer blockchain source: the client/replica software run by nodes
License
dscvr-one/ic
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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).
You can learn more about the Internet Computer’s Protocol, features, and designs here, here are some helpful resources:
Protocol Documentation:
Engineering
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 Network dashboard by the Internet Computer Association
To interact with the community, check out the developer forum:https://forum.dfinity.org/
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.
TheDFINITY 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.
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 theCanister 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 theConsensus protocol andIC 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: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 theInterface 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.
For all environments
x86-64 based system (at least 8 CPUs, 16 GB MEM/SWAP, 100 GB available disk space)
Ubuntu 20.04 or newer
Git
SeeREADME for more details.
To build the IC-OS disk image run:
$ ./gitlab-ci/container/build-ic.sh -i
This builds the IC-OS disk image and all its dependencies.
In order to build only the binaries and the canisters, use the-b
and/or-c
flags on thebuild-ic.sh
script:
$ ./gitlab-ci/container/build-ic.sh -b -c
All the built artifacts can be found in the top-levelartifacts/
directory.
Each release proposal contains the information in the payload that allows to verify the disk image: the download url of the disk image, git revision that the image was built from, the SHA256 checksum of the image.This information allows anyone to verify this release:
checkout the source tree at specific git revision
build the IC-OS disk image using instructions above
compare the SHA256 checksum of resulting image with the one published in the release proposal payload.
Therepro-check.sh script can be used to do it conveniently.
To verify specific git revision:
$ ./gitlab-ci/tools/repro-check.sh -c <git revision>
To verify specific proposal:
$ ./gitlab-ci/tools/repro-check.sh -p <proposal id>
Thank you for taking the time to learn more about the Internet Computer Protocol. You can contribute to either, but it is important to note that the Internet Computer is governed by a decentralized system called the Network Nervous System (NNS). You can learn more here:
The DFINITY Foundation makes the code of the Internet Computer available tothe public.
This is important so that the community can review the code that defines thebehaviour of the Internet Computer. Furthermore, the community will be able to build the codeand verify that it derives from the same binary image that is referenced inupgrade proposals published via the Network Nervous System (NNS).
All code of the Internet Computer is be licensed under the Apache 2.0 license, except for afew components licensed under theInternet Computer CommunitySource License andInternet Computer Shared Community Source License which are more restrictive than the Apache 2.0 license to protect the Intellectual Property (IP) of the DFINITY Foundation.
While we adapt our development processes and security reviews for a world of developing with our code in the open, we are not accepting any pull requests at this time. For now, please join our developer community athttps://forum.dfinity.org. If you discover any bugs and vulnerabilities, please follow the procedure athttps://dfinity.org/vulnerability-disclosure-program/.
About
Internet Computer blockchain source: the client/replica software run by nodes
Resources
License
Stars
Watchers
Forks
Packages0
Languages
- Rust90.3%
- Python4.0%
- Shell2.3%
- Starlark2.2%
- TypeScript0.4%
- Nix0.2%
- Other0.6%