gpu-compute-chain/README.md

98 lines
2.1 KiB
Markdown

# 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/<specific_test>.sh
```