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
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
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
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
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
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
terencechain
e9ad7aeff8
Fix a bad forkchoice proposer boost test ( #10705 )
...
* Fix a bad forkchoice proposer boost test
* Improve tests
* Add fork regression
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
2022-05-17 16:26:56 -03:00
Potuz
e808025b17
regression test off-by-one ( #10675 )
...
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-12 15:49:37 +00:00
Radosław Kapka
7db0435ee0
Unify WARNING
comments ( #10678 )
...
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-12 15:25:44 +00:00
terencechain
6a197b47d9
Call fcu on invalid payload ( #10565 )
...
* Starting
* remove finalized root
* Just call fcu
* Review feedbacks
* fix one test
* Fix conflicts
* Update execution_engine_test.go
* Add a test for invalid recursive call
* Add comprehensive recursive test
* dissallow override empty hash
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-10 20:02:00 +00: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
Potuz
4c869fa587
remove equivocating votes from forkchoice ( #10597 )
...
* remove equivocating votes from forkchoice
* shutup deepsource
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-05-02 19:19:03 +00:00
Potuz
f9113dfd06
Forkchoice use parent hash when removing invalid blocks ( #10594 )
2022-05-02 06:53:22 -07: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
terence tsao
58f4ba758c
Metrics tracking EE VALID/SYNCING/INVALID response counter ( #10504 )
...
Co-authored-by: Nishant Das <nishdas93@gmail.com>
2022-04-12 09:51:13 +00:00
terence tsao
d98428dec4
Can prune nodes from canonical and payload maps ( #10496 )
...
* Can prune nodes from canonical and payload maps
* Update store_test.go
* prune payload hashes, canonical nodes and better testing
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
2022-04-11 11:08:50 +00:00
Potuz
ac8d27bcf1
Deal with node balance underflow ( #10492 )
...
* deal with balance underflow
* fix log format
* preston's review
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-04-07 17:38:48 +00:00
Potuz
83a83279d4
Remove synced tips and use last valid hash ( #10439 )
...
* Remove synced tips
use last valid hash in removing invalid nodes.
* add test
* Remove unused code
* More unused parameters
* Fix proposer boost
* terence's review #1
* Fix conflicts
* terence's review 2
* rename argument
* terence's review #3
* rename optimistic -> status
* Minor clean up
* revert loop variable change
* do not mark lvh as valid
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-04-06 14:18:30 +00:00
Nishant Das
2a7a09b112
Add Lock Analyzer ( #10430 )
...
* add lock analyzer
* fix locks
* progress
* fix failures
* fix error log
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
2022-04-05 16:39:48 +00:00
Raul Jordan
eb6d68a4b1
Deterministic Proposer Root Boosting in Forkchoice ( #10427 )
...
* begin refactor
* fix doubly linked tree tests
* pass
* fix up
* gaz
* buidl
* buidl more
* comment
* args check
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-03-28 21:34:41 +00:00
Potuz
a5dc40393d
Allow inner protoarray nodes to become VALID ( #10418 )
...
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-03-25 15:35:44 +00:00
Potuz
0165351db3
Setup Optimistic sync when starting the service ( #10397 )
...
* Load Last Validated Checkpoint at service startup and initialize
Forkchoice
* fix spectests
* Update service_test.go
* wip
* Fix blockchain tests
* remove unnecessary summary saves
* Terence's suggestion
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-03-23 21:11:36 +00:00
Potuz
8f49167117
return invalid roots from SetOptimisticToInvalid ( #10403 )
...
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-03-23 15:55:05 -03:00
terence tsao
c7d64c03ac
Insert payload hash to forkchoice store nodes ( #10400 )
...
* Insert payload hash to forkchoice store nodes
* Fix tests
* Update new_slot_test.go
* Update beacon-chain/blockchain/process_block.go
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
2022-03-22 01:20:42 +00:00
Potuz
807b71244b
Add database methods for optimistic sync ( #10357 )
...
* Add database methods for optimistic sync
* Add epoch comparison
* add extra epoch comparison
* Summary instead of block
* fix tests
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-03-15 20:52:59 +00:00
Potuz
3f1e3cf82f
remove optimistic control flag ( #10340 )
...
* remove optimistic control flag
* Rename
* More
* More
* redundant return
* fix conflict
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-03-12 17:32:04 +00:00
terence tsao
60003c481b
Add unlock to IsOptimistic
returns ( #10341 )
...
* Add unlock to returns
* add regression test
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-03-11 10:36:47 +00:00
Preston Van Loon
c1197d7881
Add static analysis for unsafe uint casting ( #10318 )
...
* Add static analysis for unsafe uint casting
* Fix violations of uintcast
* go mod tidy
* Add exclusion to nogo for darwin build
* Add test for math.Int
* Move some things to const so they are assured not to exceed int64
* Self review
* lint
* fix tests
* fix test
* Add init check for non 64 bit OS
* Move new deps from WORKSPACE to deps.bzl
* fix bazel build for go analysis runs
* Update BUILD.bazel
Remove TODO
* add math.AddInt method
* Add new test casts
* Add case where builtin functions and declared functions are covered
* Fix new findings
* cleanup
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
2022-03-11 09:34:30 +00:00
Potuz
b59484b285
Export SetOptimisticToInvalid ( #10330 )
...
* temp
* export remove invalid blocks
2022-03-09 13:50:57 -03:00
Potuz
57a323f083
Forkchoice featureflag ( #10299 )
...
* Compiling main beacon-chain binary
* Add feature flag
* passing protoarray tests
* passing nodetree tests
* passing blockchain package tests
* passing rpc tests
* go fmt
* re-export forkchoice store from blockchain package
* remove duplicated import
* remove unused var
* add nodetree rpc method
* remove slot from IsOptimisticForRoot
* release lock in IsOptimistic
* change package name
* Revert "change package name"
This reverts commit 679112f9ef795922c631e7823dbdfb3746838f3c.
* rename package
* Update doc
* Fix span names
* Terence + Raul review
* remove go:build flags
* add errors dep
* spec tests
* fix call to IsOptimisticForRoot
* fix test
* Fix conflict
* change name of function
* remove ctx from store.head
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-03-09 03:05:51 +00:00
terence tsao
a9a75e0004
Release lock before return validatedTips
( #10289 )
...
* Release lock before return
* add test
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
2022-03-01 15:36:47 +00:00
Potuz
f5719f8c8e
Fix updateCanonicalNodes ( #10241 )
...
* Fix updateCanonicalNodes
* fix logic
* terence's review
2022-02-14 21:30:26 +00:00
terence tsao
c9f299b50a
Clean up fork choice ( #10226 )
...
* Clean up fork choice
* Update beacon-chain/forkchoice/protoarray/proposer_boost_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/forkchoice/protoarray/store_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/forkchoice/protoarray/store_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update store.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-02-12 03:33:46 +00:00
Potuz
9f419bee7d
Remove unnecessary reassignement ( #10224 )
2022-02-10 23:51:20 -03:00
Potuz
82ceb51548
Load Synced Tips when starting from Finalized State ( #10196 )
...
* Load Synced Tips when starting from Finalized State
* Terence's review #1
* Fix tests
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-02-10 22:18:42 +00:00
Potuz
6a2ef13b87
add metrics for synced tips ( #10221 )
...
* add metrics for synced tips
* Update beacon-chain/forkchoice/protoarray/metrics.go
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-02-10 18:48:46 +00:00
Potuz
72a2dd004b
Fix integer overflow ( #10222 )
...
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-02-10 15:20:36 -03:00
Potuz
5f8b01ccda
Make UpdateSyncedTips safe for context cancellation ( #10174 )
...
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-02-09 14:54:27 +00:00
terence tsao
168e06e607
Save sync tips to DB ( #10171 )
...
* Save sync tips to DB
* Fix build
* Update process_block_test.go
* Copy map
* Revert back to nil
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-02-06 18:00:47 +00:00
Potuz
aeb6940935
Prune synced tips ( #10143 )
...
* Prune synced tips
* Terence's minor cleanups
* Update optimistic_sync.go
* go fmt
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-02-05 20:24:02 +00:00