* 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>
* Implement generator polynomial and rs encoding
* Implement encode/decode+test using fft. Non-working
* Use lagrange for interpolation
* Remove fft, use evaluations instead
* Move and rename kzg and rs test modules
* Update docs
* Added columns property to chunks matrix
Added test for columns
* Added chunkify and test
* Added compute row commitments
Added row commitments size test
* Fix poly from evaluations method
* Implement encode rows and test
* Update encode row test
* Implement compute row proofs (not working on extended data)
* Use same polynomials for commitment and proof creation after extend
* Fix polynomial from/to evaluations
* Use chunks for verification
* Refactor interpolate
* Implement chunks matrix transposed method
* Added compute column kzg commitments
* Use square size data for encoder tests
* Add column type to columns method
* Added compute columns aggregated commitment
Added aggregated commitment test
Fixed and expanded encode test
* Use sha3 for hashing
* Make encoder hashing method public
* Fill up verifier implementation
* Added verify column test
* Implement verier verify test
Fixed small issues
* Implement verier verify test
Extend verify test for all columns
* feat(cryptarchia/epoch-schedule): switch to 334 schedule (from 433)
* factor out common test config building code
* feat(cryptarchia): test_leader uses common test config object
* cryptarchia: update test_ledger_state_is_properly_updated_on_reorg
* cryptarchia: update test_epoch_transition test
* move to .tip() in tests instead of tip_id()
* cryptarchia: wrap long comments
* cryptarchia: move mk_block to test_common
* cryptarchia: move mk_genesis_state to test_common
* cryptarchia: refactor fork test to use mk_chain
* cryptarchia: fork choice rules tests use mk_chain helper
* cryptarchia: rename fork choice test suite to TestForkChoice
* cryptarchia: config.s is always 3k/f or 3*base_period_length
* cryptarchia: hardcode epoch schedule in specification
* un-hard code epoch sched. params + provide a v0.0.1 spec for params
* Implement generator polynomial and rs encoding
* Implement encode/decode+test using fft. Non-working
* Use lagrange for interpolation
* Remove fft, use evaluations instead
* Move and rename kzg and rs test modules
* Update docs
* Added columns property to chunks matrix
Added test for columns
* Added chunkify and test
* Added compute row commitments
Added row commitments size test
* Fix poly from evaluations method
* Implement encode rows and test
* Update encode row test
* Implement compute row proofs (not working on extended data)
* Use same polynomials for commitment and proof creation after extend
* Fix polynomial from/to evaluations
* Use chunks for verification
* Refactor interpolate
* Implement chunks matrix transposed method
* Added compute column kzg commitments
* Use square size data for encoder tests
* Add column type to columns method
* Added compute columns aggregated commitment
Added aggregated commitment test
Fixed and expanded encode test
* Use sha3 for hashing
* Implement generator polynomial and rs encoding
* Implement encode/decode+test using fft. Non-working
* Use lagrange for interpolation
* Remove fft, use evaluations instead
* Move and rename kzg and rs test modules
* Update docs
* Added polynomial class
* Added common types and constants
* Implement commitment and proof generation
* Added basic tests
* Use custom polynomial
* use evaluation form for building polynomial
* Use fast division on polynomials
* Fix poly operations
* Add non working verification
* Make verification work
* Expand verify test
* Cleanup imports
* Update deps
* Update common.py
added verify setup mechanism
* Added trusted setup, updated common to use gp generator and added setup verification test
* Added comments
---------
Co-authored-by: megonen <146561843+megonen@users.noreply.github.com>
* Added da encoder pipeline draft
* Remove unnecessary method
* Added verifier module and blob type
* Fill verifier skeleton
* Add comments on implementation, remove unnecessary intermediary method
* Added dispersal skeleton
* Added test modules for dispersal and verifier
* Added test modules for encoder, implemented basic test
* Added missing test cases
* Added missing calls to encode method
* Use single megabyte test in encoder
* Added basic testcases for dispersal
* Added basic testcases for verifier
* Remove duplicated column proofs from encoding schema
* Remove parameters from test functions in encoder
* Extract common types to common module
* Make test pass
* Remove node id dep from mixnet and fix columns access
* standardize endianness to "big"
* slot.encode()
* include coin nonce in leader election VRF
---------
Co-authored-by: David Rusu <davidrusu@Davids-MacBook-Pro.local>
* Add epoch transition to spec
* add tests
* Add block to fork after validation
* Add configs for steps inside an epoch
* rename get_last_valid_state to state_at_slot_beginning
* Added eth specs submodule
* Rename to eth-specs instead
* Added install script for ethspecs module
* Use python and pip instead of 3
* Load eth-specs in ci
* Add checkout submodules to ci
* Make install script executable
* Added missing install command in script
* Added missing submodule
* Move to eth-specs for building