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
Potuz
4020a603b6
Invalid synced tips ( #10154 )
...
* add synced_tips structure
* create optimisticStore type
* Add UpdateSyncedTips
* use context
* update comment
* use better context cancellation
* reinsert removed error from different PR
* Minor clean ups
* remove invalid nodes from forkchoice
* Update beacon-chain/forkchoice/protoarray/optimistic_sync.go
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* Add check for tip status
* Terence's minor cleanups
* Potus' feedbacks
* Update optimistic_sync.go
* Add erorr
* Synced
* update weights
* Add context error check
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-02-03 22:57:15 +00:00
terence tsao
8a01d412f5
Implement fork choice spec tests ( #10159 )
...
* starting
* Reimplement store
* begin on proposer boost
* implement fork choice proposer boost algorithm
* boosting
* gaz
* add mutexes and previous root
* comment on compute proposer boost
* safe
* rem todo
* reset and add tests
* unit test for proposer boost score
* boost works
* Can process block
* Basic test case passing
* ex ante
* test
* propoer test
* More progresses
* More fixes
* rm unused pieces
* Refactor, add phase 0
* locks
* vanilla ex-ante attack
* test similar to spec test
* works works works
* boost test working for num votes > proposer boost weight
* commentary fixes
* rem unused
* comments
* Proposer boost use store time
* Reset proposer root
* debugging
* passing
* Rm unused visibility imports
* Move update head to better place
* Fix deepsrc complains
* Fix more complains
* Raul's feedback
* Use correct byte lengths
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
2022-01-31 19:03:48 +00:00
Potuz
26ec352bdc
Update synced tips ( #10129 )
...
* add synced_tips structure
* create optimisticStore type
* Add UpdateSyncedTips
* use context
* update comment
* use better context cancellation
* reinsert removed error from different PR
* Minor clean ups
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-01-31 15:05:05 +00:00
Raul Jordan
65ec437ce5
Fork Choice Proposer Boost Changes ( #10083 )
...
* begin on proposer boost
* implement fork choice proposer boost algorithm
* boosting
* gaz
* add mutexes and previous root
* comment on compute proposer boost
* safe
* rem todo
* reset and add tests
* unit test for proposer boost score
* boost works
* ex ante
* test
* propoer test
* vanilla ex-ante attack
* test similar to spec test
* works works works
* boost test working for num votes > proposer boost weight
* commentary fixes
* rem unused
* comments
* boost necessary to sandwich unit test
* sad path
* gaz
* Update beacon-chain/forkchoice/protoarray/proposer_boost.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/forkchoice/protoarray/proposer_boost.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/forkchoice/protoarray/proposer_boost_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/forkchoice/protoarray/proposer_boost_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/forkchoice/protoarray/proposer_boost_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/forkchoice/protoarray/proposer_boost_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/forkchoice/protoarray/proposer_boost_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/forkchoice/protoarray/proposer_boost_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* gaz
* radek comments
* reset boosted root in on new slot
* pass
* broken tests
* cfg test
* modify e2e config
* Revert e2e changes
* Test
* Test again
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-01-29 16:32:01 +00:00
Potuz
cb0c382bf3
Fix Fork Choice prunning ( #10137 )
...
* Fix Fork Choice prunning
* Use copy node. Update comments and var names.
* rm unused err var
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2022-01-27 19:17:19 +00:00
Potuz
f0fd29d367
Is optimistic ( #10124 )
...
* add synced_tips structure
* create optimisticStore type
* Add ForkChoice.Optimistic()
Adds the logic implementing whether a synced block is optimistic or not.
* Terence's bug catch
* Reinforce warning
* Preston's review
* add comment on optimistic sync
2022-01-26 01:42:18 +00:00
Preston Van Loon
7df01feb58
Remove libfuzzer / afl based builds in favor of go 1.18 fuzz testing ( #10065 )
...
* Remove libfuzzer / afl based builds in favor of go 1.18 fuzz testing
* rm beacon-fuzz archive
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2022-01-20 04:51:02 +00:00
Radosław Kapka
5569a68452
Code cleanup ( #9992 )
...
* Value assigned to a variable is never read before being overwritten
* The result of append is not used anywhere
* Suspicious assignment of range-loop vars detected
* Unused method receiver detected
* Revert "Auxiliary commit to revert individual files from 54edcb445484a2e5d79612e19af8e949b8861253"
This reverts commit bbd1e1beabf7b0c5cfc4f514dcc820062ad6c063.
* Method modifies receiver
* Fix test
* Duplicate imports detected
* Incorrectly formatted error string
* Types of function parameters can be combined
* One more "Unused method receiver detected"
* Unused parameter detected in function
2021-12-07 17:52:39 +00:00
Raul Jordan
a9a4bb9163
Move Shared/Testutil into Testing ( #9659 )
...
* move testutil
* util pkg
* build
* gaz
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2021-09-23 18:53:46 +00:00
Raul Jordan
29513c804c
Create Encoding Bytesutil ( #9658 )
...
* bytesutil
* gaz
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2021-09-23 15:23:37 +00:00
Raul Jordan
f3d6dbcc1e
Move Shared/Params Into Config/Params ( #9642 )
...
* config params into pkg
* gaz
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2021-09-21 19:59:25 +00:00
Raul Jordan
61c24c3870
Move Fuzz/ Into Testing/ ( #9617 )
...
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2021-09-16 17:32:51 +00:00
terence tsao
ee5d75732d
Add pkg crypto ( #9603 )
...
* Add pkg crypto
* Update go.yml
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2021-09-15 22:55:11 +00:00
terence tsao
005ce7e238
Remove float64 usage for fork choice ( #9438 )
2021-08-20 14:15:18 -05:00
Preston Van Loon
d6bd619429
Bazel: minimal test build transitions ( #9122 )
...
* Add build transitions for minimal config based tests
* respect existing gotags
* clean up import
* Add some commentary
* gaz
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: rauljordan <raul@prysmaticlabs.com>
2021-06-30 19:22:09 +00:00
terence tsao
528cd89616
Move chainheads to blockchain pkg ( #8700 )
...
* Move chainheads to block chain's head info
* Fix mock
2021-04-03 11:25:25 +00:00
Radosław Kapka
f822f0436e
Break long lines in beacon chain package ( #8686 )
...
* Break long lines in beacon chain package
* change log formatting
* Revert "change log formatting"
This reverts commit b610fd67edbf4f9f095f0336e313376e4472d50a.
* Revert "Break long lines in beacon chain package"
This reverts commit 53215fdcde0ad5cbed5c9e0616979e3ae396322c.
* wrap lines over 160
* revert go.mod and go.sum
2021-03-30 11:24:46 +00:00
terence tsao
a8ab279cb8
Protoarray: add ChainHeads ( #8684 )
...
* Add ChainHeads
* Add only has bestChild case
* Update beacon-chain/forkchoice/protoarray/store.go
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2021-03-29 17:40:38 +00:00
Victor Farazdagi
a069738c20
ETH2 Types: Slot ( #8408 )
...
* update shared/params
* update eth2-types deps
* update protobufs
* update shared/*
* fix testutil/state
* update beacon-chain/state
* update beacon-chain/db
* update tests
* fix test
* update beacon-chain/core
* update beacon-chain/blockchain
* update beacon-chain/cache
* beacon-chain/forkchoice
* update beacon-chain/operations
* update beacon-chain/p2p
* update beacon-chain/rpc
* update sync/initial-sync
* update deps
* update deps
* go fmt
* update beacon-chain/sync
* update endtoend/
* bazel build //beacon-chain - works w/o issues
* update slasher code
* udpate tools/
* update validator/
* update fastssz
* fix build
* fix test building
* update tests
* update ethereumapis deps
* fix tests
* update state/stategen
* fix build
* fix test
* add FarFutureSlot
* go imports
* Radek's suggestions
* Ivan's suggestions
* type conversions
* Nishant's suggestions
* add more tests to rpc_send_request
* fix test
* clean up
* fix conflicts
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: nisdas <nishdas93@gmail.com>
2021-02-16 07:45:34 +00:00
Victor Farazdagi
a8e501b3cf
ETH2 Types: Epoch ( #8373 )
...
* update deps
* update deps
* update protos/*
* update deps
* reset protos
* update protos
* update shared/params/config
* update protos
* update /shared
* update shared/slotutil and shared/testutil
* update beacon-chain/core/helpers
* updates beacon-chain/state
* update beacon-chain/forkchoice
* update beacon-chain/blockchain
* update beacon-chain/cache
* update beacon-chain/core
* update beacon-chain/db
* update beacon-chain/node
* update beacon-chain/p2p
* update beacon-chain/rpc
* update beacon-chain/sync
* go mod tidy
* make sure that beacon-chain build suceeds
* go fmt
* update e2e tests
* update slasher
* remove redundant alias
* update validator
* gazelle
* fix build errors in unit tests
* go fmt
* update deps
* update fuzz/BUILD.bazel
* fix unit tests
* more unit test fixes
* fix blockchain UTs
* more unit test fixes
2021-02-09 10:05:22 +00:00
Raul Jordan
148e7fcd59
Consolidate Required Web UI Endpoints Into Single Protobuf File ( #8127 )
...
* define required endpoints for unifying backends
* proto definitions
* impl
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2020-12-16 17:30:48 +00:00
terence tsao
6244163770
FC test coverage improvement ( #8120 )
...
* Test coverage improvements
* Gazelle
* Update namings
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
2020-12-15 20:44:35 +00:00