mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-01-12 07:14:20 +00:00
118840d241
* SyncManager cleanups for backfill support Cleanups, fixes and simplifications, in anticipation of backfill support for the `SyncManager`: * reformat sync progress indicator to show time left and % done more prominently: * old: `sync="sPssPsssss:2:2.4229:00h57m (2706898)"` * new: `sync="14d12h31m (0.52%) 1.1378slots/s (wQQQQQDDQQ:1287520)"` * reset average speed when going out of sync * pass all block errors to sync manager, including duplicate/unviable * penalize peers for reporting a head block that is outside of our expected wall clock time (they're likely on a different network or trying to disrupt sync) * remove `SyncFailureKind` (unused) * remove `inRange` (unused) * add `Q` for sync queue requests that are in the `SyncQueue` but not yet in the `BlockProcessor` queue * update last slot in `SyncQueue` after getting peer status * fix race condition between `wakeupWaiters` and `resetWait`, where workers would not be correctly reset if block verification returned a completed future without event loop * log syncmanager direction * Fix ordering issue. Some of the requests size of which are not equal to `chunkSize` could be processed in wrong order which could lead to sync process freezes. Co-authored-by: cheatfate <eugene.kabanov@status.im>
31 lines
1.2 KiB
Nim
31 lines
1.2 KiB
Nim
# beacon_chain
|
|
# Copyright (c) 2018-2021 Status Research & Development GmbH
|
|
# Licensed and distributed under either of
|
|
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
|
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
|
# at your option. This file may not be copied, modified, or distributed except according to those terms.
|
|
|
|
{.push raises: [Defect].}
|
|
|
|
const
|
|
PeerScoreHeadTooNew* = -100
|
|
## The peer reports a head newer than our wall clock slot
|
|
PeerScoreNoStatus* = -100
|
|
## Peer did not answer `status` request.
|
|
PeerScoreStaleStatus* = -50
|
|
## Peer's `status` answer do not progress in time.
|
|
PeerScoreUseless* = -10
|
|
## Peer's latest head is lower then ours.
|
|
PeerScoreGoodStatus* = 50
|
|
## Peer's `status` answer is fine.
|
|
PeerScoreNoBlocks* = -100
|
|
## Peer did not respond in time on `blocksByRange` request.
|
|
PeerScoreGoodBlocks* = 100
|
|
## Peer's `blocksByRange` answer is fine.
|
|
PeerScoreBadBlocks* = -1000
|
|
## Peer's response contains incorrect blocks.
|
|
PeerScoreBadResponse* = -1000
|
|
## Peer's response is not in requested range.
|
|
PeerScoreMissingBlocks* = -200
|
|
## Peer response contains too many empty blocks.
|