Skip to content

zhenglcc/tig-monorepo

 
 

Repository files navigation

The Innovation Game

This repository contains the implementation of The Innovation Game (TIG).

Important Links

Repo Contents

  • tig-algorithms - A Rust crate that hosts algorithm submissions made by Innovators in TIG
  • tig-benchmarker - Python scripts for running TIG's benchmarker in master/slave configuration
  • tig-binary - A Rust crate that wraps an algorithm from tig-algorithm for compilation into a shared object.
  • tig-breakthroughs - A folder that hosts submissions of algorithmic methods made by Innovators in TIG.
  • tig-challenges - A Rust crate that contains the implementation of TIG's challenges (computational problems adapted for proof-of-work)
  • tig-protocol - A Rust crate that contains the implementation of TIG's core protocol logic.
  • tig-runtime - A Rust crate that execute an algorithm (compiled from tig-binary) for a single nonce, generating runtime signature and fuel consumed for verification.
  • tig-structs - A Rust crate that contains the definitions of structs used throughout TIG
  • tig-token - Solidity contract for TIG's ERC20 token that is deployed on Ethereum L2 Base chain
  • tig-utils - A Rust crate that contains utility functions used throughout TIG
  • tig-verifier - A Rust crate that verifies a single solution or Merkle proof.

Docker Images

TIG docker images are hosted on Github Packages, supporting linux/arm64 and linux/amd64 platforms.

For Innovators who are developing & compiling algorithms, there is a dev image for each challenge, containing the development environment:

For Benchmarkers to spin up slaves, there is a benchmarker\slave image along with a runtime image for each challenge. It is intended that these images are spun up as part of docker-compose-slave.yml (see this README for more details):

For Benchmarkers to spin up a master, there is a series of images that are spun up as part of docker-compose-master.yml (see this README for more details):

Useful Scripts

As part of the runtime and dev images, there are a bunch of useful scripts available on PATH:

  • list_algorithms
  • download_algorithm <algorithm_name_or_id>
  • test_algorithm <algorithm_name> <difficulty>

Notes:

  • The docker will automatically set a CHALLENGE environment variable used by these scripts
    • e.g. knapsack/runtime docker will set CHALLENGE=knapsack
  • Use --testnet option to target testnet

License

See README for individual folders

About

TIG is the first coordination protocol designed specifically for algorithmic breakthroughs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 90.0%
  • Cuda 4.6%
  • Python 3.9%
  • HTML 0.6%
  • TypeScript 0.4%
  • Solidity 0.2%
  • Other 0.3%