TIG is the first coordination protocol designed specifically for algorithmic innovation
Go to file
2025-08-27 14:51:52 +01:00
.github/workflows Skip testing on algorithm branches. 2025-06-07 19:00:48 +01:00
dist Fix typo in file name. 2024-05-31 13:32:46 +08:00
docs Update documents for breakthroughs -> advances. 2025-08-27 14:51:48 +01:00
scripts Minor fixes to scripts. 2025-06-09 21:27:46 +01:00
tig-advances Fix section numbering. 2025-08-27 14:51:49 +01:00
tig-algorithms Update documents for breakthroughs -> advances. 2025-08-27 14:51:48 +01:00
tig-benchmarker Rename breakthrough -> advance throughout code. 2025-08-27 14:51:50 +01:00
tig-binary Instrument only whitelisted libs for GPU algorithms. 2025-07-09 12:33:16 +01:00
tig-challenges Adjust hypergraph generation based on expert feedback. 2025-06-11 12:13:27 +01:00
tig-protocol Add leftover algorithm rewards to bootstrap. 2025-08-27 14:51:52 +01:00
tig-runtime Instrument only whitelisted libs for GPU algorithms. 2025-07-09 12:33:16 +01:00
tig-structs Rename breakthrough -> advance throughout code. 2025-08-27 14:51:50 +01:00
tig-token Rewarded tokens need to be claimed. 2025-01-17 00:11:57 +00:00
tig-utils Handle max bounds on extend_frontiers. 2025-08-13 07:50:38 +01:00
tig-verifier Update documentation. 2025-06-07 00:48:09 +01:00
_config.yml Add jekyll config to ignore symbolic links. 2024-12-28 22:43:30 +08:00
.gitignore Add Cargo.lock for consistent dependencies. 2025-08-27 08:49:13 +01:00
Cargo.lock Add Cargo.lock for consistent dependencies. 2025-08-27 08:49:13 +01:00
Cargo.toml Deprecate tig-worker. 2025-05-20 11:09:46 +01:00
CNAME Create CNAME 2024-05-31 15:27:55 +08:00
Dockerfile.dev Rework architecture so each challenge has separate runtime & docker. 2025-06-04 11:06:26 +01:00
Dockerfile.runtime Rework architecture so each challenge has separate runtime & docker. 2025-06-04 11:06:26 +01:00
index.html Fix typo in file name. 2024-05-31 13:32:46 +08:00
README.md Update documents for breakthroughs -> advances. 2025-08-27 14:51:48 +01:00
swagger.yaml Add ChallengeOwner fields to swagger. 2025-06-16 13:49:09 +01:00

The Innovation Game

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

Repo Contents

  • tig-advances - A folder that hosts submissions of algorithmic methods made by Innovators in TIG.
  • 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-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