@lodestar/beacon-node 1.31.0-peerDAS.d70dab2e57 → 1.31.0-rc.1
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 +14 -40
- package/lib/api/impl/beacon/blocks/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 +15 -56
- 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 +4 -12
- package/lib/chain/chain.js +2 -20
- 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 +3 -9
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/options.d.ts +1 -4
- package/lib/chain/options.js +0 -4
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +2 -4
- package/lib/chain/produceBlock/produceBlockBody.js +2 -11
- 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 -31
- 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/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 -68
- 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 +0 -8
- package/lib/metrics/metrics/beacon.js +0 -27
- 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 +0 -6
- package/lib/network/core/networkCore.js +8 -20
- 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/events.d.ts +1 -3
- 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 +6 -10
- package/lib/network/metadata.js +4 -23
- package/lib/network/metadata.js.map +1 -1
- package/lib/network/network.d.ts +1 -12
- package/lib/network/network.js +4 -57
- 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 -16
- package/lib/network/peers/discover.js +13 -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 +8 -154
- 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.js +3 -21
- 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 +5 -32
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +26 -280
- 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/protocols.d.ts +0 -3
- package/lib/network/reqresp/protocols.js +0 -15
- 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/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 +2 -3
- 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 +62 -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/kzg.d.ts +21 -9
- package/lib/util/kzg.js +88 -12
- package/lib/util/kzg.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 +15 -15
- 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 -111
- package/lib/util/dataColumns.js +0 -277
- package/lib/util/dataColumns.js.map +0 -1
|
@@ -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,4 +1,3 @@
|
|
|
1
|
-
import type { PeerId, PrivateKey } from "@libp2p/interface";
|
|
2
1
|
import { ForkName } from "@lodestar/params";
|
|
3
2
|
import { Bytes32, Slot, SubnetID, ValidatorIndex } from "@lodestar/types";
|
|
4
3
|
import { GossipTopic } from "../gossip/interface.js";
|
|
@@ -38,7 +37,5 @@ export type GossipSubscriber = {
|
|
|
38
37
|
mesh: Map<TopicStr, Set<PeerIdStr>>;
|
|
39
38
|
};
|
|
40
39
|
export type NodeId = Bytes32;
|
|
41
|
-
export declare function computeNodeIdFromPrivateKey(privateKey: PrivateKey): NodeId;
|
|
42
|
-
export declare function computeNodeId(peerId: PeerId): Uint8Array;
|
|
43
40
|
export {};
|
|
44
41
|
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -1,15 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { fromHexString } from "@chainsafe/ssz";
|
|
3
|
-
import { peerIdFromPrivateKey } from "@libp2p/peer-id";
|
|
4
|
-
export function computeNodeIdFromPrivateKey(privateKey) {
|
|
5
|
-
const peerId = peerIdFromPrivateKey(privateKey);
|
|
6
|
-
return computeNodeId(peerId);
|
|
7
|
-
}
|
|
8
|
-
export function computeNodeId(peerId) {
|
|
9
|
-
if (peerId.publicKey === undefined) {
|
|
10
|
-
throw Error(`Undefined publicKey peerId=${peerId.toString()}`);
|
|
11
|
-
}
|
|
12
|
-
const nodeIdHex = getV4Crypto().nodeId(peerId.publicKey.raw);
|
|
13
|
-
return fromHexString(nodeIdHex);
|
|
14
|
-
}
|
|
1
|
+
export {};
|
|
15
2
|
//# sourceMappingURL=interface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/network/subnets/interface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/network/subnets/interface.ts"],"names":[],"mappings":""}
|
|
@@ -5,6 +5,7 @@ import { ClockEvent } from "../../util/clock.js";
|
|
|
5
5
|
import { getActiveForks } from "../forks.js";
|
|
6
6
|
import { GossipType } from "../gossip/index.js";
|
|
7
7
|
import { SubnetMap } from "../peers/utils/index.js";
|
|
8
|
+
const gossipType = GossipType.sync_committee;
|
|
8
9
|
/**
|
|
9
10
|
* Manage sync committee subnets. Sync committees are long (~27h) so there aren't random long-lived subscriptions
|
|
10
11
|
*/
|
|
@@ -72,7 +73,7 @@ export class SyncnetsService {
|
|
|
72
73
|
subscribeSubnetsToNextFork(nextFork) {
|
|
73
74
|
this.logger.info("Subscribing to random attnets to next fork", { nextFork });
|
|
74
75
|
for (const subnet of this.subscriptionsCommittee.getAll()) {
|
|
75
|
-
this.gossip.subscribeTopic({ type:
|
|
76
|
+
this.gossip.subscribeTopic({ type: gossipType, fork: nextFork, subnet });
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
79
|
/** Call ONLY ONCE: Two epochs after the fork, un-subscribe all subnets from the old fork */
|
|
@@ -80,7 +81,7 @@ export class SyncnetsService {
|
|
|
80
81
|
this.logger.info("Unsubscribing to random attnets from prev fork", { prevFork });
|
|
81
82
|
for (let subnet = 0; subnet < SYNC_COMMITTEE_SUBNET_COUNT; subnet++) {
|
|
82
83
|
if (!this.opts?.subscribeAllSubnets) {
|
|
83
|
-
this.gossip.unsubscribeTopic({ type:
|
|
84
|
+
this.gossip.unsubscribeTopic({ type: gossipType, fork: prevFork, subnet });
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
}
|
|
@@ -101,7 +102,7 @@ export class SyncnetsService {
|
|
|
101
102
|
for (const subnet of subnets) {
|
|
102
103
|
if (!this.subscriptionsCommittee.has(subnet)) {
|
|
103
104
|
for (const fork of forks) {
|
|
104
|
-
this.gossip.subscribeTopic({ type:
|
|
105
|
+
this.gossip.subscribeTopic({ type: gossipType, fork, subnet });
|
|
105
106
|
}
|
|
106
107
|
this.metrics?.syncnetsService.subscribeSubnets.inc({ subnet });
|
|
107
108
|
}
|
|
@@ -114,7 +115,7 @@ export class SyncnetsService {
|
|
|
114
115
|
// No need to check if active in subscriptionsCommittee since we only have a single SubnetMap
|
|
115
116
|
if (!this.opts?.subscribeAllSubnets) {
|
|
116
117
|
for (const fork of forks) {
|
|
117
|
-
this.gossip.unsubscribeTopic({ type:
|
|
118
|
+
this.gossip.unsubscribeTopic({ type: gossipType, fork, subnet });
|
|
118
119
|
}
|
|
119
120
|
this.metrics?.syncnetsService.unsubscribeSubnets.inc({ subnet });
|
|
120
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncnetsService.js","sourceRoot":"","sources":["../../../src/network/subnets/syncnetsService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"syncnetsService.js","sourceRoot":"","sources":["../../../src/network/subnets/syncnetsService.ts"],"names":[],"mappings":"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"}
|
package/lib/node/nodejs.js
CHANGED
|
@@ -12,7 +12,7 @@ import { Network, getReqRespHandlers } from "../network/index.js";
|
|
|
12
12
|
import { BackfillSync } from "../sync/backfill/index.js";
|
|
13
13
|
import { BeaconSync } from "../sync/index.js";
|
|
14
14
|
import { Clock } from "../util/clock.js";
|
|
15
|
-
import { initCKZG, loadEthereumTrustedSetup } from "../util/kzg.js";
|
|
15
|
+
import { TrustedFileMode, initCKZG, loadEthereumTrustedSetup } from "../util/kzg.js";
|
|
16
16
|
import { runNodeNotifier } from "./notifier.js";
|
|
17
17
|
export * from "./options.js";
|
|
18
18
|
export var BeaconNodeStatus;
|
|
@@ -79,7 +79,7 @@ export class BeaconNode {
|
|
|
79
79
|
// If deneb is configured, load the trusted setup
|
|
80
80
|
if (config.DENEB_FORK_EPOCH < Infinity) {
|
|
81
81
|
await initCKZG();
|
|
82
|
-
loadEthereumTrustedSetup(
|
|
82
|
+
loadEthereumTrustedSetup(TrustedFileMode.Txt, opts.chain.trustedSetup);
|
|
83
83
|
}
|
|
84
84
|
let metrics = null;
|
|
85
85
|
if (opts.metrics.enabled ||
|
|
@@ -102,7 +102,6 @@ export class BeaconNode {
|
|
|
102
102
|
? new MonitoringService("beacon", { ...opts.monitoring, endpoint: opts.monitoring.endpoint }, { register: metrics.register, logger: logger.child({ module: LoggerModule.monitoring }) })
|
|
103
103
|
: null;
|
|
104
104
|
const chain = new BeaconChain(opts.chain, {
|
|
105
|
-
privateKey,
|
|
106
105
|
config,
|
|
107
106
|
clock,
|
|
108
107
|
dataDir,
|
package/lib/node/nodejs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodejs.js","sourceRoot":"","sources":["../../src/node/nodejs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAOzD,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAgB,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAmB,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AAEtF,OAAO,EAAC,gCAAgC,EAAC,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAC,0BAA0B,EAAE,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAA6B,aAAa,EAAE,oBAAoB,EAAC,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,OAAO,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAc,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAE,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"nodejs.js","sourceRoot":"","sources":["../../src/node/nodejs.ts"],"names":[],"mappings":"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"}
|
package/lib/sync/interface.d.ts
CHANGED
|
@@ -68,7 +68,7 @@ export type UnknownBlock = PendingBlockCommon & {
|
|
|
68
68
|
unknownBlockType: PendingBlockType.UNKNOWN_BLOCK;
|
|
69
69
|
blockInput: null;
|
|
70
70
|
} | {
|
|
71
|
-
unknownBlockType: PendingBlockType.
|
|
71
|
+
unknownBlockType: PendingBlockType.UNKNOWN_BLOBS;
|
|
72
72
|
blockInput: BlockInput & {
|
|
73
73
|
type: BlockInputType.dataPromise;
|
|
74
74
|
};
|
|
@@ -100,6 +100,6 @@ export declare enum PendingBlockType {
|
|
|
100
100
|
*/
|
|
101
101
|
UNKNOWN_PARENT = "unknown_parent",
|
|
102
102
|
UNKNOWN_BLOCKINPUT = "unknown_blockinput",
|
|
103
|
-
|
|
103
|
+
UNKNOWN_BLOBS = "unknown_blobs"
|
|
104
104
|
}
|
|
105
105
|
//# sourceMappingURL=interface.d.ts.map
|
package/lib/sync/interface.js
CHANGED
|
@@ -34,6 +34,6 @@ export var PendingBlockType;
|
|
|
34
34
|
*/
|
|
35
35
|
PendingBlockType["UNKNOWN_PARENT"] = "unknown_parent";
|
|
36
36
|
PendingBlockType["UNKNOWN_BLOCKINPUT"] = "unknown_blockinput";
|
|
37
|
-
PendingBlockType["
|
|
37
|
+
PendingBlockType["UNKNOWN_BLOBS"] = "unknown_blobs";
|
|
38
38
|
})(PendingBlockType || (PendingBlockType = {}));
|
|
39
39
|
//# sourceMappingURL=interface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/sync/interface.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,oCAAoC;IACpC,gCAAmB,CAAA;IACnB,sEAAsE;IACtE,kDAAqC,CAAA;IACrC,gEAAgE;IAChE,wCAA2B,CAAA;IAC3B,kDAAkD;IAClD,8BAAiB,CAAA;AACnB,CAAC,EATW,SAAS,KAAT,SAAS,QASpB;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACtB,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC/B,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;IAC1B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;CACtB,CAAC;AAuDF,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,2CAAqB,CAAA;IACrB,+CAAyB,CAAA;IACzB,+CAAyB,CAAA;AAC3B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,MAAM,CAAN,IAAY,gBAYX;AAZD,WAAY,gBAAgB;IAC1B;;OAEG;IACH,mDAA+B,CAAA;IAC/B;;OAEG;IACH,qDAAiC,CAAA;IAEjC,6DAAyC,CAAA;IACzC,
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/sync/interface.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,oCAAoC;IACpC,gCAAmB,CAAA;IACnB,sEAAsE;IACtE,kDAAqC,CAAA;IACrC,gEAAgE;IAChE,wCAA2B,CAAA;IAC3B,kDAAkD;IAClD,8BAAiB,CAAA;AACnB,CAAC,EATW,SAAS,KAAT,SAAS,QASpB;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACtB,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC/B,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;IAC1B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;CACtB,CAAC;AAuDF,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,2CAAqB,CAAA;IACrB,+CAAyB,CAAA;IACzB,+CAAyB,CAAA;AAC3B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,MAAM,CAAN,IAAY,gBAYX;AAZD,WAAY,gBAAgB;IAC1B;;OAEG;IACH,mDAA+B,CAAA;IAC/B;;OAEG;IACH,qDAAiC,CAAA;IAEjC,6DAAyC,CAAA;IACzC,mDAA+B,CAAA;AACjC,CAAC,EAZW,gBAAgB,KAAhB,gBAAgB,QAY3B"}
|
|
@@ -2,7 +2,6 @@ import { ChainForkConfig } from "@lodestar/config";
|
|
|
2
2
|
import { Epoch, RootHex, phase0 } from "@lodestar/types";
|
|
3
3
|
import { LodestarError } from "@lodestar/utils";
|
|
4
4
|
import { BlockInput } from "../../chain/blocks/types.js";
|
|
5
|
-
import { PartialDownload } from "../../network/reqresp/beaconBlocksMaybeBlobsByRange.js";
|
|
6
5
|
import { PeerIdStr } from "../../util/peerId.js";
|
|
7
6
|
/**
|
|
8
7
|
* Current state of a batch
|
|
@@ -33,11 +32,9 @@ export type Attempt = {
|
|
|
33
32
|
};
|
|
34
33
|
export type BatchState = {
|
|
35
34
|
status: BatchStatus.AwaitingDownload;
|
|
36
|
-
partialDownload: PartialDownload;
|
|
37
35
|
} | {
|
|
38
36
|
status: BatchStatus.Downloading;
|
|
39
37
|
peer: PeerIdStr;
|
|
40
|
-
partialDownload: PartialDownload;
|
|
41
38
|
} | {
|
|
42
39
|
status: BatchStatus.AwaitingProcessing;
|
|
43
40
|
peer: PeerIdStr;
|
|
@@ -86,14 +83,11 @@ export declare class Batch {
|
|
|
86
83
|
/**
|
|
87
84
|
* AwaitingDownload -> Downloading
|
|
88
85
|
*/
|
|
89
|
-
startDownloading(peer: PeerIdStr):
|
|
86
|
+
startDownloading(peer: PeerIdStr): void;
|
|
90
87
|
/**
|
|
91
88
|
* Downloading -> AwaitingProcessing
|
|
92
89
|
*/
|
|
93
|
-
downloadingSuccess(
|
|
94
|
-
blocks: BlockInput[];
|
|
95
|
-
pendingDataColumns: null | number[];
|
|
96
|
-
}): null | BlockInput[];
|
|
90
|
+
downloadingSuccess(blocks: BlockInput[]): void;
|
|
97
91
|
/**
|
|
98
92
|
* Downloading -> AwaitingDownload
|
|
99
93
|
*/
|
package/lib/sync/range/batch.js
CHANGED
|
@@ -38,7 +38,7 @@ export var BatchStatus;
|
|
|
38
38
|
export class Batch {
|
|
39
39
|
constructor(startEpoch, config) {
|
|
40
40
|
/** State of the batch. */
|
|
41
|
-
this.state = { status: BatchStatus.AwaitingDownload
|
|
41
|
+
this.state = { status: BatchStatus.AwaitingDownload };
|
|
42
42
|
/** The `Attempts` that have been made and failed to send us this batch. */
|
|
43
43
|
this.failedProcessingAttempts = [];
|
|
44
44
|
/** The `Attempts` that have been made and failed because of execution malfunction. */
|
|
@@ -70,27 +70,16 @@ export class Batch {
|
|
|
70
70
|
if (this.state.status !== BatchStatus.AwaitingDownload) {
|
|
71
71
|
throw new BatchError(this.wrongStatusErrorType(BatchStatus.AwaitingDownload));
|
|
72
72
|
}
|
|
73
|
-
|
|
74
|
-
this.state = { status: BatchStatus.Downloading, peer, partialDownload };
|
|
75
|
-
return partialDownload;
|
|
73
|
+
this.state = { status: BatchStatus.Downloading, peer };
|
|
76
74
|
}
|
|
77
75
|
/**
|
|
78
76
|
* Downloading -> AwaitingProcessing
|
|
79
77
|
*/
|
|
80
|
-
downloadingSuccess(
|
|
78
|
+
downloadingSuccess(blocks) {
|
|
81
79
|
if (this.state.status !== BatchStatus.Downloading) {
|
|
82
80
|
throw new BatchError(this.wrongStatusErrorType(BatchStatus.Downloading));
|
|
83
81
|
}
|
|
84
|
-
|
|
85
|
-
if (pendingDataColumns === null) {
|
|
86
|
-
this.state = { status: BatchStatus.AwaitingProcessing, peer: this.state.peer, blocks };
|
|
87
|
-
return blocks;
|
|
88
|
-
}
|
|
89
|
-
this.state = {
|
|
90
|
-
status: BatchStatus.AwaitingDownload,
|
|
91
|
-
partialDownload: blocks.length === 0 ? null : { blocks, pendingDataColumns },
|
|
92
|
-
};
|
|
93
|
-
return null;
|
|
82
|
+
this.state = { status: BatchStatus.AwaitingProcessing, peer: this.state.peer, blocks };
|
|
94
83
|
}
|
|
95
84
|
/**
|
|
96
85
|
* Downloading -> AwaitingDownload
|
|
@@ -103,8 +92,7 @@ export class Batch {
|
|
|
103
92
|
if (this.failedDownloadAttempts.length > MAX_BATCH_DOWNLOAD_ATTEMPTS) {
|
|
104
93
|
throw new BatchError(this.errorType({ code: BatchErrorCode.MAX_DOWNLOAD_ATTEMPTS }));
|
|
105
94
|
}
|
|
106
|
-
|
|
107
|
-
this.state = { status: BatchStatus.AwaitingDownload, partialDownload };
|
|
95
|
+
this.state = { status: BatchStatus.AwaitingDownload };
|
|
108
96
|
}
|
|
109
97
|
/**
|
|
110
98
|
* AwaitingProcessing -> Processing
|
|
@@ -169,14 +157,14 @@ export class Batch {
|
|
|
169
157
|
if (this.executionErrorAttempts.length > MAX_BATCH_PROCESSING_ATTEMPTS) {
|
|
170
158
|
throw new BatchError(this.errorType({ code: BatchErrorCode.MAX_EXECUTION_ENGINE_ERROR_ATTEMPTS }));
|
|
171
159
|
}
|
|
172
|
-
this.state = { status: BatchStatus.AwaitingDownload
|
|
160
|
+
this.state = { status: BatchStatus.AwaitingDownload };
|
|
173
161
|
}
|
|
174
162
|
onProcessingError(attempt) {
|
|
175
163
|
this.failedProcessingAttempts.push(attempt);
|
|
176
164
|
if (this.failedProcessingAttempts.length > MAX_BATCH_PROCESSING_ATTEMPTS) {
|
|
177
165
|
throw new BatchError(this.errorType({ code: BatchErrorCode.MAX_PROCESSING_ATTEMPTS }));
|
|
178
166
|
}
|
|
179
|
-
this.state = { status: BatchStatus.AwaitingDownload
|
|
167
|
+
this.state = { status: BatchStatus.AwaitingDownload };
|
|
180
168
|
}
|
|
181
169
|
/** Helper to construct typed BatchError. Stack traces are correct as the error is thrown above */
|
|
182
170
|
errorType(type) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/sync/range/batch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/sync/range/batch.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { Epoch, Root, Slot, phase0 } from "@lodestar/types";
|
|
|
3
3
|
import { Logger } from "@lodestar/utils";
|
|
4
4
|
import { BlockInput } from "../../chain/blocks/types.js";
|
|
5
5
|
import { PeerAction } from "../../network/index.js";
|
|
6
|
-
import { PartialDownload } from "../../network/reqresp/beaconBlocksMaybeBlobsByRange.js";
|
|
7
6
|
import { PeerIdStr } from "../../util/peerId.js";
|
|
8
7
|
import { RangeSyncType } from "../utils/remoteSyncType.js";
|
|
9
8
|
import { BatchErrorCode, BatchMetadata } from "./batch.js";
|
|
@@ -18,10 +17,7 @@ export type SyncChainFns = {
|
|
|
18
17
|
*/
|
|
19
18
|
processChainSegment: (blocks: BlockInput[], syncType: RangeSyncType) => Promise<void>;
|
|
20
19
|
/** Must download blocks, and validate their range */
|
|
21
|
-
downloadBeaconBlocksByRange: (peer: PeerIdStr, request: phase0.BeaconBlocksByRangeRequest
|
|
22
|
-
blocks: BlockInput[];
|
|
23
|
-
pendingDataColumns: null | number[];
|
|
24
|
-
}>;
|
|
20
|
+
downloadBeaconBlocksByRange: (peer: PeerIdStr, request: phase0.BeaconBlocksByRangeRequest) => Promise<BlockInput[]>;
|
|
25
21
|
/** Report peer for negative actions. Decouples from the full network instance */
|
|
26
22
|
reportPeer: (peer: PeerIdStr, action: PeerAction, actionName: string) => void;
|
|
27
23
|
/** Hook called when Chain state completes */
|
|
@@ -86,7 +82,6 @@ export declare class SyncChain {
|
|
|
86
82
|
/** Sorted map of batches undergoing some kind of processing. */
|
|
87
83
|
private readonly batches;
|
|
88
84
|
private readonly peerset;
|
|
89
|
-
private readonly peersetCustody;
|
|
90
85
|
private readonly logger;
|
|
91
86
|
private readonly config;
|
|
92
87
|
constructor(initialBatchEpoch: Epoch, initialTarget: ChainTarget, syncType: RangeSyncType, fns: SyncChainFns, modules: SyncChainModules);
|
|
@@ -106,7 +101,7 @@ export declare class SyncChain {
|
|
|
106
101
|
/**
|
|
107
102
|
* Add peer to the chain and request batches if active
|
|
108
103
|
*/
|
|
109
|
-
addPeer(peer: PeerIdStr, target: ChainTarget
|
|
104
|
+
addPeer(peer: PeerIdStr, target: ChainTarget): void;
|
|
110
105
|
/**
|
|
111
106
|
* Returns true if the peer existed and has been removed
|
|
112
107
|
* NOTE: The RangeSync will take care of deleting the SyncChain if peers = 0
|
package/lib/sync/range/chain.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ForkName } from "@lodestar/params";
|
|
2
1
|
import { ErrorAborted, toRootHex } from "@lodestar/utils";
|
|
3
2
|
import { BlockInputType } from "../../chain/blocks/types.js";
|
|
4
3
|
import { PeerAction, prettyPrintPeerIdStr } from "../../network/index.js";
|
|
@@ -33,8 +32,6 @@ export class SyncChain {
|
|
|
33
32
|
/** Sorted map of batches undergoing some kind of processing. */
|
|
34
33
|
this.batches = new Map();
|
|
35
34
|
this.peerset = new Map();
|
|
36
|
-
// TODO: @matthewkeil check if this needs to be updated for custody groups
|
|
37
|
-
this.peersetCustody = new Map();
|
|
38
35
|
this.firstBatchEpoch = initialBatchEpoch;
|
|
39
36
|
this.lastEpochWithProcessBlocks = initialBatchEpoch;
|
|
40
37
|
this.target = initialTarget;
|
|
@@ -92,10 +89,8 @@ export class SyncChain {
|
|
|
92
89
|
/**
|
|
93
90
|
* Add peer to the chain and request batches if active
|
|
94
91
|
*/
|
|
95
|
-
|
|
96
|
-
addPeer(peer, target, custodyColumns, clientAgent) {
|
|
92
|
+
addPeer(peer, target) {
|
|
97
93
|
this.peerset.set(peer, target);
|
|
98
|
-
this.peersetCustody.set(peer, { custodyColumns, clientAgent });
|
|
99
94
|
this.computeTarget();
|
|
100
95
|
this.triggerBatchDownloader();
|
|
101
96
|
}
|
|
@@ -219,7 +214,7 @@ export class SyncChain {
|
|
|
219
214
|
if (this.status !== SyncChainStatus.Syncing) {
|
|
220
215
|
return;
|
|
221
216
|
}
|
|
222
|
-
const peerBalancer = new ChainPeersBalancer(peers,
|
|
217
|
+
const peerBalancer = new ChainPeersBalancer(peers, toArr(this.batches));
|
|
223
218
|
// Retry download of existing batches
|
|
224
219
|
for (const batch of this.batches.values()) {
|
|
225
220
|
if (batch.state.status !== BatchStatus.AwaitingDownload) {
|
|
@@ -272,47 +267,28 @@ export class SyncChain {
|
|
|
272
267
|
*/
|
|
273
268
|
async sendBatch(batch, peer) {
|
|
274
269
|
try {
|
|
275
|
-
|
|
276
|
-
const peerClient = this.peersetCustody.get(peer)?.clientAgent ?? "unknown";
|
|
270
|
+
batch.startDownloading(peer);
|
|
277
271
|
// wrapError ensures to never call both batch success() and batch error()
|
|
278
|
-
const res = await wrapError(this.downloadBeaconBlocksByRange(peer, batch.request
|
|
272
|
+
const res = await wrapError(this.downloadBeaconBlocksByRange(peer, batch.request));
|
|
279
273
|
if (!res.err) {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
: 0;
|
|
292
|
-
}, 0);
|
|
293
|
-
const dataColumns = blocks.reduce((acc, blockInput) => {
|
|
294
|
-
hasPostDenebBlocks ||= blockInput.type === BlockInputType.availableData;
|
|
295
|
-
return hasPostDenebBlocks
|
|
296
|
-
? acc +
|
|
297
|
-
(blockInput.type === BlockInputType.availableData && blockInput.blockData.fork === ForkName.fulu
|
|
298
|
-
? blockInput.blockData.dataColumns.length
|
|
299
|
-
: 0)
|
|
300
|
-
: 0;
|
|
301
|
-
}, 0);
|
|
302
|
-
const downloadInfo = { blocks: blocks.length };
|
|
303
|
-
if (hasPostDenebBlocks) {
|
|
304
|
-
Object.assign(downloadInfo, { blobs, dataColumns });
|
|
305
|
-
}
|
|
306
|
-
this.logger.debug("Downloaded batch", {
|
|
307
|
-
id: this.logId,
|
|
308
|
-
...batch.getMetadata(),
|
|
309
|
-
...downloadInfo,
|
|
310
|
-
peer: prettyPrintPeerIdStr(peer),
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
this.logger.debug("Partially downloaded batch", { id: this.logId, ...batch.getMetadata(), peer });
|
|
274
|
+
batch.downloadingSuccess(res.result);
|
|
275
|
+
let hasPostDenebBlocks = false;
|
|
276
|
+
const blobs = res.result.reduce((acc, blockInput) => {
|
|
277
|
+
hasPostDenebBlocks ||= blockInput.type === BlockInputType.availableData;
|
|
278
|
+
return hasPostDenebBlocks
|
|
279
|
+
? acc + (blockInput.type === BlockInputType.availableData ? blockInput.blockData.blobs.length : 0)
|
|
280
|
+
: 0;
|
|
281
|
+
}, 0);
|
|
282
|
+
const downloadInfo = { blocks: res.result.length };
|
|
283
|
+
if (hasPostDenebBlocks) {
|
|
284
|
+
Object.assign(downloadInfo, { blobs });
|
|
315
285
|
}
|
|
286
|
+
this.logger.debug("Downloaded batch", {
|
|
287
|
+
id: this.logId,
|
|
288
|
+
...batch.getMetadata(),
|
|
289
|
+
...downloadInfo,
|
|
290
|
+
peer: prettyPrintPeerIdStr(peer),
|
|
291
|
+
});
|
|
316
292
|
this.triggerBatchProcessor();
|
|
317
293
|
}
|
|
318
294
|
else {
|