@lodestar/beacon-node 1.43.0-dev.180030f946 → 1.43.0-dev.23543891df

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 (110) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +5 -4
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  5. package/lib/chain/blocks/verifyBlocksSanityChecks.js +15 -4
  6. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  7. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +2 -2
  8. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -1
  9. package/lib/chain/chain.d.ts +2 -1
  10. package/lib/chain/chain.d.ts.map +1 -1
  11. package/lib/chain/chain.js +3 -1
  12. package/lib/chain/chain.js.map +1 -1
  13. package/lib/chain/errors/index.d.ts +1 -0
  14. package/lib/chain/errors/index.d.ts.map +1 -1
  15. package/lib/chain/errors/index.js +1 -0
  16. package/lib/chain/errors/index.js.map +1 -1
  17. package/lib/chain/errors/proposerPreferences.d.ts +33 -0
  18. package/lib/chain/errors/proposerPreferences.d.ts.map +1 -0
  19. package/lib/chain/errors/proposerPreferences.js +13 -0
  20. package/lib/chain/errors/proposerPreferences.js.map +1 -0
  21. package/lib/chain/interface.d.ts +2 -1
  22. package/lib/chain/interface.d.ts.map +1 -1
  23. package/lib/chain/interface.js.map +1 -1
  24. package/lib/chain/opPools/payloadAttestationPool.d.ts +2 -2
  25. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  26. package/lib/chain/opPools/payloadAttestationPool.js +4 -4
  27. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  28. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  29. package/lib/chain/produceBlock/produceBlockBody.js +9 -4
  30. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  31. package/lib/chain/regen/interface.d.ts +1 -0
  32. package/lib/chain/regen/interface.d.ts.map +1 -1
  33. package/lib/chain/regen/interface.js +1 -0
  34. package/lib/chain/regen/interface.js.map +1 -1
  35. package/lib/chain/seenCache/index.d.ts +1 -0
  36. package/lib/chain/seenCache/index.d.ts.map +1 -1
  37. package/lib/chain/seenCache/index.js +1 -0
  38. package/lib/chain/seenCache/index.js.map +1 -1
  39. package/lib/chain/seenCache/seenProposerPreferences.d.ts +15 -0
  40. package/lib/chain/seenCache/seenProposerPreferences.d.ts.map +1 -0
  41. package/lib/chain/seenCache/seenProposerPreferences.js +25 -0
  42. package/lib/chain/seenCache/seenProposerPreferences.js.map +1 -0
  43. package/lib/chain/validation/proposerPreferences.d.ts +8 -0
  44. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -0
  45. package/lib/chain/validation/proposerPreferences.js +69 -0
  46. package/lib/chain/validation/proposerPreferences.js.map +1 -0
  47. package/lib/metrics/metrics/lodestar.d.ts +1 -0
  48. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  49. package/lib/metrics/metrics/lodestar.js +4 -0
  50. package/lib/metrics/metrics/lodestar.js.map +1 -1
  51. package/lib/network/gossip/interface.d.ts +7 -1
  52. package/lib/network/gossip/interface.d.ts.map +1 -1
  53. package/lib/network/gossip/interface.js +1 -0
  54. package/lib/network/gossip/interface.js.map +1 -1
  55. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  56. package/lib/network/gossip/scoringParameters.js +12 -1
  57. package/lib/network/gossip/scoringParameters.js.map +1 -1
  58. package/lib/network/gossip/topic.d.ts +27 -766
  59. package/lib/network/gossip/topic.d.ts.map +1 -1
  60. package/lib/network/gossip/topic.js +6 -0
  61. package/lib/network/gossip/topic.js.map +1 -1
  62. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  63. package/lib/network/processor/gossipHandlers.js +10 -6
  64. package/lib/network/processor/gossipHandlers.js.map +1 -1
  65. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  66. package/lib/network/processor/gossipQueues/index.js +5 -0
  67. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  68. package/lib/network/processor/index.d.ts.map +1 -1
  69. package/lib/network/processor/index.js +1 -0
  70. package/lib/network/processor/index.js.map +1 -1
  71. package/lib/sync/types.d.ts +34 -0
  72. package/lib/sync/types.d.ts.map +1 -1
  73. package/lib/sync/types.js +34 -0
  74. package/lib/sync/types.js.map +1 -1
  75. package/lib/sync/unknownBlock.d.ts +24 -1
  76. package/lib/sync/unknownBlock.d.ts.map +1 -1
  77. package/lib/sync/unknownBlock.js +649 -53
  78. package/lib/sync/unknownBlock.js.map +1 -1
  79. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  80. package/lib/sync/utils/downloadByRoot.js +6 -2
  81. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  82. package/lib/sync/utils/pendingBlocksTree.d.ts +0 -1
  83. package/lib/sync/utils/pendingBlocksTree.d.ts.map +1 -1
  84. package/lib/sync/utils/pendingBlocksTree.js +0 -9
  85. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  86. package/package.json +15 -15
  87. package/src/api/impl/beacon/blocks/index.ts +7 -4
  88. package/src/chain/blocks/verifyBlocksSanityChecks.ts +16 -7
  89. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +2 -2
  90. package/src/chain/chain.ts +3 -0
  91. package/src/chain/errors/index.ts +1 -0
  92. package/src/chain/errors/proposerPreferences.ts +39 -0
  93. package/src/chain/interface.ts +2 -0
  94. package/src/chain/opPools/payloadAttestationPool.ts +4 -8
  95. package/src/chain/produceBlock/produceBlockBody.ts +12 -4
  96. package/src/chain/regen/interface.ts +1 -0
  97. package/src/chain/seenCache/index.ts +1 -0
  98. package/src/chain/seenCache/seenProposerPreferences.ts +29 -0
  99. package/src/chain/validation/proposerPreferences.ts +91 -0
  100. package/src/metrics/metrics/lodestar.ts +4 -0
  101. package/src/network/gossip/interface.ts +6 -0
  102. package/src/network/gossip/scoringParameters.ts +14 -1
  103. package/src/network/gossip/topic.ts +6 -0
  104. package/src/network/processor/gossipHandlers.ts +15 -6
  105. package/src/network/processor/gossipQueues/index.ts +5 -0
  106. package/src/network/processor/index.ts +1 -0
  107. package/src/sync/types.ts +72 -0
  108. package/src/sync/unknownBlock.ts +810 -57
  109. package/src/sync/utils/downloadByRoot.ts +12 -2
  110. package/src/sync/utils/pendingBlocksTree.ts +0 -15
package/lib/sync/types.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { toRootHex } from "@lodestar/utils";
1
2
  export { PendingBlockType };
2
3
  var PendingBlockType;
3
4
  (function (PendingBlockType) {
@@ -24,13 +25,46 @@ var PendingBlockInputStatus;
24
25
  PendingBlockInputStatus["downloaded"] = "downloaded";
25
26
  PendingBlockInputStatus["processing"] = "processing";
26
27
  })(PendingBlockInputStatus || (PendingBlockInputStatus = {}));
28
+ export { PendingPayloadInputStatus };
29
+ var PendingPayloadInputStatus;
30
+ (function (PendingPayloadInputStatus) {
31
+ PendingPayloadInputStatus["pending"] = "pending";
32
+ PendingPayloadInputStatus["fetching"] = "fetching";
33
+ PendingPayloadInputStatus["waitingForBlock"] = "waiting_for_block";
34
+ PendingPayloadInputStatus["downloaded"] = "downloaded";
35
+ PendingPayloadInputStatus["processing"] = "processing";
36
+ })(PendingPayloadInputStatus || (PendingPayloadInputStatus = {}));
27
37
  export function isPendingBlockInput(pending) {
28
38
  return "blockInput" in pending;
29
39
  }
40
+ export function isPendingPayloadInput(pending) {
41
+ return "payloadInput" in pending;
42
+ }
43
+ export function isPendingPayloadEnvelope(pending) {
44
+ return "envelope" in pending;
45
+ }
30
46
  export function getBlockInputSyncCacheItemRootHex(block) {
31
47
  return isPendingBlockInput(block) ? block.blockInput.blockRootHex : block.rootHex;
32
48
  }
33
49
  export function getBlockInputSyncCacheItemSlot(block) {
34
50
  return isPendingBlockInput(block) ? block.blockInput.slot : "unknown";
35
51
  }
52
+ export function getPayloadSyncCacheItemRootHex(payload) {
53
+ if (isPendingPayloadInput(payload)) {
54
+ return payload.payloadInput.blockRootHex;
55
+ }
56
+ if (isPendingPayloadEnvelope(payload)) {
57
+ return toRootHex(payload.envelope.message.beaconBlockRoot);
58
+ }
59
+ return payload.rootHex;
60
+ }
61
+ export function getPayloadSyncCacheItemSlot(payload) {
62
+ if (isPendingPayloadInput(payload)) {
63
+ return payload.payloadInput.slot;
64
+ }
65
+ if (isPendingPayloadEnvelope(payload)) {
66
+ return payload.envelope.message.payload.slotNumber;
67
+ }
68
+ return "unknown";
69
+ }
36
70
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"SAGY,gBAAgB;AAA5B,IAAY,gBAgBX;AAhBD,WAAY,gBAAgB;IAC1B;;OAEG;IACH,2DAAuC,CAAA;IACvC;;OAEG;IACH,qDAAiC,CAAA;IACjC;;;OAGG;IACH,mEAA+C,CAAA;IAE/C,iDAA6B,CAAA;AAAC,CAChC,EAhBY,gBAAgB,KAAhB,gBAAgB,QAgB3B;SAEW,uBAAuB;AAAnC,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,8CAAmB,CAAA;IACnB,gDAAqB,CAAA;IACrB,oDAAyB,CAAA;IACzB,oDAAyB,CAAA;AAAC,CAC5B,EALY,uBAAuB,KAAvB,uBAAuB,QAKlC;AAoBD,MAAM,UAAU,mBAAmB,CAAC,OAAgC,EAAgC;IAClG,OAAO,YAAY,IAAI,OAAO,CAAC;AAAA,CAChC;AAED,MAAM,UAAU,iCAAiC,CAAC,KAA8B,EAAW;IACzF,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;AAAA,CACnF;AAED,MAAM,UAAU,8BAA8B,CAAC,KAA8B,EAAiB;IAC5F,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAAA,CACvE"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;SAI9B,gBAAgB;AAA5B,IAAY,gBAgBX;AAhBD,WAAY,gBAAgB;IAC1B;;OAEG;IACH,2DAAuC,CAAA;IACvC;;OAEG;IACH,qDAAiC,CAAA;IACjC;;;OAGG;IACH,mEAA+C,CAAA;IAE/C,iDAA6B,CAAA;AAAC,CAChC,EAhBY,gBAAgB,KAAhB,gBAAgB,QAgB3B;SAEW,uBAAuB;AAAnC,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,8CAAmB,CAAA;IACnB,gDAAqB,CAAA;IACrB,oDAAyB,CAAA;IACzB,oDAAyB,CAAA;AAAC,CAC5B,EALY,uBAAuB,KAAvB,uBAAuB,QAKlC;SAEW,yBAAyB;AAArC,IAAY,yBAMX;AAND,WAAY,yBAAyB;IACnC,gDAAmB,CAAA;IACnB,kDAAqB,CAAA;IACrB,kEAAqC,CAAA;IACrC,sDAAyB,CAAA;IACzB,sDAAyB,CAAA;AAAC,CAC5B,EANY,yBAAyB,KAAzB,yBAAyB,QAMpC;AAiDD,MAAM,UAAU,mBAAmB,CAAC,OAAgC,EAAgC;IAClG,OAAO,YAAY,IAAI,OAAO,CAAC;AAAA,CAChC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAA6B,EAAkC;IACnG,OAAO,cAAc,IAAI,OAAO,CAAC;AAAA,CAClC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAA6B,EAAqC;IACzG,OAAO,UAAU,IAAI,OAAO,CAAC;AAAA,CAC9B;AAED,MAAM,UAAU,iCAAiC,CAAC,KAA8B,EAAW;IACzF,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;AAAA,CACnF;AAED,MAAM,UAAU,8BAA8B,CAAC,KAA8B,EAAiB;IAC5F,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAAA,CACvE;AAED,MAAM,UAAU,8BAA8B,CAAC,OAA6B,EAAW;IACrF,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;IAC3C,CAAC;IAED,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC;AAAA,CACxB;AAED,MAAM,UAAU,2BAA2B,CAAC,OAA6B,EAAiB;IACxF,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IACrD,CAAC;IAED,OAAO,SAAS,CAAC;AAAA,CAClB"}
@@ -49,6 +49,7 @@ export declare class BlockInputSync {
49
49
  * block RootHex -> PendingBlock. To avoid finding same root at the same time
50
50
  */
51
51
  private readonly pendingBlocks;
52
+ private readonly pendingPayloads;
52
53
  private readonly knownBadBlocks;
53
54
  private readonly maxPendingBlocks;
54
55
  private subscribedToNetworkEvents;
@@ -66,20 +67,41 @@ export declare class BlockInputSync {
66
67
  * Process an unknownBlockInput event and register the block in `pendingBlocks` Map.
67
68
  */
68
69
  private onIncompleteBlockInput;
70
+ private onUnknownEnvelopeBlockRoot;
71
+ private onIncompletePayloadEnvelope;
69
72
  /**
70
73
  * Process an unknownBlockParent event and register the block in `pendingBlocks` Map.
71
74
  */
72
75
  private onUnknownParent;
76
+ private onEnvelopeUnknownBlock;
77
+ private onBlockImported;
78
+ private onPayloadImported;
73
79
  private addByRootHex;
74
80
  private addByBlockInput;
81
+ private addByPayloadRootHex;
82
+ private addByPayloadEnvelope;
83
+ private addByPayloadInput;
75
84
  private onPeerConnected;
76
85
  private onPeerDisconnected;
86
+ /**
87
+ * Post-gloas, a locally complete block can still be blocked on its parent's execution payload lineage.
88
+ * Distinguish which dependency is missing so the scheduler can enqueue the right follow-up work.
89
+ */
90
+ private getMissingBlockDependency;
91
+ private advancePendingBlock;
92
+ private toPendingPayloadInput;
77
93
  /**
78
94
  * Gather tip parent blocks with unknown parent and do a search for all of them
79
95
  */
80
96
  private triggerUnknownBlockSearch;
81
97
  private downloadBlock;
82
- private processBlock;
98
+ private processReadyBlock;
99
+ private reconcilePayloadEnvelope;
100
+ private downloadPayload;
101
+ private processPayload;
102
+ private fetchPayloadInput;
103
+ private fetchExecutionPayloadEnvelope;
104
+ private fetchPayloadColumns;
83
105
  private fetchBlockInput;
84
106
  /**
85
107
  * Gets all descendant blocks of `block` recursively from `pendingBlocks`.
@@ -88,6 +110,7 @@ export declare class BlockInputSync {
88
110
  * referenced more than one bad block.
89
111
  */
90
112
  private removeAndDownScoreAllDescendants;
113
+ private removePendingPayloadAndDescendants;
91
114
  private removeAllDescendants;
92
115
  private getMaxDownloadAttempts;
93
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"unknownBlock.d.ts","sourceRoot":"","sources":["../../src/sync/unknownBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAKjD,OAAO,EAAC,MAAM,EAA2C,MAAM,iBAAiB,CAAC;AAIjF,OAAO,EAA6B,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAC,QAAQ,EAAuD,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAK5C,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAyBzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,cAAc;IAWvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAfxB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+C;IAC7E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAClC,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,YAAY,CAA2B;IAE/C,YACmB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,IAAI,CAAC,yBAAa,EAapC;IAED,kBAAkB,IAAI,IAAI,CAgBzB;IAED,sBAAsB,IAAI,IAAI,CAQ7B;IAED,KAAK,IAAI,IAAI,CAEZ;IAED,qBAAqB,IAAI,OAAO,CAE/B;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB,CASxB;IAEF;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAS5B;IAEF;;OAEG;IACH,OAAO,CAAC,eAAe,CAUrB;IAEF,OAAO,CAAC,YAAY,CA2BlB;IAEF,OAAO,CAAC,eAAe,CA4BrB;IAEF,OAAO,CAAC,eAAe,CASrB;IAEF,OAAO,CAAC,kBAAkB,CAGxB;IAEF;;OAEG;IACH,OAAO,CAAC,yBAAyB,CA2C/B;YAEY,aAAa;YAkEb,YAAY;YAkHZ,eAAe;IA4I7B;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;IA4BxC,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,sBAAsB;CAY/B;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACnC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEhD,cAGC;IAED,qCAAqC;IACrC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAM/D;IAED,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAG1C;IAED;;;;OAIG;IACH,yBAAyB,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,YAAY,GAAG,IAAI,CAezG;IAED;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAEjC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE1C;IAED,sBAAsB,IAAI,MAAM,CAM/B;IAED,OAAO,CAAC,WAAW;CAgDpB"}
1
+ {"version":3,"file":"unknownBlock.d.ts","sourceRoot":"","sources":["../../src/sync/unknownBlock.ts"],"names":[],"mappings":"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"}