tig-monorepo/README.md
2025-08-27 14:51:59 +01:00

5.0 KiB

The Innovation Game

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

Repo Contents

  • tig-algorithms - A Rust crate that hosts algorithm submissions (code and advances) 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 (code submission) from tig-algorithm for compilation into a shared object.
  • 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