@lodestar/fork-choice 1.41.0-dev.e27085846c → 1.41.0-dev.e6c853da0e

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 (44) hide show
  1. package/lib/forkChoice/errors.d.ts +9 -1
  2. package/lib/forkChoice/errors.d.ts.map +1 -1
  3. package/lib/forkChoice/errors.js +4 -0
  4. package/lib/forkChoice/errors.js.map +1 -1
  5. package/lib/forkChoice/forkChoice.d.ts +74 -18
  6. package/lib/forkChoice/forkChoice.d.ts.map +1 -1
  7. package/lib/forkChoice/forkChoice.js +302 -117
  8. package/lib/forkChoice/forkChoice.js.map +1 -1
  9. package/lib/forkChoice/interface.d.ts +53 -20
  10. package/lib/forkChoice/interface.d.ts.map +1 -1
  11. package/lib/forkChoice/interface.js.map +1 -1
  12. package/lib/forkChoice/store.d.ts +40 -16
  13. package/lib/forkChoice/store.d.ts.map +1 -1
  14. package/lib/forkChoice/store.js +22 -4
  15. package/lib/forkChoice/store.js.map +1 -1
  16. package/lib/index.d.ts +4 -4
  17. package/lib/index.d.ts.map +1 -1
  18. package/lib/index.js +2 -2
  19. package/lib/index.js.map +1 -1
  20. package/lib/protoArray/computeDeltas.d.ts.map +1 -1
  21. package/lib/protoArray/computeDeltas.js +3 -0
  22. package/lib/protoArray/computeDeltas.js.map +1 -1
  23. package/lib/protoArray/errors.d.ts +15 -2
  24. package/lib/protoArray/errors.d.ts.map +1 -1
  25. package/lib/protoArray/errors.js +3 -0
  26. package/lib/protoArray/errors.js.map +1 -1
  27. package/lib/protoArray/interface.d.ts +33 -3
  28. package/lib/protoArray/interface.d.ts.map +1 -1
  29. package/lib/protoArray/interface.js +28 -0
  30. package/lib/protoArray/interface.js.map +1 -1
  31. package/lib/protoArray/protoArray.d.ts +217 -22
  32. package/lib/protoArray/protoArray.d.ts.map +1 -1
  33. package/lib/protoArray/protoArray.js +754 -133
  34. package/lib/protoArray/protoArray.js.map +1 -1
  35. package/package.json +7 -7
  36. package/src/forkChoice/errors.ts +7 -2
  37. package/src/forkChoice/forkChoice.ts +387 -127
  38. package/src/forkChoice/interface.ts +72 -20
  39. package/src/forkChoice/store.ts +52 -20
  40. package/src/index.ts +10 -2
  41. package/src/protoArray/computeDeltas.ts +6 -0
  42. package/src/protoArray/errors.ts +7 -1
  43. package/src/protoArray/interface.ts +48 -3
  44. package/src/protoArray/protoArray.ts +886 -134
@@ -9,6 +9,7 @@ export declare enum InvalidBlockCode {
9
9
  export type InvalidBlock = {
10
10
  code: InvalidBlockCode.UNKNOWN_PARENT;
11
11
  root: RootHex;
12
+ hash: RootHex | null;
12
13
  } | {
13
14
  code: InvalidBlockCode.FUTURE_SLOT;
14
15
  currentSlot: Slot;
@@ -60,7 +61,11 @@ export declare enum InvalidAttestationCode {
60
61
  * Attestations can only affect the fork choice of subsequent slots.
61
62
  * Delay consideration in the fork choice until their slot is in the past.
62
63
  */
63
- FUTURE_SLOT = "FUTURE_SLOT"
64
+ FUTURE_SLOT = "FUTURE_SLOT",
65
+ /**
66
+ * The attestation data index is invalid for a Gloas block (must be 0 or 1).
67
+ */
68
+ INVALID_DATA_INDEX = "INVALID_DATA_INDEX"
64
69
  }
65
70
  export type InvalidAttestation = {
66
71
  code: InvalidAttestationCode.EMPTY_AGGREGATION_BITFIELD;
@@ -94,6 +99,9 @@ export type InvalidAttestation = {
94
99
  code: InvalidAttestationCode.FUTURE_SLOT;
95
100
  attestationSlot: Slot;
96
101
  latestPermissibleSlot: Slot;
102
+ } | {
103
+ code: InvalidAttestationCode.INVALID_DATA_INDEX;
104
+ index: number;
97
105
  };
98
106
  export declare enum ForkChoiceErrorCode {
99
107
  INVALID_ATTESTATION = "FORKCHOICE_ERROR_INVALID_ATTESTATION",
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/forkChoice/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/forkChoice/errors.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,10 @@ export var InvalidAttestationCode;
46
46
  * Delay consideration in the fork choice until their slot is in the past.
47
47
  */
48
48
  InvalidAttestationCode["FUTURE_SLOT"] = "FUTURE_SLOT";
49
+ /**
50
+ * The attestation data index is invalid for a Gloas block (must be 0 or 1).
51
+ */
52
+ InvalidAttestationCode["INVALID_DATA_INDEX"] = "INVALID_DATA_INDEX";
49
53
  })(InvalidAttestationCode || (InvalidAttestationCode = {}));
50
54
  export var ForkChoiceErrorCode;
51
55
  (function (ForkChoiceErrorCode) {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/forkChoice/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,qDAAiC,CAAA;IACjC,+CAA2B,CAAA;IAC3B,qDAAiC,CAAA;IACjC,yEAAqD,CAAA;AACvD,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAQD,MAAM,CAAN,IAAY,sBAuCX;AAvCD,WAAY,sBAAsB;IAChC;;OAEG;IACH,mFAAyD,CAAA;IACzD;;OAEG;IACH,mEAAyC,CAAA;IACzC;;;OAGG;IACH,+DAAqC,CAAA;IACrC;;OAEG;IACH,qEAA2C,CAAA;IAC3C;;OAEG;IACH,uDAA6B,CAAA;IAC7B;;OAEG;IACH,mDAAyB,CAAA;IACzB;;OAEG;IACH,2DAAiC,CAAA;IACjC;;OAEG;IACH,6EAAmD,CAAA;IACnD;;;OAGG;IACH,qDAA2B,CAAA;AAC7B,CAAC,EAvCW,sBAAsB,KAAtB,sBAAsB,QAuCjC;AAaD,MAAM,CAAN,IAAY,mBAaX;AAbD,WAAY,mBAAmB;IAC7B,mFAA4D,CAAA;IAC5D,uEAAgD,CAAA;IAChD,+EAAwD,CAAA;IACxD,+FAAwE,CAAA;IACxE,+FAAwE,CAAA;IACxE,6EAAsD,CAAA;IACtD,qFAA8D,CAAA;IAC9D,iFAA0D,CAAA;IAC1D,2GAAoF,CAAA;IACpF,2FAAoE,CAAA;IACpE,iHAA0F,CAAA;IAC1F,iFAA0D,CAAA;AAC5D,CAAC,EAbW,mBAAmB,KAAnB,mBAAmB,QAa9B;AAgBD,MAAM,OAAO,eAAgB,SAAQ,aAAkC;CAAG"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/forkChoice/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,qDAAiC,CAAA;IACjC,+CAA2B,CAAA;IAC3B,qDAAiC,CAAA;IACjC,yEAAqD,CAAA;AACvD,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAQD,MAAM,CAAN,IAAY,sBA2CX;AA3CD,WAAY,sBAAsB;IAChC;;OAEG;IACH,mFAAyD,CAAA;IACzD;;OAEG;IACH,mEAAyC,CAAA;IACzC;;;OAGG;IACH,+DAAqC,CAAA;IACrC;;OAEG;IACH,qEAA2C,CAAA;IAC3C;;OAEG;IACH,uDAA6B,CAAA;IAC7B;;OAEG;IACH,mDAAyB,CAAA;IACzB;;OAEG;IACH,2DAAiC,CAAA;IACjC;;OAEG;IACH,6EAAmD,CAAA;IACnD;;;OAGG;IACH,qDAA2B,CAAA;IAC3B;;OAEG;IACH,mEAAyC,CAAA;AAC3C,CAAC,EA3CW,sBAAsB,KAAtB,sBAAsB,QA2CjC;AAcD,MAAM,CAAN,IAAY,mBAaX;AAbD,WAAY,mBAAmB;IAC7B,mFAA4D,CAAA;IAC5D,uEAAgD,CAAA;IAChD,+EAAwD,CAAA;IACxD,+FAAwE,CAAA;IACxE,+FAAwE,CAAA;IACxE,6EAAsD,CAAA;IACtD,qFAA8D,CAAA;IAC9D,iFAA0D,CAAA;IAC1D,2GAAoF,CAAA;IACpF,2FAAoE,CAAA;IACpE,iHAA0F,CAAA;IAC1F,iFAA0D,CAAA;AAC5D,CAAC,EAbW,mBAAmB,KAAnB,mBAAmB,QAa9B;AAgBD,MAAM,OAAO,eAAgB,SAAQ,aAAkC;CAAG"}
@@ -3,10 +3,10 @@ import { CachedBeaconStateAllForks, DataAvailabilityStatus } from "@lodestar/sta
3
3
  import { AttesterSlashing, BeaconBlock, IndexedAttestation, Root, RootHex, Slot } from "@lodestar/types";
4
4
  import { Logger } from "@lodestar/utils";
5
5
  import { ForkChoiceMetrics } from "../metrics.js";
6
- import { LVHExecResponse, MaybeValidExecutionStatus, ProtoBlock, ProtoNode } from "../protoArray/interface.js";
6
+ import { LVHExecResponse, MaybeValidExecutionStatus, PayloadStatus, ProtoBlock, ProtoNode } from "../protoArray/interface.js";
7
7
  import { ProtoArray } from "../protoArray/protoArray.js";
8
8
  import { AncestorResult, EpochDifference, IForkChoice, NotReorgedReason, ShouldOverrideForkChoiceUpdateResult } from "./interface.js";
9
- import { CheckpointWithHex, IForkChoiceStore } from "./store.js";
9
+ import { CheckpointWithPayloadStatus, IForkChoiceStore } from "./store.js";
10
10
  export type ForkChoiceOpts = {
11
11
  proposerBoost?: boolean;
12
12
  proposerBoostReorg?: boolean;
@@ -56,14 +56,24 @@ export declare class ForkChoice implements IForkChoice {
56
56
  irrecoverableError?: Error;
57
57
  /**
58
58
  * Votes currently tracked in the protoArray. Instead of tracking a VoteTracker of currentIndex, nextIndex and epoch,
59
- * we decompose the struct and track them in 3 separate arrays for performance reason.
59
+ * we decompose the struct and track them in separate arrays for performance reason.
60
+ *
61
+ * For Gloas (ePBS), LatestMessage tracks slot instead of epoch and includes payload_present flag.
62
+ * Spec: gloas/fork-choice.md#modified-latestmessage
63
+ *
64
+ * IMPORTANT: voteCurrentIndices and voteNextIndices point to the EXACT variant node index.
65
+ * The payload status is encoded in the node index itself (different variants have different indices).
66
+ * For example, if a validator votes for the EMPTY variant, voteNextIndices[i] points to that specific EMPTY node.
60
67
  */
61
68
  private readonly voteCurrentIndices;
62
69
  private readonly voteNextIndices;
63
- private readonly voteNextEpochs;
70
+ private readonly voteNextSlots;
64
71
  /**
65
72
  * Attestations that arrived at the current slot and must be queued for later processing.
66
73
  * NOT currently tracked in the protoArray
74
+ *
75
+ * Modified for Gloas to track PayloadStatus per validator.
76
+ * Maps: Slot -> BlockRoot -> ValidatorIndex -> PayloadStatus
67
77
  */
68
78
  private readonly queuedAttestations;
69
79
  /**
@@ -103,7 +113,7 @@ export declare class ForkChoice implements IForkChoice {
103
113
  *
104
114
  * https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/fork-choice.md#get_ancestor
105
115
  */
106
- getAncestor(blockRoot: RootHex, ancestorSlot: Slot): RootHex;
116
+ getAncestor(blockRoot: RootHex, ancestorSlot: Slot): ProtoNode;
107
117
  /**
108
118
  * Get the cached head root
109
119
  */
@@ -127,7 +137,7 @@ export declare class ForkChoice implements IForkChoice {
127
137
  isHeadTimely?: boolean;
128
138
  notReorgedReason?: NotReorgedReason;
129
139
  };
130
- shouldOverrideForkChoiceUpdate(blockRoot: RootHex, secFromSlot: number, currentSlot: Slot): ShouldOverrideForkChoiceUpdateResult;
140
+ shouldOverrideForkChoiceUpdate(headBlock: ProtoBlock, secFromSlot: number, currentSlot: Slot): ShouldOverrideForkChoiceUpdateResult;
131
141
  /**
132
142
  * Get the proposer boost root
133
143
  */
@@ -179,8 +189,8 @@ export declare class ForkChoice implements IForkChoice {
179
189
  getHeads(): ProtoBlock[];
180
190
  /** This is for the debug API only */
181
191
  getAllNodes(): ProtoNode[];
182
- getFinalizedCheckpoint(): CheckpointWithHex;
183
- getJustifiedCheckpoint(): CheckpointWithHex;
192
+ getFinalizedCheckpoint(): CheckpointWithPayloadStatus;
193
+ getJustifiedCheckpoint(): CheckpointWithPayloadStatus;
184
194
  /**
185
195
  * Add `block` to the fork choice DAG.
186
196
  *
@@ -226,6 +236,18 @@ export declare class ForkChoice implements IForkChoice {
226
236
  * in state transition so no need to do it again
227
237
  */
228
238
  onAttesterSlashing(attesterSlashing: AttesterSlashing): void;
239
+ /**
240
+ * Process a PTC (Payload Timeliness Committee) message
241
+ * Updates the PTC votes for multiple validators attesting to a block
242
+ * Spec: gloas/fork-choice.md#new-on_payload_attestation_message
243
+ */
244
+ notifyPtcMessages(blockRoot: RootHex, ptcIndices: number[], payloadPresent: boolean): void;
245
+ /**
246
+ * Notify fork choice that an execution payload has arrived (Gloas fork)
247
+ * Creates the FULL variant of a Gloas block when the payload becomes available
248
+ * Spec: gloas/fork-choice.md#new-on_execution_payload
249
+ */
250
+ onExecutionPayload(blockRoot: RootHex, executionPayloadBlockHash: RootHex, executionPayloadNumber: number, executionPayloadStateRoot: RootHex): void;
229
251
  /**
230
252
  * Call `onTick` for all slots between `fcStore.getCurrentSlot()` and the provided `currentSlot`.
231
253
  * This should only be called once per slot because:
@@ -239,9 +261,11 @@ export declare class ForkChoice implements IForkChoice {
239
261
  /** Returns `true` if the block is known **and** a descendant of the finalized root. */
240
262
  hasBlock(blockRoot: Root): boolean;
241
263
  /** Returns a `ProtoBlock` if the block is known **and** a descendant of the finalized root. */
242
- getBlock(blockRoot: Root): ProtoBlock | null;
264
+ getBlock(blockRoot: Root, payloadStatus: PayloadStatus): ProtoBlock | null;
265
+ getBlockDefaultStatus(blockRoot: Root): ProtoBlock | null;
243
266
  /**
244
267
  * Returns `true` if the block is known **and** a descendant of the finalized root.
268
+ * Uses default variant (PENDING for Gloas, FULL for pre-Gloas).
245
269
  */
246
270
  hasBlockHex(blockRoot: RootHex): boolean;
247
271
  /**
@@ -255,7 +279,20 @@ export declare class ForkChoice implements IForkChoice {
255
279
  /**
256
280
  * Returns a MUTABLE `ProtoBlock` if the block is known **and** a descendant of the finalized root.
257
281
  */
258
- getBlockHex(blockRoot: RootHex): ProtoBlock | null;
282
+ getBlockHex(blockRoot: RootHex, payloadStatus: PayloadStatus): ProtoBlock | null;
283
+ /**
284
+ * Returns a `ProtoBlock` with the default variant for the given block root
285
+ * - Pre-Gloas blocks: returns FULL variant (only variant)
286
+ * - Gloas blocks: returns PENDING variant
287
+ *
288
+ * Use this when you need the canonical block reference regardless of payload status.
289
+ * For searching by execution payload hash and variant-specific info, use `getBlockHexAndBlockHash` instead.
290
+ */
291
+ getBlockHexDefaultStatus(blockRoot: RootHex): ProtoBlock | null;
292
+ /**
293
+ * Returns EMPTY or FULL `ProtoBlock` that has matching block root and block hash
294
+ */
295
+ getBlockHexAndBlockHash(blockRoot: RootHex, blockHash: RootHex): ProtoBlock | null;
259
296
  getJustifiedBlock(): ProtoBlock;
260
297
  getFinalizedBlock(): ProtoBlock;
261
298
  getFinalizedCheckpointSlot(): Slot;
@@ -265,7 +302,7 @@ export declare class ForkChoice implements IForkChoice {
265
302
  * Always returns `false` if either input roots are unknown.
266
303
  * Still returns `true` if `ancestorRoot===descendantRoot` (and the roots are known)
267
304
  */
268
- isDescendant(ancestorRoot: RootHex, descendantRoot: RootHex): boolean;
305
+ isDescendant(ancestorRoot: RootHex, ancestorPayloadStatus: PayloadStatus, descendantRoot: RootHex, descendantPayloadStatus: PayloadStatus): boolean;
269
306
  /**
270
307
  * All indices in votes are relative to proto array so always keep it up to date
271
308
  */
@@ -275,28 +312,29 @@ export declare class ForkChoice implements IForkChoice {
275
312
  * Iterates backwards through block summaries, starting from a block root.
276
313
  * Return only the non-finalized blocks.
277
314
  */
278
- iterateAncestorBlocks(blockRoot: RootHex): IterableIterator<ProtoBlock>;
315
+ iterateAncestorBlocks(blockRoot: RootHex, payloadStatus: PayloadStatus): IterableIterator<ProtoBlock>;
279
316
  /**
280
317
  * Returns all blocks backwards starting from a block root.
281
318
  * Return only the non-finalized blocks.
282
319
  */
283
- getAllAncestorBlocks(blockRoot: RootHex): ProtoBlock[];
320
+ getAllAncestorBlocks(blockRoot: RootHex, payloadStatus: PayloadStatus): ProtoBlock[];
284
321
  /**
285
322
  * The same to iterateAncestorBlocks but this gets non-ancestor nodes instead of ancestor nodes.
286
323
  */
287
- getAllNonAncestorBlocks(blockRoot: RootHex): ProtoBlock[];
324
+ getAllNonAncestorBlocks(blockRoot: RootHex, payloadStatus: PayloadStatus): ProtoBlock[];
288
325
  /**
289
326
  * Returns both ancestor and non-ancestor blocks in a single traversal.
290
327
  */
291
- getAllAncestorAndNonAncestorBlocks(blockRoot: RootHex): {
328
+ getAllAncestorAndNonAncestorBlocks(blockRoot: RootHex, payloadStatus: PayloadStatus): {
292
329
  ancestors: ProtoBlock[];
293
330
  nonAncestors: ProtoBlock[];
294
331
  };
332
+ getCanonicalBlockByRoot(blockRoot: Root): ProtoBlock | null;
295
333
  getCanonicalBlockAtSlot(slot: Slot): ProtoBlock | null;
296
334
  getCanonicalBlockClosestLteSlot(slot: Slot): ProtoBlock | null;
297
335
  /** Very expensive function, iterates the entire ProtoArray. TODO: Is this function even necessary? */
298
336
  forwarditerateAncestorBlocks(): ProtoBlock[];
299
- forwardIterateDescendants(blockRoot: RootHex): IterableIterator<ProtoBlock>;
337
+ forwardIterateDescendants(blockRoot: RootHex, payloadStatus: PayloadStatus): IterableIterator<ProtoBlock>;
300
338
  /** Very expensive function, iterates the entire ProtoArray. TODO: Is this function even necessary? */
301
339
  getBlockSummariesByParentRoot(parentRoot: RootHex): ProtoBlock[];
302
340
  /** Very expensive function, iterates the entire ProtoArray. TODO: Is this function even necessary? */
@@ -339,7 +377,8 @@ export declare class ForkChoice implements IForkChoice {
339
377
  private isProposingOnTime;
340
378
  private getPreMergeExecStatus;
341
379
  private getPreMergeDataStatus;
342
- private getPostMergeExecStatus;
380
+ private getPreGloasExecStatus;
381
+ private getPostGloasExecStatus;
343
382
  /**
344
383
  * Why `getJustifiedBalances` getter?
345
384
  * - updateCheckpoints() is called in both on_block and on_tick.
@@ -357,7 +396,7 @@ export declare class ForkChoice implements IForkChoice {
357
396
  *
358
397
  * **`on_tick`**
359
398
  * May need the justified balances of:
360
- * - unrealizedJustified: Already available in `CheckpointHexWithBalance`
399
+ * - unrealizedJustified: Already available in `CheckpointWithPayloadAndBalance`
361
400
  * Since this balances are already available the getter is just `() => balances`, without cache interaction
362
401
  */
363
402
  private updateCheckpoints;
@@ -379,6 +418,13 @@ export declare class ForkChoice implements IForkChoice {
379
418
  /**
380
419
  * Add a validator's latest message to the tracked votes.
381
420
  * Always sync voteCurrentIndices and voteNextIndices so that it'll not throw in computeDeltas()
421
+ *
422
+ * Modified for Gloas to accept slot and payloadPresent.
423
+ * Spec: gloas/fork-choice.md#modified-update_latest_messages
424
+ *
425
+ * For backward compatibility with Fulu (pre-Gloas):
426
+ * - Accepts both epoch-derived and slot parameters
427
+ * - payloadPresent defaults to true for Fulu (payloads embedded in blocks)
382
428
  */
383
429
  private addLatestMessage;
384
430
  /**
@@ -408,4 +454,14 @@ export declare function getCommitteeFraction(justifiedTotalActiveBalanceByIncrem
408
454
  slotsPerEpoch: number;
409
455
  committeePercent: number;
410
456
  }): number;
457
+ /**
458
+ * Get the payload status for a checkpoint.
459
+ *
460
+ * Pre-Gloas: always FULL (payload embedded in block)
461
+ * Gloas: determined by state.execution_payload_availability
462
+ *
463
+ * @param state - The state to check execution_payload_availability
464
+ * @param checkpointEpoch - The epoch of the checkpoint
465
+ */
466
+ export declare function getCheckpointPayloadStatus(state: CachedBeaconStateAllForks, checkpointEpoch: number): PayloadStatus;
411
467
  //# sourceMappingURL=forkChoice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"forkChoice.d.ts","sourceRoot":"","sources":["../../src/forkChoice/forkChoice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forkChoice.d.ts","sourceRoot":"","sources":["../../src/forkChoice/forkChoice.ts"],"names":[],"mappings":"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"}