Michael Sproul
c754234b2c
Fix bugs in proposer calculation post-Fulu ( #8101 )
...
As identified by a researcher during the Fusaka security competition, we were computing the proposer index incorrectly in some places by computing without lookahead.
- [x] Add "low level" checks to computation functions in `consensus/types` to ensure they error cleanly
- [x] Re-work the determination of proposer shuffling decision roots, which are now fork aware.
- [x] Re-work and simplify the beacon proposer cache to be fork-aware.
- [x] Optimise `with_proposer_cache` to use `OnceCell`.
- [x] All tests passing.
- [x] Resolve all remaining `FIXME(sproul)`s.
- [x] Unit tests for `ProtoBlock::proposer_shuffling_root_for_child_block`.
- [x] End-to-end regression test.
- [x] Test on pre-Fulu network.
- [x] Test on post-Fulu network.
Co-Authored-By: Michael Sproul <michael@sigmaprime.io >
2025-09-26 14:44:50 +00:00
Eitan Seri-Levi
242bdfcf12
Add instrumentation to recompute_head_at_slot ( #8049 )
...
Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com >
2025-09-16 05:18:31 +00:00
Eitan Seri-Levi
99e53b88c3
Migrate from ethereum-types to alloy-primitives ( #6078 )
...
* Remove use of ethers_core::RlpStream
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* Remove old code
* Simplify keccak call
* Remove unused package
* Merge branch 'unstable' of https://github.com/ethDreamer/lighthouse into remove_use_of_ethers_core
* Merge branch 'unstable' into remove_use_of_ethers_core
* Run clippy
* Merge branch 'remove_use_of_ethers_core' of https://github.com/dospore/lighthouse into remove_use_of_ethers_core
* Check all cargo fmt
* migrate to alloy primitives init
* fix deps
* integrate alloy-primitives
* resolve dep issues
* more changes based on dep changes
* add TODOs
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* Revert lock
* Add BeaconBlocksByRange v3
* continue migration
* Revert "Add BeaconBlocksByRange v3"
This reverts commit e3ce7fc5ea .
* impl hash256 extended trait
* revert some uneeded diffs
* merge conflict resolved
* fix subnet id rshift calc
* rename to FixedBytesExtended
* debugging
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fix failed test
* fixing more tests
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* introduce a shim to convert between the two u256 types
* move alloy to wrokspace
* align alloy versions
* update
* update web3signer test certs
* refactor
* resolve failing tests
* linting
* fix graffiti string test
* fmt
* fix ef test
* resolve merge conflicts
* remove udep and revert cert
* cargo patch
* cyclic dep
* fix build error
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* resolve conflicts, update deps
* merge unstable
* fmt
* fix deps
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* resolve merge conflicts
* resolve conflicts, make necessary changes
* Remove patch
* fmt
* remove file
* merge conflicts
* sneaking in a smol change
* bump versions
* Merge remote-tracking branch 'origin/unstable' into migrate-to-alloy-primitives
* Updates for peerDAS
* Update ethereum_hashing to prevent dupe
* updated alloy-consensus, removed TODOs
* cargo update
* endianess fix
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fmt
* fix merge
* fix test
* fixed_bytes crate
* minor fixes
* convert u256 to i64
* panic free mixin to_low_u64_le
* from_str_radix
* computbe_subnet api and ensuring we use big-endian
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fix test
* Simplify subnet_id test
* Simplify some more tests
* Add tests to fixed_bytes crate
* Merge branch 'unstable' into migrate-to-alloy-primitives
2024-09-02 08:03:24 +00:00
Michael Sproul
61962898e2
In-memory tree states ( #5533 )
...
* Consensus changes
* EF tests
* lcli
* common and watch
* account manager
* cargo
* fork choice
* promise cache
* beacon chain
* interop genesis
* http api
* lighthouse
* op pool
* beacon chain misc
* parallel state cache
* store
* fix issues in store
* IT COMPILES
* Remove some unnecessary module qualification
* Revert Arced pubkey optimization (#5536 )
* Merge remote-tracking branch 'origin/unstable' into tree-states-memory
* Fix caching, rebasing and some tests
* Remove unused deps
* Merge remote-tracking branch 'origin/unstable' into tree-states-memory
* Small cleanups
* Revert shuffling cache/promise cache changes
* Fix state advance bugs
* Fix shuffling tests
* Remove some resolved FIXMEs
* Remove StateProcessingStrategy
* Optimise withdrawals calculation
* Don't reorg if state cache is missed
* Remove inconsistent state func
* Fix beta compiler
* Rebase early, rebase often
* Fix state caching behaviour
* Update to milhouse release
* Fix on-disk consensus context format
* Merge remote-tracking branch 'origin/unstable' into tree-states-memory
* Squashed commit of the following:
commit 3a16649023
Author: Michael Sproul <michael@sigmaprime.io >
Date: Thu Apr 18 14:26:09 2024 +1000
Fix on-disk consensus context format
* Keep indexed attestations, thanks Sean
* Merge branch 'on-disk-consensus-context' into tree-states-memory
* Merge branch 'unstable' into tree-states-memory
* Address half of Sean's review
* More simplifications from Sean's review
* Cache state after get_advanced_hot_state
2024-04-24 01:22:36 +00:00
Michael Sproul
feb531f85b
Single-pass epoch processing and optimised block processing ( #5279 )
...
* Single-pass epoch processing (#4483 , #4573 )
Co-authored-by: Michael Sproul <michael@sigmaprime.io >
* Delete unused epoch processing code (#5170 )
* Delete unused epoch processing code
* Compare total deltas
* Remove unnecessary apply_pending
* cargo fmt
* Remove newline
* Use epoch cache in block packing (#5223 )
* Remove progressive balances mode (#5224 )
* inline inactivity_penalty_quotient_for_state
* drop previous_epoch_total_active_balance
* fc lint
* spec compliant process_sync_aggregate (#15 )
* spec compliant process_sync_aggregate
* Update consensus/state_processing/src/per_block_processing/altair/sync_committee.rs
Co-authored-by: Michael Sproul <micsproul@gmail.com >
---------
Co-authored-by: Michael Sproul <micsproul@gmail.com >
* Delete the participation cache (#16 )
* update help
* Fix op_pool tests
* Fix fork choice tests
* Merge remote-tracking branch 'sigp/unstable' into epoch-single-pass
* Simplify exit cache (#5280 )
* Fix clippy on exit cache
* Clean up single-pass a bit (#5282 )
* Address Mark's review of single-pass (#5386 )
* Merge remote-tracking branch 'origin/unstable' into epoch-single-pass
* Address Sean's review comments (#5414 )
* Address most of Sean's review comments
* Simplify total balance cache building
* Clean up unused junk
* Merge remote-tracking branch 'origin/unstable' into epoch-single-pass
* More self-review
* Merge remote-tracking branch 'origin/unstable' into epoch-single-pass
* Merge branch 'unstable' into epoch-single-pass
* Fix imports for beta compiler
* Fix tests, probably
2024-04-04 13:14:36 +00:00