terence tsao
c21e43e4c5
Refactor: move functions beacon-chain/core/time
-> time/slots
( #9719 )
...
* Move necessary functions beacon-chain/core/time -> time/slots
* Fix fuzz
* Fix build
* Update slot_epoch.go
2021-10-01 15:17:57 -05:00
terence tsao
8219af46e4
Move slot epoch from core to time pkg ( #9714 )
...
* Move slot epoch from core to time pkg
* Fix fuzz
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2021-09-30 19:00:14 +00:00
Preston Van Loon
4beb352e6f
Move Slot and Epoch functions from helpers to core pkg ( #9519 )
...
* Move Slot and Epoch functions from helpers to core
* limited viz
* goimports
* fix fuzz build
* fix fuzz build
* fix
* fix
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2021-09-03 20:10:31 +00:00
Raul Jordan
9145310647
Eliminate Proto V2 Namespace ( #9297 )
...
* get rid of v2 in prysm codebase
* replace block2
* builds
* terence comments
* gazelle
2021-07-28 21:23:44 +00:00
terence tsao
8db0c9a0e6
Move proto/interfaces -> proto/prysm/v2 ( #9270 )
...
* Move proto/interfaces -> proto/prysm
* Update paths
* Fix block2
* Update blocks_fetcher_utils.go
* Update BUILD.bazel
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2021-07-23 20:10:15 +00:00
terence tsao
1d3a9983cc
Move block interface next to generated pb ( #9146 )
...
* Move block interface next to pb
* Update fuzz build bazel
* Move interface to /proto/interface and wrapper next to generated pb
* Fix fuzz build bazel
* Add //proto/eth/v1alpha1/wrapper
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2021-07-06 15:34:05 +00:00
Nishant Das
caf9bdbc6f
Use Block Interface Across Prysm ( #8918 )
...
* commit initial work
* checkpoint current work
* gaz
* checkpoint
* req/resp changes
* initial-sync
* finally works
* fix error
* fix bugs
* fix issue
* fix issues
* fix refs
* tests
* more text fixes
* more text fixes
* more text fixes
* fix tests
* fix tests
* tests
* finally fix builds
* finally
* comments
* fix fuzz
* share common library
* fix
* fix
* add in more defensive nil checks
* add in more defensive nil checks
* imports
* Apply suggestions from code review
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* Apply suggestions from code review
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* Update shared/interfaces/block_interface.go
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* Update shared/interfaces/block_wrapper.go
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* Update shared/interfaces/block_interface.go
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* imports
* fix bad changes
* fix
* terence's review
* terence's review
* fmt
* Update beacon-chain/rpc/beacon/blocks.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* fix tests
* fix
* fix all tests
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
2021-05-26 16:19:54 +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
Victor Farazdagi
372dc47b64
Deprecate enableSyncBacktracking flag ( #8371 )
...
* Deprecate enableSyncBacktracking flag
* keep deprecated flags
2021-02-01 11:18:24 +00:00
Victor Farazdagi
c7f7a29d7e
remove redundant start slot ( #7991 )
...
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
2020-12-02 20:47:39 +03:00
Victor Farazdagi
54a42ce4a8
more robust processing of invalid head slot ( #7990 )
2020-11-29 15:03:25 -06:00
Victor Farazdagi
51796d77f6
Init-sync: backtracking to alternative forks ( #7564 )
...
* cherry-pick from previous commits
* use finalized checpoint instead of head slot
* add helpers
* add dedicated error for missing blocks
* add backtracking options to fetcher
* TestBlocksFetcher_alternativeSlotBefore regression test
* update peer block provider test
* update injected deps
* update round robing deps
* update fetcher
* patch status and stream handlers
* test template
* gazelle
* revert BestNonFinalized changes
* extract waitForBandwidth method
* extend test
* remove redundant code
* add flag
* update queue
* update thresholds
* upd inequality
* minor cleanup
* check for mode
* add backtracking queue test
* merge from master
* remove redundant test
* correct logging level
* fix tests
* remove test template
* Nishant's suggestion to parametrize magic number
2020-11-06 15:54:20 +00:00
Victor Farazdagi
7acd73e1fe
Refactor p2p requests: extract BeaconBlocksByRangeRequest and BeaconBlocksByRootRequest ( #7718 )
...
* extract SendBeaconBlocksByRangeRequest
* adds extra processing
* extract SendBeaconBlocksByRootRequest
* extract into rpc_send_request.go
* add tests
* more tests
* gazelle
* remove redundant import
* for consistency
* for consistency
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2020-11-04 20:09:19 +00:00
Victor Farazdagi
926d3b9b34
Init-sync: more tests + minor refactoring ( #7692 )
...
* cherry-pick commits
* re-arrange calls
2020-10-31 21:33:57 +00:00
Victor Farazdagi
4fc0a50569
Turn init-sync FSM logs to trace level ( #7670 )
...
* trace
* go fmt
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
2020-10-29 04:55:07 +00:00
Victor Farazdagi
8a3b75e9e3
Update init-sync FSM ( #7640 )
...
* update fsm
* more tests
2020-10-26 05:26:35 +00:00
Victor Farazdagi
0b53a89d00
More verbose output on init-sync ( #7578 )
...
* more verbose output on init-sync
* log slot
* no error stack
* remove redundant data
* less verbose
2020-10-20 14:59:38 +00:00
Victor Farazdagi
a005c77b3f
Update error usage patterns to go1.13+ ( #7529 )
...
* rely on errors.Is
* wrap errors
2020-10-14 17:39:52 +00:00
Victor Farazdagi
8baa22f065
Fix unclosed tickers/timers ( #7190 )
...
* fix resource leak
* fixes leak in blocks fetcher
* client/validator release ticker resorces
* powchain, more straightforward ticker closing
* adds missing ticker.stop() calls
* more straightforward ticker closing
* Merge refs/heads/master into fix-unclosed-tickers-timers
* Merge refs/heads/master into fix-unclosed-tickers-timers
* Merge refs/heads/master into fix-unclosed-tickers-timers
* gofmt issues introduced in https://github.com/prysmaticlabs/prysm/pull/7176
2020-09-08 18:05:38 +00:00
Victor Farazdagi
7fd2536d54
Hardens block validation in init-sync ( #7168 )
...
* assert response invariants in beaconBlocksByRange
* Merge branch 'master' into assert-invariants-in-beaconblocksbyrange
* enforce specs invariant in requestBlocks
* blocks queue: onDataReceivedEvent - part1
* Merge branch 'master' into init-sync-block-validation
* blocks queue: onDataReceivedEvent - part2
* Merge branch 'master' into init-sync-block-validation
* block fetcher: test returned blocks validation
* gazelle
* Nishant's suggestion to not loop more than req.count of times
* combine checks
* enforce slot ordering
* enforce skip increments
2020-09-03 07:07:42 +00:00
Victor Farazdagi
5d0f6c5b16
Fixes errNoPeersWithFinalizedBlocks naming ( #7087 )
...
* fixes errNoPeersWithFinalizedBlocks naming
* Merge refs/heads/master into init-sync-queue-fix-err-naming
* Merge refs/heads/master into init-sync-queue-fix-err-naming
2020-08-24 10:48:52 +00:00
Victor Farazdagi
0a5ec502b0
Updates resyncIfBehind() functionality ( #7039 )
...
* defines BestNonFinalized
* updates blocks_fetcher
* updates blocks_queue
* Merge branch 'master' into fix-resync
* Nishant's suggestion
* Merge branch 'fix-resync' of github.com:prysmaticlabs/prysm into fix-resync
* unit test
* Merge branch 'master' into fix-resync
* fixes test
* Merge refs/heads/master into fix-resync
2020-08-18 02:10:45 +00:00
Victor Farazdagi
bde3073bd6
Wait interval, before finalized peers re-checked ( #7032 )
...
* wait on no finalized peers
* Merge branch 'master' into better-no-finalized-peers-handling
2020-08-17 16:01:16 +00:00
Nishant Das
0be1957c28
Use Stage 1 For Non Finalized Sync ( #7012 )
...
* checkpoint
* dont cancel
* remove
* sync mode
* fixes build
* cap max retries when no finalized peers are found
* use max peers
* change it
* fixes TestService_roundRobinSync/Multiple_peers_with_different_finalized_epoch
* fixes blocks fetcher tests
* fixes blocks queue tests
* fixes TestService_blockProviderScoring test
* gofmt
* Merge branch 'master' into useStage1
* Update round_robin.go
preston's review
* Preston's suggestions
* Merge branch 'useStage1' of github.com:prysmaticlabs/prysm into useStage1
* fixes test
2020-08-16 17:51:14 +00:00
Victor Farazdagi
7611f6d84a
injects peer.ID into requested/queued/fetched batches ( #6979 )
...
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2020-08-13 16:42:21 +08:00
Victor Farazdagi
4400321081
Handles case when no peers with finalized blocks are found ( #6679 )
...
* Handles case when no peers with finalized blocks are found
* more tests
* Merge branch 'master' into handle-zero-block-init-sync
* Merge branch 'master' into handle-zero-block-init-sync
2020-07-22 18:14:24 +00:00
Victor Farazdagi
f279cf09b8
Removes excessive concurrency from init-sync queue ( #6471 )
...
* Removes excessive concurrency from init-sync queue
* update buffer size
2020-07-02 13:06:12 +00:00
Victor Farazdagi
92c5c651f7
Refactors init-sync: queue streams blocks in batches ( #6470 )
...
* init-sync: queue streams blocks in batches
2020-07-02 11:19:07 +00:00
Victor Farazdagi
22b3123ebe
Resolves issues from the best practices in sync package ( #6357 )
...
* removes redundant locks
* fixes 37
* fixes 38
* reverts lock removal
* Merge branch 'master' into sync-best-practices-updates
* Merge refs/heads/master into sync-best-practices-updates
2020-06-23 12:00:29 +00:00
Victor Farazdagi
fd3cb0be55
Re-enables multi-failure test case in round robin ( #6143 )
...
* re-enables multi-failure test case in round robin
2020-06-05 11:26:10 +00:00
Victor Farazdagi
f4778048ac
Init sync arbitrary batch length + full bandwidth utilization ( #5978 )
...
* allow to jump over 50K skipped slots
* more tests
* removes debug logs
* minor fixes
* re-arrage pid updates
* optimizes queue and fsm
* Merge branch 'master' into init-sync-arbitrary-batch-len
* fixes benchmark test
* Merge branch 'master' into init-sync-arbitrary-batch-len
* queue cleanup
* updates polling interval
* fsm test: allMachinesInState
* fsm test: highestStartBlock
* rest of fsm tests
* Merge branch 'master' into init-sync-arbitrary-batch-len
* Merge refs/heads/master into init-sync-arbitrary-batch-len
* Merge refs/heads/master into init-sync-arbitrary-batch-len
* Merge refs/heads/master into init-sync-arbitrary-batch-len
* Merge refs/heads/master into init-sync-arbitrary-batch-len
* Merge refs/heads/master into init-sync-arbitrary-batch-len
* parse machines in order
* Merge branch 'init-sync-arbitrary-batch-len' of github.com:prysmaticlabs/prysm into init-sync-arbitrary-batch-len
2020-05-27 09:13:41 +00:00
Victor Farazdagi
ca26745720
Implements WRR in init-sync, full bandwidth utilization ( #5887 )
...
* implements weighted round robin in init-sync
* protection against evil peer
* reshuffle
* shorten flag
* deterministic order of wrr
* Merge branch 'master' into init-sync-wrr
* Merge refs/heads/master into init-sync-wrr
* Merge refs/heads/master into init-sync-wrr
* allow peers with the same capacity to pe selected at random
* Merge branch 'init-sync-wrr' of github.com:prysmaticlabs/prysm into init-sync-wrr
* adds wrr to e2e tests
* Merge refs/heads/master into init-sync-wrr
* Merge refs/heads/master into init-sync-wrr
* Merge refs/heads/master into init-sync-wrr
2020-05-18 18:59:03 +00:00
Victor Farazdagi
d79950ab3b
Optimizes FSM event triggering ( #5881 )
...
* Optimizes machine triggering
* updates queue
* Merge branch 'master' into init-sync-fsm-optimizations
* gazelle
* Merge branch 'init-sync-fsm-optimizations' of github.com:prysmaticlabs/prysm into init-sync-fsm-optimizations
2020-05-16 20:26:00 +00:00
Victor Farazdagi
c4eb8c7a16
Refactors block fetching function to fetcher ( #5766 )
...
* refactors block fetching function to fetcher
* more comments fixed
* Merge refs/heads/master into init-sync-upd
* Merge refs/heads/master into init-sync-upd
* Merge refs/heads/master into init-sync-upd
2020-05-06 21:29:50 +00:00
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
2020-04-13 04:11:09 +00:00
Victor Farazdagi
f440c815f9
Init sync update highest slot ( #5298 )
...
* updates highest slot before wrapping up
* more verbose error message
* error w/o stack
* revert back
2020-04-04 17:11:38 +03:00
Victor Farazdagi
c26a492225
Init sync optimizations ( #5284 )
...
* fix naming slot -> epoch
* better handling of long periods w/o finality
* fixes issue with pointer going too far ahead
2020-04-02 06:54:05 +03:00
Victor Farazdagi
7ebb3c1784
init-sync revamp ( #5148 )
...
* fix issue with rate limiting
* force fetcher to wait for minimum peers
* adds backoff interval
* cap the max blocks requested from a peer
* queue rewritten
* adds docs to fsm
* fix visibility
* updates fsm
* fsm tests added
* optimizes queue resource allocations
* removes debug log
* replace auto-fixed comment
* fixes typo
* better handling of evil peers
* fixes test
* minor fixes to fsm
* better interface for findEpochState func
2020-03-27 09:54:57 +03:00
Victor Farazdagi
3ec2a0f9e0
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>
2020-03-17 12:27:18 -05:00
Victor Farazdagi
f18bada8c9
Init sync blocks queue ( #5064 )
...
* 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
* Update beacon-chain/sync/initial-sync/blocks_queue.go
Co-Authored-By: shayzluf <thezluf@gmail.com>
* Update beacon-chain/sync/initial-sync/blocks_queue_test.go
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: shayzluf <thezluf@gmail.com>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
2020-03-16 18:21:36 +03:00