* Introduce consensus code for Whisk
* polish, simplify, clean up (~100 fewer lines)
@asn-d6: As discussed, I fixed a few bugs along the way but likely also introduced some bugs :)
* minor cleanups and fixes
* simplify is_k_commitment_unique
* Update beacon-chain.md
* Update beacon-chain.md
* Initialize `k` in `get_validator_from_deposit()`
* minor cleanups
* Update beacon-chain.md
* Create beacon-chain.md
This PR changes the Whisk tracker format to be of the form `(r * pubkey, r * BLS_GT_GENERATOR)` instead of `(r * k * BLS_G1_GENERATOR, r * BLS_G1_GENERATOR)`. This allows for non-interactive tracker registrations from validator pubkeys, removing ~50 lines the code. It also significantly reduces the amount of state overhead. This PR also removes permutation commitments, though those can be easily readded if deemed necessary.
* A couple of fixes to the no-registration simplification
@asn-d6: Readded a consistency check for `IsValidWhiskOpeningProof` (involving `pubkey` instead of `k_commitment`).
* remove unused helpers
* use Mary's suggested tracker
* Update beacon-chain.md
* Revert G_t element optimization
This needs its own ethresearch post, and some additional analysis to see if we can do the shuffle ZKP in the allowed
timeframe.
This reverts commit 8517acabfc1dbb1a35789e6170b5db0bb2c19c9a.
* Implement new shuffling strategy
Ditch the Feistel logic and instead have each shuffler pick the row they shuffle using their RANDAO reveal.
* Curdleproofs edits
* working whisk eth2spec
* working whisk dummy test
* add more boilerplate set up code
* rebase constants
* Implement even newer and simplified shuffling strategy
This commit further simplifies 0faef30fc131d1b471b63a7f16772eeeef548ef8 by removing the entire squareshuffle.
The latest version of https://eprint.iacr.org/2022/560 proposes that each shuffler picks random indices from the entire
candidate set instead of organizing validators into a square.
* Move to _features
* remove dummy test
* Run doctoc
* Change Whisk's previous fork to Capella instead of Bellatrix. Make linter happier.
* Fix lint
* Fix pylint
* Fix mypy issues
* Clean-up get_beacon_proposer_index
* Fix doc headers
* Fix capella link
* Update apply_deposit
* Rename process_shuffled_trackers
---------
Co-authored-by: George Kadianakis <desnacked@riseup.net>
Co-authored-by: Justin <drakefjustin@gmail.com>
Co-authored-by: Nalin Bhardwaj <nalinbhardwaj@nibnalin.me>
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Add docs
* update link to template
* Add more info
* Try mkdocs
* Create docs.yml
* Update docs.yml
* update
* update
* update
* Try mkdocs
* Add "B: Make it executable for pytest and test generator" section
* Use mkdocs-material
* Use `mkdocs-awesome-pages-plugin` to create custom specs order
* Add toc permalink
* Update site_url
* Add .pages files for navigations. Update highlight style
* Dark theme
* Fix list indent
- Implement all the required glue code to make things executable
- Implement a dummy KZG trusted setup
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
See tests/core/pyspec/README.md for usage description.
This commit:
- refactors config loading to be part of the pyspec package
- updates requirements and main files to use new config loading
- cleans up the build script
- converts the build script to a distutil command
- runs pyspec build as part of build package command
- provides pyspecdev command to get editable spec python files