@lodestar/beacon-node 1.18.0-dev.9116526790 → 1.18.0-dev.e840ea0ea7

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.
Files changed (60) hide show
  1. package/lib/api/impl/beacon/rewards/index.js +4 -0
  2. package/lib/api/impl/beacon/rewards/index.js.map +1 -1
  3. package/lib/api/impl/validator/index.d.ts +14 -0
  4. package/lib/api/impl/validator/index.js +4 -4
  5. package/lib/api/impl/validator/index.js.map +1 -1
  6. package/lib/api/rest/activeSockets.js +1 -1
  7. package/lib/api/rest/activeSockets.js.map +1 -1
  8. package/lib/chain/blocks/types.d.ts +15 -7
  9. package/lib/chain/blocks/types.js.map +1 -1
  10. package/lib/chain/blocks/verifyBlocksDataAvailability.js +1 -1
  11. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  12. package/lib/chain/bls/multithread/index.js +1 -1
  13. package/lib/chain/bls/multithread/index.js.map +1 -1
  14. package/lib/chain/chain.d.ts +5 -0
  15. package/lib/chain/chain.js +18 -1
  16. package/lib/chain/chain.js.map +1 -1
  17. package/lib/chain/interface.d.ts +5 -0
  18. package/lib/chain/interface.js.map +1 -1
  19. package/lib/chain/opPools/attestationPool.js +1 -1
  20. package/lib/chain/opPools/attestationPool.js.map +1 -1
  21. package/lib/chain/reprocess.js +1 -1
  22. package/lib/chain/reprocess.js.map +1 -1
  23. package/lib/chain/rewards/attestationsRewards.d.ts +7 -0
  24. package/lib/chain/rewards/attestationsRewards.js +109 -0
  25. package/lib/chain/rewards/attestationsRewards.js.map +1 -0
  26. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +2 -2
  27. package/lib/chain/seenCache/seenGossipBlockInput.js +22 -7
  28. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  29. package/lib/eth1/provider/eth1Provider.js +1 -1
  30. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  31. package/lib/metrics/metrics/lodestar.js +2 -2
  32. package/lib/metrics/metrics/lodestar.js.map +1 -1
  33. package/lib/monitoring/options.js +3 -3
  34. package/lib/monitoring/options.js.map +1 -1
  35. package/lib/network/events.d.ts +2 -2
  36. package/lib/network/libp2p/index.js +1 -1
  37. package/lib/network/libp2p/index.js.map +1 -1
  38. package/lib/network/peers/peerManager.js +1 -1
  39. package/lib/network/peers/peerManager.js.map +1 -1
  40. package/lib/network/processor/gossipHandlers.js +41 -16
  41. package/lib/network/processor/gossipHandlers.js.map +1 -1
  42. package/lib/network/processor/gossipQueues/indexed.d.ts +1 -1
  43. package/lib/network/processor/gossipQueues/indexed.js +1 -1
  44. package/lib/network/processor/index.js +1 -1
  45. package/lib/network/processor/index.js.map +1 -1
  46. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +2 -2
  47. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +15 -3
  48. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  49. package/lib/network/reqresp/rateLimit.js +12 -12
  50. package/lib/network/reqresp/rateLimit.js.map +1 -1
  51. package/lib/sync/interface.d.ts +16 -12
  52. package/lib/sync/interface.js +1 -0
  53. package/lib/sync/interface.js.map +1 -1
  54. package/lib/sync/unknownBlock.js +63 -60
  55. package/lib/sync/unknownBlock.js.map +1 -1
  56. package/lib/sync/utils/pendingBlocksTree.js +1 -1
  57. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  58. package/lib/util/queue/itemQueue.js +1 -1
  59. package/lib/util/queue/itemQueue.js.map +1 -1
  60. package/package.json +16 -16
@@ -3,7 +3,7 @@ import { GossipQueue, IndexedGossipQueueMinSizeOpts } from "./types.js";
3
3
  * This implementation tries to get the most items with same key:
4
4
  * - index items by indexFn using a map
5
5
  * - store keys with at least minChunkSize
6
- * - on next, pick the the last key with minChunkSize, pop up to maxChunkSize items
6
+ * - on next, pick the last key with minChunkSize, pop up to maxChunkSize items
7
7
  * - on delete, pick the 1st key in the map and delete the 1st item in the list
8
8
  * Although it does not strictly follow LIFO, it tries to have that behavior:
9
9
  * - On delete, get the first key and the first item of respective list
@@ -10,7 +10,7 @@ const MINIMUM_WAIT_TIME_MS = 50;
10
10
  * This implementation tries to get the most items with same key:
11
11
  * - index items by indexFn using a map
12
12
  * - store keys with at least minChunkSize
13
- * - on next, pick the the last key with minChunkSize, pop up to maxChunkSize items
13
+ * - on next, pick the last key with minChunkSize, pop up to maxChunkSize items
14
14
  * - on delete, pick the 1st key in the map and delete the 1st item in the list
15
15
  * Although it does not strictly follow LIFO, it tries to have that behavior:
16
16
  * - On delete, get the first key and the first item of respective list
@@ -45,7 +45,7 @@ const executeGossipWorkOrder = Object.keys(executeGossipWorkOrderObj);
45
45
  // TODO: Arbitrary constant, check metrics
46
46
  const MAX_JOBS_SUBMITTED_PER_TICK = 128;
47
47
  // How many attestations (aggregate + unaggregate) we keep before new ones get dropped.
48
- const MAX_QUEUED_UNKNOWN_BLOCK_GOSSIP_OBJECTS = 16384;
48
+ const MAX_QUEUED_UNKNOWN_BLOCK_GOSSIP_OBJECTS = 16_384;
49
49
  // We don't want to process too many attestations in a single tick
50
50
  // As seen on mainnet, attestation concurrency metric ranges from 1000 to 2000
51
51
  // so make this constant a little bit conservative
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/network/processor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/network/processor/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
2
  import { phase0 } from "@lodestar/types";
3
- import { BlockInput } from "../../chain/blocks/types.js";
3
+ import { BlockInput, NullBlockInput } from "../../chain/blocks/types.js";
4
4
  import { PeerIdStr } from "../../util/peerId.js";
5
5
  import { INetwork } from "../interface.js";
6
6
  import { Metrics } from "../../metrics/index.js";
7
7
  export declare function beaconBlocksMaybeBlobsByRoot(config: ChainForkConfig, network: INetwork, peerId: PeerIdStr, request: phase0.BeaconBlocksByRootRequest): Promise<BlockInput[]>;
8
- export declare function unavailableBeaconBlobsByRoot(config: ChainForkConfig, network: INetwork, peerId: PeerIdStr, unavailableBlockInput: BlockInput, metrics: Metrics | null): Promise<BlockInput>;
8
+ export declare function unavailableBeaconBlobsByRoot(config: ChainForkConfig, network: INetwork, peerId: PeerIdStr, unavailableBlockInput: BlockInput | NullBlockInput, metrics: Metrics | null): Promise<BlockInput>;
9
9
  //# sourceMappingURL=beaconBlocksMaybeBlobsByRoot.d.ts.map
@@ -1,5 +1,6 @@
1
+ import { fromHexString } from "@chainsafe/ssz";
1
2
  import { ForkSeq } from "@lodestar/params";
2
- import { BlockInputType, BlockSource, getBlockInputBlobs, getBlockInput } from "../../chain/blocks/types.js";
3
+ import { BlockInputType, BlockSource, getBlockInputBlobs, getBlockInput, } from "../../chain/blocks/types.js";
3
4
  import { BlockInputAvailabilitySource } from "../../chain/seenCache/seenGossipBlockInput.js";
4
5
  import { matchBlockWithBlobs } from "./beaconBlocksMaybeBlobsByRange.js";
5
6
  export async function beaconBlocksMaybeBlobsByRoot(config, network, peerId, request) {
@@ -28,11 +29,22 @@ export async function beaconBlocksMaybeBlobsByRoot(config, network, peerId, requ
28
29
  return matchBlockWithBlobs(config, allBlocks, allBlobSidecars, Infinity, BlockSource.byRoot);
29
30
  }
30
31
  export async function unavailableBeaconBlobsByRoot(config, network, peerId, unavailableBlockInput, metrics) {
31
- if (unavailableBlockInput.type !== BlockInputType.blobsPromise) {
32
+ if (unavailableBlockInput.block !== null && unavailableBlockInput.type !== BlockInputType.blobsPromise) {
32
33
  return unavailableBlockInput;
33
34
  }
35
+ // resolve the block if thats unavailable
36
+ let block, blobsCache, blockBytes, resolveAvailability;
37
+ if (unavailableBlockInput.block === null) {
38
+ const allBlocks = await network.sendBeaconBlocksByRoot(peerId, [fromHexString(unavailableBlockInput.blockRootHex)]);
39
+ block = allBlocks[0].data;
40
+ blockBytes = allBlocks[0].bytes;
41
+ ({ blobsCache, resolveAvailability } = unavailableBlockInput);
42
+ }
43
+ else {
44
+ ({ block, blobsCache, resolveAvailability, blockBytes } = unavailableBlockInput);
45
+ }
46
+ // resolve missing blobs
34
47
  const blobIdentifiers = [];
35
- const { block, blobsCache, resolveAvailability, blockBytes } = unavailableBlockInput;
36
48
  const slot = block.message.slot;
37
49
  const blockRoot = config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block.message);
38
50
  const blobKzgCommitmentsLen = block.message.body.blobKzgCommitments.length;
@@ -1 +1 @@
1
- {"version":3,"file":"beaconBlocksMaybeBlobsByRoot.js","sourceRoot":"","sources":["../../../src/network/reqresp/beaconBlocksMaybeBlobsByRoot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"beaconBlocksMaybeBlobsByRoot.js","sourceRoot":"","sources":["../../../src/network/reqresp/beaconBlocksMaybeBlobsByRoot.ts"],"names":[],"mappings":"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"}
@@ -4,59 +4,59 @@ import { requestSszTypeByMethod } from "./types.js";
4
4
  export const rateLimitQuotas = {
5
5
  [ReqRespMethod.Status]: {
6
6
  // Rationale: https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
7
- byPeer: { quota: 5, quotaTimeMs: 15000 },
7
+ byPeer: { quota: 5, quotaTimeMs: 15_000 },
8
8
  },
9
9
  [ReqRespMethod.Goodbye]: {
10
10
  // Rationale: https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
11
- byPeer: { quota: 1, quotaTimeMs: 10000 },
11
+ byPeer: { quota: 1, quotaTimeMs: 10_000 },
12
12
  },
13
13
  [ReqRespMethod.Ping]: {
14
14
  // Rationale: https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
15
- byPeer: { quota: 2, quotaTimeMs: 10000 },
15
+ byPeer: { quota: 2, quotaTimeMs: 10_000 },
16
16
  },
17
17
  [ReqRespMethod.Metadata]: {
18
18
  // Rationale: https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
19
- byPeer: { quota: 2, quotaTimeMs: 5000 },
19
+ byPeer: { quota: 2, quotaTimeMs: 5_000 },
20
20
  },
21
21
  // Do not matter
22
22
  [ReqRespMethod.BeaconBlocksByRange]: {
23
23
  // Rationale: https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
24
- byPeer: { quota: MAX_REQUEST_BLOCKS, quotaTimeMs: 10000 },
24
+ byPeer: { quota: MAX_REQUEST_BLOCKS, quotaTimeMs: 10_000 },
25
25
  getRequestCount: getRequestCountFn(ReqRespMethod.BeaconBlocksByRange, (req) => req.count),
26
26
  },
27
27
  [ReqRespMethod.BeaconBlocksByRoot]: {
28
28
  // Rationale: https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
29
- byPeer: { quota: 128, quotaTimeMs: 10000 },
29
+ byPeer: { quota: 128, quotaTimeMs: 10_000 },
30
30
  getRequestCount: getRequestCountFn(ReqRespMethod.BeaconBlocksByRoot, (req) => req.length),
31
31
  },
32
32
  [ReqRespMethod.BlobSidecarsByRange]: {
33
33
  // Rationale: MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK
34
- byPeer: { quota: MAX_REQUEST_BLOB_SIDECARS, quotaTimeMs: 10000 },
34
+ byPeer: { quota: MAX_REQUEST_BLOB_SIDECARS, quotaTimeMs: 10_000 },
35
35
  getRequestCount: getRequestCountFn(ReqRespMethod.BlobSidecarsByRange, (req) => req.count),
36
36
  },
37
37
  [ReqRespMethod.BlobSidecarsByRoot]: {
38
38
  // Rationale: quota of BeaconBlocksByRoot * MAX_BLOBS_PER_BLOCK
39
- byPeer: { quota: 128 * MAX_BLOBS_PER_BLOCK, quotaTimeMs: 10000 },
39
+ byPeer: { quota: 128 * MAX_BLOBS_PER_BLOCK, quotaTimeMs: 10_000 },
40
40
  getRequestCount: getRequestCountFn(ReqRespMethod.BlobSidecarsByRoot, (req) => req.length),
41
41
  },
42
42
  [ReqRespMethod.LightClientBootstrap]: {
43
43
  // As similar in the nature of `Status` protocol so we use the same rate limits.
44
- byPeer: { quota: 5, quotaTimeMs: 15000 },
44
+ byPeer: { quota: 5, quotaTimeMs: 15_000 },
45
45
  },
46
46
  [ReqRespMethod.LightClientUpdatesByRange]: {
47
47
  // Same rationale as for BeaconBlocksByRange
48
- byPeer: { quota: MAX_REQUEST_LIGHT_CLIENT_UPDATES, quotaTimeMs: 10000 },
48
+ byPeer: { quota: MAX_REQUEST_LIGHT_CLIENT_UPDATES, quotaTimeMs: 10_000 },
49
49
  getRequestCount: getRequestCountFn(ReqRespMethod.LightClientUpdatesByRange, (req) => req.count),
50
50
  },
51
51
  [ReqRespMethod.LightClientFinalityUpdate]: {
52
52
  // Finality updates should not be requested more than once per epoch.
53
53
  // Allow 2 per slot and a very safe bound until there's more testing of real usage.
54
- byPeer: { quota: 2, quotaTimeMs: 12000 },
54
+ byPeer: { quota: 2, quotaTimeMs: 12_000 },
55
55
  },
56
56
  [ReqRespMethod.LightClientOptimisticUpdate]: {
57
57
  // Optimistic updates should not be requested more than once per slot.
58
58
  // Allow 2 per slot and a very safe bound until there's more testing of real usage.
59
- byPeer: { quota: 2, quotaTimeMs: 12000 },
59
+ byPeer: { quota: 2, quotaTimeMs: 12_000 },
60
60
  },
61
61
  };
62
62
  // Helper to produce a getRequestCount function
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../../src/network/reqresp/rateLimit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../../src/network/reqresp/rateLimit.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Logger } from "@lodestar/utils";
2
2
  import { RootHex, Slot, phase0 } from "@lodestar/types";
3
3
  import { BeaconConfig } from "@lodestar/config";
4
4
  import { routes } from "@lodestar/api";
5
- import { BlockInput, BlockInputType } from "../chain/blocks/types.js";
5
+ import { BlockInput, BlockInputType, NullBlockInput } from "../chain/blocks/types.js";
6
6
  import { INetwork } from "../network/index.js";
7
7
  import { IBeaconChain } from "../chain/index.js";
8
8
  import { Metrics } from "../metrics/index.js";
@@ -46,7 +46,7 @@ export interface SyncModules {
46
46
  wsCheckpoint?: phase0.Checkpoint;
47
47
  }
48
48
  export type UnknownAndAncestorBlocks = {
49
- unknowns: (UnknownBlock | UnknownBlockInput)[];
49
+ unknowns: UnknownBlock[];
50
50
  ancestors: DownloadedBlock[];
51
51
  };
52
52
  /**
@@ -55,7 +55,7 @@ export type UnknownAndAncestorBlocks = {
55
55
  * - store 1 record with known parentBlockRootHex & blockInput, blockRootHex as key, status downloaded
56
56
  * - store 1 record with undefined parentBlockRootHex & blockInput, parentBlockRootHex as key, status pending
57
57
  */
58
- export type PendingBlock = UnknownBlock | UnknownBlockInput | DownloadedBlock;
58
+ export type PendingBlock = UnknownBlock | DownloadedBlock;
59
59
  type PendingBlockCommon = {
60
60
  blockRootHex: RootHex;
61
61
  peerIdStrs: Set<string>;
@@ -64,18 +64,21 @@ type PendingBlockCommon = {
64
64
  export type UnknownBlock = PendingBlockCommon & {
65
65
  status: PendingBlockStatus.pending | PendingBlockStatus.fetching;
66
66
  parentBlockRootHex: null;
67
+ } & ({
68
+ unknownBlockType: PendingBlockType.UNKNOWN_BLOCK;
67
69
  blockInput: null;
68
- };
69
- /**
70
- * either the blobs are unknown or in future some blobs and even the block is unknown
71
- */
72
- export type UnknownBlockInput = PendingBlockCommon & {
73
- status: PendingBlockStatus.pending | PendingBlockStatus.fetching;
74
- parentBlockRootHex: null;
70
+ } | {
71
+ unknownBlockType: PendingBlockType.UNKNOWN_BLOBS;
75
72
  blockInput: BlockInput & {
76
73
  type: BlockInputType.blobsPromise;
77
74
  };
78
- };
75
+ } | {
76
+ unknownBlockType: PendingBlockType.UNKNOWN_BLOCKINPUT;
77
+ blockInput: NullBlockInput;
78
+ });
79
+ /**
80
+ * either the blobs are unknown or in future some blobs and even the block is unknown
81
+ */
79
82
  export type DownloadedBlock = PendingBlockCommon & {
80
83
  status: PendingBlockStatus.downloaded | PendingBlockStatus.processing;
81
84
  parentBlockRootHex: RootHex;
@@ -96,6 +99,7 @@ export declare enum PendingBlockType {
96
99
  * During gossip time, we may get a block but the parent root is unknown (not in forkchoice).
97
100
  */
98
101
  UNKNOWN_PARENT = "unknown_parent",
99
- UNKNOWN_BLOCKINPUT = "unknown_blockinput"
102
+ UNKNOWN_BLOCKINPUT = "unknown_blockinput",
103
+ UNKNOWN_BLOBS = "unknown_blobs"
100
104
  }
101
105
  //# sourceMappingURL=interface.d.ts.map
@@ -34,5 +34,6 @@ export var PendingBlockType;
34
34
  */
35
35
  PendingBlockType["UNKNOWN_PARENT"] = "unknown_parent";
36
36
  PendingBlockType["UNKNOWN_BLOCKINPUT"] = "unknown_blockinput";
37
+ PendingBlockType["UNKNOWN_BLOBS"] = "unknown_blobs";
37
38
  })(PendingBlockType || (PendingBlockType = {}));
38
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;AAyDF,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,gBAWX;AAXD,WAAY,gBAAgB;IAC1B;;OAEG;IACH,mDAA+B,CAAA;IAC/B;;OAEG;IACH,qDAAiC,CAAA;IAEjC,6DAAyC,CAAA;AAC3C,CAAC,EAXW,gBAAgB,KAAhB,gBAAgB,QAW3B"}
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"}
@@ -33,9 +33,9 @@ export class UnknownBlockSync {
33
33
  */
34
34
  this.onUnknownBlock = (data) => {
35
35
  try {
36
- this.addUnknownBlock(data.rootHex, data.peer);
36
+ const unknownBlockType = this.addUnknownBlock(data.rootHex, data.peer);
37
37
  this.triggerUnknownBlockSearch();
38
- this.metrics?.syncUnknownBlock.requests.inc({ type: PendingBlockType.UNKNOWN_BLOCK });
38
+ this.metrics?.syncUnknownBlock.requests.inc({ type: unknownBlockType });
39
39
  }
40
40
  catch (e) {
41
41
  this.logger.debug("Error handling unknownBlock event", {}, e);
@@ -46,9 +46,9 @@ export class UnknownBlockSync {
46
46
  */
47
47
  this.onUnknownBlockInput = (data) => {
48
48
  try {
49
- this.addUnknownBlock(data.blockInput, data.peer);
49
+ const unknownBlockType = this.addUnknownBlock(data.blockInput, data.peer);
50
50
  this.triggerUnknownBlockSearch();
51
- this.metrics?.syncUnknownBlock.requests.inc({ type: PendingBlockType.UNKNOWN_BLOCKINPUT });
51
+ this.metrics?.syncUnknownBlock.requests.inc({ type: unknownBlockType });
52
52
  }
53
53
  catch (e) {
54
54
  this.logger.debug("Error handling unknownBlockInput event", {}, e);
@@ -183,38 +183,41 @@ export class UnknownBlockSync {
183
183
  addUnknownBlock(blockInputOrRootHex, peerIdStr) {
184
184
  let blockRootHex;
185
185
  let blockInput;
186
+ let unknownBlockType;
186
187
  if (typeof blockInputOrRootHex === "string") {
187
188
  blockRootHex = blockInputOrRootHex;
188
189
  blockInput = null;
190
+ unknownBlockType = PendingBlockType.UNKNOWN_BLOCK;
189
191
  }
190
192
  else {
191
- const { block } = blockInputOrRootHex;
192
- blockRootHex = toHexString(this.config.getForkTypes(block.message.slot).BeaconBlock.hashTreeRoot(block.message));
193
+ if (blockInputOrRootHex.block !== null) {
194
+ const { block } = blockInputOrRootHex;
195
+ blockRootHex = toHexString(this.config.getForkTypes(block.message.slot).BeaconBlock.hashTreeRoot(block.message));
196
+ unknownBlockType = PendingBlockType.UNKNOWN_BLOBS;
197
+ }
198
+ else {
199
+ unknownBlockType = PendingBlockType.UNKNOWN_BLOCKINPUT;
200
+ blockRootHex = blockInputOrRootHex.blockRootHex;
201
+ }
193
202
  blockInput = blockInputOrRootHex;
194
203
  }
195
204
  let pendingBlock = this.pendingBlocks.get(blockRootHex);
196
205
  if (!pendingBlock) {
197
206
  pendingBlock = {
207
+ unknownBlockType,
198
208
  blockRootHex,
199
209
  parentBlockRootHex: null,
200
- blockInput: blockInput?.type === BlockInputType.blobsPromise ? blockInput : null,
210
+ blockInput,
201
211
  peerIdStrs: new Set(),
202
212
  status: PendingBlockStatus.pending,
203
213
  downloadAttempts: 0,
204
214
  };
205
215
  this.pendingBlocks.set(blockRootHex, pendingBlock);
206
- if (pendingBlock.blockInput?.type === BlockInputType.blobsPromise) {
207
- this.logger.verbose("Added blockInput with unknown blobs to pendingBlocks", {
208
- root: blockRootHex,
209
- slot: blockInput?.block.message.slot ?? "unknown",
210
- });
211
- }
212
- else {
213
- this.logger.verbose("Added unknown block to pendingBlocks", {
214
- root: blockRootHex,
215
- slot: blockInput?.block.message.slot ?? "unknown",
216
- });
217
- }
216
+ this.logger.verbose("Added unknown block to pendingBlocks", {
217
+ unknownBlockType,
218
+ root: blockRootHex,
219
+ slot: blockInput?.block?.message.slot ?? "unknown",
220
+ });
218
221
  }
219
222
  if (peerIdStr) {
220
223
  pendingBlock.peerIdStrs.add(peerIdStr);
@@ -224,26 +227,19 @@ export class UnknownBlockSync {
224
227
  if (prunedItemCount > 0) {
225
228
  this.logger.warn(`Pruned ${prunedItemCount} pending blocks from UnknownBlockSync`);
226
229
  }
230
+ return unknownBlockType;
227
231
  }
228
232
  async downloadBlock(block, connectedPeers) {
229
233
  if (block.status !== PendingBlockStatus.pending) {
230
234
  return;
231
235
  }
232
- if (block.blockInput?.type === BlockInputType.blobsPromise) {
233
- this.logger.verbose("Downloading unknown blockInput", {
234
- root: block.blockRootHex,
235
- pendingBlocks: this.pendingBlocks.size,
236
- blockInputType: block.blockInput.type,
237
- slot: block.blockInput?.block.message.slot ?? "unknown",
238
- });
239
- }
240
- else {
241
- this.logger.verbose("Downloading unknown block", {
242
- root: block.blockRootHex,
243
- pendingBlocks: this.pendingBlocks.size,
244
- slot: block.blockInput?.block.message.slot ?? "unknown",
245
- });
246
- }
236
+ const unknownBlockType = block.unknownBlockType;
237
+ this.logger.verbose("Downloading unknown block", {
238
+ root: block.blockRootHex,
239
+ pendingBlocks: this.pendingBlocks.size,
240
+ slot: block.blockInput?.block?.message.slot ?? "unknown",
241
+ unknownBlockType,
242
+ });
247
243
  block.status = PendingBlockStatus.fetching;
248
244
  let res;
249
245
  if (block.blockInput === null) {
@@ -270,22 +266,13 @@ export class UnknownBlockSync {
270
266
  const delaySec = Date.now() / 1000 - (this.chain.genesisTime + blockSlot * this.config.SECONDS_PER_SLOT);
271
267
  this.metrics?.syncUnknownBlock.elapsedTimeTillReceived.observe(delaySec);
272
268
  const parentInForkchoice = this.chain.forkChoice.hasBlock(blockInput.block.message.parentRoot);
273
- if (block.blockInput.type === BlockInputType.blobsPromise) {
274
- this.logger.verbose("Downloaded unknown blobs", {
275
- root: block.blockRootHex,
276
- pendingBlocks: this.pendingBlocks.size,
277
- parentInForkchoice,
278
- blockInputType: blockInput.type,
279
- });
280
- }
281
- else {
282
- this.logger.verbose("Downloaded unknown block", {
283
- root: block.blockRootHex,
284
- pendingBlocks: this.pendingBlocks.size,
285
- parentInForkchoice,
286
- blockInputType: blockInput.type,
287
- });
288
- }
269
+ this.logger.verbose("Downloaded unknown block", {
270
+ root: block.blockRootHex,
271
+ pendingBlocks: this.pendingBlocks.size,
272
+ parentInForkchoice,
273
+ blockInputType: blockInput.type,
274
+ unknownBlockType,
275
+ });
289
276
  if (parentInForkchoice) {
290
277
  // Bingo! Process block. Add to pending blocks anyway for recycle the cache that prevents duplicate processing
291
278
  this.processBlock(block).catch((e) => {
@@ -303,6 +290,7 @@ export class UnknownBlockSync {
303
290
  finalizedSlot,
304
291
  blockSlot,
305
292
  parentRoot: toHexString(blockRoot),
293
+ unknownBlockType,
306
294
  });
307
295
  this.removeAndDownscoreAllDescendants(block);
308
296
  }
@@ -315,7 +303,7 @@ export class UnknownBlockSync {
315
303
  block.status = PendingBlockStatus.pending;
316
304
  // parentSlot > finalizedSlot, continue downloading parent of parent
317
305
  block.downloadAttempts++;
318
- const errorData = { root: block.blockRootHex, attempts: block.downloadAttempts };
306
+ const errorData = { root: block.blockRootHex, attempts: block.downloadAttempts, unknownBlockType };
319
307
  if (block.downloadAttempts > MAX_ATTEMPTS_PER_BLOCK) {
320
308
  // Give up on this block and assume it does not exist, penalizing all peers as if it was a bad block
321
309
  this.logger.debug("Ignoring unknown block root after many failed downloads", errorData, res.err);
@@ -456,17 +444,27 @@ export class UnknownBlockSync {
456
444
  * along with the blobs (i.e. only some blobs are available)
457
445
  */
458
446
  async fetchUnavailableBlockInput(unavailableBlockInput, connectedPeers) {
459
- if (unavailableBlockInput.type !== BlockInputType.blobsPromise) {
447
+ if (unavailableBlockInput.block !== null && unavailableBlockInput.type !== BlockInputType.blobsPromise) {
460
448
  return { blockInput: unavailableBlockInput, peerIdStr: "" };
461
449
  }
462
450
  const shuffledPeers = shuffle(connectedPeers);
463
- const unavailableBlock = unavailableBlockInput.block;
464
- const blockRoot = this.config
465
- .getForkTypes(unavailableBlock.message.slot)
466
- .BeaconBlock.hashTreeRoot(unavailableBlock.message);
467
- const blockRootHex = toHexString(blockRoot);
468
- const blobKzgCommitmentsLen = unavailableBlock.message.body.blobKzgCommitments.length;
469
- const pendingBlobs = blobKzgCommitmentsLen - unavailableBlockInput.blobsCache.size;
451
+ let blockRootHex;
452
+ let pendingBlobs;
453
+ let blobKzgCommitmentsLen;
454
+ let blockRoot;
455
+ if (unavailableBlockInput.block === null) {
456
+ blockRootHex = unavailableBlockInput.blockRootHex;
457
+ blockRoot = fromHexString(blockRootHex);
458
+ }
459
+ else {
460
+ const unavailableBlock = unavailableBlockInput.block;
461
+ blockRoot = this.config
462
+ .getForkTypes(unavailableBlock.message.slot)
463
+ .BeaconBlock.hashTreeRoot(unavailableBlock.message);
464
+ blockRootHex = toHexString(blockRoot);
465
+ blobKzgCommitmentsLen = unavailableBlock.message.body.blobKzgCommitments.length;
466
+ pendingBlobs = blobKzgCommitmentsLen - unavailableBlockInput.blobsCache.size;
467
+ }
470
468
  let lastError = null;
471
469
  for (let i = 0; i < MAX_ATTEMPTS_PER_BLOCK; i++) {
472
470
  const peer = shuffledPeers[i % shuffledPeers.length];
@@ -482,7 +480,12 @@ export class UnknownBlockSync {
482
480
  if (!byteArrayEquals(receivedBlockRoot, blockRoot)) {
483
481
  throw Error(`Wrong block received by peer, got ${toHexString(receivedBlockRoot)} expected ${blockRootHex}`);
484
482
  }
485
- this.logger.debug("Fetched UnavailableBlockInput", { attempts: i, pendingBlobs, blobKzgCommitmentsLen });
483
+ if (unavailableBlockInput.block === null) {
484
+ this.logger.debug("Fetched NullBlockInput", { attempts: i, blockRootHex });
485
+ }
486
+ else {
487
+ this.logger.debug("Fetched UnavailableBlockInput", { attempts: i, pendingBlobs, blobKzgCommitmentsLen });
488
+ }
486
489
  return { blockInput, peerIdStr: peer };
487
490
  }
488
491
  catch (e) {