* cryptarchia: introduce Hash class
* cryptarchia: Coin renamed to Note
* cryptarchia: simplify mock leader proof
* cryptarchia: remove orphan proofs from block headers
* cryptarchia: maintain a single commitment set in ledger state
* cryptarchia: drop note evolution
* cryptarchia: drop MOCK_LEADER_VRF
* cryptarchia fix nonce contribution derivation
* cryptarchia: mk_chain only returns list now
* fixup
* cryptarchia: shorten test cases using mk_chain
* Modify and rename hash_commitment method. Now we just hash the column commitment itself.
* Fix calls
* Remove certificate from verifier
* Update verifier
* Fix tests
* Fix verifier imports
* Fix more imports
* Fix dispersal
* Fix more imports
* Fix missing parameter in dispersal
* Fix tests
* Full flow renaming
* Disperse encoded data in full flow test
* Make da verification indempotent (#118)
---------
Co-authored-by: Gusto <bacvinka@gmail.com>
Co-authored-by: gusto <bacv@users.noreply.github.com>
* cl: restructure cl into a workspace and integrate nullifier proof
* cl: get cl tests building again
* cl: cleanup commented out code
* cl: comment out the failing ptx tests for now.
* feat(cl/noir): provide an ergonomic Noir api for use within Python.
* Add a python wrapper over the bigger constraint
* Add the Bigger wrapper
* cl/noir: document the NargoConstraint wrapper api
* rewrite Bigger constraint as a dataclass
* WIP: Cl/executable spec (#93)
* wip: executable spec
* WIP: test_1_to_1_transfer
* hack: Vacous hash function
* crypto: make sure prf returns field elements, fix ECC math in pedcom
* hack(crypto): mock up a hash_to_curve implementation
* feat(cl/1to1_xfr): fungibility domain uses hash_to_curve
* cl: add type checking to InnerNote
* cl/ptx: get balance commitments working
* cl/noir: mv noir_constraint wrapper into cl/constraints/...
* cl/ptx-note-proofs: start data modelling input and outputs
* cl/ptx: 1-to-1 test is passing, but still, not quite finished
* cl: remove tx_output from 1-to-1 transfer
* cl: remove unused classes
* cl: testing the balance commitments
* wip: cl
* cl: split main.rs into crypto.rs and note.rs
* cl: split balance test
* cl: add nullifier module
* cl: partial_tx; input; output
* cl: output proof tests
* cl: partial transactions can now be built and verified
* drop python cl spec
* cl: test partial transaction balance commitment
* cl: reverse partial tx balance (inputs are neg, outputs are pos)
* cl: bundle of ptx
* cl: verify bundle isn't balanced with just one unbalanced partial tx
* cl: swap out ExtendedPoint for SubgroupPoint
* cl: integrate groth16 death constraint validation
* add risc0 zone
* refactor risc0 zone
* fix zone PoC
* Add separate bin for stark2snark conv
* cl: rename Note to NoteWitness
* cl: merkle proofs
* cl: merkle tree helper to pad elements
* cl: ptx root implemented via merkle roots over inputs and outputs
* cl: move from Commitment::from_witness to Witness::commit()
* cl: tests passing again
* cl: turn data model into library
* cl: partial tx can compute paths to inputs / outputs
* cl: begin integrating zone into cl data modal
* cl: integrate simple zone into CL data model
* cl: add missing cl patches
* cl: swap jubjub for accel k256
* cl: pre-compute balance unit point outside stark
* switch balance commitment to linear combination
* cl: pre-compute pederson blinding
* fix risc0 patching
* switch to curve25519-dalek
* cl: drop blake2; print prover time
---------
Co-authored-by: Giacomo Pasini <g.pasini98@gmail.com>
---------
Co-authored-by: Giacomo Pasini <g.pasini98@gmail.com>
* Kickstart fk20
* Implement i/fft from ethspecs
* Expand test to different sizes
* Implement toeplizt
* Finish implementing fk20
* Fix roots of unity generation
* Implement fft for g1 values
* Fix fk20 and tests
* Add len assertion in test
* Fix roots computations
* Fix test
* Fix imports
* Fmt
* Docs and format
* cryptarchia/relative-stake: failing test showing lack of inference
* implement stake-relativization spec
* test total stake inference in empty epoch
* move TestNode to test_common
* fix bug in Follower re-org logic
* improve orphan proof test coverage
* force orphans to already have been in one of the existing branches
* rename initial_inferred_total_stake ==> initial_total_stake
* add simple orphan import test
* Follower.unimported_orphans: ensure no orphans from same branch
* remove unnecessary LedgerState.slot
* cryptarchia: doc fixes
* factor out total stake inference
* docs for total stake inference
* rename total_stake to total_active_stake
* replace prints in cryptarchia with logging.logger
* Tests for da api full flow
* Fix test issues
* Da api ext tests (#85)
* Index store links blob to cert_id
* Tests for multiple indexes pointing to the same blob
* Test multiple indexes to the same blob in the full flow
* Update bytes_per_chunk to 31 bytes
---------
Co-authored-by: Daniel Sanchez Quiros <sanchez.quiros.daniel@gmail.com>
* Initial da_api spec structure
* Node definition for testing different actors in da api
* Connect zone, producer and da nodes in tests
* Remove da mock module
* Add da api module with flow tests
* Comments for read and write methods in BlobStore
* Fix nitpicks (formatting and typing)
---------
Co-authored-by: Daniel Sanchez Quiros <sanchez.quiros.daniel@gmail.com>