Nishant Das
245d8a29e0
Optimize Zerohash Comparisons In Forkchoice ( #12458 )
2023-05-24 09:58:02 +00:00
Potuz
b9917807d8
Ignore some untimely attestations ( #12387 )
...
* Ignore some untimely attestations
* correct child slot check
* consider tips as viable for checkpoints
* deal with canonical blocks
* forkchoice unit tests
* blockchain readonly beacon state
* Ignore some untimely attestations
* correct child slot check
* consider tips as viable for checkpoints
* deal with canonical blocks
* forkchoice unit tests
* blockchain readonly beacon state
* Fix AttestationTargetState mock
* Fix ineffectual assignment lint
* Fix blockchain tests
* Fix build
* Add Nil check
* add comment on lock
---------
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: Preston Van Loon <pvanloon@offchainlabs.com>
2023-05-12 16:55:33 +00:00
Potuz
300a827027
Use same signature for unrealized justified hash and justified hash ( #12314 )
...
* Use same signature for unrealized justified hash and justified hash
* fix build
2023-04-20 15:59:12 +00:00
Justin Traglia
8428a79971
Enable whitespace linter & fix findings ( #12273 )
...
* Enable whitespace linter & fix findings
* Fix new finding
* fix new violation
---------
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
Co-authored-by: Preston Van Loon <pvanloon@offchainlabs.com>
2023-04-18 18:58:27 +00:00
terencechain
17488028a6
Use justified hash as safe block hash when passing attribute ( #12196 )
...
* With attribute, use justified hash as safe block hash
* Use UnrealizedJustifiedPayloadBlockHash
* Cleanups
* Add test to forkchoice
* Block proposal
* Fix mock
* Fix test
* Fix rest of the tests
* Potuz feedback
* Fix test
* Use unrealized justified hash for regular fcu
2023-03-29 23:38:36 +00:00
terencechain
d17996f8b0
Update to V4
🚀 ( #12134 )
...
* Update V3 from V4
* Fix build v3 -> v4
* Update ssz
* Update beacon_chain.pb.go
* Fix formatter import
* Update update-mockgen.sh comment to v4
* Fix conflicts. Pass build and tests
* Fix test
2023-03-17 18:52:56 +00:00
Potuz
99997fa2e3
forkchoice changes ( #12126 )
...
* forkchoice changes
* gazelle
* remove best justified from forkchoice dump
* keep protobufs and update comment
* remove phase0 tests
* bumb spectests version
* missing sha
* Fix sha256 for spec
* rpc tests
* Mark field 3 as reserved so it will never be used it again
---------
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
2023-03-16 14:27:30 -03:00
terencechain
78d49fda13
Minor cleanup to forkchoice pkg ( #12078 )
...
* Minor cleanup to forkchoice pkg
* Rm implementation
---------
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2023-03-06 17:01:36 +00:00
Potuz
0a87210514
Forkchoice external locks v2 ( #12036 )
...
* write locks
* fix forkchoice tests
* blockchain locks
* lock on IsOptimistic
* use forkchoice instead of chaininfo within savehead
* Use forkchoice HasNode to check if a block is consistent with finality
* interface fix
* Use forkchoice HasNode to check if a block is consistent with finality
* interface fix
* fix tests
* remove VerifyFinalizedBlkDescendant
* don't write lock wrappers
* fix validateBeaconBlock
* Terence's review and more missing locks
* add lock for InForkChoice
* lock head on fillMissingBlockPayload
* fix lock on IsOptimisticForRoot
* fix lock in fillMissingBlockPayloadId
* extra comments
* lock proposerBoost on spectests
* nishant's review
---------
Co-authored-by: Nishant Das <nishdas93@gmail.com>
2023-03-02 09:10:52 -03:00
Potuz
166f7119ec
Implement should_override_forkchoice_update ( #11981 )
...
* Implement should_override_forchoice_update
* add tests
* remove unused exported function
* go mod tidy
* fix go mod
* Fix go mod tidy
* Fix context import
* mod tidy
* fix test
* Terence's review
* fix test
---------
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2023-02-18 07:37:03 -03:00
Potuz
b687d29d02
Forkchoice interface cleanup ( #12010 )
...
* remove AllTipsAreInvalid
* rename InsertOptimisticChain
* remove proposer boost interface
* remove HasParent
2023-02-17 17:36:52 +00:00
Potuz
c7f0a94b19
Remove state balance cache ( #11964 )
...
* Remove state balance cache
* remove unused metrics
* add missing balance update
* add comment about locks
* update balance only when updataing the justified checkpoint on unrealization
* update checkpoint balances at launch
* fix unit tests
* fix remaining test
* review
* fix build file
* fix test
---------
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
2023-02-15 14:19:46 +00:00
Potuz
0d6e8718fd
Aditya's PR 18 ( #11945 )
...
* Aditya's PR 18
This PR implements PR18. There is still a missing piece which is
consistency of head with finalized checkpoint. I will think on ways to
enforce this.
* prune finalized incompatible
* don't check finalization on viable for head
* unit tests fixes
* gazelle
* remove finalized epoch from viableForHead
* remove finalized epoch from leadsToViableHead
* use non-slashed indices
* function rename
* lint fixes
* lint fixes
* lint fixes
2023-02-05 09:40:07 -03:00
Radosław Kapka
77d3ccb9ad
Clean up state types ( #11916 )
...
* Clean up state types
* rename package
2023-01-26 14:40:12 +00:00
Potuz
66b6177ed3
Log forkchoice weights on reorgs ( #11849 )
2023-01-05 20:06:40 -03:00
Patrice Vignola
83f48350b2
Fix a bunch of deepsource warnings ( #11814 )
2022-12-22 09:20:10 +00:00
Radosław Kapka
c7a3cf8563
GetForkChoice
API endpoint (#11680 )
...
* proto
* middleware
* change structure
* fix all issues
* test
* validity field
2022-11-28 19:17:53 +00:00
Inphi
872021f10d
Remove unneeded protoarray tests ( #11607 )
...
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
2022-11-04 09:39:52 +00:00
Radosław Kapka
cafe0bd1f8
Capella beacon state ( #11141 )
...
* fork
* types
* cloners
* getters
* remove CapellaBlind from fork
* hasher
* setters
* spec params, config tests
* generate ssz
* executionPayloadHeaderCapella
* proto state
* BeaconStateCapella SSZ
* saving state
* configfork
* BUILD files
* fix RealPosition
* fix hasher
* SetLatestExecutionPayloadHeaderCapella
* fix error message
* reduce complexity of saveStatesEfficientInternal
* add latestExecutionPayloadHeaderCapella to minimal state
* halway done interface
* remove withdrawal methods
* merge setters
* change signatures for v1 and v2
* fixing errors pt. 1
* paylod_test fixes
* fix everything
* remove unused func
* fix tests
* state_trie_test improvements
* in progress...
* hasher test
* fix configs
* simplify hashing
* Revert "fix configs"
This reverts commit bcae2825fcc8ba45a2b43d68ad0ab57f8eac8952.
* remove capella from config test
* unify locking
* review
* hashing
* fixes
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
2022-10-12 11:39:19 -05:00
Potuz
ad65c841c4
Add a justified balance getter to forkchoice ( #11513 )
...
* init
* unit test
* DeepSource complains
* gaz
* shutting deepsource down
* change var name and use handler type
* Kasey's name suggestion
* fix stategen
* interface signature
Co-authored-by: terencechain <terence@prysmaticlabs.com>
2022-09-30 06:39:07 -03:00
terencechain
d860daff75
clean up: godoc comments, redundant castings and more ( #11428 )
...
* clean up: Godoc comments, redundant castings and more
* Fix assertion check
* Update beacon-chain/forkchoice/doubly-linked-tree/forkchoice.go
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* Update beacon-chain/forkchoice/protoarray/store.go
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
2022-09-12 14:03:20 +00:00
Potuz
fc509cc220
Prune during on_tick ( #11387 )
...
* Prune during on_tick
* add unit test
* fix tests
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-09-08 14:41:10 +00:00
Radosław Kapka
4d90afe944
Fixed size arrays in block interfaces and structs ( #11375 )
...
* Fixed size arrays in block fields
* test fix
* fmt
* fix fetcher test
* fix fuzz tests
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-09-06 14:30:16 +00:00
Potuz
d2b39e9697
Defensive pull tips, doubly-linked-tree ( #11175 )
...
* Defensive pull tips, doubly-linked-tree
* feature flag
* gaz
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-08-30 00:48:25 +00:00
Radosław Kapka
30cd158ae5
Move forkchoice dump to eth
namespace ( #11325 )
...
* protos
* server code
* rename v2 to v1 in endpoint
* middleware
* test fix
* test fix
* oops
* remove duplicated import
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-08-26 14:54:32 +00:00
Potuz
52271cf0ba
Report depth and distance on reorgs ( #11315 )
...
* Report depth and distance on reorgs
* rename to CommonAncestor
* change event feed
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-08-25 23:59:08 +00:00
Potuz
e1f56d403c
Restore forkchoice dump endpoint. ( #11312 )
...
* Restore forkchoice dump endpoint.
Only working on doubly-linked-tree.
* unit test
* revert proto changes
* protoarray
* Deepsource
* shut up!
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-08-25 23:37:23 +00:00
Potuz
8fecfaee48
DoublyLinkedTree double locks ( #11269 )
...
* DoublyLinkedTree double locks
* fix updateCheckpoints
* add comment
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-08-19 14:06:57 +00:00
Raul Jordan
d077483577
Add V3 Suffix to All Prysm Packages ( #11083 )
...
* v3 import renamings
* tidy
* fmt
* rev
* Update beacon-chain/core/epoch/precompute/reward_penalty_test.go
* Update beacon-chain/core/helpers/validators_test.go
* Update beacon-chain/db/alias.go
* Update beacon-chain/db/alias.go
* Update beacon-chain/db/alias.go
* Update beacon-chain/db/iface/BUILD.bazel
* Update beacon-chain/db/kv/kv.go
* Update beacon-chain/db/kv/state.go
* Update beacon-chain/rpc/prysm/v1alpha1/validator/attester_test.go
* Update beacon-chain/rpc/prysm/v1alpha1/validator/attester_test.go
* Update beacon-chain/sync/initial-sync/service.go
* fix deps
* fix bad replacements
* fix bad replacements
* change back
* gohashtree version
* fix deps
Co-authored-by: Nishant Das <nishdas93@gmail.com>
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
2022-08-16 12:20:13 +00:00
Potuz
155d60dd60
Remove forkchoice debug endpoint ( #11105 )
...
* Remove forkchoice debug endpoint
* change protos
Co-authored-by: terencechain <terence@prysmaticlabs.com>
2022-08-15 21:04:39 +00:00
terencechain
1117118435
Add highest slot and blocks received last epoch tracking ( #11146 )
...
* Add highest slot and blocks received last epoch tracking
* Comments
* Potuz feedback
* Fix tesT
* Potuz feedback, use clock time
* Raul's feedback
* Raul's feedback
* Use field params
* Fix minimal value
* Fix constant
* Fix constant
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-08-10 15:58:52 +00:00
terencechain
9b4d22c48c
Remove unused ctxs ( #11192 )
...
* Remove unused ctxs
* Check ctx errors
2022-08-09 16:43:29 +00:00
David Theodore
1323912625
Node by root mutex fix ( #11172 )
2022-08-04 19:40:25 -07:00
Potuz
cef95dd5b2
Revert --experimental-disable-boundary-checks ( #11160 )
...
* Revert --experimental-disable-boundary-checks
* add deprecation
* gaz
* spectests
* spectests fix
* fix previous justified checkpoint
* copy previous jcp
* Revert "copy previous jcp"
This reverts commit 6e2b865c23e356e24b1f801ad3670acb0714ade7.
* update previous jcp on on_tick
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-08-04 13:26:41 +00:00
Preston Van Loon
5722a5793c
Tracing: properly overwrite context so that spans can be correctly attributed ( #11012 )
...
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-07-14 17:00:33 +00:00
terencechain
2d53ae79df
Cleanups to pulltips ( #10984 )
...
* Minor cleanups to pulltips
* Feedbacks
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-07-06 16:55:17 +00:00
Potuz
5d29ca4984
Experimental disable boundary checks ( #10936 )
...
* init
* bellatrix + altair tests passing
* Add Phase0 support
* add feature flag
* phase0 test
* restore testvectors
* mod tidy
* state tests
* gaz
* do not call precompute
* fix test
* Fix context
* move to own's method
* remove spectests pulltips
* time import
* remove phase0
* mod tidy
* fix getters
* Update beacon-chain/forkchoice/doubly-linked-tree/types.go
* reviews
* fix workspace
* Recursive rlocks
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
2022-06-29 23:37:21 +00:00
Potuz
f8b4d8c57a
Deprecate store in blockchain pkg ( #10903 )
...
* Deprecate store WIP
* fix spectests build
* mock right interface
* sync tests build
* more tests builds
* blockchain tests
- TestFinalizedCheckpt_GenesisRootOk
- TestCurrentJustifiedCheckpt_CanRetrieve
- TestJustifiedCheckpt_GenesisRootOk
- TestHeadRoot_CanRetrieve
- TestHeadRoot_UseDB
- TestService_ProcessAttestationsAndUpdateHead
- TestService_VerifyWeakSubjectivityRoot
- TestVerifyFinalizedConsistency_InconsistentRoot_ProtoArray
- TestVerifyFinalizedConsistency_InconsistentRoot_DoublyLinkedTree
- TestVerifyFinalizedConsistency_Ok
- TestStore_OnBlock_ProtoArray
- TestStore_OnBlock_DoublyLinkedTree
- TestStore_OnBlockBatch_ProtoArray
- TestStore_OnBlockBatch_DoublyLinkedTree
- TestStore_OnBlockBatch_NotifyNewPayload
- TestCachedPreState_CanGetFromStateSummary_ProtoArray
- TestCachedPreState_CanGetFromStateSummary_DoublyLinkedTree
* more blockchain tests
- TestStore_OnBlockBatch_PruneOK_Protoarray
- TestFillForkChoiceMissingBlocks_CanSave_ProtoArray
- TestFillForkChoiceMissingBlocks_CanSave_DoublyLinkedTree
- TestFillForkChoiceMissingBlocks_RootsMatch_Protoarray
- TestFillForkChoiceMissingBlocks_RootsMatch_DoublyLinkedTree
- TestFillForkChoiceMissingBlocks_FilterFinalized_ProtoArray
- TestFillForkChoiceMissingBlocks_FilterFinalized_DoublyLinkedTree
- TestVerifyBlkDescendant
- Test_verifyBlkFinalizedSlot_invalidBlock
- TestChainService_SaveHeadNoDB
* update best justified from genesis
* deal with nil head on saveHead
* initialize prev justified checkpoint
* update finalization correctly
* update finalization logic
* update finalization logic
* track the wall clock on forkchoice spectests
* export copies of checkpoints from blockchain package
* do not use forkchoice's head on HeadRoot
* Remove debug remain
Co-authored-by: terencechain <terence@prysmaticlabs.com>
* terence's review
* add forkchoice types deps
* wtf
* debugging
* init-sync: update justified and finalized checkpoints on db
* call updateFinalized instead of only DB
* remove debug symbols
* safe copy headroot
Co-authored-by: terencechain <terence@prysmaticlabs.com>
2022-06-25 03:57:52 +00:00
terencechain
b7463d0070
Ignore nil node when saving orphaned atts ( #10930 )
...
* Ignore nil node when saving orphaned atts
* Just use ErrUnknownCommonAncestor
2022-06-24 18:07:31 +00:00
Potuz
2d0fdf8b4a
prune within forkchoice ( #10896 )
2022-06-17 12:53:17 -03:00
Potuz
e439f4aff6
Forkchoice duplicate store ( #10840 )
...
* forkchoice tests
* blockchain tests
* no fatal errors
* use ZeroHash for genesis
* deal with zerohashes at genesis
* avoid nil best justified checkpoint on new store
* unit tests
* Debug log
Co-authored-by: terencechain <terence@prysmaticlabs.com>
* Terence's review
* update capitalization
Co-authored-by: terencechain <terence@prysmaticlabs.com>
* update capitalization
Co-authored-by: terencechain <terence@prysmaticlabs.com>
* update capitalization
Co-authored-by: terencechain <terence@prysmaticlabs.com>
* update capitalization
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: terencechain <terence@prysmaticlabs.com>
2022-06-16 18:21:40 +00:00
Potuz
18fc17c903
Forkchoice checkpoints ( #10823 )
...
* double_tree_changes
* protoarray changes
* beacon-chain changes
* spec tests and debug rpc fixes
* more conflicts
* more conflicts
* Terence's review
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-06-09 22:28:30 +00:00
Potuz
52acaceb3f
Enforce that every node descends from finalized node ( #10784 )
...
* Enforce that every node descends from finalized node
* fix test
* fix conflict
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-06-06 14:28:49 +00:00
Potuz
2536195be0
Change forkchoice API ( #10774 )
...
* Change forkchoice API
doubly-linked-tree changes
* protoarray changes
* blockchain tests
* rebase and fix conflicts
* More blockchain fixes
* blockchain test fixes
* doubly linked tree changes again
* protoarray changes v2
* blockchain packages v2
* Radek's review
* Fix on batch processing
* Terence's review
* fill in at start
* Revert "fill in at start"
This reverts commit 8c11db063a02a59df8e0ac6d0af0c8923921dc76.
* wrap error message
* fill in before mutating the state
* wrap nil node errors
* handle unknown optimistic status on init sync
* rename insert function
* prune on batches only after forkchoice insertion
Co-authored-by: terencechain <terence@prysmaticlabs.com>
2022-06-05 17:48:21 +00:00
Potuz
b582ca27e6
Forkchoice fill chain ( #10783 )
...
* Move chain inclusions to forkchoice handling
* gaz
* return early if no blocks are pending
* Terence's review
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-31 10:19:48 +00:00
terencechain
364ad3fbda
Reinsert reorg atts ( #10767 )
...
* Add common ancestor root for protoarray
* More efficient algo
* Tests
* Fix linting
* Fix linting
* Fix linting
* Fix linting
* Fix linting
* Fix linting
* Apply suggestions from code review
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
* Feedbacks
* Revert saveHead changes
* Revert "Revert saveHead changes"
This reverts commit a15fddc2e68b2e370290b1783eb1ee626af17503.
* Fix rest of the tests
* Update beacon-chain/blockchain/head.go
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-29 19:32:42 +00:00
Potuz
237807b248
Do not update forkchoice checkpoints on calls to Head ( #10702 )
...
* Only update forkchoice checkpoints at epoch transition
* gazelle
* blockchain package changes
* fix node
* spectest package
* rpc package
* fix spec test
* Fix spectests
* fix new_slot.test
* gaz
* fix spectests
* fix conflicts
* Update beacon-chain/blockchain/process_block.go
* regression do not update on newSlot
* revert bd64cab
* terence's review
* fix conflicts
* fix latest conflicts
* gaz
* go mod tidy
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-22 18:37:01 +00:00
Potuz
e7991b9d7b
Track unrealized justification/finalization in forkchoice ( #10658 )
...
* Track unrealized justification/finalization in forkchoice
* add missing files
* mod tidy
Co-authored-by: terencechain <terence@prysmaticlabs.com>
2022-05-21 10:27:07 -03:00
Potuz
df695346a5
process slashings once ( #10621 )
...
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-04 14:51:18 +00:00
terencechain
5ad4f14ffc
Use remove equivocating validators ( #10603 )
...
* remove equivocating votes from forkchoice
* shutup deepsource
* Add insertSlashingsToForkChoiceStore
* Fix equality checks, add tests
* Update process_block.go
* Fix equality check for doublylinked
* More checks
* Rm err return
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
2022-05-03 00:46:05 +00:00