# GPU Compute Chain ![Go](https://img.shields.io/badge/1.18-%2300ADD8.svg?style=for-the-badge&logo=go&logoColor=white&label=go) ![Cosmos-SDK](https://img.shields.io/badge/0.45.0-%23161931?style=for-the-badge&logoColor=white&label=Cosmos-SDK) ![Ignite CLI](https://img.shields.io/badge/0.23.0-rgb(85%2C%20123%2C%20244)?style=for-the-badge&logoColor=white&label=Ignite-CLI) ![Rocky Linux](https://img.shields.io/badge/9-%2310B981?style=for-the-badge&logo=rockylinux&logoColor=white&label=rocky%20linux) ![](https://shields.io/badge/license-business%20source%20license-orange?style=for-the-badge) This repository contains the base chain implementation used as a compute marketplace settlement layer. ## Technical Documentation | Component | Docs Path | | :-------- | :-------- | | Leasing & settlement module | [x/colinearcore](./x/colinearcore/README.md) | | In-memory bid database | [x/colinearcore/memdb](./x/colinearcore/memdb/README.md) | | Hardware provider auditing | [x/colinearcore/audit](./x/colinearcore/audit/README.md) | ## Validators ### Requirements - `docker >= 20.10.*` ## Development ### Build Requirements - `ignite == 0.23.0` (see the [setup section](#setup)) - `go >= 1.18` ### Integration Test Requirements - `bash` - `bc` - `jq` ### Setup To get ignite 0.23.0: ``` curl https://get.ignite.com/cli@v0.23.0?type=script! | bash ``` ...or download it from the [GitHub release page](https://github.com/ignite/cli/releases/tag/v0.23.0). Then, move it anywhere on `$PATH`. To build the chain: ``` ignite chain build ``` To serve the chain: ``` ignite chain serve ``` ### Unit Tests Unit tests use Go's built-in testing system. To run all unit tests: ``` make utest ``` To test any specific subpackage: ``` go test ./path/to/package ``` ### Integration Tests Integration tests use a custom-built testing framework that interacts with a running instance of the chain. Before running any tests, make sure that the dev chain is running: ``` ignite chain serve ``` To run all integration tests: ``` make test ``` Integration tests can also be run individually: ``` ./tests/.sh ```