Codex Update Feb 6th - Feb 12th
The Codex team continues to make progress with various initiatives to wrap up the demo for the Q1/Q2 public testnet release. An internal testnet has been running for the past few weeks and has been used to test the latest version of Codex and can be accessed using the Codex Testnet Starter documentation.
Ongoing and new lines of research and development will soon begin in preparation for the next version of Codex that will be used for the mainnet release.. Here are the updates from different team members and their ongoing work. Development is currently broken into three distinct teams:
- Client, Testing, and Infrastructure
- Marketplace
- Research
The different teams have actively moving on various fronts. The following are their team updates to various ongoing Epics.
Client, Testing and Infrastructure
Epic: Nim Improvements
Completed:
- Add Nim-matrix workflow to run on merge queue
- Changes to build improvements proposal so default version for the compiler is now represented as special version
repo_version
which can be accessed locally and in CI
Ongoing:
Epic: Wiring the Proving System
Completed:
Ongoing:
Epic: Improve Client Stability
Completed:
Ongoing:
- Run Continuous-Test outside of the cluster to reproduce ‘file size issue’
Epic: Infra
Completed: Ongoing:
- Create Codex Helm chart
- Deploy Codex Storage nodes in Testnet cluster #115
- Tracking down the timeout issues in Codex
- Updates to logtools
- Now understand what deploy IDs and test runs are (4 min video here);
- Worked on the block flow tracker
Marketplace
Epic: End-to-end Testing
Completed:
- Fixed decoding issue in nim-ethers
- Workaround for that same decoding issue
- Can’t use the fix from nim-ethers yet, Codex is still on old version of chronos
- Published nim-serde
- Finalized
nim-serde
api: now has two main pragmas,serialize
anddeserialize
, that can be applied at the object-level or field-level: - Each can set
key
(valid at field-level),ignore
(valid at field-level), andmode
(valid at object-level)mode
can be one of:- OptOut
- OptIn
- Strict
- Many more tests for the
nim-serde
lib —serialize
OptIn, OptOut, Strict
anddeserialize
OptIn, OptOut, Strict
- Added a comprehensive README to nim-serde
- Added CI to serde, with branch protection rules on master
- Added support for deserializing seq[byte]
- Finalized
- Updated
nim-ethers
json-rpc
andchronos
upgrade PR to usenim-serde
instead of the json util. Created the PR https://github.com/codex-storage/nim-ethers/pull/64
Ongoing:
- WIP on finishing the Availabilities API endpoints tweaks
- Tried to integrate
nim-serde
innim-codex
, but running into symbol clashes withparseJson
, so changedparseJson
toJsonNode.parse
, still needs to be integrated intonim-codex
Research
2024 R&D Goals
1. Proving system and aggregation improvements (folding or lookups)
2. Aggregator/validator design
3. DHT improvements
4. Tokenomics and incentive design
5. Bandwidth incentives
6. Dynamic data (appendable data)
Completed: Ongoing:
- More work on the algebra backend (pairings, APIs)
- Work towards an independent Groth16 prover (so that we can debug the Nim one) - an initial version of that seems to work now