mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-06 01:32:18 +00:00
e3e9863d92
20 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
Nishant Das
|
626b3e0c66
|
Add Reference Copying (#5245)
* add state changes * add new changes * add flag * lint * add flag * change to correct bool * fixing and consolidating trie * lint * Apply suggestions from code review * Merge refs/heads/master into addBetterCopying * Merge branch 'master' into addBetterCopying * refCopy -> stateRefCopy * Merge refs/heads/master into addBetterCopying * tests whether unexpected mutation of validators within state is avoided * Merge branch 'addBetterCopying' of github.com:prysmaticlabs/prysm into addBetterCopying * remove unnecessary fields * gazelle * updates test * avoid unexpected mutation in block roots on refcopy * avoid unexpected mutation in state roots on refcopy * Merge refs/heads/master into addBetterCopying * Merge branch 'master' into addBetterCopying * fix test * randao tests * simplify tests * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * test cur/prev attestations mutation * Merge branch 'addBetterCopying' of github.com:prysmaticlabs/prysm into addBetterCopying * gazelle * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * fixes tests * minor naming update * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying * Merge refs/heads/master into addBetterCopying |
||
Victor Farazdagi
|
0ecd2a6dc2
|
updates UpdateRandaoMixesAtIndex signature (#5447)
* updates signature * Merge branch 'master' into fix-update-randao-mixes-signature |
||
terence tsao
|
cb045dd0e3
|
Align code base to v0.11 (#5127)
* Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * Merge refs/heads/master into v0.10.1 * add in new patch and workspace * update cloners * Handle rewards overflow (#5122) * Refactoring of initial sync (#5096) * implements blocks queue * refactors updateCounter method * fixes deadlock on stop w/o start * refactors updateSchedulerState * more tests on schduler * parseFetchResponse tests * wraps up tests for blocks queue * eod commit * fixes data race in round robin * revamps fetcher * fixes race conditions + livelocks + deadlocks * less verbose output * fixes data race, by isolating critical sections * minor refactoring: resolves blocking calls * implements init-sync queue * udpate fetch/send buffers in blocks fetcher * blockState enum-like type alias * refactors common code into releaseTicket() * better gc * linter * minor fix to round robin * moves original round robin into its own package * adds enableInitSyncQueue flag * fixes issue with init-sync service selection * Update beacon-chain/sync/initial-sync/round_robin.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * initsyncv1 -> initsyncold * adds span Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Handle rewards overflow * Revert "Refactoring of initial sync (#5096)" This reverts commit |
||
Preston Van Loon
|
d5ddd012bc
|
Enforce error handling and checking type assertions (#5403)
* Enforce error handling and checking type assertions * Reference issue #5404 in the TODO message * doc description * Merge branch 'master' into errcheck * fix tests and address @nisdas feedbacK * gaz * fix docker image |
||
Preston Van Loon
|
8c9ae8e3bf
|
Use state validator index map (#5383)
* remove validator index tracking from DB * Builds production code path * tests build * fix tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> |
||
Nishant Das
|
5450b3155e
|
Integrate Field Tries into Current State (#5082)
* add new methods * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into improvedHTRArrays * new field trie * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into improvedHTRArrays * perform better copying * fix bug * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into improvedHTRArrays * add support for variable length arrays * get it running * save all new progress * more fixes * more fixes * more cleanup * some more clean up * new memory pool * remove lock * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into improvedHTRArrays * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into improvedHTRArrays * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into improvedHTRArrays * use wrapper * remove redundant methods * cleanup * cleanup * remove unused method * change field * Update beacon-chain/state/types.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Update beacon-chain/state/types.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> |
||
shayzluf
|
25308ef9fa
|
fuzzing core/state package without skip slot cache (#4883)
* fuzzing core/state package * named error msg * err comment * terence feedback * preston feedback * preston feedback Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> |
||
garyschulteog
|
27ec40f269
|
Remove remaining instances of proto.clone() (#4806)
* prysm-4757 remove proto.Clone() in favor of existing getters.Copy* methods * prysm-4757 added a bunch of copy methods, and broke some tests * squash commits fix tests and getter implementations remove usage of CopySignedBeaconBlock from ReceiveBlockNoVerify * correctly copy Deposit proof and remove proto.clone() again * Merge branch 'master' into prysm-4757-no-proto-clone * Merge branch 'master' into prysm-4757-no-proto-clone * Fix for comments, inline possible function calls * Merge branch 'master' of https://github.com/prysmaticlabs/Prysm into prysm-4757-no-proto-clone * Merge branch 'master' into prysm-4757-no-proto-clone * updated with feedback from review * Merge branch 'master' into prysm-4757-no-proto-clone * Merge branch 'master' into prysm-4757-no-proto-clone * Merge branch 'master' into prysm-4757-no-proto-clone |
||
Preston Van Loon
|
661e48f549
|
Revert state copy PR #4811 (#4825)
* Revert "Add mempool feature flag (#4824)" This reverts commit |
||
Nishant Das
|
4f654d30ac
|
Optimize Copying of Fields (#4811)
* add new changes * memory pool * add test * final optimization * preston's review |
||
Nishant Das
|
f16a71f178
|
Revert "Update Slices More Efficiently" (#4790)
* Revert "Update Slices More Efficiently (#4789)"
This reverts commit
|
||
Nishant Das
|
669e1ea787
|
Update Slices More Efficiently (#4789)
* better cached states * lint * jim's review |
||
Preston Van Loon
|
34178aff2a
|
Strict verify attestations in pubsub (#4782)
* Verify attestations before putting them into the pool * use existing method * Validate aggregated ones too * Revert "Validate aggregated ones too" This reverts commit a55646d131813c3e65e0539ef5b2e5bda19a5e91. * Merge branch 'master' of github.com:prysmaticlabs/prysm into verify-all-atts * Add feature flag * The remaining shared reference fields with conditional copy on write * Merge branch 'master' into better-copy-2 * Merge branch 'better-copy-2' of github.com:prysmaticlabs/prysm into verify-all-atts * gaz * fix build, put into validate * lint * Merge branch 'master' of github.com:prysmaticlabs/prysm into verify-all-atts * why does goland do this to me * revert unrelated change * fix tests * Update shared/featureconfig/config.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Merge refs/heads/master into verify-all-atts * Update beacon-chain/blockchain/testing/mock.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * gofmt |
||
Preston Van Loon
|
f6dfaef537
|
BeaconState: remaining shared reference fields with conditional copy on write (#4785)
* The remaining shared reference fields with conditional copy on write * Merge branch 'master' into better-copy-2 |
||
Preston Van Loon
|
91b8760632
|
Beacon State: Track field references (#4751)
* track field references * gofmt, RLock * Merge refs/heads/master into randao-ref-tracking * Merge refs/heads/master into randao-ref-tracking * Merge refs/heads/master into randao-ref-tracking * Merge refs/heads/master into randao-ref-tracking * Merge refs/heads/master into randao-ref-tracking * Merge refs/heads/master into randao-ref-tracking * Merge refs/heads/master into randao-ref-tracking * cleanup comments * Merge branch 'randao-ref-tracking' of github.com:prysmaticlabs/prysm into randao-ref-tracking * Add a test for finalizer * Merge refs/heads/master into randao-ref-tracking * Merge refs/heads/master into randao-ref-tracking * maybe fix data race * maybe fix data race * temp comment out test file to find which one fails race test * its definitely something with the checkpoint state cache * its definitely something with the checkpoint state cache * its definitely something with the checkpoint state cache * Merge refs/heads/master into randao-ref-tracking * This should fix it * Merge branch 'randao-ref-tracking' of github.com:prysmaticlabs/prysm into randao-ref-tracking * gaz * Merge refs/heads/master into randao-ref-tracking * Merge refs/heads/master into randao-ref-tracking * turn off race detection, i dont understand why is broken * Merge branch 'randao-ref-tracking' of github.com:prysmaticlabs/prysm into randao-ref-tracking * feedback * @nisdas feedback * Revert "@nisdas feedback" This reverts commit 6129cf84e6b5ceb085ff8ed3d47b1c432cd05ca9. * Merge refs/heads/master into randao-ref-tracking |
||
Preston Van Loon
|
e63119b254
|
Better state locking (#4733)
* Rearrange lock a bit * better locking without deadlock * reorder lock |
||
Preston Van Loon
|
f432f7851e
|
BeaconState: Use copy on write for validator index map (#4713)
* Use copy on write for validator index map * Merge refs/heads/master into copy-on-write-2 |
||
Preston Van Loon
|
c2fbb40909
|
Beacon state: copy on write for certain large fields (#4699)
* begin state service * begin on the state trie idea * created beacon state structure * add in the full clone getter * return by value instead * add all setters * new state setters are being completed * arrays roots exposed * close to finishing all these headerssss * functionality complete * added in proto benchmark test * test for compatibility * add test for compat * comments fixed * add clone * add clone * remove underlying copies * make it immutable * integrate it into chainservice * revert * wrap up comments for package * address all comments and godocs * address all comments * clone the pending attestation properly * properly clone remaining items * tests pass fixed bug * begin using it instead of head state * prevent nil pointer exceptions * begin using new struct in db * integrated new type into db package * add proper nil checks * using new state in archiver * refactored much of core * editing all the precompute functions * done with most core refactor * fixed up some bugs in the clone comparisons * append current epoch atts * add missing setters * add new setters * fix other core methods * fix up transition * main service and forkchoice * fix rpc * integrated to powchain * some more changes * fix build * improve processing of deposits * fix error * prevent panic * comment * fix process att * gaz * fix up att process * resolve existing review comments * resolve another batch of gh comments * resolve broken cpt state * revise testutil to use the new state * begin updating the state transition func to pass in more compartmentalized args * finish editing transition function to return errors * block operations pretty much done with refactor * state transition fully refactored * got epoch processing completed * fix build in fork choice * fixing more of the build * fix up broken sync package * it builds nowww it buildssss * revert registry changes * Recompute on Read (#4627) * compute on read * fix up eth1 data votes * looking into slashings bug introduced in core/ * able to advance more slots * add logging * can now sync with testnet yay * remove the leaves algorithm and other merkle imports * expose initialize unsafe funcs * Update beacon-chain/db/kv/state.go * lint Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * More Optimizations for New State (#4641) * map optimization * more optimizations * use a custom hasher * comment * block operations optimizations * Update beacon-chain/state/types.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * fixed up various operations to use the validator index map access Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * archiver tests pass * fixing cache tests * cache tests passing * edited validator tests * powchain tests passing * halfway thru sync tests * more sync test fixes * add in tests for state/ * working through rpc tests * assignments tests passed * almost done with rpc/beacon tests * resolved painful validator test * fixed up even more tests * resolve tests * fix build * reduce a randao mixes copy * fixes under //beacon-chain/blockchain/... * build //beacon-chain/core/... * fixes * Runtime Optimizations (#4648) * parallelize shuffling * clean up * lint * fix build * use callback to read from registry * fix array roots and size map * new improvements * reduce hash allocs * improved shuffling * terence's review * use different method * raul's comment * new array roots * remove clone in pre-compute * Update beacon-chain/state/types.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * raul's review * lint * fix build issues * fix visibility Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * fix visibility * build works for all * fix blockchain test * fix a few tests * fix more tests * update validator in slashing * archiver passing * fixed rpc/validator * progress on core tests * resolve broken rpc tests * blockchain tests passed * fix up some tests in core * fix message diff * remove unnecessary save * Save validator after slashing * Update validators one by one * another update * fix everything * fix more precompute tests * fix blocks tests * more elegant fix * more helper fixes * change back ? * fix test * fix skip slot * fix test * reset caches * fix testutil * raceoff fixed * passing * Retrieve cached state in the beginning * lint * Fixed tests part 1 * Fixed rest of the tests * Minor changes to avoid copying, small refactor to reduce deplicated code * Handle att req for slot 0 * New beacon state: Only populate merkle layers as needed, copy merkle layers on copy/clone. (#4689) * Only populate merkle layers as needed, copy merkle layers on copy/clone. * use custom copy * Make maps of correct size * slightly fast, doesn't wait for lock Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Target root can't be 0x00 * Don't use cache for current slot (may not be the right fix) * fixed up tests * Remove some copy for init sync. Not sure if it is safe enough for runtime though... testing... * Align with prev logic for process slots cachedState.Slot() < slot * Fix Initial Sync Flag (#4692) * fixes * fix up some test failures due to lack of nil checks * fix up some test failures due to lack of nil checks * fix up imports * revert some changes * imports Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * resolving further conflicts * Better skip slot cache (#4694) * Return copy of skip slot cache state, disable skip slot cache on sync * fix * Fix pruning * copy on write method * gaz * fix tests * fix up issues with broken tests * remove extra update * remove debugging lines * gofmt Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> |
||
Raul Jordan
|
cc741ed8af
|
Ensure New State Type Tests Pass in Prysm (#4646)
* begin state service * begin on the state trie idea * created beacon state structure * add in the full clone getter * return by value instead * add all setters * new state setters are being completed * arrays roots exposed * close to finishing all these headerssss * functionality complete * added in proto benchmark test * test for compatibility * add test for compat * comments fixed * add clone * add clone * remove underlying copies * make it immutable * integrate it into chainservice * revert * wrap up comments for package * address all comments and godocs * address all comments * clone the pending attestation properly * properly clone remaining items * tests pass fixed bug * begin using it instead of head state * prevent nil pointer exceptions * begin using new struct in db * integrated new type into db package * add proper nil checks * using new state in archiver * refactored much of core * editing all the precompute functions * done with most core refactor * fixed up some bugs in the clone comparisons * append current epoch atts * add missing setters * add new setters * fix other core methods * fix up transition * main service and forkchoice * fix rpc * integrated to powchain * some more changes * fix build * improve processing of deposits * fix error * prevent panic * comment * fix process att * gaz * fix up att process * resolve existing review comments * resolve another batch of gh comments * resolve broken cpt state * revise testutil to use the new state * begin updating the state transition func to pass in more compartmentalized args * finish editing transition function to return errors * block operations pretty much done with refactor * state transition fully refactored * got epoch processing completed * fix build in fork choice * fixing more of the build * fix up broken sync package * it builds nowww it buildssss * revert registry changes * Recompute on Read (#4627) * compute on read * fix up eth1 data votes * looking into slashings bug introduced in core/ * able to advance more slots * add logging * can now sync with testnet yay * remove the leaves algorithm and other merkle imports * expose initialize unsafe funcs * Update beacon-chain/db/kv/state.go * lint Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * More Optimizations for New State (#4641) * map optimization * more optimizations * use a custom hasher * comment * block operations optimizations * Update beacon-chain/state/types.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * fixed up various operations to use the validator index map access Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * archiver tests pass * fixing cache tests * cache tests passing * edited validator tests * powchain tests passing * halfway thru sync tests * more sync test fixes * add in tests for state/ * working through rpc tests * assignments tests passed * almost done with rpc/beacon tests * resolved painful validator test * fixed up even more tests * resolve tests * fix build * reduce a randao mixes copy * fixes under //beacon-chain/blockchain/... * build //beacon-chain/core/... * fixes * Runtime Optimizations (#4648) * parallelize shuffling * clean up * lint * fix build * use callback to read from registry * fix array roots and size map * new improvements * reduce hash allocs * improved shuffling * terence's review * use different method * raul's comment * new array roots * remove clone in pre-compute * Update beacon-chain/state/types.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * raul's review * lint * fix build issues * fix visibility Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * fix visibility * build works for all * fix blockchain test * fix a few tests * fix more tests * update validator in slashing * archiver passing * fixed rpc/validator * progress on core tests * resolve broken rpc tests * blockchain tests passed * fix up some tests in core * fix message diff * remove unnecessary save * Save validator after slashing * Update validators one by one * another update * fix everything * fix more precompute tests * fix blocks tests * more elegant fix * more helper fixes * change back ? * fix test * fix skip slot * fix test * reset caches * fix testutil * raceoff fixed * passing * Retrieve cached state in the beginning * lint * Fixed tests part 1 * Fixed rest of the tests * Minor changes to avoid copying, small refactor to reduce deplicated code * Handle att req for slot 0 * New beacon state: Only populate merkle layers as needed, copy merkle layers on copy/clone. (#4689) * Only populate merkle layers as needed, copy merkle layers on copy/clone. * use custom copy * Make maps of correct size * slightly fast, doesn't wait for lock Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Target root can't be 0x00 * Don't use cache for current slot (may not be the right fix) * fixed up tests * Remove some copy for init sync. Not sure if it is safe enough for runtime though... testing... * Align with prev logic for process slots cachedState.Slot() < slot * Fix Initial Sync Flag (#4692) * fixes * fix up some test failures due to lack of nil checks * fix up some test failures due to lack of nil checks * fix up imports * revert some changes * imports Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * resolving further conflicts * Better skip slot cache (#4694) * Return copy of skip slot cache state, disable skip slot cache on sync * fix * Fix pruning * fix up issues with broken tests Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com> Co-authored-by: shayzluf <thezluf@gmail.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> |
||
Raul Jordan
|
abe679e90e
|
Create New Beacon State Data Structure (#4602)
* begin state service * begin on the state trie idea * created beacon state structure * add in the full clone getter * return by value instead * add all setters * new state setters are being completed * arrays roots exposed * close to finishing all these headerssss * functionality complete * added in proto benchmark test * test for compatibility * add test for compat * comments fixed * add clone * add clone * remove underlying copies * make it immutable * integrate it into chainservice * revert * wrap up comments for package * address all comments and godocs * address all comments * clone the pending attestation properly * properly clone remaining items * tests pass fixed bug * prevent nil pointer exceptions * fixed up some bugs in the clone comparisons Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> |