https://github.com/commonwarexyz/monorepo/tree/main/coding/src
This document explains the current ZODA implementation in coding/src/zoda.rs in the Commonware monorepo. It’s meant to bridge the original paper-style description and the actual Rust code so we can later adapt it to the Nomos DA v2.
The implementation does four things:
The key property: a single shard can be locally checked against the commitment without reconstructing the whole dataset. That’s the “ZODA-style” guarantee.
Topologystruct Topology { ... }
https://github.com/commonwarexyz/monorepo/blob/main/coding/src/zoda.rs#L229
This is the “shape calculator.” Given:
Config { minimum_shards: n, extra_shards: k })it figures out:
data_rows = n * samplesdata_cols (how many field elements per row you need)encoded_rows = pad((n + k) * samples) (RS padding to next power of two)