Coder Social home page Coder Social logo

iq-scm / ic Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dfinity/ic

0.0 0.0 0.0 139.31 MB

Internet Computer blockchain source: the client/replica software run by nodes

License: Other

Shell 2.13% JavaScript 0.03% C++ 0.11% Python 3.91% C 0.03% Go 0.08% Rust 89.83% Standard ML 0.01% TypeScript 0.43% CSS 0.01% Harbour 0.13% Nix 0.16% Makefile 0.01% Thrift 0.01% Cap'n Proto 0.01% HTML 0.12% TLA 0.27% Dockerfile 0.15% WebAssembly 0.07% Starlark 2.54%

ic's Introduction

The Internet Computer Protocol (ICP)

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).

Resources on the Internet Computer

Network Dashboards from the community

You can observe the state of the Internet Computer’s infrastructure (Nodes, data centers, subnets) and traditional blockchain metrics (blocks/second, Token Supply, etc)

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 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 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 Consensus protocol and 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: 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 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 20.04 or newer

  • Podman

For detailed information on building IC-OS images, please refer to the IC-OS README

Alternatively, to build all IC-OS images using a simple, containerized environment, run:

$ ./gitlab-ci/container/build-ic.sh -i

To build only the binaries and canisters, use the -b and/or -c flags:

$ ./gitlab-ci/container/build-ic.sh -b -c

All built artifacts will be located in the top-level artifacts/ directory.

Verifying releases

Each release proposal includes instructions on how to verify the build reproducibility of IC-OS update images.

To verify the build reproducibility of a specific git revision, run:

$ ./gitlab-ci/tools/repro-check.sh -c <git revision>

Contributing

The Network Nervous System

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:

Open Source Policy

The DFINITY Foundation makes the code of the Internet Computer available to the public.

This is important so that the community can review the code that defines the behaviour of the Internet Computer. Furthermore, the community will be able to build the code and verify that it derives from the same binary image that is referenced in upgrade 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 a few components licensed under the Internet Computer Community Source License and Internet 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 at https://forum.dfinity.org. If you discover any bugs and vulnerabilities, please follow the procedure at https://dfinity.org/vulnerability-disclosure-program/.

ic's People

Contributors

adambratschikaye avatar alin-at-dfinity avatar aterga avatar basvandijk avatar bownairo avatar daniel-bloom-dfinity avatar daniel-wong-dfinity-org avatar danielthurau avatar dfinity-berestovskyy avatar dfinity-skaestle avatar dsarlis avatar dsd-at-dfinity avatar eichhorl avatar fspreiss avatar gregorydemay avatar ielashi avatar levsha avatar maksymar avatar mariodfinity avatar marko-k0 avatar max-dfinity avatar mraszyk avatar nikolay-komarevskiy avatar randombit avatar rikonor avatar roman-kashitsyn avatar rumenov avatar tthebst avatar ulan avatar zoran-dfinity avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.