Decentralized Durability Engine
Go to file
Eric 20a63ce7d7
chore: update dependencies, especially nim-ethers to chronos v4 compatible version (#968)
* chore: bump dependencies, including nim-ethers with chronos v4 support

Bumps the following dependencies:
- nim-ethers to commit 507ac6a4cc71cec9be7693fa393db4a49b52baf9 which contains a pinned nim-eth version. This is to be replaced by a versioned library, so it will be pinned to a particular version. There is a crucial fix in this version of ethers that fixes nonce management which is causing issues in the Codex testnet.
- nim-json-rpc to v0.4.4
- nim-json-serialization to v0.2.8
- nim-serde to v1.2.2
- nim-serialization to v0.2.4

Currently, one of the integration tests is failing.

* fix integration test

- When a state's run was cancelled, it was being caught as an error due to catching all CatchableErrors. This caused a state transition to SaleErrored, however cancellation of run was not actually an error. Handling this correctly fixed the issue.
- Stopping of the clock was moved to after `HostInteractions` (sales) which avoided an assertion around getting time when the clock was not started.

* bump ethers to include nonce fix and filter not found fix

* bump ethers: fixes missing symbol not exported in ethers

* Fix cirdl test imports/exports

* Debugging in ci

* Handle CancelledErrors for state.run in one place only

* Rename `config` to `configuration`

There was a symbol clash preventing compilation and it was easiest to rename `config` to `configuration` in the contracts. Not even remotely ideal, but it was the only way.

* bump ethers to latest

Prevents an issue were `JsonNode.items` symbol could not be found

* More changes to support `config` > `configuration`

* cleanup

* testing to see if this fixes failure in ci

* bumps contracts

- ensures slot is free before allowing reservation
- renames config to configuration to avoid symbol clash
2024-11-04 07:31:43 +02:00
.github Build Postman Collection (#973) 2024-11-04 07:31:30 +02:00
benchmarks Pr add prover benchmark tool (#790) 2024-05-23 09:28:17 -07:00
codex chore: update dependencies, especially nim-ethers to chronos v4 compatible version (#968) 2024-11-04 07:31:43 +02:00
docker Release v0.1.5 (#941) 2024-10-07 15:27:25 +03:00
metrics Adding metrics (#203) 2022-08-23 10:11:21 -06:00
tests chore: update dependencies, especially nim-ethers to chronos v4 compatible version (#968) 2024-11-04 07:31:43 +02:00
tools/cirdl chore: update dependencies, especially nim-ethers to chronos v4 compatible version (#968) 2024-11-04 07:31:43 +02:00
vendor chore: update dependencies, especially nim-ethers to chronos v4 compatible version (#968) 2024-11-04 07:31:43 +02:00
.dockerignore Docker build (#354) 2023-03-08 12:45:55 +01:00
.editorconfig Project setup 2021-02-02 19:29:52 +01:00
.gitignore Release v0.1.4 (#912) 2024-09-24 13:19:58 +03:00
.gitmodules Release v0.1.4 (#912) 2024-09-24 13:19:58 +03:00
LICENSE-APACHEv2 Release v0.1.4 (#912) 2024-09-24 13:19:58 +03:00
LICENSE-MIT Release v0.1.4 (#912) 2024-09-24 13:19:58 +03:00
Makefile Release v0.1.4 (#912) 2024-09-24 13:19:58 +03:00
README.md Release v0.1.5 (#941) 2024-10-07 15:27:25 +03:00
build.nims Release v0.1.4 (#912) 2024-09-24 13:19:58 +03:00
codecov.yml [ci] disable pull-request comments by codecov 2022-05-19 15:23:35 +02:00
codex.nim Release v0.1.4 (#912) 2024-09-24 13:19:58 +03:00
codex.nimble remove stale and misleading dependency version metadata (#833) 2024-06-17 14:31:10 +00:00
config.nims Release v0.1.4 (#912) 2024-09-24 13:19:58 +03:00
env.sh add env.sh shim to project root (#34) 2021-12-20 13:12:18 -06:00
openapi.yaml Move the upload headers to the POST method (#978) 2024-11-04 07:31:37 +02:00

README.md

Codex Decentralized Durability Engine

The Codex project aims to create a decentralized durability engine that allows persisting data in p2p networks. In other words, it allows storing files and data with predictable durability guarantees for later retrieval.

WARNING: This project is under active development and is considered pre-alpha.

License: Apache License: MIT Stability: experimental CI Docker Codecov Discord Docker Pulls

Build and Run

For detailed instructions on preparing to build nim-codex see Build Codex.

To build the project, clone it and run:

make update && make

The executable will be placed under the build directory under the project root.

Run the client with:

build/codex

Configuration

It is possible to configure a Codex node in several ways:

  1. CLI options
  2. Environment variables
  3. Configuration file

The order of priority is the same as above: CLI options --> Environment variables --> Configuration file.

Please check documentation for more information.

Guides

To get acquainted with Codex, consider:

API

The client exposes a REST API that can be used to interact with the clients. Overview of the API can be found on api.codex.storage.