@lodestar/beacon-node 1.48.0-dev.605fa5a360 → 1.48.0-dev.60b5607f3a

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 (93) hide show
  1. package/lib/api/impl/validator/index.d.ts.map +1 -1
  2. package/lib/api/impl/validator/index.js +39 -39
  3. package/lib/api/impl/validator/index.js.map +1 -1
  4. package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +1 -1
  5. package/lib/chain/archiveStore/historicalState/metrics.js +12 -1
  6. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  7. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  8. package/lib/chain/blocks/importBlock.js +0 -13
  9. package/lib/chain/blocks/importBlock.js.map +1 -1
  10. package/lib/chain/blocks/utils/chainSegment.d.ts +1 -1
  11. package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
  12. package/lib/chain/blocks/utils/chainSegment.js +10 -1
  13. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  14. package/lib/chain/chain.d.ts +5 -0
  15. package/lib/chain/chain.d.ts.map +1 -1
  16. package/lib/chain/chain.js +67 -38
  17. package/lib/chain/chain.js.map +1 -1
  18. package/lib/chain/emitter.d.ts +1 -1
  19. package/lib/chain/emitter.js +1 -1
  20. package/lib/chain/errors/blockError.d.ts +3 -5
  21. package/lib/chain/errors/blockError.d.ts.map +1 -1
  22. package/lib/chain/errors/blockError.js +2 -2
  23. package/lib/chain/errors/blockError.js.map +1 -1
  24. package/lib/chain/errors/executionPayloadEnvelope.d.ts +0 -11
  25. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  26. package/lib/chain/errors/executionPayloadEnvelope.js +0 -2
  27. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  28. package/lib/chain/errors/gossipValidation.d.ts +2 -1
  29. package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
  30. package/lib/chain/errors/gossipValidation.js +1 -0
  31. package/lib/chain/errors/gossipValidation.js.map +1 -1
  32. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  33. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  34. package/lib/chain/prepareNextSlot.js +13 -13
  35. package/lib/chain/prepareNextSlot.js.map +1 -1
  36. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  37. package/lib/chain/produceBlock/produceBlockBody.js +46 -64
  38. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  39. package/lib/chain/validation/block.d.ts.map +1 -1
  40. package/lib/chain/validation/block.js +9 -50
  41. package/lib/chain/validation/block.js.map +1 -1
  42. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  43. package/lib/chain/validation/executionPayloadEnvelope.js +0 -29
  44. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  45. package/lib/chain/validatorMonitor.d.ts +7 -1
  46. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  47. package/lib/chain/validatorMonitor.js +22 -5
  48. package/lib/chain/validatorMonitor.js.map +1 -1
  49. package/lib/execution/engine/mock.d.ts.map +1 -1
  50. package/lib/execution/engine/mock.js +4 -1
  51. package/lib/execution/engine/mock.js.map +1 -1
  52. package/lib/network/gossip/encoding.d.ts.map +1 -1
  53. package/lib/network/gossip/encoding.js +0 -6
  54. package/lib/network/gossip/encoding.js.map +1 -1
  55. package/lib/network/gossip/topic.d.ts +2 -1
  56. package/lib/network/gossip/topic.d.ts.map +1 -1
  57. package/lib/network/gossip/topic.js +4 -20
  58. package/lib/network/gossip/topic.js.map +1 -1
  59. package/lib/network/processor/index.d.ts +49 -3
  60. package/lib/network/processor/index.d.ts.map +1 -1
  61. package/lib/network/processor/index.js +243 -98
  62. package/lib/network/processor/index.js.map +1 -1
  63. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  64. package/lib/network/reqresp/protocols.js +6 -22
  65. package/lib/network/reqresp/protocols.js.map +1 -1
  66. package/lib/network/reqresp/rateLimit.js +2 -1
  67. package/lib/network/reqresp/rateLimit.js.map +1 -1
  68. package/lib/sync/range/range.d.ts.map +1 -1
  69. package/lib/sync/range/range.js +3 -1
  70. package/lib/sync/range/range.js.map +1 -1
  71. package/package.json +15 -15
  72. package/src/api/impl/validator/index.ts +44 -43
  73. package/src/chain/archiveStore/historicalState/metrics.ts +14 -1
  74. package/src/chain/blocks/importBlock.ts +0 -13
  75. package/src/chain/blocks/utils/chainSegment.ts +10 -1
  76. package/src/chain/chain.ts +74 -46
  77. package/src/chain/emitter.ts +1 -1
  78. package/src/chain/errors/blockError.ts +3 -3
  79. package/src/chain/errors/executionPayloadEnvelope.ts +0 -9
  80. package/src/chain/errors/gossipValidation.ts +1 -0
  81. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  82. package/src/chain/prepareNextSlot.ts +16 -16
  83. package/src/chain/produceBlock/produceBlockBody.ts +50 -71
  84. package/src/chain/validation/block.ts +9 -66
  85. package/src/chain/validation/executionPayloadEnvelope.ts +0 -37
  86. package/src/chain/validatorMonitor.ts +24 -7
  87. package/src/execution/engine/mock.ts +4 -1
  88. package/src/network/gossip/encoding.ts +0 -6
  89. package/src/network/gossip/topic.ts +3 -25
  90. package/src/network/processor/index.ts +276 -148
  91. package/src/network/reqresp/protocols.ts +7 -24
  92. package/src/network/reqresp/rateLimit.ts +2 -1
  93. package/src/sync/range/range.ts +3 -1
@@ -123,9 +123,6 @@ export class DataTransformSnappy implements DataTransform {
123
123
  if (uncompressedDataLength > maxSize) {
124
124
  throw Error(`ssz_snappy decoded data length ${uncompressedDataLength} > ${maxSize}`);
125
125
  }
126
- if (uncompressedDataLength > sszType.maxSize) {
127
- throw Error(`ssz_snappy decoded data length ${uncompressedDataLength} > ${sszType.maxSize}`);
128
- }
129
126
 
130
127
  // Only after sanity length checks, we can decompress the data
131
128
  // Using Buffer.alloc() instead of Buffer.allocUnsafe() to mitigate high GC pressure observed in some environments
@@ -146,9 +143,6 @@ export class DataTransformSnappy implements DataTransform {
146
143
  if (data.length > maxSize) {
147
144
  throw Error(`ssz_snappy encoded data length ${data.length} > ${maxSize}`);
148
145
  }
149
- if (data.length > sszType.maxSize) {
150
- throw Error(`ssz_snappy encoded data length ${data.length} > ${sszType.maxSize}`);
151
- }
152
146
 
153
147
  // Using Buffer.alloc() instead of Buffer.allocUnsafe() to mitigate high GC pressure observed in some environments
154
148
  const compressedData = Buffer.alloc(snappyWasm.max_compress_len(data.length));
@@ -4,17 +4,11 @@ import {
4
4
  ATTESTATION_SUBNET_COUNT,
5
5
  ForkName,
6
6
  ForkSeq,
7
- MAX_ATTESTER_SLASHING_SIZE,
8
- MAX_DATA_COLUMN_SIDECAR_SIZE,
9
- MAX_SIGNED_AGGREGATE_AND_PROOF_SIZE,
10
- MAX_SIGNED_EXECUTION_PAYLOAD_BID_SIZE,
11
- MAX_SIGNED_EXECUTION_PAYLOAD_BID_SIZE_HEZE,
12
7
  SYNC_COMMITTEE_SUBNET_COUNT,
13
8
  isForkPostAltair,
14
9
  isForkPostElectra,
15
10
  isForkPostFulu,
16
11
  isForkPostGloas,
17
- isForkPostHeze,
18
12
  } from "@lodestar/params";
19
13
  import {Attestation, SingleAttestation, ssz, sszTypesFor} from "@lodestar/types";
20
14
  import {GossipAction, GossipActionError, GossipErrorCode} from "../../chain/errors/gossipValidation.js";
@@ -139,27 +133,11 @@ export function getGossipSSZType(topic: GossipTopic) {
139
133
  }
140
134
 
141
135
  /**
142
- * Return the maximum uncompressed SSZ byte length accepted for a gossip object.
136
+ * Return the maximum uncompressed SSZ byte length accepted for a gossip object, the SSZ type max size
137
+ * or MAX_PAYLOAD_SIZE, whichever is smaller.
143
138
  */
144
139
  export function getGossipSSZMaxSize(topic: GossipTopic, maxPayloadSize: number, sszType?: CompositeTypeAny): number {
145
- const {fork} = topic.boundary;
146
- // Gloas progressive containers have broad theoretical SSZ max sizes; use the preset p2p bounds instead.
147
- switch (topic.type) {
148
- case GossipType.beacon_block:
149
- return maxPayloadSize;
150
- case GossipType.beacon_aggregate_and_proof:
151
- return isForkPostGloas(fork) ? MAX_SIGNED_AGGREGATE_AND_PROOF_SIZE : (sszType ?? getGossipSSZType(topic)).maxSize;
152
- case GossipType.attester_slashing:
153
- return isForkPostGloas(fork) ? MAX_ATTESTER_SLASHING_SIZE : (sszType ?? getGossipSSZType(topic)).maxSize;
154
- case GossipType.data_column_sidecar:
155
- return isForkPostGloas(fork) ? MAX_DATA_COLUMN_SIDECAR_SIZE : (sszType ?? getGossipSSZType(topic)).maxSize;
156
- case GossipType.execution_payload:
157
- return maxPayloadSize;
158
- case GossipType.execution_payload_bid:
159
- return isForkPostHeze(fork) ? MAX_SIGNED_EXECUTION_PAYLOAD_BID_SIZE_HEZE : MAX_SIGNED_EXECUTION_PAYLOAD_BID_SIZE;
160
- default:
161
- return (sszType ?? getGossipSSZType(topic)).maxSize;
162
- }
140
+ return Math.min((sszType ?? getGossipSSZType(topic)).maxSize, maxPayloadSize);
163
141
  }
164
142
 
165
143
  /**