lru-dict build fails when building under clang version 16 (6badf6376d). This bumps the version to the latest stable release.
Tested on MacOS M2 and Ubuntu Jammy x86-64.
* Moved configuration into network preset instead of constants.
Now that `MAX_CHUNK_SIZE` and `GOSSIP_MAX_SIZE` are in configuration, we no longer need separate constants to represent them in the spec when they change in Bellatrix.
I've changed the usage, and put the values into the presets, but I'm not sure if I've updated the descriptions in the best way...
This is following on from the work in #3375 where a number of constants got moved into configuration, so we no longer need these constants to be separately represented, they can simply be updated in presets.
* Update presets/minimal/bellatrix.yaml
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Update presets/mainnet/bellatrix.yaml
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* Moved preset items into the correct section and updated TOC.
It looked like the items listed in configuration about the max size and chunk size were no longer needed since we're updating preset values now and the preset changes seem to only be listed in the changes at the top.
* review feedback
* hopefully correct this time! Moved the 2 fields from configs into presets completely as suggested.
* WIP - changing back to being in config and updating the phase 0 value... I think this should be close but want to see what's outstanding.
* fix intellij's formatting of table.
* more fixes
---------
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
* 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>