@lodestar/beacon-node 1.43.0-dev.2fba242f5d → 1.43.0-dev.35940ffd61

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 (71) hide show
  1. package/lib/api/impl/validator/index.d.ts.map +1 -1
  2. package/lib/api/impl/validator/index.js +2 -1
  3. package/lib/api/impl/validator/index.js.map +1 -1
  4. package/lib/chain/blocks/blockInput/blockInput.d.ts +3 -0
  5. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  6. package/lib/chain/blocks/blockInput/blockInput.js +4 -1
  7. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  8. package/lib/chain/blocks/importExecutionPayload.js +2 -2
  9. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  10. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +3 -0
  11. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
  12. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +4 -1
  13. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
  14. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts +2 -2
  15. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts.map +1 -1
  16. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +5 -2
  17. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -1
  18. package/lib/chain/chain.d.ts.map +1 -1
  19. package/lib/chain/chain.js +10 -9
  20. package/lib/chain/chain.js.map +1 -1
  21. package/lib/chain/errors/proposerPreferences.d.ts +8 -1
  22. package/lib/chain/errors/proposerPreferences.d.ts.map +1 -1
  23. package/lib/chain/errors/proposerPreferences.js +1 -0
  24. package/lib/chain/errors/proposerPreferences.js.map +1 -1
  25. package/lib/chain/prepareNextSlot.js +1 -1
  26. package/lib/chain/prepareNextSlot.js.map +1 -1
  27. package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -0
  28. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  29. package/lib/chain/produceBlock/produceBlockBody.js +1 -0
  30. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  31. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +7 -4
  32. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  33. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +30 -12
  34. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  35. package/lib/chain/seenCache/seenProposerPreferences.d.ts +8 -7
  36. package/lib/chain/seenCache/seenProposerPreferences.d.ts.map +1 -1
  37. package/lib/chain/seenCache/seenProposerPreferences.js +11 -10
  38. package/lib/chain/seenCache/seenProposerPreferences.js.map +1 -1
  39. package/lib/chain/validation/executionPayloadBid.js +11 -8
  40. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  41. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -1
  42. package/lib/chain/validation/proposerPreferences.js +39 -17
  43. package/lib/chain/validation/proposerPreferences.js.map +1 -1
  44. package/lib/network/gossip/topic.d.ts +2 -0
  45. package/lib/network/gossip/topic.d.ts.map +1 -1
  46. package/lib/sync/range/batch.d.ts.map +1 -1
  47. package/lib/sync/range/batch.js +54 -17
  48. package/lib/sync/range/batch.js.map +1 -1
  49. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  50. package/lib/sync/utils/downloadByRange.js +2 -4
  51. package/lib/sync/utils/downloadByRange.js.map +1 -1
  52. package/lib/util/sszBytes.d.ts.map +1 -1
  53. package/lib/util/sszBytes.js +8 -6
  54. package/lib/util/sszBytes.js.map +1 -1
  55. package/package.json +15 -15
  56. package/src/api/impl/validator/index.ts +2 -1
  57. package/src/chain/blocks/blockInput/blockInput.ts +4 -1
  58. package/src/chain/blocks/importExecutionPayload.ts +2 -2
  59. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +4 -1
  60. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +7 -2
  61. package/src/chain/chain.ts +12 -9
  62. package/src/chain/errors/proposerPreferences.ts +9 -1
  63. package/src/chain/prepareNextSlot.ts +1 -1
  64. package/src/chain/produceBlock/produceBlockBody.ts +2 -0
  65. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +43 -14
  66. package/src/chain/seenCache/seenProposerPreferences.ts +14 -11
  67. package/src/chain/validation/executionPayloadBid.ts +11 -8
  68. package/src/chain/validation/proposerPreferences.ts +37 -18
  69. package/src/sync/range/batch.ts +54 -19
  70. package/src/sync/utils/downloadByRange.ts +3 -5
  71. package/src/util/sszBytes.ts +8 -6
@@ -1,5 +1,6 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
- import { RootHex, Slot } from "@lodestar/types";
2
+ import { IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
3
+ import { RootHex } from "@lodestar/types";
3
4
  import { Logger } from "@lodestar/utils";
4
5
  import { Metrics } from "../../metrics/metrics.js";
5
6
  import { IClock } from "../../util/clock.js";
@@ -11,6 +12,7 @@ export { PayloadEnvelopeInput } from "../blocks/payloadEnvelopeInput/index.js";
11
12
  export type SeenPayloadEnvelopeInputModules = {
12
13
  config: ChainForkConfig;
13
14
  clock: IClock;
15
+ forkChoice: IForkChoice;
14
16
  chainEvents: ChainEventEmitter;
15
17
  signal: AbortSignal;
16
18
  serializedCache: SerializedCache;
@@ -33,19 +35,20 @@ export type SeenPayloadEnvelopeInputModules = {
33
35
  export declare class SeenPayloadEnvelopeInput {
34
36
  private readonly config;
35
37
  private readonly clock;
38
+ private readonly forkChoice;
36
39
  private readonly chainEvents;
37
40
  private readonly signal;
38
41
  private readonly serializedCache;
39
42
  private readonly metrics;
40
43
  private readonly logger?;
41
44
  private payloadInputs;
42
- constructor({ config, clock, chainEvents, signal, serializedCache, metrics, logger }: SeenPayloadEnvelopeInputModules);
43
- private onFinalized;
45
+ constructor({ config, clock, forkChoice, chainEvents, signal, serializedCache, metrics, logger }: SeenPayloadEnvelopeInputModules);
46
+ private pruneFinalized;
44
47
  add(props: Omit<CreateFromBlockProps, "daOutOfRange">): PayloadEnvelopeInput;
45
48
  get(blockRootHex: RootHex): PayloadEnvelopeInput | undefined;
46
49
  hasPayload(blockRootHex: RootHex): boolean;
47
50
  size(): number;
48
- pruneBelow(slot: Slot): void;
51
+ pruneBelowParent(parentBlock: ProtoBlock): void;
49
52
  private evictPayloadInput;
50
53
  }
51
54
  //# sourceMappingURL=seenPayloadEnvelopeInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"seenPayloadEnvelopeInput.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/seenPayloadEnvelopeInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAC,oBAAoB,EAAE,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AACnG,OAAO,EAAa,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAE5D,YAAY,EAAC,yBAAyB,EAAC,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAC,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AAE7E,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,aAAa,CAA4C;IAEjE,YAAY,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAC,EAAE,+BAA+B,EAyBlH;IAED,OAAO,CAAC,WAAW,CAEjB;IAEF,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,GAAG,oBAAoB,CAmB3E;IAED,GAAG,CAAC,YAAY,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS,CAE3D;IAED,UAAU,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAEzC;IAED,IAAI,IAAI,MAAM,CAEb;IAED,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAS3B;IAED,OAAO,CAAC,iBAAiB;CAI1B"}
1
+ {"version":3,"file":"seenPayloadEnvelopeInput.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/seenPayloadEnvelopeInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAoB,WAAW,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAC,oBAAoB,EAAE,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AACnG,OAAO,EAAa,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAE5D,YAAY,EAAC,yBAAyB,EAAC,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAC,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AAE7E,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,aAAa,CAA4C;IAEjE,YAAY,EACV,MAAM,EACN,KAAK,EACL,UAAU,EACV,WAAW,EACX,MAAM,EACN,eAAe,EACf,OAAO,EACP,MAAM,EACP,EAAE,+BAA+B,EA0BjC;IAED,OAAO,CAAC,cAAc,CAepB;IAEF,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,GAAG,oBAAoB,CAmB3E;IAED,GAAG,CAAC,YAAY,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS,CAE3D;IAED,UAAU,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAEzC;IAED,IAAI,IAAI,MAAM,CAEb;IAED,gBAAgB,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAa9C;IAED,OAAO,CAAC,iBAAiB;CAI1B"}
@@ -19,15 +19,17 @@ export { PayloadEnvelopeInput } from "../blocks/payloadEnvelopeInput/index.js";
19
19
  export class SeenPayloadEnvelopeInput {
20
20
  config;
21
21
  clock;
22
+ forkChoice;
22
23
  chainEvents;
23
24
  signal;
24
25
  serializedCache;
25
26
  metrics;
26
27
  logger;
27
28
  payloadInputs = new Map();
28
- constructor({ config, clock, chainEvents, signal, serializedCache, metrics, logger }) {
29
+ constructor({ config, clock, forkChoice, chainEvents, signal, serializedCache, metrics, logger, }) {
29
30
  this.config = config;
30
31
  this.clock = clock;
32
+ this.forkChoice = forkChoice;
31
33
  this.chainEvents = chainEvents;
32
34
  this.signal = signal;
33
35
  this.serializedCache = serializedCache;
@@ -39,13 +41,25 @@ export class SeenPayloadEnvelopeInput {
39
41
  metrics.seenCache.payloadEnvelopeInput.serializedObjectRefs.set(Array.from(this.payloadInputs.values()).reduce((count, payloadInput) => count + payloadInput.getSerializedCacheKeys().length, 0));
40
42
  });
41
43
  }
42
- this.chainEvents.on(ChainEvent.forkChoiceFinalized, this.onFinalized);
44
+ this.chainEvents.on(ChainEvent.forkChoiceFinalized, this.pruneFinalized);
43
45
  this.signal.addEventListener("abort", () => {
44
- this.chainEvents.off(ChainEvent.forkChoiceFinalized, this.onFinalized);
46
+ this.chainEvents.off(ChainEvent.forkChoiceFinalized, this.pruneFinalized);
45
47
  });
46
48
  }
47
- onFinalized = (checkpoint) => {
48
- this.pruneBelow(computeStartSlotAtEpoch(checkpoint.epoch));
49
+ pruneFinalized = (checkpoint) => {
50
+ const finalizedSlot = computeStartSlotAtEpoch(checkpoint.epoch);
51
+ let deletedCount = 0;
52
+ for (const [, input] of this.payloadInputs) {
53
+ if (input.slot < finalizedSlot) {
54
+ this.evictPayloadInput(input);
55
+ deletedCount++;
56
+ }
57
+ }
58
+ this.logger?.debug("SeenPayloadEnvelopeInput.pruneFinalized deleted entries", {
59
+ finalizedSlot,
60
+ finalizedRoot: checkpoint.rootHex,
61
+ deletedCount,
62
+ });
49
63
  };
50
64
  add(props) {
51
65
  const existing = this.payloadInputs.get(props.blockRootHex);
@@ -76,15 +90,19 @@ export class SeenPayloadEnvelopeInput {
76
90
  size() {
77
91
  return this.payloadInputs.size;
78
92
  }
79
- pruneBelow(slot) {
80
- let deletedCount = 0;
81
- for (const [, input] of this.payloadInputs) {
82
- if (input.slot < slot) {
83
- this.evictPayloadInput(input);
84
- deletedCount++;
93
+ pruneBelowParent(parentBlock) {
94
+ for (const block of this.forkChoice.getAllAncestorBlocks(parentBlock.blockRoot, parentBlock.payloadStatus)) {
95
+ if (block.slot < parentBlock.slot) {
96
+ const input = this.payloadInputs.get(block.blockRoot);
97
+ if (input) {
98
+ this.evictPayloadInput(input);
99
+ this.logger?.verbose("SeenPayloadEnvelopeInput.pruneBelowParent deleted", {
100
+ slot: block.slot,
101
+ root: block.blockRoot,
102
+ });
103
+ }
85
104
  }
86
105
  }
87
- this.logger?.debug("SeenPayloadEnvelopeInput.pruneBelow deleted entries", { slot, deletedCount });
88
106
  }
89
107
  evictPayloadInput(payloadInput) {
90
108
  this.serializedCache.delete(payloadInput.getSerializedCacheKeys());
@@ -1 +1 @@
1
- {"version":3,"file":"seenPayloadEnvelopeInput.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenPayloadEnvelopeInput.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seenPayloadEnvelopeInput.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenPayloadEnvelopeInput.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
- import { Slot, ValidatorIndex } from "@lodestar/types";
1
+ import { RootHex, Slot, ValidatorIndex } from "@lodestar/types";
2
2
  /**
3
- * Tracks signed proposer preferences we've already seen per (proposal_slot, validator_index).
3
+ * Tracks signed proposer preferences we've already seen per (dependent_root, proposal_slot, validator_index).
4
4
  */
5
5
  export declare class SeenProposerPreferences {
6
- private readonly validatorIndexesBySlot;
7
- isKnown(proposalSlot: Slot, validatorIndex: ValidatorIndex): boolean;
8
- add(proposalSlot: Slot, validatorIndex: ValidatorIndex): void;
6
+ private readonly validatorByDependentRootBySlot;
7
+ isKnown(dependentRoot: RootHex, proposalSlot: Slot, validatorIndex: ValidatorIndex): boolean;
8
+ add(dependentRoot: RootHex, proposalSlot: Slot, validatorIndex: ValidatorIndex): void;
9
9
  /**
10
- * Entries are only load-bearing while `proposal_slot > state.slot`. Once the slot has passed the
11
- * `[IGNORE] proposal_slot > state.slot` gossip rule takes over, so drop them on each slot tick.
10
+ * Entries are only load-bearing while `proposal_slot > current_slot`. Once the slot has
11
+ * passed the `[IGNORE] proposal_slot > current_slot` gossip rule takes over, so drop them
12
+ * on each slot tick.
12
13
  */
13
14
  prune(currentSlot: Slot): void;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"seenProposerPreferences.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/seenProposerPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAGrD;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA0E;IAEjH,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAEnE;IAED,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI,CAE5D;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAM7B;CACF"}
1
+ {"version":3,"file":"seenProposerPreferences.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/seenProposerPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAG9D;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAE7C;IAEF,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAE3F;IAED,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI,CAEpF;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAM7B;CACF"}
@@ -1,23 +1,24 @@
1
1
  import { MapDef } from "@lodestar/utils";
2
2
  /**
3
- * Tracks signed proposer preferences we've already seen per (proposal_slot, validator_index).
3
+ * Tracks signed proposer preferences we've already seen per (dependent_root, proposal_slot, validator_index).
4
4
  */
5
5
  export class SeenProposerPreferences {
6
- validatorIndexesBySlot = new MapDef(() => new Set());
7
- isKnown(proposalSlot, validatorIndex) {
8
- return this.validatorIndexesBySlot.get(proposalSlot)?.has(validatorIndex) === true;
6
+ validatorByDependentRootBySlot = new MapDef(() => new Map());
7
+ isKnown(dependentRoot, proposalSlot, validatorIndex) {
8
+ return this.validatorByDependentRootBySlot.get(proposalSlot)?.get(dependentRoot) === validatorIndex;
9
9
  }
10
- add(proposalSlot, validatorIndex) {
11
- this.validatorIndexesBySlot.getOrDefault(proposalSlot).add(validatorIndex);
10
+ add(dependentRoot, proposalSlot, validatorIndex) {
11
+ this.validatorByDependentRootBySlot.getOrDefault(proposalSlot).set(dependentRoot, validatorIndex);
12
12
  }
13
13
  /**
14
- * Entries are only load-bearing while `proposal_slot > state.slot`. Once the slot has passed the
15
- * `[IGNORE] proposal_slot > state.slot` gossip rule takes over, so drop them on each slot tick.
14
+ * Entries are only load-bearing while `proposal_slot > current_slot`. Once the slot has
15
+ * passed the `[IGNORE] proposal_slot > current_slot` gossip rule takes over, so drop them
16
+ * on each slot tick.
16
17
  */
17
18
  prune(currentSlot) {
18
- for (const slot of this.validatorIndexesBySlot.keys()) {
19
+ for (const slot of this.validatorByDependentRootBySlot.keys()) {
19
20
  if (slot < currentSlot) {
20
- this.validatorIndexesBySlot.delete(slot);
21
+ this.validatorByDependentRootBySlot.delete(slot);
21
22
  }
22
23
  }
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"seenProposerPreferences.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenProposerPreferences.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,uBAAuB;IACjB,sBAAsB,GAAG,IAAI,MAAM,CAA4B,GAAG,EAAE,CAAC,IAAI,GAAG,EAAkB,CAAC,CAAC;IAEjH,OAAO,CAAC,YAAkB,EAAE,cAA8B,EAAW;QACnE,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAAA,CACpF;IAED,GAAG,CAAC,YAAkB,EAAE,cAA8B,EAAQ;QAC5D,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAAA,CAC5E;IAED;;;OAGG;IACH,KAAK,CAAC,WAAiB,EAAQ;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC;YACtD,IAAI,IAAI,GAAG,WAAW,EAAE,CAAC;gBACvB,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IAAA,CACF;CACF"}
1
+ {"version":3,"file":"seenProposerPreferences.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenProposerPreferences.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,uBAAuB;IACjB,8BAA8B,GAAG,IAAI,MAAM,CAC1D,GAAG,EAAE,CAAC,IAAI,GAAG,EAA2B,CACzC,CAAC;IAEF,OAAO,CAAC,aAAsB,EAAE,YAAkB,EAAE,cAA8B,EAAW;QAC3F,OAAO,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,KAAK,cAAc,CAAC;IAAA,CACrG;IAED,GAAG,CAAC,aAAsB,EAAE,YAAkB,EAAE,cAA8B,EAAQ;QACpF,IAAI,CAAC,8BAA8B,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAAA,CACnG;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAiB,EAAQ;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9D,IAAI,IAAI,GAAG,WAAW,EAAE,CAAC;gBACvB,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IAAA,CACF;CACF"}
@@ -26,9 +26,12 @@ async function validateExecutionPayloadBid(chain, signedExecutionPayloadBid) {
26
26
  slot: bid.slot,
27
27
  });
28
28
  }
29
- // [IGNORE] the `SignedProposerPreferences` where `preferences.proposal_slot`
30
- // is equal to `bid.slot` has been seen.
31
- // TODO GLOAS: Implement this along with proposer preference
29
+ // [IGNORE] A `SignedProposerPreferences` matching `bid.slot` and the bid's branch has been
30
+ // seen i.e. `proposal_slot == bid.slot` AND `dependent_root ==
31
+ // get_proposer_dependent_root(parent_state, compute_epoch_at_slot(bid.slot))`,
32
+ // where `parent_state` is the post-state of `bid.parent_block_root`.
33
+ // This is the message referenced as `proposer_preferences` in the following REJECT rules.
34
+ // TODO GLOAS: Implement once a ProposerPreferencesPool exists.
32
35
  // [REJECT] `bid.builder_index` is a valid/active builder index -- i.e.
33
36
  // `is_active_builder(state, bid.builder_index)` returns `True`.
34
37
  const builder = state.getBuilder(bid.builderIndex);
@@ -46,11 +49,11 @@ async function validateExecutionPayloadBid(chain, signedExecutionPayloadBid) {
46
49
  executionPayment: bid.executionPayment,
47
50
  });
48
51
  }
49
- // [REJECT] `bid.fee_recipient` matches the `fee_recipient` from the proposer's
50
- // `SignedProposerPreferences` associated with `bid.slot`.
51
- // [REJECT] `bid.gas_limit` matches the `gas_limit` from the proposer's
52
- // `SignedProposerPreferences` associated with `bid.slot`.
53
- // TODO GLOAS: Implement this along with proposer preference
52
+ // [REJECT] `bid.fee_recipient == proposer_preferences.fee_recipient`.
53
+ // [REJECT] `bid.gas_limit == proposer_preferences.gas_limit`.
54
+ // Both compared against the matching `proposer_preferences` defined above (same branch
55
+ // via dependent_root, same proposal_slot).
56
+ // TODO GLOAS: Implement once a ProposerPreferencesPool exists.
54
57
  // [REJECT] The length of KZG commitments is less than or equal to the limitation defined in the
55
58
  // consensus layer -- i.e. validate that
56
59
  // `len(bid.blob_kzg_commitments) <= get_blob_parameters(compute_epoch_at_slot(bid.slot)).max_blobs_per_block`.
@@ -1 +1 @@
1
- {"version":3,"file":"executionPayloadBid.js","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadBid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executionPayloadBid.js","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadBid.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"proposerPreferences.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/proposerPreferences.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAGzC;;;GAGG;AACH,wBAAsB,iCAAiC,CACrD,KAAK,EAAE,YAAY,EACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,GACzD,OAAO,CAAC,IAAI,CAAC,CAuEf"}
1
+ {"version":3,"file":"proposerPreferences.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/proposerPreferences.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiB,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,wBAAsB,iCAAiC,CACrD,KAAK,EAAE,YAAY,EACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,GACzD,OAAO,CAAC,IAAI,CAAC,CA2Ff"}
@@ -1,14 +1,15 @@
1
1
  import { SLOTS_PER_EPOCH } from "@lodestar/params";
2
- import { computeEpochAtSlot, createSingleSignatureSetFromComponents, getProposerPreferencesSigningRoot, isStatePostGloas, } from "@lodestar/state-transition";
2
+ import { computeEpochAtSlot, createSingleSignatureSetFromComponents, getProposerPreferencesSigningRoot, } from "@lodestar/state-transition";
3
+ import { toRootHex } from "@lodestar/utils";
3
4
  import { GossipAction, ProposerPreferencesError, ProposerPreferencesErrorCode } from "../errors/index.js";
4
- import { RegenCaller } from "../regen/index.js";
5
5
  /**
6
6
  * Validates a gossiped `SignedProposerPreferences` per
7
7
  * https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/p2p-interface.md#proposer_preferences
8
8
  */
9
9
  export async function validateGossipProposerPreferences(chain, signedProposerPreferences) {
10
10
  const preferences = signedProposerPreferences.message;
11
- const { proposalSlot, validatorIndex } = preferences;
11
+ const { proposalSlot, validatorIndex, dependentRoot } = preferences;
12
+ const dependentRootHex = toRootHex(dependentRoot);
12
13
  const proposalEpoch = computeEpochAtSlot(proposalSlot);
13
14
  // [IGNORE] `preferences.proposal_slot` is in the current or next epoch.
14
15
  const currentEpoch = chain.clock.currentEpoch;
@@ -28,30 +29,51 @@ export async function validateGossipProposerPreferences(chain, signedProposerPre
28
29
  currentSlot,
29
30
  });
30
31
  }
31
- const state = await chain.getHeadStateAtCurrentEpoch(RegenCaller.validateGossipProposerPreferences);
32
- if (!isStatePostGloas(state)) {
33
- throw new Error(`Expected gloas+ state for proposer preferences validation, got fork=${state.forkName}`);
32
+ // [IGNORE] The block with root `dependent_root` has been seen by the node.
33
+ // Resolve the proposer lookahead for the message's branch via head state (fast path) or
34
+ // the previous-root checkpoint state (populated by `processSlotsToNearestCheckpoint` for
35
+ // any imported branch crossing into `proposalEpoch - 1`). The head-state path also handles
36
+ // narrow timing windows where the checkpoint state isn't yet populated.
37
+ const headState = chain.getHeadState();
38
+ let proposers = null;
39
+ if (headState.epoch === proposalEpoch && headState.currentDecisionRoot === dependentRootHex) {
40
+ proposers = headState.currentProposers;
34
41
  }
35
- // [REJECT] `preferences.validator_index` is present at the correct slot in the current or next
36
- // epoch's portion of `state.proposer_lookahead` — i.e. `is_valid_proposal_slot(state, preferences)`
37
- // returns True.
38
- const epochOffset = proposalEpoch - state.epoch;
39
- const proposers = epochOffset === 0 ? state.currentProposers : state.nextProposers;
40
- const expectedProposer = proposers[proposalSlot % SLOTS_PER_EPOCH];
41
- if (epochOffset < 0 || epochOffset > 1 || expectedProposer !== validatorIndex) {
42
+ else if (headState.epoch === proposalEpoch - 1 && headState.nextDecisionRoot === dependentRootHex) {
43
+ proposers = headState.nextProposers;
44
+ }
45
+ else {
46
+ // Sync lookup only to not trigger disk reload from gossip input.
47
+ const checkpointState = chain.regen.getCheckpointStateSync({ epoch: proposalEpoch - 1, rootHex: dependentRootHex });
48
+ if (checkpointState !== null) {
49
+ // State is at `proposalEpoch - 1`, so proposers for `proposalSlot` (next epoch from
50
+ // the state's perspective) live in `nextProposers`.
51
+ proposers = checkpointState.nextProposers;
52
+ }
53
+ }
54
+ if (proposers === null) {
55
+ throw new ProposerPreferencesError(GossipAction.IGNORE, {
56
+ code: ProposerPreferencesErrorCode.UNKNOWN_DEPENDENT_ROOT,
57
+ proposalSlot,
58
+ dependentRoot: dependentRootHex,
59
+ });
60
+ }
61
+ // [REJECT] `is_valid_proposal_slot(state, preferences)` returns True.
62
+ if (proposers[proposalSlot % SLOTS_PER_EPOCH] !== validatorIndex) {
42
63
  throw new ProposerPreferencesError(GossipAction.REJECT, {
43
64
  code: ProposerPreferencesErrorCode.INVALID_PROPOSER,
44
65
  proposalSlot,
45
66
  validatorIndex,
67
+ dependentRoot: dependentRootHex,
46
68
  });
47
69
  }
48
- // [IGNORE] The `signed_proposer_preferences` is the first valid message received from the validator
49
- // with index `preferences.validator_index` and the given slot `preferences.proposal_slot`.
50
- if (chain.seenProposerPreferences.isKnown(proposalSlot, validatorIndex)) {
70
+ // [IGNORE] First valid message for (dependent_root, proposal_slot, validator_index).
71
+ if (chain.seenProposerPreferences.isKnown(dependentRootHex, proposalSlot, validatorIndex)) {
51
72
  throw new ProposerPreferencesError(GossipAction.IGNORE, {
52
73
  code: ProposerPreferencesErrorCode.ALREADY_KNOWN,
53
74
  proposalSlot,
54
75
  validatorIndex,
76
+ dependentRoot: dependentRootHex,
55
77
  });
56
78
  }
57
79
  // [REJECT] `signed_proposer_preferences.signature` is valid with respect to the validator's public key.
@@ -64,6 +86,6 @@ export async function validateGossipProposerPreferences(chain, signedProposerPre
64
86
  });
65
87
  }
66
88
  // Valid
67
- chain.seenProposerPreferences.add(proposalSlot, validatorIndex);
89
+ chain.seenProposerPreferences.add(dependentRootHex, proposalSlot, validatorIndex);
68
90
  }
69
91
  //# sourceMappingURL=proposerPreferences.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proposerPreferences.js","sourceRoot":"","sources":["../../../src/chain/validation/proposerPreferences.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proposerPreferences.js","sourceRoot":"","sources":["../../../src/chain/validation/proposerPreferences.ts"],"names":[],"mappings":"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"}
@@ -319,6 +319,7 @@ export declare function getGossipSSZType(topic: GossipTopic): import("@chainsafe
319
319
  signature: import("@chainsafe/ssz").ByteVectorType;
320
320
  }> | import("@chainsafe/ssz").ContainerType<{
321
321
  message: import("@chainsafe/ssz").ContainerType<{
322
+ dependentRoot: import("@chainsafe/ssz").ByteVectorType;
322
323
  proposalSlot: import("@chainsafe/ssz").UintNumberType;
323
324
  validatorIndex: import("@chainsafe/ssz").UintNumberType;
324
325
  feeRecipient: import("@lodestar/types").ExecutionAddressType;
@@ -390,6 +391,7 @@ export declare function getGossipSSZType(topic: GossipTopic): import("@chainsafe
390
391
  }>;
391
392
  builderIndex: import("@chainsafe/ssz").UintNumberType;
392
393
  beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
394
+ parentBeaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
393
395
  }>;
394
396
  signature: import("@chainsafe/ssz").ByteVectorType;
395
397
  }> | import("@chainsafe/ssz").CompositeType<import("@chainsafe/ssz").ValueOfFields<{
@@ -1 +1 @@
1
- {"version":3,"file":"topic.d.ts","sourceRoot":"","sources":["../../../src/network/gossip/topic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAEL,QAAQ,EAMT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAmB,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAiB,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAE,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AAEjH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;CACzC;AAED,qBAAa,gBAAiB,YAAW,iBAAiB;IAG5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAF9C,OAAO,CAAC,gBAAgB,CAA4C;IAEpE,YAA6B,iBAAiB,EAAE,iBAAiB,EAAI;IAErE,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAQtC;IAED,8DAA8D;IAC9D,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEvD;IAED,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAInD;CACF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAKrG;AA+BD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2ClD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAOnH;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,GAAG,WAAW,CAMjG;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,GAAG,iBAAiB,CAS7G;AAMD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CA0D9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;CAAC,GACxE,kBAAkB,CAAC,MAAM,kBAAkB,CAAC,EAAE,CA4DhD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,aAAa,GAC3B,kBAAkB,CAAC,MAAM,kBAAkB,CAAC,EAAE,CAShD;AAgBD,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAkB9E,CAAC"}
1
+ {"version":3,"file":"topic.d.ts","sourceRoot":"","sources":["../../../src/network/gossip/topic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAEL,QAAQ,EAMT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAmB,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAiB,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAE,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AAEjH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;CACzC;AAED,qBAAa,gBAAiB,YAAW,iBAAiB;IAG5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAF9C,OAAO,CAAC,gBAAgB,CAA4C;IAEpE,YAA6B,iBAAiB,EAAE,iBAAiB,EAAI;IAErE,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAQtC;IAED,8DAA8D;IAC9D,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEvD;IAED,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAInD;CACF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAKrG;AA+BD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2ClD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAOnH;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,GAAG,WAAW,CAMjG;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,GAAG,iBAAiB,CAS7G;AAMD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CA0D9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;CAAC,GACxE,kBAAkB,CAAC,MAAM,kBAAkB,CAAC,EAAE,CA4DhD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,aAAa,GAC3B,kBAAkB,CAAC,MAAM,kBAAkB,CAAC,EAAE,CAShD;AAgBD,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAkB9E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/sync/range/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/sync/range/batch.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,7 @@ export class Batch {
113
113
  const neededColumns = new Set();
114
114
  const envelopesBySlot = this.state.payloadEnvelopes ?? new Map();
115
115
  // ensure blocks are in slot-wise order
116
+ const isPostGloas = isForkPostGloas(this.forkName);
116
117
  for (const blockInput of blocks) {
117
118
  const blockSlot = blockInput.slot;
118
119
  // check if block/data is present (hasBlock/hasAllData). If present then check if startSlot is the same as
@@ -128,20 +129,38 @@ export class Batch {
128
129
  if (blockInput.hasBlock() && blockStartSlot === blockSlot) {
129
130
  blockStartSlot = blockSlot + 1;
130
131
  }
131
- if (blockInput.hasBlock() &&
132
- envelopeStartSlot === blockSlot &&
133
- envelopesBySlot.get(blockSlot)?.hasPayloadEnvelope()) {
134
- envelopeStartSlot = blockSlot + 1;
135
- }
136
- if (!blockInput.hasAllData()) {
137
- if (isBlockInputColumns(blockInput)) {
138
- for (const index of blockInput.getMissingSampledColumnMeta().missing) {
132
+ // Range sync uses hasComputedAllData (all sampled columns physically present), not hasAllData
133
+ // which flips at the reconstruction threshold. Sync never triggers reconstruction, so accepting
134
+ // a half-downloaded block here makes writeBlockInputToDb later block on waitForComputedAllData.
135
+ if (isPostGloas) {
136
+ // Post-Gloas: column data lives on PayloadEnvelopeInput, not on BlockInputNoData.
137
+ const payloadInput = envelopesBySlot.get(blockSlot);
138
+ if (blockInput.hasBlock() && envelopeStartSlot === blockSlot && payloadInput?.hasPayloadEnvelope()) {
139
+ envelopeStartSlot = blockSlot + 1;
140
+ }
141
+ if (payloadInput && !payloadInput.hasComputedAllData()) {
142
+ for (const index of payloadInput.getMissingSampledColumnMeta().missing) {
139
143
  neededColumns.add(index);
140
144
  }
141
145
  }
146
+ else if (payloadInput?.hasComputedAllData() && dataStartSlot === blockSlot) {
147
+ // Only advance dataStartSlot when we know columns for this slot are complete. If
148
+ // payloadInput is missing entirely we cannot tell, so stop here so the next round
149
+ // re-requests columns (and envelopes) starting at this slot.
150
+ dataStartSlot = blockSlot + 1;
151
+ }
142
152
  }
143
- else if (dataStartSlot === blockSlot) {
144
- dataStartSlot = blockSlot + 1;
153
+ else {
154
+ if (isBlockInputColumns(blockInput) ? !blockInput.hasComputedAllData() : !blockInput.hasAllData()) {
155
+ if (isBlockInputColumns(blockInput)) {
156
+ for (const index of blockInput.getMissingSampledColumnMeta().missing) {
157
+ neededColumns.add(index);
158
+ }
159
+ }
160
+ }
161
+ else if (dataStartSlot === blockSlot) {
162
+ dataStartSlot = blockSlot + 1;
163
+ }
145
164
  }
146
165
  }
147
166
  // if the blockStartSlot or dataStartSlot is after the desired endSlot then no request will be made for the batch
@@ -160,11 +179,15 @@ export class Batch {
160
179
  // range of 40 - 63, startSlot will be inclusive but subtraction will exclusive so need to + 1
161
180
  const count = endSlot - dataStartSlot + 1;
162
181
  if (isForkPostFulu(this.forkName) && withinValidRequestWindow) {
163
- requests.columnsRequest = {
164
- count,
165
- startSlot: dataStartSlot,
166
- columns: Array.from(neededColumns),
167
- };
182
+ // Skip the column re-request when we have no specific column indices outstanding.
183
+ // Peer rejects an empty `columns` list
184
+ if (neededColumns.size > 0) {
185
+ requests.columnsRequest = {
186
+ count,
187
+ startSlot: dataStartSlot,
188
+ columns: Array.from(neededColumns),
189
+ };
190
+ }
168
191
  }
169
192
  else if (isForkPostDeneb(this.forkName) && withinValidRequestWindow) {
170
193
  requests.blobsRequest = {
@@ -269,7 +292,11 @@ export class Batch {
269
292
  const slots = new Set();
270
293
  for (const block of blocks) {
271
294
  slots.add(block.slot);
272
- if (!block.hasBlockAndAllData()) {
295
+ const dataComplete = isBlockInputColumns(block)
296
+ ? // by_range needs to download all columns
297
+ block.hasBlock() && block.hasComputedAllData()
298
+ : block.hasBlockAndAllData();
299
+ if (!dataComplete) {
273
300
  allComplete = false;
274
301
  }
275
302
  }
@@ -283,12 +310,22 @@ export class Batch {
283
310
  });
284
311
  }
285
312
  const newPayloadEnvelopes = payloadEnvelopes ?? this.state.payloadEnvelopes;
313
+ if (allComplete && isForkPostGloas(this.forkName)) {
314
+ for (const block of blocks) {
315
+ const payloadInput = newPayloadEnvelopes?.get(block.slot);
316
+ // by_range needs to download all columns
317
+ if (!payloadInput?.hasPayloadEnvelope() || !payloadInput.hasComputedAllData()) {
318
+ allComplete = false;
319
+ break;
320
+ }
321
+ }
322
+ }
286
323
  if (allComplete) {
287
324
  this.state = { status: BatchStatus.AwaitingProcessing, blocks, payloadEnvelopes: newPayloadEnvelopes };
288
325
  }
289
326
  else {
290
- this.requests = this.getRequests(blocks);
291
327
  this.state = { status: BatchStatus.AwaitingDownload, blocks, payloadEnvelopes: newPayloadEnvelopes };
328
+ this.requests = this.getRequests(blocks);
292
329
  }
293
330
  return this.state;
294
331
  }