@lodestar/beacon-node 1.32.0-peerDAS.fbabed864b → 1.32.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 +33 -42
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/state/index.js +13 -1
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/validator/index.js +43 -29
- package/lib/api/impl/validator/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/archiveStore.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/metrics.js +13 -0
- package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
- 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 +51 -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 +4 -60
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +24 -65
- package/lib/chain/blocks/types.js +6 -39
- 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 +8 -16
- package/lib/chain/chain.js +14 -23
- 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 +5 -11
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/options.d.ts +3 -6
- package/lib/chain/options.js +0 -4
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -5
- package/lib/chain/produceBlock/produceBlockBody.js +141 -117
- 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 -61
- package/lib/chain/seenCache/seenGossipBlockInput.js +53 -254
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/chain/validation/block.js +1 -1
- package/lib/chain/validation/block.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 +3 -12
- package/lib/metrics/metrics/beacon.js +13 -44
- package/lib/metrics/metrics/beacon.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 +4 -10
- package/lib/network/core/networkCore.js +55 -67
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/core/networkCoreWorker.js +0 -2
- package/lib/network/core/networkCoreWorker.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.d.ts +0 -2
- package/lib/network/core/networkCoreWorkerHandler.js +0 -7
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/core/types.d.ts +0 -4
- package/lib/network/discv5/index.d.ts +1 -0
- package/lib/network/discv5/index.js +1 -0
- package/lib/network/discv5/index.js.map +1 -1
- package/lib/network/discv5/types.d.ts +1 -0
- package/lib/network/discv5/utils.d.ts +3 -1
- package/lib/network/discv5/utils.js +14 -4
- package/lib/network/discv5/utils.js.map +1 -1
- package/lib/network/discv5/worker.js +5 -1
- package/lib/network/discv5/worker.js.map +1 -1
- package/lib/network/events.d.ts +1 -3
- package/lib/network/events.js.map +1 -1
- package/lib/network/forks.d.ts +8 -9
- package/lib/network/forks.js +35 -33
- package/lib/network/forks.js.map +1 -1
- package/lib/network/gossip/encoding.js +1 -1
- package/lib/network/gossip/encoding.js.map +1 -1
- package/lib/network/gossip/gossipsub.js +15 -6
- package/lib/network/gossip/gossipsub.js.map +1 -1
- package/lib/network/gossip/interface.d.ts +3 -11
- package/lib/network/gossip/interface.js +0 -1
- package/lib/network/gossip/interface.js.map +1 -1
- package/lib/network/gossip/scoringParameters.js +10 -10
- package/lib/network/gossip/scoringParameters.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +1497 -1513
- package/lib/network/gossip/topic.js +15 -33
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/interface.d.ts +1 -13
- package/lib/network/metadata.d.ts +6 -10
- package/lib/network/metadata.js +13 -30
- package/lib/network/metadata.js.map +1 -1
- package/lib/network/network.d.ts +1 -12
- package/lib/network/network.js +43 -85
- package/lib/network/network.js.map +1 -1
- package/lib/network/options.js +0 -2
- package/lib/network/options.js.map +1 -1
- package/lib/network/peers/discover.d.ts +3 -14
- package/lib/network/peers/discover.js +14 -139
- package/lib/network/peers/discover.js.map +1 -1
- package/lib/network/peers/peerManager.d.ts +2 -10
- package/lib/network/peers/peerManager.js +10 -96
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/peers/peersData.d.ts +2 -8
- package/lib/network/peers/peersData.js.map +1 -1
- package/lib/network/peers/score/interface.d.ts +1 -1
- package/lib/network/peers/score/score.d.ts +2 -2
- package/lib/network/peers/score/score.js +1 -4
- package/lib/network/peers/score/score.js.map +1 -1
- package/lib/network/peers/score/store.d.ts +1 -3
- package/lib/network/peers/score/store.js +2 -6
- package/lib/network/peers/score/store.js.map +1 -1
- package/lib/network/peers/utils/prioritizePeers.d.ts +4 -15
- package/lib/network/peers/utils/prioritizePeers.js +5 -30
- 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 +30 -164
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/index.js +1 -6
- package/lib/network/processor/gossipQueues/index.js.map +1 -1
- package/lib/network/processor/index.js +2 -3
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.d.ts +3 -4
- package/lib/network/reqresp/ReqRespBeaconNode.js +14 -30
- package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +5 -14
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +14 -199
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +6 -31
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +48 -282
- 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 +3 -2
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.js +2 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js +2 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +2 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.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/lightClientBootstrap.js +4 -3
- package/lib/network/reqresp/handlers/lightClientBootstrap.js.map +1 -1
- package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js +4 -3
- package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
- package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js +4 -3
- package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
- package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js +4 -3
- package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/status.js +2 -2
- package/lib/network/reqresp/handlers/status.js.map +1 -1
- package/lib/network/reqresp/protocols.d.ts +0 -3
- package/lib/network/reqresp/protocols.js +1 -16
- 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 +6 -13
- package/lib/network/reqresp/types.js +2 -9
- package/lib/network/reqresp/types.js.map +1 -1
- package/lib/network/subnets/attnetsService.d.ts +3 -4
- package/lib/network/subnets/attnetsService.js +18 -17
- package/lib/network/subnets/attnetsService.js.map +1 -1
- package/lib/network/subnets/interface.d.ts +3 -6
- package/lib/network/subnets/interface.js +1 -14
- package/lib/network/subnets/interface.js.map +1 -1
- package/lib/network/subnets/syncnetsService.d.ts +3 -4
- package/lib/network/subnets/syncnetsService.js +14 -13
- 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/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 -8
- package/lib/sync/range/batch.js +7 -19
- package/lib/sync/range/batch.js.map +1 -1
- package/lib/sync/range/chain.d.ts +2 -7
- package/lib/sync/range/chain.js +21 -45
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.js +3 -3
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/range/utils/peerBalancer.d.ts +1 -4
- package/lib/sync/range/utils/peerBalancer.js +2 -20
- package/lib/sync/range/utils/peerBalancer.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts +1 -8
- package/lib/sync/unknownBlock.js +63 -222
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/util/blobs.d.ts +1 -13
- package/lib/util/blobs.js +1 -44
- 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 -245
- 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 -23
- package/lib/network/networkConfig.js +0 -32
- 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 -125
- package/lib/util/dataColumns.js +0 -284
- package/lib/util/dataColumns.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobSidecarsByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/blobSidecarsByRange.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,sBAAsB,EAAE,YAAY,EAAC,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAC,UAAU,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"blobSidecarsByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/blobSidecarsByRange.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BLOBSIDECAR_FIXED_SIZE } from "@lodestar/params";
|
|
2
2
|
import { RespStatus, ResponseError } from "@lodestar/reqresp";
|
|
3
|
+
import { computeEpochAtSlot } from "@lodestar/state-transition";
|
|
3
4
|
import { fromHex, toRootHex } from "@lodestar/utils";
|
|
4
5
|
import { BLOB_SIDECARS_IN_WRAPPER_INDEX } from "../../../db/repositories/blobSidecars.js";
|
|
5
6
|
export async function* onBlobSidecarsByRoot(requestBody, chain, db) {
|
|
@@ -34,7 +35,7 @@ export async function* onBlobSidecarsByRoot(requestBody, chain, db) {
|
|
|
34
35
|
}
|
|
35
36
|
yield {
|
|
36
37
|
data: blobSidecarBytes,
|
|
37
|
-
|
|
38
|
+
boundary: chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(block.slot)),
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobSidecarsByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/blobSidecarsByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,UAAU,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"blobSidecarsByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/blobSidecarsByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,UAAU,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAC,8BAA8B,EAAC,MAAM,0CAA0C,CAAC;AAGxF,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CACzC,WAAsC,EACtC,KAAmB,EACnB,EAAa;IAEb,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC;IAEhE,qFAAqF;IACrF,mFAAmF;IACnF,aAAa;IACb,IAAI,mBAAmB,GAAmD,IAAI,CAAC;IAE/E,KAAK,MAAM,cAAc,IAAI,WAAW,EAAE,CAAC;QACzC,MAAM,EAAC,SAAS,EAAE,KAAK,EAAC,GAAG,cAAc,CAAC;QAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAEzD,2CAA2C;QAC3C,8FAA8F;QAC9F,+JAA+J;QAC/J,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,aAAa,EAAE,CAAC;YAC1C,SAAS;QACX,CAAC;QAED,yDAAyD;QACzD,IAAI,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACnF,MAAM,wBAAwB,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3F,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC9B,2CAA2C;gBAC3C,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,YAAY,EAAE,oBAAoB,KAAK,CAAC,SAAS,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7G,CAAC;YACD,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAEzF,mBAAmB,GAAG,EAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAC,CAAC;QAC5E,CAAC;QAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,CACtD,KAAK,GAAG,sBAAsB,EAC9B,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,sBAAsB,CACrC,CAAC;QACF,IAAI,gBAAgB,CAAC,MAAM,KAAK,sBAAsB,EAAE,CAAC;YACvD,MAAM,KAAK,CACT,6CAA6C,YAAY,UAAU,KAAK,qBAAqB,gBAAgB,CAAC,MAAM,aAAa,sBAAsB,EAAE,CAC1J,CAAC;QACJ,CAAC;QAED,MAAM;YACJ,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9E,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -5,8 +5,6 @@ import { onBeaconBlocksByRange } from "./beaconBlocksByRange.js";
|
|
|
5
5
|
import { onBeaconBlocksByRoot } from "./beaconBlocksByRoot.js";
|
|
6
6
|
import { onBlobSidecarsByRange } from "./blobSidecarsByRange.js";
|
|
7
7
|
import { onBlobSidecarsByRoot } from "./blobSidecarsByRoot.js";
|
|
8
|
-
import { onDataColumnSidecarsByRange } from "./dataColumnSidecarsByRange.js";
|
|
9
|
-
import { onDataColumnSidecarsByRoot } from "./dataColumnSidecarsByRoot.js";
|
|
10
8
|
import { onLightClientBootstrap } from "./lightClientBootstrap.js";
|
|
11
9
|
import { onLightClientFinalityUpdate } from "./lightClientFinalityUpdate.js";
|
|
12
10
|
import { onLightClientOptimisticUpdate } from "./lightClientOptimisticUpdate.js";
|
|
@@ -43,14 +41,6 @@ export function getReqRespHandlers({ db, chain }) {
|
|
|
43
41
|
const body = ssz.deneb.BlobSidecarsByRangeRequest.deserialize(req.data);
|
|
44
42
|
return onBlobSidecarsByRange(body, chain, db);
|
|
45
43
|
},
|
|
46
|
-
[ReqRespMethod.DataColumnSidecarsByRange]: (req) => {
|
|
47
|
-
const body = ssz.fulu.DataColumnSidecarsByRangeRequest.deserialize(req.data);
|
|
48
|
-
return onDataColumnSidecarsByRange(body, chain, db);
|
|
49
|
-
},
|
|
50
|
-
[ReqRespMethod.DataColumnSidecarsByRoot]: (req) => {
|
|
51
|
-
const body = ssz.fulu.DataColumnSidecarsByRootRequest.deserialize(req.data);
|
|
52
|
-
return onDataColumnSidecarsByRoot(body, chain, db);
|
|
53
|
-
},
|
|
54
44
|
[ReqRespMethod.LightClientBootstrap]: (req) => {
|
|
55
45
|
const body = ssz.Root.deserialize(req.data);
|
|
56
46
|
return onLightClientBootstrap(body, chain);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAGpC,OAAO,EAAC,6BAA6B,EAAC,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAsB,aAAa,EAAC,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAC,oBAAoB,EAAC,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAC,oBAAoB,EAAC,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { LightClientServerErrorCode, RespStatus, ResponseError, } from "@lodestar/reqresp";
|
|
2
|
+
import { computeEpochAtSlot } from "@lodestar/state-transition";
|
|
2
3
|
import { assertLightClientServer } from "../../../node/utils/lightclient.js";
|
|
3
4
|
import { ReqRespMethod, responseSszTypeByMethod } from "../types.js";
|
|
4
5
|
export async function* onLightClientBootstrap(requestBody, chain) {
|
|
5
6
|
assertLightClientServer(chain.lightClientServer);
|
|
6
7
|
try {
|
|
7
8
|
const bootstrap = await chain.lightClientServer.getBootstrap(requestBody);
|
|
8
|
-
const
|
|
9
|
-
const type = responseSszTypeByMethod[ReqRespMethod.LightClientBootstrap](fork, 0);
|
|
9
|
+
const boundary = chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(bootstrap.header.beacon.slot));
|
|
10
|
+
const type = responseSszTypeByMethod[ReqRespMethod.LightClientBootstrap](boundary.fork, 0);
|
|
10
11
|
yield {
|
|
11
12
|
data: type.serialize(bootstrap),
|
|
12
|
-
|
|
13
|
+
boundary,
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
16
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightClientBootstrap.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/lightClientBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0BAA0B,EAC1B,UAAU,EACV,aAAa,GAEd,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lightClientBootstrap.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/lightClientBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0BAA0B,EAC1B,UAAU,EACV,aAAa,GAEd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAC,uBAAuB,EAAC,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAC,aAAa,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAEnE,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,sBAAsB,CAAC,WAAiB,EAAE,KAAmB;IAClF,uBAAuB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACvG,MAAM,IAAI,GAAG,uBAAuB,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3F,MAAM;YACJ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAC/B,QAAQ;SACT,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAK,CAA4B,CAAC,IAAI,EAAE,IAAI,KAAK,0BAA0B,CAAC,oBAAoB,EAAE,CAAC;YACjG,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,oBAAoB,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,YAAY,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RespStatus, ResponseError } from "@lodestar/reqresp";
|
|
2
|
+
import { computeEpochAtSlot } from "@lodestar/state-transition";
|
|
2
3
|
import { assertLightClientServer } from "../../../node/utils/lightclient.js";
|
|
3
4
|
import { ReqRespMethod, responseSszTypeByMethod } from "../types.js";
|
|
4
5
|
export async function* onLightClientFinalityUpdate(chain) {
|
|
@@ -7,11 +8,11 @@ export async function* onLightClientFinalityUpdate(chain) {
|
|
|
7
8
|
if (update === null) {
|
|
8
9
|
throw new ResponseError(RespStatus.RESOURCE_UNAVAILABLE, "No latest finality update available");
|
|
9
10
|
}
|
|
10
|
-
const
|
|
11
|
-
const type = responseSszTypeByMethod[ReqRespMethod.LightClientFinalityUpdate](fork, 0);
|
|
11
|
+
const boundary = chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(update.signatureSlot));
|
|
12
|
+
const type = responseSszTypeByMethod[ReqRespMethod.LightClientFinalityUpdate](boundary.fork, 0);
|
|
12
13
|
yield {
|
|
13
14
|
data: type.serialize(update),
|
|
14
|
-
|
|
15
|
+
boundary,
|
|
15
16
|
};
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=lightClientFinalityUpdate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightClientFinalityUpdate.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/lightClientFinalityUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lightClientFinalityUpdate.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/lightClientFinalityUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAC,uBAAuB,EAAC,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAC,aAAa,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAEnE,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,2BAA2B,CAAC,KAAmB;IACpE,uBAAuB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;IAC3D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,oBAAoB,EAAE,qCAAqC,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,uBAAuB,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAChG,MAAM;QACJ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5B,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RespStatus, ResponseError } from "@lodestar/reqresp";
|
|
2
|
+
import { computeEpochAtSlot } from "@lodestar/state-transition";
|
|
2
3
|
import { assertLightClientServer } from "../../../node/utils/lightclient.js";
|
|
3
4
|
import { ReqRespMethod, responseSszTypeByMethod } from "../types.js";
|
|
4
5
|
export async function* onLightClientOptimisticUpdate(chain) {
|
|
@@ -7,11 +8,11 @@ export async function* onLightClientOptimisticUpdate(chain) {
|
|
|
7
8
|
if (update === null) {
|
|
8
9
|
throw new ResponseError(RespStatus.RESOURCE_UNAVAILABLE, "No latest optimistic update available");
|
|
9
10
|
}
|
|
10
|
-
const
|
|
11
|
-
const type = responseSszTypeByMethod[ReqRespMethod.LightClientOptimisticUpdate](fork, 0);
|
|
11
|
+
const boundary = chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(update.signatureSlot));
|
|
12
|
+
const type = responseSszTypeByMethod[ReqRespMethod.LightClientOptimisticUpdate](boundary.fork, 0);
|
|
12
13
|
yield {
|
|
13
14
|
data: type.serialize(update),
|
|
14
|
-
|
|
15
|
+
boundary,
|
|
15
16
|
};
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=lightClientOptimisticUpdate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightClientOptimisticUpdate.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/lightClientOptimisticUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lightClientOptimisticUpdate.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/lightClientOptimisticUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAC,uBAAuB,EAAC,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAC,aAAa,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAEnE,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,6BAA6B,CAAC,KAAmB;IACtE,uBAAuB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;IAC7D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,oBAAoB,EAAE,uCAAuC,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,uBAAuB,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAClG,MAAM;QACJ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5B,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MAX_REQUEST_LIGHT_CLIENT_UPDATES } from "@lodestar/params";
|
|
2
2
|
import { LightClientServerErrorCode, RespStatus, ResponseError, } from "@lodestar/reqresp";
|
|
3
|
+
import { computeEpochAtSlot } from "@lodestar/state-transition";
|
|
3
4
|
import { assertLightClientServer } from "../../../node/utils/lightclient.js";
|
|
4
5
|
import { ReqRespMethod, responseSszTypeByMethod } from "../types.js";
|
|
5
6
|
export async function* onLightClientUpdatesByRange(requestBody, chain) {
|
|
@@ -8,11 +9,11 @@ export async function* onLightClientUpdatesByRange(requestBody, chain) {
|
|
|
8
9
|
for (let period = requestBody.startPeriod; period < requestBody.startPeriod + count; period++) {
|
|
9
10
|
try {
|
|
10
11
|
const update = await chain.lightClientServer.getUpdate(period);
|
|
11
|
-
const
|
|
12
|
-
const type = responseSszTypeByMethod[ReqRespMethod.LightClientUpdatesByRange](fork, 0);
|
|
12
|
+
const boundary = chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(update.signatureSlot));
|
|
13
|
+
const type = responseSszTypeByMethod[ReqRespMethod.LightClientUpdatesByRange](boundary.fork, 0);
|
|
13
14
|
yield {
|
|
14
15
|
data: type.serialize(update),
|
|
15
|
-
|
|
16
|
+
boundary,
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
19
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightClientUpdatesByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/lightClientUpdatesByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gCAAgC,EAAC,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAEL,0BAA0B,EAC1B,UAAU,EACV,aAAa,GAEd,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lightClientUpdatesByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/lightClientUpdatesByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gCAAgC,EAAC,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAEL,0BAA0B,EAC1B,UAAU,EACV,aAAa,GAEd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAC,uBAAuB,EAAC,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAC,aAAa,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAEnE,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,2BAA2B,CAChD,WAA6C,EAC7C,KAAmB;IAEnB,uBAAuB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAEjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,gCAAgC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5E,KAAK,IAAI,MAAM,GAAG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC,WAAW,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;QAC9F,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC/F,MAAM,IAAI,GAAG,uBAAuB,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAEhG,MAAM;gBACJ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC5B,QAAQ;aACT,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAA4B,CAAC,IAAI,EAAE,IAAI,KAAK,0BAA0B,CAAC,oBAAoB,EAAE,CAAC;gBACjG,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,oBAAoB,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;YACjF,CAAC;YACD,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,YAAY,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ForkName } from "@lodestar/params";
|
|
1
|
+
import { ForkName, GENESIS_EPOCH } from "@lodestar/params";
|
|
2
2
|
import { ssz } from "@lodestar/types";
|
|
3
3
|
export async function* onStatus(chain) {
|
|
4
4
|
const status = chain.getStatus();
|
|
5
5
|
yield {
|
|
6
6
|
data: ssz.phase0.Status.serialize(status),
|
|
7
7
|
// Status topic is fork-agnostic
|
|
8
|
-
fork: ForkName.phase0,
|
|
8
|
+
boundary: { fork: ForkName.phase0, epoch: GENESIS_EPOCH },
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAGpC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAmB;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IACjC,MAAM;QACJ,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;QACzC,gCAAgC;QAChC,QAAQ,EAAE,EAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAC;KACxD,CAAC;AACJ,CAAC"}
|
|
@@ -4,7 +4,6 @@ import { ProtocolNoHandler } from "./types.js";
|
|
|
4
4
|
export declare const Goodbye: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
5
5
|
export declare const Metadata: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
6
6
|
export declare const MetadataV2: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
7
|
-
export declare const MetadataV3: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
8
7
|
export declare const Ping: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
9
8
|
export declare const Status: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
10
9
|
export declare const BeaconBlocksByRange: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
@@ -13,8 +12,6 @@ export declare const BeaconBlocksByRoot: (fork: ForkName, config: BeaconConfig)
|
|
|
13
12
|
export declare const BeaconBlocksByRootV2: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
14
13
|
export declare const BlobSidecarsByRange: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
15
14
|
export declare const BlobSidecarsByRoot: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
16
|
-
export declare const DataColumnSidecarsByRange: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
17
|
-
export declare const DataColumnSidecarsByRoot: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
18
15
|
export declare const LightClientBootstrap: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
19
16
|
export declare const LightClientFinalityUpdate: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
20
17
|
export declare const LightClientOptimisticUpdate: (fork: ForkName, config: BeaconConfig) => ProtocolNoHandler;
|
|
@@ -16,11 +16,6 @@ export const MetadataV2 = toProtocol({
|
|
|
16
16
|
version: Version.V2,
|
|
17
17
|
contextBytesType: ContextBytesType.Empty,
|
|
18
18
|
});
|
|
19
|
-
export const MetadataV3 = toProtocol({
|
|
20
|
-
method: ReqRespMethod.Metadata,
|
|
21
|
-
version: Version.V3,
|
|
22
|
-
contextBytesType: ContextBytesType.Empty,
|
|
23
|
-
});
|
|
24
19
|
export const Ping = toProtocol({
|
|
25
20
|
method: ReqRespMethod.Ping,
|
|
26
21
|
version: Version.V1,
|
|
@@ -61,16 +56,6 @@ export const BlobSidecarsByRoot = toProtocol({
|
|
|
61
56
|
version: Version.V1,
|
|
62
57
|
contextBytesType: ContextBytesType.ForkDigest,
|
|
63
58
|
});
|
|
64
|
-
export const DataColumnSidecarsByRange = toProtocol({
|
|
65
|
-
method: ReqRespMethod.DataColumnSidecarsByRange,
|
|
66
|
-
version: Version.V1,
|
|
67
|
-
contextBytesType: ContextBytesType.ForkDigest,
|
|
68
|
-
});
|
|
69
|
-
export const DataColumnSidecarsByRoot = toProtocol({
|
|
70
|
-
method: ReqRespMethod.DataColumnSidecarsByRoot,
|
|
71
|
-
version: Version.V1,
|
|
72
|
-
contextBytesType: ContextBytesType.ForkDigest,
|
|
73
|
-
});
|
|
74
59
|
export const LightClientBootstrap = toProtocol({
|
|
75
60
|
method: ReqRespMethod.LightClientBootstrap,
|
|
76
61
|
version: Version.V1,
|
|
@@ -107,7 +92,7 @@ function toContextBytes(type, config) {
|
|
|
107
92
|
case ContextBytesType.Empty:
|
|
108
93
|
return { type: ContextBytesType.Empty };
|
|
109
94
|
case ContextBytesType.ForkDigest:
|
|
110
|
-
return { type: ContextBytesType.ForkDigest,
|
|
95
|
+
return { type: ContextBytesType.ForkDigest, config };
|
|
111
96
|
}
|
|
112
97
|
}
|
|
113
98
|
//# sourceMappingURL=protocols.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../src/network/reqresp/protocols.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,gBAAgB,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAoB,aAAa,EAAE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAEtH,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC;IAChC,MAAM,EAAE,aAAa,CAAC,OAAO;IAC7B,OAAO,EAAE,OAAO,CAAC,EAAE;IACnB,gBAAgB,EAAE,gBAAgB,CAAC,KAAK;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;IACjC,MAAM,EAAE,aAAa,CAAC,QAAQ;IAC9B,OAAO,EAAE,OAAO,CAAC,EAAE;IACnB,gBAAgB,EAAE,gBAAgB,CAAC,KAAK;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;IACnC,MAAM,EAAE,aAAa,CAAC,QAAQ;IAC9B,OAAO,EAAE,OAAO,CAAC,EAAE;IACnB,gBAAgB,EAAE,gBAAgB,CAAC,KAAK;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../src/network/reqresp/protocols.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MAX_REQUEST_BLOCKS, MAX_REQUEST_BLOCKS_DENEB, MAX_REQUEST_LIGHT_CLIENT_UPDATES,
|
|
1
|
+
import { MAX_REQUEST_BLOCKS, MAX_REQUEST_BLOCKS_DENEB, MAX_REQUEST_LIGHT_CLIENT_UPDATES, isForkPostDeneb, } from "@lodestar/params";
|
|
2
2
|
import { ReqRespMethod, requestSszTypeByMethod } from "./types.js";
|
|
3
3
|
export const rateLimitQuotas = (fork, config) => ({
|
|
4
4
|
[ReqRespMethod.Status]: {
|
|
@@ -38,16 +38,6 @@ export const rateLimitQuotas = (fork, config) => ({
|
|
|
38
38
|
byPeer: { quota: config.getMaxRequestBlobSidecars(fork), quotaTimeMs: 10_000 },
|
|
39
39
|
getRequestCount: getRequestCountFn(fork, config, ReqRespMethod.BlobSidecarsByRoot, (req) => req.length),
|
|
40
40
|
},
|
|
41
|
-
[ReqRespMethod.DataColumnSidecarsByRange]: {
|
|
42
|
-
// Rationale: MAX_REQUEST_BLOCKS_DENEB * NUMBER_OF_COLUMNS
|
|
43
|
-
byPeer: { quota: MAX_REQUEST_BLOCKS_DENEB * NUMBER_OF_COLUMNS, quotaTimeMs: 10_000 },
|
|
44
|
-
getRequestCount: getRequestCountFn(fork, config, ReqRespMethod.DataColumnSidecarsByRange, (req) => req.count),
|
|
45
|
-
},
|
|
46
|
-
[ReqRespMethod.DataColumnSidecarsByRoot]: {
|
|
47
|
-
// Rationale: quota of BeaconBlocksByRoot * NUMBER_OF_COLUMNS
|
|
48
|
-
byPeer: { quota: 128 * NUMBER_OF_COLUMNS, quotaTimeMs: 10_000 },
|
|
49
|
-
getRequestCount: getRequestCountFn(fork, config, ReqRespMethod.DataColumnSidecarsByRoot, (req) => req.length),
|
|
50
|
-
},
|
|
51
41
|
[ReqRespMethod.LightClientBootstrap]: {
|
|
52
42
|
// As similar in the nature of `Status` protocol so we use the same rate limits.
|
|
53
43
|
byPeer: { quota: 5, quotaTimeMs: 15_000 },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../../src/network/reqresp/rateLimit.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,kBAAkB,EAClB,wBAAwB,EACxB,gCAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../../src/network/reqresp/rateLimit.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { Type } from "@chainsafe/ssz";
|
|
|
2
2
|
import { BeaconConfig } from "@lodestar/config";
|
|
3
3
|
import { ForkName } from "@lodestar/params";
|
|
4
4
|
import { Protocol, ProtocolHandler, ReqRespRequest } from "@lodestar/reqresp";
|
|
5
|
-
import { Metadata, Root, SignedBeaconBlock, altair, deneb,
|
|
5
|
+
import { LightClientBootstrap, LightClientFinalityUpdate, LightClientOptimisticUpdate, LightClientUpdate, Metadata, Root, SignedBeaconBlock, altair, deneb, phase0 } from "@lodestar/types";
|
|
6
6
|
import { BlobSidecarsByRootRequest } from "../../util/types.js";
|
|
7
7
|
export type ProtocolNoHandler = Omit<Protocol, "handler">;
|
|
8
8
|
/** ReqResp protocol names or methods. Each ReqRespMethod can have multiple versions and encodings */
|
|
@@ -15,8 +15,6 @@ export declare enum ReqRespMethod {
|
|
|
15
15
|
BeaconBlocksByRoot = "beacon_blocks_by_root",
|
|
16
16
|
BlobSidecarsByRange = "blob_sidecars_by_range",
|
|
17
17
|
BlobSidecarsByRoot = "blob_sidecars_by_root",
|
|
18
|
-
DataColumnSidecarsByRange = "data_column_sidecars_by_range",
|
|
19
|
-
DataColumnSidecarsByRoot = "data_column_sidecars_by_root",
|
|
20
18
|
LightClientBootstrap = "light_client_bootstrap",
|
|
21
19
|
LightClientUpdatesByRange = "light_client_updates_by_range",
|
|
22
20
|
LightClientFinalityUpdate = "light_client_finality_update",
|
|
@@ -31,8 +29,6 @@ export type RequestBodyByMethod = {
|
|
|
31
29
|
[ReqRespMethod.BeaconBlocksByRoot]: phase0.BeaconBlocksByRootRequest;
|
|
32
30
|
[ReqRespMethod.BlobSidecarsByRange]: deneb.BlobSidecarsByRangeRequest;
|
|
33
31
|
[ReqRespMethod.BlobSidecarsByRoot]: BlobSidecarsByRootRequest;
|
|
34
|
-
[ReqRespMethod.DataColumnSidecarsByRange]: fulu.DataColumnSidecarsByRangeRequest;
|
|
35
|
-
[ReqRespMethod.DataColumnSidecarsByRoot]: fulu.DataColumnSidecarsByRootRequest;
|
|
36
32
|
[ReqRespMethod.LightClientBootstrap]: Root;
|
|
37
33
|
[ReqRespMethod.LightClientUpdatesByRange]: altair.LightClientUpdatesByRange;
|
|
38
34
|
[ReqRespMethod.LightClientFinalityUpdate]: null;
|
|
@@ -47,12 +43,10 @@ type ResponseBodyByMethod = {
|
|
|
47
43
|
[ReqRespMethod.BeaconBlocksByRoot]: SignedBeaconBlock;
|
|
48
44
|
[ReqRespMethod.BlobSidecarsByRange]: deneb.BlobSidecar;
|
|
49
45
|
[ReqRespMethod.BlobSidecarsByRoot]: deneb.BlobSidecar;
|
|
50
|
-
[ReqRespMethod.
|
|
51
|
-
[ReqRespMethod.
|
|
52
|
-
[ReqRespMethod.
|
|
53
|
-
[ReqRespMethod.
|
|
54
|
-
[ReqRespMethod.LightClientFinalityUpdate]: altair.LightClientFinalityUpdate;
|
|
55
|
-
[ReqRespMethod.LightClientOptimisticUpdate]: altair.LightClientOptimisticUpdate;
|
|
46
|
+
[ReqRespMethod.LightClientBootstrap]: LightClientBootstrap;
|
|
47
|
+
[ReqRespMethod.LightClientUpdatesByRange]: LightClientUpdate;
|
|
48
|
+
[ReqRespMethod.LightClientFinalityUpdate]: LightClientFinalityUpdate;
|
|
49
|
+
[ReqRespMethod.LightClientOptimisticUpdate]: LightClientOptimisticUpdate;
|
|
56
50
|
};
|
|
57
51
|
/** Request SSZ type for each method and ForkName */
|
|
58
52
|
export declare const requestSszTypeByMethod: (fork: ForkName, config: BeaconConfig) => {
|
|
@@ -70,8 +64,7 @@ export type RequestTypedContainer = {
|
|
|
70
64
|
}[ReqRespMethod];
|
|
71
65
|
export declare enum Version {
|
|
72
66
|
V1 = 1,
|
|
73
|
-
V2 = 2
|
|
74
|
-
V3 = 3
|
|
67
|
+
V2 = 2
|
|
75
68
|
}
|
|
76
69
|
export type OutgoingRequestArgs = {
|
|
77
70
|
peerId: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isForkPostAltair } from "@lodestar/params";
|
|
2
|
-
import { ssz, sszTypesFor } from "@lodestar/types";
|
|
2
|
+
import { ssz, sszTypesFor, } from "@lodestar/types";
|
|
3
3
|
import { BlobSidecarsByRootRequestType } from "../../util/types.js";
|
|
4
4
|
/** ReqResp protocol names or methods. Each ReqRespMethod can have multiple versions and encodings */
|
|
5
5
|
export var ReqRespMethod;
|
|
@@ -13,8 +13,6 @@ export var ReqRespMethod;
|
|
|
13
13
|
ReqRespMethod["BeaconBlocksByRoot"] = "beacon_blocks_by_root";
|
|
14
14
|
ReqRespMethod["BlobSidecarsByRange"] = "blob_sidecars_by_range";
|
|
15
15
|
ReqRespMethod["BlobSidecarsByRoot"] = "blob_sidecars_by_root";
|
|
16
|
-
ReqRespMethod["DataColumnSidecarsByRange"] = "data_column_sidecars_by_range";
|
|
17
|
-
ReqRespMethod["DataColumnSidecarsByRoot"] = "data_column_sidecars_by_root";
|
|
18
16
|
ReqRespMethod["LightClientBootstrap"] = "light_client_bootstrap";
|
|
19
17
|
ReqRespMethod["LightClientUpdatesByRange"] = "light_client_updates_by_range";
|
|
20
18
|
ReqRespMethod["LightClientFinalityUpdate"] = "light_client_finality_update";
|
|
@@ -30,8 +28,6 @@ export const requestSszTypeByMethod = (fork, config) => ({
|
|
|
30
28
|
[ReqRespMethod.BeaconBlocksByRoot]: ssz.phase0.BeaconBlocksByRootRequest,
|
|
31
29
|
[ReqRespMethod.BlobSidecarsByRange]: ssz.deneb.BlobSidecarsByRangeRequest,
|
|
32
30
|
[ReqRespMethod.BlobSidecarsByRoot]: BlobSidecarsByRootRequestType(fork, config),
|
|
33
|
-
[ReqRespMethod.DataColumnSidecarsByRange]: ssz.fulu.DataColumnSidecarsByRangeRequest,
|
|
34
|
-
[ReqRespMethod.DataColumnSidecarsByRoot]: ssz.fulu.DataColumnSidecarsByRootRequest,
|
|
35
31
|
[ReqRespMethod.LightClientBootstrap]: ssz.Root,
|
|
36
32
|
[ReqRespMethod.LightClientUpdatesByRange]: ssz.altair.LightClientUpdatesByRange,
|
|
37
33
|
[ReqRespMethod.LightClientFinalityUpdate]: null,
|
|
@@ -47,7 +43,7 @@ export const responseSszTypeByMethod = {
|
|
|
47
43
|
[ReqRespMethod.Status]: () => ssz.phase0.Status,
|
|
48
44
|
[ReqRespMethod.Goodbye]: () => ssz.phase0.Goodbye,
|
|
49
45
|
[ReqRespMethod.Ping]: () => ssz.phase0.Ping,
|
|
50
|
-
[ReqRespMethod.Metadata]: (_, version) => version === Version.V1 ? ssz.phase0.Metadata :
|
|
46
|
+
[ReqRespMethod.Metadata]: (_, version) => (version === Version.V1 ? ssz.phase0.Metadata : ssz.altair.Metadata),
|
|
51
47
|
[ReqRespMethod.BeaconBlocksByRange]: blocksResponseType,
|
|
52
48
|
[ReqRespMethod.BeaconBlocksByRoot]: blocksResponseType,
|
|
53
49
|
[ReqRespMethod.BlobSidecarsByRange]: () => ssz.deneb.BlobSidecar,
|
|
@@ -55,8 +51,6 @@ export const responseSszTypeByMethod = {
|
|
|
55
51
|
[ReqRespMethod.LightClientBootstrap]: (fork) => sszTypesFor(onlyPostAltairFork(fork)).LightClientBootstrap,
|
|
56
52
|
[ReqRespMethod.LightClientUpdatesByRange]: (fork) => sszTypesFor(onlyPostAltairFork(fork)).LightClientUpdate,
|
|
57
53
|
[ReqRespMethod.LightClientFinalityUpdate]: (fork) => sszTypesFor(onlyPostAltairFork(fork)).LightClientFinalityUpdate,
|
|
58
|
-
[ReqRespMethod.DataColumnSidecarsByRange]: () => ssz.fulu.DataColumnSidecar,
|
|
59
|
-
[ReqRespMethod.DataColumnSidecarsByRoot]: () => ssz.fulu.DataColumnSidecar,
|
|
60
54
|
[ReqRespMethod.LightClientOptimisticUpdate]: (fork) => sszTypesFor(onlyPostAltairFork(fork)).LightClientOptimisticUpdate,
|
|
61
55
|
};
|
|
62
56
|
function onlyPostAltairFork(fork) {
|
|
@@ -69,6 +63,5 @@ export var Version;
|
|
|
69
63
|
(function (Version) {
|
|
70
64
|
Version[Version["V1"] = 1] = "V1";
|
|
71
65
|
Version[Version["V2"] = 2] = "V2";
|
|
72
|
-
Version[Version["V3"] = 3] = "V3";
|
|
73
66
|
})(Version || (Version = {}));
|
|
74
67
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/network/reqresp/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAE5E,OAAO,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/network/reqresp/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAWL,GAAG,EACH,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAA4B,6BAA6B,EAAC,MAAM,qBAAqB,CAAC;AAI7F,qGAAqG;AACrG,MAAM,CAAN,IAAY,aAcX;AAdD,WAAY,aAAa;IACvB,UAAU;IACV,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,8BAAa,CAAA;IACb,sCAAqB,CAAA;IACrB,+DAA8C,CAAA;IAC9C,6DAA4C,CAAA;IAC5C,+DAA8C,CAAA;IAC9C,6DAA4C,CAAA;IAC5C,gEAA+C,CAAA;IAC/C,4EAA2D,CAAA;IAC3D,2EAA0D,CAAA;IAC1D,+EAA8D,CAAA;AAChE,CAAC,EAdW,aAAa,KAAb,aAAa,QAcxB;AAkCD,oDAAoD;AACpD,MAAM,CAAC,MAAM,sBAAsB,GAK/B,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;IACzC,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO;IAC3C,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI;IACrC,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI;IAC9B,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,0BAA0B;IAC1E,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,yBAAyB;IACxE,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,0BAA0B;IACzE,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,6BAA6B,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/E,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC,IAAI;IAC9C,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,yBAAyB;IAC/E,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,IAAI;IAC/C,CAAC,aAAa,CAAC,2BAA2B,CAAC,EAAE,IAAI;CAClD,CAAC,CAAC;AAIH,MAAM,kBAAkB,GAA0C,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAClF,IAAI,OAAO,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;QAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC;IACtC,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAwE;IAC1G,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;IAC/C,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;IACjD,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;IAC3C,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9G,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,kBAAkB;IACvD,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,kBAAkB;IACtD,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW;IAChE,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW;IAC/D,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB;IAC1G,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB;IAC5G,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB;IACpH,CAAC,aAAa,CAAC,2BAA2B,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CACpD,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B;CACpE,CAAC;AAEF,SAAS,kBAAkB,CAAC,IAAc;IACxC,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAMD,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,iCAAM,CAAA;IACN,iCAAM,CAAA;AACR,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { BeaconConfig } from "@lodestar/config";
|
|
2
|
-
import { ForkName } from "@lodestar/params";
|
|
1
|
+
import { BeaconConfig, ForkBoundary } from "@lodestar/config";
|
|
3
2
|
import { Slot, SubnetID } from "@lodestar/types";
|
|
4
3
|
import { Logger } from "@lodestar/utils";
|
|
5
4
|
import { IClock } from "../../util/clock.js";
|
|
@@ -61,12 +60,12 @@ export declare class AttnetsService implements IAttnetsService {
|
|
|
61
60
|
* TODO-dll: clarify how many epochs before the fork we should subscribe to the new fork
|
|
62
61
|
* Call ONLY ONCE: Two epoch before the fork, re-subscribe all existing random subscriptions to the new fork
|
|
63
62
|
**/
|
|
64
|
-
|
|
63
|
+
subscribeSubnetsNextBoundary(boundary: ForkBoundary): void;
|
|
65
64
|
/**
|
|
66
65
|
* TODO-dll: clarify how many epochs after the fork we should unsubscribe to the new fork
|
|
67
66
|
* Call ONLY ONCE: Two epochs after the fork, un-subscribe all subnets from the old fork
|
|
68
67
|
**/
|
|
69
|
-
|
|
68
|
+
unsubscribeSubnetsPrevBoundary(boundary: ForkBoundary): void;
|
|
70
69
|
/**
|
|
71
70
|
* Run per slot.
|
|
72
71
|
* - Subscribe to gossip subnets 2 slots in advance
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ATTESTATION_SUBNET_COUNT, EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION, SLOTS_PER_EPOCH
|
|
1
|
+
import { ATTESTATION_SUBNET_COUNT, EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION, SLOTS_PER_EPOCH } from "@lodestar/params";
|
|
2
|
+
import { computeEpochAtSlot } from "@lodestar/state-transition";
|
|
2
3
|
import { ssz } from "@lodestar/types";
|
|
3
4
|
import { MapDef } from "@lodestar/utils";
|
|
4
5
|
import { ClockEvent } from "../../util/clock.js";
|
|
5
|
-
import {
|
|
6
|
+
import { getActiveForkBoundaries } from "../forks.js";
|
|
6
7
|
import { GossipType } from "../gossip/index.js";
|
|
7
8
|
import { GOSSIP_D_LOW } from "../gossip/scoringParameters.js";
|
|
8
9
|
import { stringifyGossipTopic } from "../gossip/topic.js";
|
|
@@ -160,24 +161,24 @@ export class AttnetsService {
|
|
|
160
161
|
* TODO-dll: clarify how many epochs before the fork we should subscribe to the new fork
|
|
161
162
|
* Call ONLY ONCE: Two epoch before the fork, re-subscribe all existing random subscriptions to the new fork
|
|
162
163
|
**/
|
|
163
|
-
|
|
164
|
-
this.logger.info("Subscribing to long lived attnets
|
|
165
|
-
|
|
164
|
+
subscribeSubnetsNextBoundary(boundary) {
|
|
165
|
+
this.logger.info("Subscribing to long lived attnets for next fork boundary", {
|
|
166
|
+
...boundary,
|
|
166
167
|
subnets: Array.from(this.longLivedSubscriptions).join(","),
|
|
167
168
|
});
|
|
168
169
|
for (const subnet of this.longLivedSubscriptions) {
|
|
169
|
-
this.gossip.subscribeTopic({ type: gossipType,
|
|
170
|
+
this.gossip.subscribeTopic({ type: gossipType, subnet, boundary });
|
|
170
171
|
}
|
|
171
172
|
}
|
|
172
173
|
/**
|
|
173
174
|
* TODO-dll: clarify how many epochs after the fork we should unsubscribe to the new fork
|
|
174
175
|
* Call ONLY ONCE: Two epochs after the fork, un-subscribe all subnets from the old fork
|
|
175
176
|
**/
|
|
176
|
-
|
|
177
|
-
this.logger.info("Unsubscribing
|
|
177
|
+
unsubscribeSubnetsPrevBoundary(boundary) {
|
|
178
|
+
this.logger.info("Unsubscribing from long lived attnets of previous fork boundary", boundary);
|
|
178
179
|
for (let subnet = 0; subnet < ATTESTATION_SUBNET_COUNT; subnet++) {
|
|
179
180
|
if (!this.opts.subscribeAllSubnets) {
|
|
180
|
-
this.gossip.unsubscribeTopic({ type: gossipType,
|
|
181
|
+
this.gossip.unsubscribeTopic({ type: gossipType, subnet, boundary });
|
|
181
182
|
}
|
|
182
183
|
}
|
|
183
184
|
}
|
|
@@ -200,7 +201,7 @@ export class AttnetsService {
|
|
|
200
201
|
if (timeToFormMesh === null) {
|
|
201
202
|
const topicStr = stringifyGossipTopic(this.config, {
|
|
202
203
|
type: gossipType,
|
|
203
|
-
|
|
204
|
+
boundary: this.config.getForkBoundaryAtEpoch(computeEpochAtSlot(dutiedSlot)),
|
|
204
205
|
subnet,
|
|
205
206
|
});
|
|
206
207
|
const numMeshPeers = this.gossip.mesh.get(topicStr)?.size ?? 0;
|
|
@@ -283,11 +284,11 @@ export class AttnetsService {
|
|
|
283
284
|
* shortLivedSubscriptions or longLivedSubscriptions should be updated right AFTER this called
|
|
284
285
|
**/
|
|
285
286
|
subscribeToSubnets(subnets, src) {
|
|
286
|
-
const
|
|
287
|
+
const boundaries = getActiveForkBoundaries(this.config, this.clock.currentEpoch);
|
|
287
288
|
for (const subnet of subnets) {
|
|
288
289
|
if (!this.shortLivedSubscriptions.has(subnet) && !this.longLivedSubscriptions.has(subnet)) {
|
|
289
|
-
for (const
|
|
290
|
-
this.gossip.subscribeTopic({ type: gossipType,
|
|
290
|
+
for (const boundary of boundaries) {
|
|
291
|
+
this.gossip.subscribeTopic({ type: gossipType, subnet, boundary });
|
|
291
292
|
}
|
|
292
293
|
this.metrics?.attnetsService.subscribeSubnets.inc({ subnet, src });
|
|
293
294
|
}
|
|
@@ -301,11 +302,11 @@ export class AttnetsService {
|
|
|
301
302
|
// No need to unsubscribeTopic(). Return early to prevent repetitive extra work
|
|
302
303
|
if (this.opts.subscribeAllSubnets)
|
|
303
304
|
return;
|
|
304
|
-
const
|
|
305
|
+
const boundaries = getActiveForkBoundaries(this.config, this.clock.currentEpoch);
|
|
305
306
|
for (const subnet of subnets) {
|
|
306
307
|
if (!this.shortLivedSubscriptions.isActiveAtSlot(subnet, slot) && !this.longLivedSubscriptions.has(subnet)) {
|
|
307
|
-
for (const
|
|
308
|
-
this.gossip.unsubscribeTopic({ type: gossipType,
|
|
308
|
+
for (const boundary of boundaries) {
|
|
309
|
+
this.gossip.unsubscribeTopic({ type: gossipType, subnet, boundary });
|
|
309
310
|
}
|
|
310
311
|
this.metrics?.attnetsService.unsubscribeSubnets.inc({ subnet, src });
|
|
311
312
|
}
|
|
@@ -319,7 +320,7 @@ export class AttnetsService {
|
|
|
319
320
|
for (const { subnet } of this.shortLivedSubscriptions.getActiveTtl(currentSlot)) {
|
|
320
321
|
const topicStr = stringifyGossipTopic(this.config, {
|
|
321
322
|
type: gossipType,
|
|
322
|
-
|
|
323
|
+
boundary: this.config.getForkBoundaryAtEpoch(this.clock.currentEpoch),
|
|
323
324
|
subnet,
|
|
324
325
|
});
|
|
325
326
|
const numMeshPeers = this.gossip.mesh.get(topicStr)?.size ?? 0;
|