Potuz
2317375983
Add feature flag to treat all blocks as optimistic at startup ( #11303 )
...
* Add feature flag to treat all blocks as optimistic at startup
* Terence's review
* remove changed empty lines
* Apply suggestions from code review
* Go fmt sorry
* bad comments
Co-authored-by: terencechain <terence@prysmaticlabs.com >
2022-08-25 12:40:29 +00:00
Potuz
ab7e97ba63
Fix setNodeAndParentValidated ( #11302 )
...
* Fix setNodeAndParentValidated
* fix tests
2022-08-24 19:30:45 +00:00
Potuz
e687fff922
Insert attestations on block ( #11260 )
...
* Insert attestations from blocks to forkchoice
* do not insert twice
* use OnAttestation instead
* Revert "use OnAttestation instead"
This reverts commit 577c37bbeb .
* unit test
* fix test
* Update beacon-chain/blockchain/receive_block_test.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com >
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: terencechain <terence@prysmaticlabs.com >
2022-08-19 17:02:17 +00:00
Potuz
5c84192606
Revert --enable-forkchoice-doubly-linked-tree ( #11212 )
...
* Revert --enable-forkchoice-doubly-linked-tree
* fix tests
* fix parallell test
* fix noviablehead tests
* Terence's suggestion
2022-08-16 10:39:57 -03: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
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 6e2b865c23 .
* 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
terencechain
d4ab08050f
Clean up: fix typos ( #11165 )
...
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-08-03 18:47:30 +00:00
Potuz
19e4cd30cf
Forkchoice: expose if no tip is viable ( #11153 )
...
* Forkchoice: expose if no tip is viable
This PR changes the behavior on when the node is considered optimistic.
A call to `blockchain.IsOptimistic()` relies solely on forkchoice, if
all tips are invalid, then it's optimistic. If the current headroot is
not in forkchoice then it's optimistic.
A call to `blockchain.IsOptimisticForRoot()` will return true if the
requested root is headroot and it's not found in forkchoice
* update comment
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-08-03 13:59:03 +00:00
Potuz
a5cab4e9c8
Add unit test for reboot behavior ( #11151 )
...
* Add unit test for reboot behavior
* fix conflicts
2022-08-02 17:23:27 +00:00
Radosław Kapka
879e310332
Native Blocks Ep. 2 - Switch usages to new package ( #10885 )
...
* panic in SizeSSZ
* moving slowly
* adapt old code to new interfaces
* return interfaces from factory functions
* replace the rest of WrappedSignedBeaconBlock
* WrappedBeaconBlock
* WrappedBeaconBlockBody
* miscellaneous
* Test_BeaconBlockIsNil
* replace usages of BeaconBlockIsNil
* replace usages of mutator
* fix all build errors
* fix some more issues
* mutator changes
* relax assertions when initializing
* revert changes in object_mapping.go
* allow calling Proto on nil
* Revert "allow calling Proto on nil"
This reverts commit ecc84e4553 .
* modify Copy and Proto methods
* remove unused var
* fix block batch tests
* correct BUILD file
* Error when initializing nil objects
* one more error fix
* add missing comma
* rename alias to blocktest
* add logging
* error when SignedBeaconBlock is nil
* fix last test
* import fix
* broken
* working
* test fixes
* reduce complexity of processPendingBlocks
* simplified
2022-08-02 15:30:46 +00:00
Potuz
4b46dead2f
only viable head is invalid ( #11117 )
...
* failing onBlock syncing
* passing merge check
* failing signature verification
* still failing block signature
* mock full bellatrix blocks
* working unit test
* return error from FCU if head fails to update
* move bellatrix block generator
* remove bellatrix signature function
* Add liveness unit tests
* revert removal of sync_aggregate.go
* gaz
* Terence's suggestion
Co-authored-by: terencechain <terence@prysmaticlabs.com >
* go fmt
* Nishant's suggestion
Co-authored-by: Nishant Das <nishdas93@gmail.com >
* Fix build
Co-authored-by: terencechain <terence@prysmaticlabs.com >
Co-authored-by: Nishant Das <nishdas93@gmail.com >
2022-08-02 11:55:05 -03:00
terencechain
699bfdfdb4
Rename pow to execution ( #11135 )
...
* Rename pow to execution
* Fix complain
* Fix complain
2022-08-01 14:43:47 +00:00
terencechain
9830ce43d6
Set invalid roots for bad block ( #10982 )
...
* Set invalid roots for bad block
* Update for fcu
* Update for fcu
* Set bad blocks in subscriber
* Update process_block_test.go
* Rename
2022-07-25 13:45:03 +00:00
Radosław Kapka
5d94fd48ca
Revert "Testutil refactor attestations ( #10952 )" ( #11073 )
2022-07-19 14:41:15 +02:00
terencechain
e48f0aef41
Remove IsMergeTransitionBlockUsingPreStatePayloadHeader ( #11036 )
...
* Remove IsMergeTransitionBlockUsingPreStatePayloadHeader
* Conflicts
Co-authored-by: Nishant Das <nishdas93@gmail.com >
2022-07-13 15:29:41 +00:00
Raul Jordan
e01a898264
Execution Payload / Header Interface Wrappers ( #11025 )
...
* exec payload iface
* begin using iface
* use iface more
* build beacon
* builds
* txs field
* fix
* merge test
* pass
* test
* refactor
* fix up builder case
* gaz
* comments
* el test
* build
* no mask
* patch up
* exec wrap
* Terence feedback
* builds
* potuz suggestion
* exec data error
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-07-13 01:49:38 +00:00
Raul Jordan
b67c885995
Major Simplification of JSON Handling for Execution Blocks ( #10993 )
...
* no more execution block custom type
* simpler json rpc data unmarshaling
* simplicify
* included hash and txs fix
* all tests
* pass
* build
* mock fix
* attempt build
* builds
* build
* builds
* pass
* pass
* build
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-07-06 22:06:00 +00:00
Potuz
2dd2e74369
update finalization on onblock ( #10980 )
...
* update finalization on onblock
* add unit test
* Minor cleanups
Co-authored-by: terencechain <terence@prysmaticlabs.com >
2022-07-03 19:39:31 +00:00
Sammy Rosso
8ebbde7836
Testutil refactor attestations ( #10952 )
...
* Add AttestationUtil receiver
* Modify usage to account for the receiver
* Add missing explanatory comments
Co-authored-by: Radosław Kapka <rkapka@wp.pl >
2022-06-29 16:42:33 +00:00
Radosław Kapka
7f56ac6355
Massive code cleanup ( #10913 )
...
* Massive code cleanup
* fix test issues
* remove GetGenesis mock expectations
* unused receiver
* rename unused params
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-06-27 13:34:38 +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
Radosław Kapka
2b6e86ec1b
Some test improvements ( #10928 )
...
* extract DeterministicGenesisStateWithGenesisBlock
(cherry picked from commit a5e3a9c9bbbacb23a644f5c68c92839a315f66a1)
# Conflicts:
# testing/util/state.go
* part 1
* part 2
* part 3
* fix errors
* db interface public visibility
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-06-24 17:22:39 +00:00
Potuz
20b4c60bcb
Apply Proposer Boost from forkchoice ( #10893 )
...
* Apply proposer boost at block insertion
* gaz
* fix tests
* revert time change
* conflict
* change genesis time in forkchoice on spectests
* Terence Review
Co-authored-by: terencechain <terence@prysmaticlabs.com >
2022-06-22 13:56:07 +00:00
terencechain
0b50ab7832
Consolidate ExecutionPayloadHeader Protobuf definitions ( #10917 )
2022-06-22 13:08:06 +02:00
Potuz
385f101b2b
Use forkchoice to verify finalized descendant ( #10905 )
...
* Use forkchoice to verify finalized descendant
* fix test
2022-06-20 00:55:17 +00: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
Nishant Das
7010e8dec8
Graduate Prune Canonical Attestations Feature ( #10623 )
...
* graduate canonical prune feat
* fix test
* fix tests
Co-authored-by: prestonvanloon <preston@prysmaticlabs.com >
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-06-15 09:05:19 +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
3f309968d4
Only prune in newer finalization ( #10831 )
...
* Only prune in newer finalization
* add regression test
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-06-06 15:25:22 +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 8c11db063a .
* 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
8f18920ac7
Update forkchoice justified on init sync ( #10801 )
...
* Update forkchoice justified on init sync
* handle err
* add regression test
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-06-01 14:13:47 +00:00
Potuz
3ff285dda5
Do not fill in blocks that are not in the finalized branch ( #10776 )
...
* Do not fill in blocks that are not in the finalized branch
* mark blocks as invalid
* Fix old off-by-ones, do not pass finalized state
2022-05-30 11:55:39 +00:00
Potuz
4cbb69602f
Clean up onBlockBatch and prune forkchoice on init sync ( #10768 )
...
Co-authored-by: terencechain <terence@prysmaticlabs.com >
2022-05-28 11:56:58 +00:00
terencechain
7cc291c09f
Update proposer boost score and spec tests ( #10665 )
...
* Update mainnet_config.go
* Fixed a few tests
* Update rest of the tests
* Consolidate blockchain errors
* Update spec tests to v1.2.0-rc.1
* Fix withdrawal epoch overflows
* add slashings to forkchoice spectests
* Remove unused parameter
* Disable skip slot cache
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Potuz <potuz@prysmaticlabs.com >
2022-05-23 23:08:24 +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
terencechain
370cf1a6c8
Chain info: Return err if checkpoint is nil ( #10729 )
...
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-20 18:41:33 +00:00
terencechain
addb3cd665
More selective on marking block as bad ( #10681 )
...
* Starting, looking for feedbacks
* Update error.go
* Wrap invalid blocks to rest of the processings
* More tests
* More tests
* Fix tests
* Update process_block_test.go
* Update execution_engine_test.go
* Update BUILD.bazel
* Nishant's feedback and Kasey's recommendation
* Add comments on what an invalid block is
* Update beacon-chain/blockchain/error.go
Co-authored-by: Potuz <potuz@prysmaticlabs.com >
* Update beacon-chain/blockchain/error.go
Co-authored-by: Potuz <potuz@prysmaticlabs.com >
* Rm faulty invalid conditions
Co-authored-by: Potuz <potuz@prysmaticlabs.com >
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-20 17:05:39 +00:00
terencechain
a90335b15e
Blockchain: Use get_block to retrieve block ( #10688 )
...
* Use get block
* Remove unused errNilParentInDB
* Fix TestVerifyBlkDescendant
* Update beacon-chain/blockchain/service.go
Co-authored-by: Potuz <potuz@prysmaticlabs.com >
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Potuz <potuz@prysmaticlabs.com >
2022-05-15 02:23:01 +00:00
terencechain
e33850bf51
Don't return nil with new head ( #10680 )
2022-05-11 11:33:10 -07:00
terencechain
4ad1c4df01
Cache and use justified and finalized payload block hash ( #10657 )
...
* Cache and use justified and finalized payload block hash
* Fix tests
* Use real byte
* Fix conflicts
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-10 21:20:28 +00:00
terencechain
122c3f44cc
Insert over-the-wire slashing to forkchoice ( #10615 )
...
* 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
* Consider slashings over the wire
* Update new_slot_test.go
* Fix spec tests
* Add ReceiveAttesterSlashing
* Update mock.go
* Revert spec test changes
Co-authored-by: Potuz <potuz@prysmaticlabs.com >
2022-05-07 15:56:34 +00:00
Raul Jordan
ab2b0c5c99
Use Single Beacon Block Wrapper Function Across Prysm ( #10608 )
...
* remove altair wrappers in favor of generic ones for blocks
* rem deprecated
* body wrapper
* builds
* nil check
2022-05-04 11:55:35 +08: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
Raul Jordan
20ab988a4a
Rename Block Package in Consensus-Types to Interfaces ( #10605 )
...
* interfaces package
* builds
* gaz
2022-05-02 14:32:37 -04:00
Raul Jordan
16bbf5602f
Move Consensus Type Wrappers Into Consensus Types Package ( #10598 )
...
* builds
* move block to consensus-types
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-02 15:43:40 +00:00
Raul Jordan
84916672c6
Remove Eth2-Types Dependency in Prysm ( #10578 )
...
* replace eth2 types
* replace protos
* regen proto
* replace
* gaz
* deps
* amend
* regen proto
* mod
* gaz
* gaz
* ensure build
* ssz
* add dep
* no more eth2 types
* no more eth2
* remg
* all builds
* buidl
* tidy
* clean
* fmt
* val serv
* gaz
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com >
2022-04-29 10:32:11 -04:00
Radosław Kapka
2060f876b1
Code cleanup in blockchain module ( #10566 )
...
* Code cleanup in `blockchain` module
* revert comment fix
* remove test
* forkchoice test fix
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-04-28 11:34:25 +00:00
terence tsao
c8919bd233
Move validate merge transition block outside of notify new payload ( #10526 )
...
* Move validate merge transition block
* Update process_block_test.go
* Conflict, use swith err
* Update execution_engine.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com >
2022-04-23 08:11:15 +00:00
Nishant Das
72562dcf3a
Fix Another Off By 1 In Our Finalized Trie ( #10524 )
...
* fix everything
* fix more
* fix test
* Update beacon-chain/powchain/service.go
* Update beacon-chain/powchain/service.go
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Radosław Kapka <rkapka@wp.pl >
2022-04-15 12:51:56 +00:00
Nishant Das
407182387b
fix it all ( #10511 )
2022-04-12 19:50:29 +08:00