Find a file
Eduard S. bcaef6c47a
Add table multiplexer (and use it for container, custom pred & PublicKeyOf ops) (#376)
- Extend the `Flattenable` trait to include a `size` method that returns the number of `Target`s the type requires.  This is used in the table to figure out the max length of an array that must fit all entry types.
- Move the circuit methods to precalculate hash states and do hashes started from a precomputed state to a new module
- Introduce `MuxTableTarget` which allows easy multiplexing of tables where each sub-table may have entries of different lengths.  The table access is done via hashing + unhashing automatically (via use of a generator)
- Use the `MuxTableTarget` to access merkle tree claims and custom predicate verification, which where previously in different tables and accessed with independent random accesses each
- Move the public key derivation for the PublicKeyOf operation check to the same multiplexed table.  Now we can choose how many of those operations a circuit supports.

Resolve https://github.com/0xPARC/pod2/issues/357
Resolve https://github.com/0xPARC/pod2/issues/361
2025-08-05 19:09:41 -07:00
.github/workflows Try actions-rust-lang/setup-rust-toolchain for possibly faster test b… (#364) 2025-07-29 10:21:13 -07:00
book New Native Operation PublicKeyOf (#355) 2025-07-28 15:53:01 -07:00
examples remove op! macro (#378) 2025-08-01 09:52:06 -07:00
src Add table multiplexer (and use it for container, custom pred & PublicKeyOf ops) (#376) 2025-08-05 19:09:41 -07:00
.gitignore Aard custom (#49) 2025-02-24 09:05:30 -08:00
build.rs Feat/disk cache (#354) 2025-07-24 12:15:31 +02:00
Cargo.toml Add table multiplexer (and use it for container, custom pred & PublicKeyOf ops) (#376) 2025-08-05 19:09:41 -07:00
README.md Featurize middleware types that are actually defined by the backend (#94) 2025-02-27 14:15:31 +01:00
rust-analyzer.toml chore(qol): add rust-analyzer.toml (#187) 2025-04-08 08:33:49 +10:00
rust-toolchain.toml Feat/disk cache (#354) 2025-07-24 12:15:31 +02:00
rustfmt.toml Organize imports (#188) 2025-04-07 16:19:13 -07:00

POD2

Usage

  • Run tests: cargo test --release
  • Rustfmt: cargo fmt
  • Check typos: typos -c .github/workflows/typos.toml

Book

The book contains the specification of POD2. A rendered version of the site can be found at: https://0xparc.github.io/pod2/

To run it locally:

  • Requirements
  • Go to the book directory: cd book
  • Run the mdbook: mdbook serve