@lodestar/beacon-node 1.33.0-peerDAS.e03bda542e → 1.33.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/impl/beacon/blocks/index.js +26 -66
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/debug/index.d.ts +1 -1
- package/lib/api/impl/debug/index.js +1 -24
- package/lib/api/impl/debug/index.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.d.ts +1 -1
- package/lib/chain/archiveStore/archiveStore.js +2 -2
- package/lib/chain/archiveStore/interface.d.ts +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +23 -88
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/beaconProposerCache.d.ts +0 -1
- package/lib/chain/beaconProposerCache.js +0 -3
- package/lib/chain/beaconProposerCache.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +3 -8
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +24 -67
- package/lib/chain/blocks/types.js +6 -40
- package/lib/chain/blocks/types.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.js +10 -21
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +15 -89
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/chain.d.ts +5 -16
- package/lib/chain/chain.js +6 -34
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +2 -18
- package/lib/chain/emitter.js +0 -13
- package/lib/chain/emitter.js.map +1 -1
- package/lib/chain/errors/index.d.ts +0 -1
- package/lib/chain/errors/index.js +0 -1
- package/lib/chain/errors/index.js.map +1 -1
- package/lib/chain/interface.d.ts +4 -10
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/options.d.ts +1 -4
- package/lib/chain/options.js +1 -5
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/prepareNextSlot.js +1 -1
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +2 -4
- package/lib/chain/produceBlock/produceBlockBody.js +2 -7
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +2 -3
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +2 -25
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.d.ts +18 -64
- package/lib/chain/seenCache/seenGossipBlockInput.js +53 -321
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/constants/network.d.ts +1 -0
- package/lib/constants/network.js +2 -0
- package/lib/constants/network.js.map +1 -1
- package/lib/db/beacon.d.ts +1 -3
- package/lib/db/beacon.js +1 -3
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/buckets.d.ts +1 -3
- package/lib/db/buckets.js +0 -2
- package/lib/db/buckets.js.map +1 -1
- package/lib/db/interface.d.ts +1 -3
- package/lib/db/repositories/index.d.ts +0 -2
- package/lib/db/repositories/index.js +0 -2
- package/lib/db/repositories/index.js.map +1 -1
- package/lib/execution/engine/http.d.ts +3 -5
- package/lib/execution/engine/http.js +31 -70
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +2 -4
- package/lib/execution/engine/interface.js +1 -1
- package/lib/execution/engine/interface.js.map +1 -1
- package/lib/execution/engine/mock.d.ts +0 -1
- package/lib/execution/engine/mock.js +0 -5
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/types.d.ts +0 -10
- package/lib/execution/engine/types.js +0 -6
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +1 -15
- package/lib/metrics/metrics/beacon.js +1 -58
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +1 -23
- package/lib/metrics/metrics/lodestar.js +0 -39
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/core/metrics.d.ts +3 -10
- package/lib/network/core/metrics.js +4 -22
- package/lib/network/core/metrics.js.map +1 -1
- package/lib/network/core/networkCore.d.ts +3 -8
- package/lib/network/core/networkCore.js +10 -24
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/core/networkCoreWorker.js +0 -1
- package/lib/network/core/networkCoreWorker.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.d.ts +3 -4
- package/lib/network/core/networkCoreWorkerHandler.js +0 -4
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/core/types.d.ts +4 -6
- package/lib/network/events.d.ts +2 -4
- package/lib/network/events.js.map +1 -1
- package/lib/network/gossip/interface.d.ts +1 -8
- package/lib/network/gossip/interface.js +0 -1
- package/lib/network/gossip/interface.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +1497 -1513
- package/lib/network/gossip/topic.js +1 -20
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/interface.d.ts +1 -13
- package/lib/network/metadata.d.ts +5 -9
- package/lib/network/metadata.js +5 -25
- package/lib/network/metadata.js.map +1 -1
- package/lib/network/network.d.ts +2 -12
- package/lib/network/network.js +8 -59
- package/lib/network/network.js.map +1 -1
- package/lib/network/options.js +0 -5
- package/lib/network/options.js.map +1 -1
- package/lib/network/peers/discover.d.ts +5 -9
- package/lib/network/peers/discover.js +23 -108
- package/lib/network/peers/discover.js.map +1 -1
- package/lib/network/peers/peerManager.d.ts +4 -10
- package/lib/network/peers/peerManager.js +46 -101
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/peers/peersData.d.ts +3 -17
- package/lib/network/peers/peersData.js.map +1 -1
- package/lib/network/peers/score/constants.d.ts +3 -1
- package/lib/network/peers/score/constants.js +3 -1
- package/lib/network/peers/score/constants.js.map +1 -1
- package/lib/network/peers/score/interface.d.ts +6 -1
- package/lib/network/peers/score/interface.js.map +1 -1
- package/lib/network/peers/score/score.d.ts +7 -2
- package/lib/network/peers/score/score.js +35 -5
- package/lib/network/peers/score/score.js.map +1 -1
- package/lib/network/peers/score/store.d.ts +10 -3
- package/lib/network/peers/score/store.js +15 -6
- package/lib/network/peers/score/store.js.map +1 -1
- package/lib/network/peers/utils/assertPeerRelevance.d.ts +3 -7
- package/lib/network/peers/utils/assertPeerRelevance.js +1 -10
- package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
- package/lib/network/peers/utils/prioritizePeers.d.ts +7 -18
- package/lib/network/peers/utils/prioritizePeers.js +7 -43
- package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
- package/lib/network/processor/extractSlotRootFns.js +1 -8
- package/lib/network/processor/extractSlotRootFns.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +9 -156
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/index.js +0 -5
- package/lib/network/processor/gossipQueues/index.js.map +1 -1
- package/lib/network/processor/index.js +0 -1
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.d.ts +2 -2
- package/lib/network/reqresp/ReqRespBeaconNode.js +10 -33
- package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +5 -16
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +14 -204
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +6 -32
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +28 -283
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/index.js +0 -10
- package/lib/network/reqresp/handlers/index.js.map +1 -1
- package/lib/network/reqresp/handlers/status.js +2 -3
- package/lib/network/reqresp/handlers/status.js.map +1 -1
- package/lib/network/reqresp/protocols.d.ts +0 -4
- package/lib/network/reqresp/protocols.js +0 -20
- package/lib/network/reqresp/protocols.js.map +1 -1
- package/lib/network/reqresp/rateLimit.js +1 -11
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/reqresp/types.d.ts +8 -15
- package/lib/network/reqresp/types.js +3 -10
- package/lib/network/reqresp/types.js.map +1 -1
- package/lib/network/statusCache.d.ts +5 -5
- package/lib/network/statusCache.js.map +1 -1
- package/lib/network/subnets/interface.d.ts +0 -3
- package/lib/network/subnets/interface.js +1 -14
- package/lib/network/subnets/interface.js.map +1 -1
- package/lib/network/subnets/syncnetsService.js +5 -4
- package/lib/network/subnets/syncnetsService.js.map +1 -1
- package/lib/node/nodejs.js +0 -1
- package/lib/node/nodejs.js.map +1 -1
- package/lib/sync/constants.d.ts +1 -1
- package/lib/sync/constants.js +1 -4
- package/lib/sync/constants.js.map +1 -1
- package/lib/sync/interface.d.ts +2 -2
- package/lib/sync/interface.js +1 -1
- package/lib/sync/interface.js.map +1 -1
- package/lib/sync/range/batch.d.ts +2 -16
- package/lib/sync/range/batch.js +7 -38
- package/lib/sync/range/batch.js.map +1 -1
- package/lib/sync/range/chain.d.ts +1 -16
- package/lib/sync/range/chain.js +30 -110
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.d.ts +2 -3
- package/lib/sync/range/range.js +3 -9
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/range/utils/chainTarget.d.ts +1 -5
- package/lib/sync/range/utils/chainTarget.js +1 -26
- package/lib/sync/range/utils/chainTarget.js.map +1 -1
- package/lib/sync/range/utils/peerBalancer.d.ts +5 -12
- package/lib/sync/range/utils/peerBalancer.js +10 -69
- package/lib/sync/range/utils/peerBalancer.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts +1 -8
- package/lib/sync/unknownBlock.js +69 -226
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/sync/utils/remoteSyncType.d.ts +4 -4
- package/lib/sync/utils/remoteSyncType.js.map +1 -1
- package/lib/util/blobs.d.ts +1 -18
- package/lib/util/blobs.js +1 -104
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/metadata.d.ts +0 -4
- package/lib/util/metadata.js +0 -7
- package/lib/util/metadata.js.map +1 -1
- package/lib/util/sszBytes.d.ts +0 -1
- package/lib/util/sszBytes.js +0 -17
- package/lib/util/sszBytes.js.map +1 -1
- package/package.json +14 -14
- package/lib/chain/errors/dataColumnSidecarError.d.ts +0 -69
- package/lib/chain/errors/dataColumnSidecarError.js +0 -21
- package/lib/chain/errors/dataColumnSidecarError.js.map +0 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts +0 -28
- package/lib/chain/validation/dataColumnSidecar.js +0 -248
- package/lib/chain/validation/dataColumnSidecar.js.map +0 -1
- package/lib/db/repositories/dataColumnSidecars.d.ts +0 -47
- package/lib/db/repositories/dataColumnSidecars.js +0 -40
- package/lib/db/repositories/dataColumnSidecars.js.map +0 -1
- package/lib/db/repositories/dataColumnSidecarsArchive.d.ts +0 -15
- package/lib/db/repositories/dataColumnSidecarsArchive.js +0 -23
- package/lib/db/repositories/dataColumnSidecarsArchive.js.map +0 -1
- package/lib/network/networkConfig.d.ts +0 -22
- package/lib/network/networkConfig.js +0 -29
- package/lib/network/networkConfig.js.map +0 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +0 -8
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +0 -106
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +0 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +0 -6
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +0 -57
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +0 -1
- package/lib/util/dataColumns.d.ts +0 -132
- package/lib/util/dataColumns.js +0 -353
- package/lib/util/dataColumns.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GoodByeReasonCode } from "../../../constants/network.js";
|
|
2
|
+
import { COOL_DOWN_BEFORE_DECAY_MS, DEFAULT_SCORE, GOSSIPSUB_NEGATIVE_SCORE_WEIGHT, GOSSIPSUB_POSITIVE_SCORE_WEIGHT, HALFLIFE_DECAY_MS, MAX_SCORE, MIN_LODESTAR_SCORE_BEFORE_BAN, MIN_SCORE, NO_COOL_DOWN_APPLIED, } from "./constants.js";
|
|
2
3
|
import { ScoreState } from "./interface.js";
|
|
3
4
|
import { scoreToState } from "./utils.js";
|
|
4
5
|
/**
|
|
@@ -12,6 +13,9 @@ export class RealScore {
|
|
|
12
13
|
this.ignoreNegativeGossipScore = false;
|
|
13
14
|
this.lastUpdate = Date.now();
|
|
14
15
|
}
|
|
16
|
+
isCoolingDown() {
|
|
17
|
+
return Date.now() < this.lastUpdate;
|
|
18
|
+
}
|
|
15
19
|
getScore() {
|
|
16
20
|
return this.score;
|
|
17
21
|
}
|
|
@@ -25,7 +29,29 @@ export class RealScore {
|
|
|
25
29
|
if (newScore < MIN_SCORE)
|
|
26
30
|
newScore = MIN_SCORE;
|
|
27
31
|
this.setLodestarScore(newScore);
|
|
28
|
-
|
|
32
|
+
}
|
|
33
|
+
applyReconnectionCoolDown(reason) {
|
|
34
|
+
let coolDownMin = NO_COOL_DOWN_APPLIED;
|
|
35
|
+
switch (reason) {
|
|
36
|
+
// let scoring system handle score decay by itself
|
|
37
|
+
case GoodByeReasonCode.BANNED:
|
|
38
|
+
case GoodByeReasonCode.SCORE_TOO_LOW:
|
|
39
|
+
return coolDownMin;
|
|
40
|
+
case GoodByeReasonCode.INBOUND_DISCONNECT:
|
|
41
|
+
case GoodByeReasonCode.TOO_MANY_PEERS:
|
|
42
|
+
coolDownMin = 5;
|
|
43
|
+
break;
|
|
44
|
+
case GoodByeReasonCode.ERROR:
|
|
45
|
+
case GoodByeReasonCode.CLIENT_SHUTDOWN:
|
|
46
|
+
coolDownMin = 60;
|
|
47
|
+
break;
|
|
48
|
+
case GoodByeReasonCode.IRRELEVANT_NETWORK:
|
|
49
|
+
coolDownMin = 240;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
// set banning period to time in ms in the future from now
|
|
53
|
+
this.lastUpdate = Date.now() + coolDownMin * 60 * 1000;
|
|
54
|
+
return coolDownMin;
|
|
29
55
|
}
|
|
30
56
|
/**
|
|
31
57
|
* Applies time-based logic such as decay rates to the score.
|
|
@@ -81,7 +107,7 @@ export class RealScore {
|
|
|
81
107
|
const newState = scoreToState(this.score);
|
|
82
108
|
if (prevState !== ScoreState.Banned && newState === ScoreState.Banned) {
|
|
83
109
|
// ban this peer for at least BANNED_BEFORE_DECAY_MS seconds
|
|
84
|
-
this.lastUpdate = Date.now() +
|
|
110
|
+
this.lastUpdate = Date.now() + COOL_DOWN_BEFORE_DECAY_MS;
|
|
85
111
|
}
|
|
86
112
|
}
|
|
87
113
|
/**
|
|
@@ -109,12 +135,16 @@ export class MaxScore {
|
|
|
109
135
|
getGossipScore() {
|
|
110
136
|
return DEFAULT_SCORE;
|
|
111
137
|
}
|
|
112
|
-
|
|
113
|
-
return
|
|
138
|
+
isCoolingDown() {
|
|
139
|
+
return false;
|
|
114
140
|
}
|
|
141
|
+
add() { }
|
|
115
142
|
update() {
|
|
116
143
|
return MAX_SCORE;
|
|
117
144
|
}
|
|
145
|
+
applyReconnectionCoolDown(_reason) {
|
|
146
|
+
return NO_COOL_DOWN_APPLIED;
|
|
147
|
+
}
|
|
118
148
|
updateGossipsubScore() { }
|
|
119
149
|
getStat() {
|
|
120
150
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../../../src/network/peers/score/score.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../../../src/network/peers/score/score.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PeerId } from "@libp2p/interface";
|
|
2
|
-
import {
|
|
2
|
+
import { GoodByeReasonCode } from "../../../constants/network.js";
|
|
3
3
|
import { PeerIdStr } from "../../../util/peerId.js";
|
|
4
4
|
import { NetworkCoreMetrics } from "../../core/metrics.js";
|
|
5
5
|
import { IPeerRpcScoreStore, PeerAction, PeerRpcScoreOpts, PeerScoreStats, ScoreState } from "./interface.js";
|
|
@@ -7,17 +7,24 @@ import { IPeerRpcScoreStore, PeerAction, PeerRpcScoreOpts, PeerScoreStats, Score
|
|
|
7
7
|
* A peer's score (perceived potential usefulness).
|
|
8
8
|
* This simplistic version consists of a global score per peer which decays to 0 over time.
|
|
9
9
|
* The decay rate applies equally to positive and negative scores.
|
|
10
|
+
* Peer cool-down period will be checked before dialing and will only be dialed if score is not waiting to decay
|
|
10
11
|
*/
|
|
11
12
|
export declare class PeerRpcScoreStore implements IPeerRpcScoreStore {
|
|
12
13
|
private readonly scores;
|
|
13
14
|
private readonly metrics;
|
|
14
|
-
|
|
15
|
-
constructor(opts?: PeerRpcScoreOpts, metrics?: NetworkCoreMetrics | null, logger?: Logger | null);
|
|
15
|
+
constructor(opts?: PeerRpcScoreOpts, metrics?: NetworkCoreMetrics | null);
|
|
16
16
|
getScore(peer: PeerId): number;
|
|
17
17
|
getGossipScore(peer: PeerId): number;
|
|
18
18
|
getScoreState(peer: PeerId): ScoreState;
|
|
19
|
+
isCoolingDown(peerIdStr: PeerIdStr): boolean;
|
|
19
20
|
dumpPeerScoreStats(): PeerScoreStats;
|
|
20
21
|
applyAction(peer: PeerId, action: PeerAction, actionName: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* Apply a reconnection cool-down period to prevent automatic reconnection. Sets peer
|
|
24
|
+
* banning period and updates gossip score to -1 so next update removes the negative
|
|
25
|
+
* score
|
|
26
|
+
*/
|
|
27
|
+
applyReconnectionCoolDown(peer: PeerIdStr, reason: GoodByeReasonCode): number;
|
|
21
28
|
update(): void;
|
|
22
29
|
updateGossipsubScore(peerId: PeerIdStr, newScore: number, ignore: boolean): void;
|
|
23
30
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { MapDef, pruneSetToMax } from "@lodestar/utils";
|
|
2
|
-
import { prettyPrintPeerId } from "../../util.js";
|
|
3
2
|
import { DEFAULT_SCORE, MAX_ENTRIES, MAX_SCORE, MIN_SCORE, SCORE_THRESHOLD } from "./constants.js";
|
|
4
3
|
import { PeerAction } from "./interface.js";
|
|
5
4
|
import { MaxScore, RealScore } from "./score.js";
|
|
@@ -14,12 +13,12 @@ const peerActionScore = {
|
|
|
14
13
|
* A peer's score (perceived potential usefulness).
|
|
15
14
|
* This simplistic version consists of a global score per peer which decays to 0 over time.
|
|
16
15
|
* The decay rate applies equally to positive and negative scores.
|
|
16
|
+
* Peer cool-down period will be checked before dialing and will only be dialed if score is not waiting to decay
|
|
17
17
|
*/
|
|
18
18
|
export class PeerRpcScoreStore {
|
|
19
19
|
// TODO: Persist scores, at least BANNED status to disk
|
|
20
|
-
constructor(opts = {}, metrics = null
|
|
20
|
+
constructor(opts = {}, metrics = null) {
|
|
21
21
|
this.metrics = metrics;
|
|
22
|
-
this.logger = logger;
|
|
23
22
|
this.scores = opts.disablePeerScoring ? new MapDef(() => new MaxScore()) : new MapDef(() => new RealScore());
|
|
24
23
|
}
|
|
25
24
|
getScore(peer) {
|
|
@@ -31,16 +30,26 @@ export class PeerRpcScoreStore {
|
|
|
31
30
|
getScoreState(peer) {
|
|
32
31
|
return scoreToState(this.getScore(peer));
|
|
33
32
|
}
|
|
33
|
+
isCoolingDown(peerIdStr) {
|
|
34
|
+
return this.scores.get(peerIdStr)?.isCoolingDown() ?? false;
|
|
35
|
+
}
|
|
34
36
|
dumpPeerScoreStats() {
|
|
35
37
|
return Array.from(this.scores.entries()).map(([peerId, peerScore]) => ({ peerId, ...peerScore.getStat() }));
|
|
36
38
|
}
|
|
37
39
|
applyAction(peer, action, actionName) {
|
|
38
40
|
const peerScore = this.scores.getOrDefault(peer.toString());
|
|
39
|
-
|
|
40
|
-
const newScore = peerScore.add(scoreChange);
|
|
41
|
-
this.logger?.debug("peer score adjusted", { scoreChange, newScore, peerId: prettyPrintPeerId(peer), actionName });
|
|
41
|
+
peerScore.add(peerActionScore[action]);
|
|
42
42
|
this.metrics?.peersReportPeerCount.inc({ reason: actionName });
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Apply a reconnection cool-down period to prevent automatic reconnection. Sets peer
|
|
46
|
+
* banning period and updates gossip score to -1 so next update removes the negative
|
|
47
|
+
* score
|
|
48
|
+
*/
|
|
49
|
+
applyReconnectionCoolDown(peer, reason) {
|
|
50
|
+
const peerScore = this.scores.getOrDefault(peer);
|
|
51
|
+
return peerScore.applyReconnectionCoolDown(reason);
|
|
52
|
+
}
|
|
44
53
|
update() {
|
|
45
54
|
// Bound size of data structures
|
|
46
55
|
pruneSetToMax(this.scores, MAX_ENTRIES);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/network/peers/score/store.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/network/peers/score/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ForkDigest, Root, Slot, Status } from "@lodestar/types";
|
|
1
|
+
import { ForkDigest, Root, Slot, phase0 } from "@lodestar/types";
|
|
3
2
|
export declare enum IrrelevantPeerCode {
|
|
4
3
|
INCOMPATIBLE_FORKS = "IRRELEVANT_PEER_INCOMPATIBLE_FORKS",
|
|
5
4
|
DIFFERENT_CLOCKS = "IRRELEVANT_PEER_DIFFERENT_CLOCKS",
|
|
6
|
-
DIFFERENT_FINALIZED = "IRRELEVANT_PEER_DIFFERENT_FINALIZED"
|
|
7
|
-
NO_EARLIEST_AVAILABLE_SLOT = "NO_EARLIEST_AVAILABLE_SLOT"
|
|
5
|
+
DIFFERENT_FINALIZED = "IRRELEVANT_PEER_DIFFERENT_FINALIZED"
|
|
8
6
|
}
|
|
9
7
|
type IrrelevantPeerType = {
|
|
10
8
|
code: IrrelevantPeerCode.INCOMPATIBLE_FORKS;
|
|
@@ -13,8 +11,6 @@ type IrrelevantPeerType = {
|
|
|
13
11
|
} | {
|
|
14
12
|
code: IrrelevantPeerCode.DIFFERENT_CLOCKS;
|
|
15
13
|
slotDiff: number;
|
|
16
|
-
} | {
|
|
17
|
-
code: IrrelevantPeerCode.NO_EARLIEST_AVAILABLE_SLOT;
|
|
18
14
|
} | {
|
|
19
15
|
code: IrrelevantPeerCode.DIFFERENT_FINALIZED;
|
|
20
16
|
expectedRoot: Root;
|
|
@@ -24,7 +20,7 @@ type IrrelevantPeerType = {
|
|
|
24
20
|
* Process a `Status` message to determine if a peer is relevant to us. If the peer is
|
|
25
21
|
* irrelevant the reason is returned.
|
|
26
22
|
*/
|
|
27
|
-
export declare function assertPeerRelevance(remote: Status, local: Status, currentSlot: Slot
|
|
23
|
+
export declare function assertPeerRelevance(remote: phase0.Status, local: phase0.Status, currentSlot: Slot): IrrelevantPeerType | null;
|
|
28
24
|
export declare function isZeroRoot(root: Root): boolean;
|
|
29
25
|
export declare function renderIrrelevantPeerType(type: IrrelevantPeerType): string;
|
|
30
26
|
export {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isForkPostFulu } from "@lodestar/params";
|
|
2
1
|
import { ssz } from "@lodestar/types";
|
|
3
2
|
import { toHex, toRootHex } from "@lodestar/utils";
|
|
4
3
|
// TODO: Why this value? (From Lighthouse)
|
|
@@ -8,13 +7,12 @@ export var IrrelevantPeerCode;
|
|
|
8
7
|
IrrelevantPeerCode["INCOMPATIBLE_FORKS"] = "IRRELEVANT_PEER_INCOMPATIBLE_FORKS";
|
|
9
8
|
IrrelevantPeerCode["DIFFERENT_CLOCKS"] = "IRRELEVANT_PEER_DIFFERENT_CLOCKS";
|
|
10
9
|
IrrelevantPeerCode["DIFFERENT_FINALIZED"] = "IRRELEVANT_PEER_DIFFERENT_FINALIZED";
|
|
11
|
-
IrrelevantPeerCode["NO_EARLIEST_AVAILABLE_SLOT"] = "NO_EARLIEST_AVAILABLE_SLOT";
|
|
12
10
|
})(IrrelevantPeerCode || (IrrelevantPeerCode = {}));
|
|
13
11
|
/**
|
|
14
12
|
* Process a `Status` message to determine if a peer is relevant to us. If the peer is
|
|
15
13
|
* irrelevant the reason is returned.
|
|
16
14
|
*/
|
|
17
|
-
export function assertPeerRelevance(remote, local, currentSlot
|
|
15
|
+
export function assertPeerRelevance(remote, local, currentSlot) {
|
|
18
16
|
// The node is on a different network/fork
|
|
19
17
|
if (!ssz.ForkDigest.equals(local.forkDigest, remote.forkDigest)) {
|
|
20
18
|
return {
|
|
@@ -50,11 +48,6 @@ export function assertPeerRelevance(remote, local, currentSlot, forkName) {
|
|
|
50
48
|
};
|
|
51
49
|
}
|
|
52
50
|
}
|
|
53
|
-
if (isForkPostFulu(forkName) && remote.earliestAvailableSlot === undefined) {
|
|
54
|
-
return {
|
|
55
|
-
code: IrrelevantPeerCode.NO_EARLIEST_AVAILABLE_SLOT,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
51
|
// Note: Accept request status finalized checkpoint in the future, we do not know if it is a true finalized root
|
|
59
52
|
return null;
|
|
60
53
|
}
|
|
@@ -70,8 +63,6 @@ export function renderIrrelevantPeerType(type) {
|
|
|
70
63
|
return `DIFFERENT_CLOCKS slotDiff: ${type.slotDiff}`;
|
|
71
64
|
case IrrelevantPeerCode.DIFFERENT_FINALIZED:
|
|
72
65
|
return `DIFFERENT_FINALIZED root: ${toRootHex(type.remoteRoot)} expected: ${toRootHex(type.expectedRoot)}`;
|
|
73
|
-
case IrrelevantPeerCode.NO_EARLIEST_AVAILABLE_SLOT:
|
|
74
|
-
return "No earliestAvailableSlot announced via peer Status";
|
|
75
66
|
}
|
|
76
67
|
}
|
|
77
68
|
//# sourceMappingURL=assertPeerRelevance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertPeerRelevance.js","sourceRoot":"","sources":["../../../../src/network/peers/utils/assertPeerRelevance.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"assertPeerRelevance.js","sourceRoot":"","sources":["../../../../src/network/peers/utils/assertPeerRelevance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import { Direction, PeerId } from "@libp2p/interface";
|
|
2
|
-
import {
|
|
3
|
-
import { NetworkCoreMetrics } from "../../core/metrics.js";
|
|
2
|
+
import { SubnetID, altair, phase0 } from "@lodestar/types";
|
|
4
3
|
import { RequestedSubnet } from "./subnetMap.js";
|
|
5
4
|
type SubnetDiscvQuery = {
|
|
6
5
|
subnet: SubnetID;
|
|
7
6
|
toSlot: number;
|
|
8
7
|
maxPeersToDiscover: number;
|
|
9
8
|
};
|
|
10
|
-
/**
|
|
11
|
-
* A map of das custody group index to maxPeersToDiscover
|
|
12
|
-
*/
|
|
13
|
-
export type GroupQueries = Map<CustodyIndex, number>;
|
|
14
9
|
/**
|
|
15
10
|
* Comparison of our status vs a peer's status.
|
|
16
11
|
*
|
|
@@ -30,22 +25,20 @@ type PeerInfo = {
|
|
|
30
25
|
statusScore: StatusScore;
|
|
31
26
|
attnets: phase0.AttestationSubnets;
|
|
32
27
|
syncnets: altair.SyncSubnets;
|
|
33
|
-
samplingGroups: CustodyIndex[];
|
|
34
28
|
attnetsTrueBitIndices: number[];
|
|
35
29
|
syncnetsTrueBitIndices: number[];
|
|
36
30
|
score: number;
|
|
37
31
|
};
|
|
38
|
-
export
|
|
32
|
+
export interface PrioritizePeersOpts {
|
|
39
33
|
targetPeers: number;
|
|
40
34
|
maxPeers: number;
|
|
41
|
-
|
|
42
|
-
status: Status;
|
|
35
|
+
status: phase0.Status;
|
|
43
36
|
starved: boolean;
|
|
44
37
|
starvationPruneRatio: number;
|
|
45
38
|
starvationThresholdSlots: number;
|
|
46
39
|
outboundPeersRatio?: number;
|
|
47
40
|
targetSubnetPeers?: number;
|
|
48
|
-
}
|
|
41
|
+
}
|
|
49
42
|
export declare enum ExcessPeerDisconnectReason {
|
|
50
43
|
LOW_SCORE = "low_score",
|
|
51
44
|
NO_LONG_LIVED_SUBNET = "no_long_lived_subnet",
|
|
@@ -57,25 +50,21 @@ export declare enum ExcessPeerDisconnectReason {
|
|
|
57
50
|
* - Reach `targetPeers`
|
|
58
51
|
* - If we're starved for data, prune additional peers
|
|
59
52
|
* - Don't exceed `maxPeers`
|
|
60
|
-
* - Ensure there are enough peers per
|
|
53
|
+
* - Ensure there are enough peers per active subnet
|
|
61
54
|
* - Prioritize peers with good score
|
|
62
|
-
*
|
|
63
|
-
* pre-fulu samplingGroups is not used and this function returns empty groupQueries
|
|
64
55
|
*/
|
|
65
56
|
export declare function prioritizePeers(connectedPeersInfo: {
|
|
66
57
|
id: PeerId;
|
|
67
58
|
direction: Direction | null;
|
|
68
|
-
status: Status | null;
|
|
59
|
+
status: phase0.Status | null;
|
|
69
60
|
attnets: phase0.AttestationSubnets | null;
|
|
70
61
|
syncnets: altair.SyncSubnets | null;
|
|
71
|
-
samplingGroups: CustodyIndex[] | null;
|
|
72
62
|
score: number;
|
|
73
|
-
}[], activeAttnets: RequestedSubnet[], activeSyncnets: RequestedSubnet[],
|
|
63
|
+
}[], activeAttnets: RequestedSubnet[], activeSyncnets: RequestedSubnet[], opts: PrioritizePeersOpts): {
|
|
74
64
|
peersToConnect: number;
|
|
75
65
|
peersToDisconnect: Map<ExcessPeerDisconnectReason, PeerId[]>;
|
|
76
66
|
attnetQueries: SubnetDiscvQuery[];
|
|
77
67
|
syncnetQueries: SubnetDiscvQuery[];
|
|
78
|
-
groupQueries: GroupQueries;
|
|
79
68
|
};
|
|
80
69
|
/**
|
|
81
70
|
* Sort peers ascending, peer-0 has the most chance to prune, peer-n has the least.
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import { BitArray } from "@chainsafe/ssz";
|
|
2
|
-
import { ATTESTATION_SUBNET_COUNT,
|
|
2
|
+
import { ATTESTATION_SUBNET_COUNT, SYNC_COMMITTEE_SUBNET_COUNT } from "@lodestar/params";
|
|
3
3
|
import { MapDef } from "@lodestar/utils";
|
|
4
4
|
import { shuffle } from "../../../util/shuffle.js";
|
|
5
5
|
import { sortBy } from "../../../util/sortBy.js";
|
|
6
6
|
/** Target number of peers we'd like to have connected to a given long-lived subnet */
|
|
7
7
|
const TARGET_SUBNET_PEERS = 6;
|
|
8
|
-
/**
|
|
9
|
-
* This is for non-sampling groups only. This is a very easy number to achieve given an average of 6.25 peers per column subnet on public networks.
|
|
10
|
-
* This is needed to always maintain some minimum peers on all subnets so that when we publish a block, we're sure we pubish to all column subnets.
|
|
11
|
-
*/
|
|
12
|
-
const TARGET_GROUP_PEERS_PER_SUBNET = 4;
|
|
13
8
|
/**
|
|
14
9
|
* This is used in the pruning logic. We avoid pruning peers on sync-committees if doing so would
|
|
15
10
|
* lower our peer count below this number. Instead we favour a non-uniform distribution of subnet
|
|
@@ -80,12 +75,10 @@ export var ExcessPeerDisconnectReason;
|
|
|
80
75
|
* - Reach `targetPeers`
|
|
81
76
|
* - If we're starved for data, prune additional peers
|
|
82
77
|
* - Don't exceed `maxPeers`
|
|
83
|
-
* - Ensure there are enough peers per
|
|
78
|
+
* - Ensure there are enough peers per active subnet
|
|
84
79
|
* - Prioritize peers with good score
|
|
85
|
-
*
|
|
86
|
-
* pre-fulu samplingGroups is not used and this function returns empty groupQueries
|
|
87
80
|
*/
|
|
88
|
-
export function prioritizePeers(connectedPeersInfo, activeAttnets, activeSyncnets,
|
|
81
|
+
export function prioritizePeers(connectedPeersInfo, activeAttnets, activeSyncnets, opts) {
|
|
89
82
|
const { targetPeers, maxPeers } = opts;
|
|
90
83
|
let peersToConnect = 0;
|
|
91
84
|
const peersToDisconnect = new MapDef(() => []);
|
|
@@ -96,12 +89,11 @@ export function prioritizePeers(connectedPeersInfo, activeAttnets, activeSyncnet
|
|
|
96
89
|
statusScore: computeStatusScore(opts.status, peer.status, opts),
|
|
97
90
|
attnets: peer.attnets ?? attnetsZero,
|
|
98
91
|
syncnets: peer.syncnets ?? syncnetsZero,
|
|
99
|
-
samplingGroups: peer.samplingGroups ?? [],
|
|
100
92
|
attnetsTrueBitIndices: peer.attnets?.getTrueBitIndexes() ?? [],
|
|
101
93
|
syncnetsTrueBitIndices: peer.syncnets?.getTrueBitIndexes() ?? [],
|
|
102
94
|
score: peer.score,
|
|
103
95
|
}));
|
|
104
|
-
const { attnetQueries, syncnetQueries,
|
|
96
|
+
const { attnetQueries, syncnetQueries, dutiesByPeer } = requestAttnetPeers(connectedPeers, activeAttnets, activeSyncnets, opts);
|
|
105
97
|
const connectedPeerCount = connectedPeers.length;
|
|
106
98
|
if (connectedPeerCount < targetPeers) {
|
|
107
99
|
// Need more peers.
|
|
@@ -120,14 +112,12 @@ export function prioritizePeers(connectedPeersInfo, activeAttnets, activeSyncnet
|
|
|
120
112
|
peersToDisconnect,
|
|
121
113
|
attnetQueries,
|
|
122
114
|
syncnetQueries,
|
|
123
|
-
groupQueries,
|
|
124
115
|
};
|
|
125
116
|
}
|
|
126
117
|
/**
|
|
127
|
-
* If more peers are needed in attnets and syncnets
|
|
128
|
-
* pre-fulu samplingGroups is not used and this function returns empty groupQueries
|
|
118
|
+
* If more peers are needed in attnets and syncnets, create SubnetDiscvQuery for each subnet
|
|
129
119
|
*/
|
|
130
|
-
function
|
|
120
|
+
function requestAttnetPeers(connectedPeers, activeAttnets, activeSyncnets, opts) {
|
|
131
121
|
const { targetSubnetPeers = TARGET_SUBNET_PEERS } = opts;
|
|
132
122
|
const attnetQueries = [];
|
|
133
123
|
const syncnetQueries = [];
|
|
@@ -179,33 +169,7 @@ function requestSubnetPeers(connectedPeers, activeAttnets, activeSyncnets, ourSa
|
|
|
179
169
|
}
|
|
180
170
|
}
|
|
181
171
|
}
|
|
182
|
-
|
|
183
|
-
// pre-fulu
|
|
184
|
-
if (ourSamplingGroups == null) {
|
|
185
|
-
return { attnetQueries, syncnetQueries, groupQueries, dutiesByPeer };
|
|
186
|
-
}
|
|
187
|
-
// column subnets, do we need queries for more peers
|
|
188
|
-
const targetGroupPeersPerSamplingGroup = opts.targetGroupPeers;
|
|
189
|
-
const peersPerGroup = new Map();
|
|
190
|
-
for (const peer of connectedPeers) {
|
|
191
|
-
const peerSamplingGroups = peer.samplingGroups;
|
|
192
|
-
for (const group of peerSamplingGroups) {
|
|
193
|
-
peersPerGroup.set(group, 1 + (peersPerGroup.get(group) ?? 0));
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
const ourSamplingGroupSet = new Set(ourSamplingGroups);
|
|
197
|
-
for (let groupIndex = 0; groupIndex < NUMBER_OF_CUSTODY_GROUPS; groupIndex++) {
|
|
198
|
-
const peersInGroup = peersPerGroup.get(groupIndex) ?? 0;
|
|
199
|
-
metrics?.peerCountPerSamplingGroup.set({ groupIndex }, peersInGroup);
|
|
200
|
-
const targetGroupPeers = ourSamplingGroupSet.has(groupIndex)
|
|
201
|
-
? targetGroupPeersPerSamplingGroup
|
|
202
|
-
: TARGET_GROUP_PEERS_PER_SUBNET;
|
|
203
|
-
if (peersInGroup < targetGroupPeers) {
|
|
204
|
-
// We need more peers
|
|
205
|
-
groupQueries.set(groupIndex, targetGroupPeers - peersInGroup);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return { attnetQueries, syncnetQueries, groupQueries, dutiesByPeer };
|
|
172
|
+
return { attnetQueries, syncnetQueries, dutiesByPeer };
|
|
209
173
|
}
|
|
210
174
|
/**
|
|
211
175
|
* Remove excess peers back down to our target values.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prioritizePeers.js","sourceRoot":"","sources":["../../../../src/network/peers/utils/prioritizePeers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prioritizePeers.js","sourceRoot":"","sources":["../../../../src/network/peers/utils/prioritizePeers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getBlockRootFromBeaconAttestationSerialized, getBlockRootFromSignedAggregateAndProofSerialized, getSlotFromBeaconAttestationSerialized, getSlotFromBlobSidecarSerialized,
|
|
1
|
+
import { getBlockRootFromBeaconAttestationSerialized, getBlockRootFromSignedAggregateAndProofSerialized, getSlotFromBeaconAttestationSerialized, getSlotFromBlobSidecarSerialized, getSlotFromSignedAggregateAndProofSerialized, getSlotFromSignedBeaconBlockSerialized, } from "../../util/sszBytes.js";
|
|
2
2
|
import { GossipType } from "../gossip/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* Extract the slot and block root of a gossip message form serialized data.
|
|
@@ -36,13 +36,6 @@ export function createExtractBlockSlotRootFns() {
|
|
|
36
36
|
}
|
|
37
37
|
return { slot };
|
|
38
38
|
},
|
|
39
|
-
[GossipType.data_column_sidecar]: (data) => {
|
|
40
|
-
const slot = getSlotFromDataColumnSidecarSerialized(data);
|
|
41
|
-
if (slot === null) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
return { slot };
|
|
45
|
-
},
|
|
46
39
|
};
|
|
47
40
|
}
|
|
48
41
|
//# sourceMappingURL=extractSlotRootFns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractSlotRootFns.js","sourceRoot":"","sources":["../../../src/network/processor/extractSlotRootFns.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,2CAA2C,EAC3C,iDAAiD,EACjD,sCAAsC,EACtC,gCAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"extractSlotRootFns.js","sourceRoot":"","sources":["../../../src/network/processor/extractSlotRootFns.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,2CAA2C,EAC3C,iDAAiD,EACjD,sCAAsC,EACtC,gCAAgC,EAChC,4CAA4C,EAC5C,sCAAsC,GACvC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAG9C;;;GAGG;AACH,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAgB,EAAE,IAAc,EAAsB,EAAE;YACxF,MAAM,IAAI,GAAG,sCAAsC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,2CAA2C,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAErE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;QACtB,CAAC;QACD,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAgB,EAAsB,EAAE;YAChF,MAAM,IAAI,GAAG,4CAA4C,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,iDAAiD,CAAC,IAAI,CAAC,CAAC;YAErE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;QACtB,CAAC;QACD,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,IAAgB,EAA2B,EAAE;YACvE,MAAM,IAAI,GAAG,sCAAsC,CAAC,IAAI,CAAC,CAAC;YAE1D,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,EAAC,IAAI,EAAC,CAAC;QAChB,CAAC;QACD,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,IAAgB,EAA2B,EAAE;YACvE,MAAM,IAAI,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;YAEpD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,EAAC,IAAI,EAAC,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
|