Giter VIP home page Giter VIP logo

ion's Introduction

TON logo

Reference implementation of TON Node and tools


Ton Research Telegram Community Group Telegram Foundation Group Telegram Community Chat

Twitter Group TON Overflow Group Stack Overflow Group

Main TON monorepo, which includes the code of the node/validator, lite-client, tonlib, FunC compiler, etc.

The Open Network

The Open Network (TON) is a fast, secure, scalable blockchain focused on handling millions of transactions per second (TPS) with the goal of reaching hundreds of millions of blockchain users.

Updates flow

  • master branch - mainnet is running on this stable branch.

    Only emergency updates, urgent updates, or updates that do not affect the main codebase (GitHub workflows / docker images / documentation) are committed directly to this branch.

  • testnet branch - testnet is running on this branch. The branch contains a set of new updates. After testing, the testnet branch is merged into the master branch and then a new set of updates is added to testnet branch.

  • backlog - other branches that are candidates to getting into the testnet branch in the next iteration.

Usually, the response to your pull request will indicate which section it falls into.

"Soft" Pull Request rules

  • Thou shall not merge your own PRs, at least one person should review the PR and merge it (4-eyes rule)
  • Thou shall make sure that workflows are cleanly completed for your PR before considering merge

Build TON blockchain

Ubuntu 20.4, 22.04 (x86-64, aarch64)

Install additional system libraries

  sudo apt-get update
  sudo apt-get install -y build-essential git cmake ninja-build zlib1g-dev libsecp256k1-dev libmicrohttpd-dev libsodium-dev
          
  wget https://apt.llvm.org/llvm.sh
  chmod +x llvm.sh
  sudo ./llvm.sh 16 all

Compile TON binaries

  cp assembly/native/build-ubuntu-shared.sh .
  chmod +x build-ubuntu-shared.sh
  ./build-ubuntu-shared.sh  

MacOS 11, 12 (x86-64, aarch64)

  cp assembly/native/build-macos-shared.sh .
  chmod +x build-macos-shared.sh
  ./build-macos-shared.sh

Windows 10, 11, Server (x86-64)

You need to install MS Visual Studio 2022 first. Go to https://www.visualstudio.com/downloads/ and download MS Visual Studio 2022 Community.

Launch installer and select Desktop development with C++. After installation, also make sure that cmake is globally available by adding C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin to the system PATH (adjust the path per your needs).

Open an elevated (Run as Administrator) x86-64 Native Tools Command Prompt for VS 2022, go to the root folder and execute:

  copy assembly\native\build-windows.bat .
  build-windows.bat

Building TON to WebAssembly

Install additional system libraries on Ubuntu

  sudo apt-get update
  sudo apt-get install -y build-essential git cmake ninja-build zlib1g-dev libsecp256k1-dev libmicrohttpd-dev libsodium-dev
          
  wget https://apt.llvm.org/llvm.sh
  chmod +x llvm.sh
  sudo ./llvm.sh 16 all

Compile TON binaries with emscripten

  cd assembly/wasm
  chmod +x fift-func-wasm-build-ubuntu.sh
  ./fift-func-wasm-build-ubuntu.sh

Building TON tonlib library for Android (arm64-v8a, armeabi-v7a, x86, x86-64)

Install additional system libraries on Ubuntu

  sudo apt-get update
  sudo apt-get install -y build-essential git cmake ninja-build automake libtool texinfo autoconf libgflags-dev \
  zlib1g-dev libssl-dev libreadline-dev libmicrohttpd-dev pkg-config libgsl-dev python3 python3-dev \
  libtool autoconf libsodium-dev libsecp256k1-dev

Compile TON tonlib library

  cp assembly/android/build-android-tonlib.sh .
  chmod +x build-android-tonlib.sh
  ./build-android-tonlib.sh

Build TON portable binaries with Nix package manager

You need to install Nix first.

   sh <(curl -L https://nixos.org/nix/install) --daemon

Then compile TON with Nix by executing below command from the root folder:

  cp -r assembly/nix/* .
  export NIX_PATH=nixpkgs=https://github.com/nixOS/nixpkgs/archive/23.05.tar.gz
  nix-build linux-x86-64-static.nix

More examples for other platforms can be found under assembly/nix.

Running tests

Tests are executed by running ctest in the build directory. See doc/Tests.md for more information.

ion's People

Contributors

emelyanenkok avatar spycheese avatar neodix42 avatar dungeon-master-666 avatar tolya-yanot avatar omicrontau avatar andreypfau avatar tvorogme avatar starlightduck avatar ice-hermes avatar sonofmom avatar awesome-doge avatar legaii avatar aleksej-paschenko avatar krigga avatar sapientisatus avatar omahs avatar iliavy avatar elderorb avatar akme avatar akifoq avatar vtamara avatar rec00rsiff avatar trinketer22 avatar ice-proteus avatar xssnick avatar yungwine avatar kirill-xx avatar ilyar avatar esultanik avatar

Stargazers

Bro Cyclone avatar Sikandar666.  avatar Tbombs23 avatar  avatar  avatar Felix Ayot avatar  avatar  avatar Jonathan Harris avatar  avatar Shalom Gad avatar Muhammad Tahir Abdullahi avatar  avatar

Watchers

 avatar Bro Cyclone avatar  avatar  avatar Tbombs23 avatar  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.