@lodestar/beacon-node 1.22.0-dev.20c18ad85d → 1.22.0-dev.295690b896

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 (158) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +14 -2
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/beacon/pool/index.js +31 -4
  4. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  5. package/lib/api/impl/config/constants.d.ts +5 -1
  6. package/lib/api/impl/config/constants.js +7 -2
  7. package/lib/api/impl/config/constants.js.map +1 -1
  8. package/lib/api/impl/validator/index.js +31 -8
  9. package/lib/api/impl/validator/index.js.map +1 -1
  10. package/lib/chain/archiver/archiveBlocks.js +4 -5
  11. package/lib/chain/archiver/archiveBlocks.js.map +1 -1
  12. package/lib/chain/archiver/archiveStates.d.ts +3 -1
  13. package/lib/chain/archiver/archiveStates.js +6 -3
  14. package/lib/chain/archiver/archiveStates.js.map +1 -1
  15. package/lib/chain/archiver/index.js +1 -1
  16. package/lib/chain/archiver/index.js.map +1 -1
  17. package/lib/chain/blocks/importBlock.js +6 -5
  18. package/lib/chain/blocks/importBlock.js.map +1 -1
  19. package/lib/chain/blocks/types.d.ts +2 -2
  20. package/lib/chain/blocks/types.js.map +1 -1
  21. package/lib/chain/chain.d.ts +42 -0
  22. package/lib/chain/chain.js +42 -11
  23. package/lib/chain/chain.js.map +1 -1
  24. package/lib/chain/errors/attestationError.d.ts +13 -1
  25. package/lib/chain/errors/attestationError.js +8 -0
  26. package/lib/chain/errors/attestationError.js.map +1 -1
  27. package/lib/chain/historicalState/worker.js +4 -0
  28. package/lib/chain/historicalState/worker.js.map +1 -1
  29. package/lib/chain/initState.d.ts +3 -3
  30. package/lib/chain/initState.js +7 -6
  31. package/lib/chain/initState.js.map +1 -1
  32. package/lib/chain/interface.d.ts +2 -0
  33. package/lib/chain/interface.js.map +1 -1
  34. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +46 -12
  35. package/lib/chain/opPools/aggregatedAttestationPool.js +226 -59
  36. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  37. package/lib/chain/opPools/attestationPool.d.ts +22 -6
  38. package/lib/chain/opPools/attestationPool.js +61 -27
  39. package/lib/chain/opPools/attestationPool.js.map +1 -1
  40. package/lib/chain/opPools/opPool.d.ts +2 -2
  41. package/lib/chain/opPools/opPool.js +7 -6
  42. package/lib/chain/opPools/opPool.js.map +1 -1
  43. package/lib/chain/opPools/utils.d.ts +2 -0
  44. package/lib/chain/opPools/utils.js +3 -0
  45. package/lib/chain/opPools/utils.js.map +1 -1
  46. package/lib/chain/produceBlock/produceBlockBody.js +2 -1
  47. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  48. package/lib/chain/regen/queued.d.ts +6 -1
  49. package/lib/chain/regen/queued.js +38 -0
  50. package/lib/chain/regen/queued.js.map +1 -1
  51. package/lib/chain/regen/regen.d.ts +1 -1
  52. package/lib/chain/regen/regen.js +48 -13
  53. package/lib/chain/regen/regen.js.map +1 -1
  54. package/lib/chain/seenCache/seenAttestationData.d.ts +13 -5
  55. package/lib/chain/seenCache/seenAttestationData.js +5 -3
  56. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  57. package/lib/chain/serializeState.d.ts +6 -0
  58. package/lib/chain/serializeState.js +22 -0
  59. package/lib/chain/serializeState.js.map +1 -0
  60. package/lib/chain/stateCache/blockStateCacheImpl.d.ts +1 -0
  61. package/lib/chain/stateCache/blockStateCacheImpl.js +4 -1
  62. package/lib/chain/stateCache/blockStateCacheImpl.js.map +1 -1
  63. package/lib/chain/stateCache/datastore/file.js +5 -5
  64. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  65. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +1 -0
  66. package/lib/chain/stateCache/fifoBlockStateCache.js +3 -0
  67. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  68. package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts +1 -0
  69. package/lib/chain/stateCache/inMemoryCheckpointsCache.js +3 -0
  70. package/lib/chain/stateCache/inMemoryCheckpointsCache.js.map +1 -1
  71. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +2 -2
  72. package/lib/chain/stateCache/persistentCheckpointsCache.js +28 -53
  73. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  74. package/lib/chain/stateCache/types.d.ts +4 -0
  75. package/lib/chain/stateCache/types.js.map +1 -1
  76. package/lib/chain/validation/aggregateAndProof.d.ts +4 -4
  77. package/lib/chain/validation/aggregateAndProof.js +24 -7
  78. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  79. package/lib/chain/validation/attestation.d.ts +27 -6
  80. package/lib/chain/validation/attestation.js +109 -31
  81. package/lib/chain/validation/attestation.js.map +1 -1
  82. package/lib/chain/validation/attesterSlashing.js +2 -1
  83. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  84. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +4 -3
  85. package/lib/chain/validation/signatureSets/aggregateAndProof.js +3 -2
  86. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  87. package/lib/eth1/eth1DepositDataTracker.d.ts +5 -2
  88. package/lib/eth1/eth1DepositDataTracker.js +13 -2
  89. package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
  90. package/lib/eth1/index.d.ts +2 -0
  91. package/lib/eth1/index.js +8 -2
  92. package/lib/eth1/index.js.map +1 -1
  93. package/lib/eth1/interface.d.ts +4 -0
  94. package/lib/eth1/provider/eth1Provider.js +2 -3
  95. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  96. package/lib/eth1/provider/utils.js +4 -5
  97. package/lib/eth1/provider/utils.js.map +1 -1
  98. package/lib/eth1/utils/depositContract.js +5 -5
  99. package/lib/eth1/utils/depositContract.js.map +1 -1
  100. package/lib/eth1/utils/deposits.d.ts +2 -2
  101. package/lib/eth1/utils/deposits.js +6 -5
  102. package/lib/eth1/utils/deposits.js.map +1 -1
  103. package/lib/eth1/utils/eth1Vote.js +0 -1
  104. package/lib/eth1/utils/eth1Vote.js.map +1 -1
  105. package/lib/execution/engine/http.d.ts +2 -2
  106. package/lib/execution/engine/http.js +19 -15
  107. package/lib/execution/engine/http.js.map +1 -1
  108. package/lib/execution/engine/interface.d.ts +4 -4
  109. package/lib/execution/engine/interface.js.map +1 -1
  110. package/lib/execution/engine/mock.d.ts +1 -0
  111. package/lib/execution/engine/mock.js +6 -0
  112. package/lib/execution/engine/mock.js.map +1 -1
  113. package/lib/execution/engine/payloadIdCache.d.ts +17 -0
  114. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  115. package/lib/execution/engine/types.d.ts +29 -3
  116. package/lib/execution/engine/types.js +81 -0
  117. package/lib/execution/engine/types.js.map +1 -1
  118. package/lib/index.d.ts +2 -2
  119. package/lib/index.js +2 -2
  120. package/lib/index.js.map +1 -1
  121. package/lib/metrics/metrics/beacon.d.ts +3 -0
  122. package/lib/metrics/metrics/beacon.js +6 -0
  123. package/lib/metrics/metrics/beacon.js.map +1 -1
  124. package/lib/metrics/metrics/lodestar.d.ts +30 -3
  125. package/lib/metrics/metrics/lodestar.js +63 -4
  126. package/lib/metrics/metrics/lodestar.js.map +1 -1
  127. package/lib/metrics/validatorMonitor.d.ts +1 -1
  128. package/lib/metrics/validatorMonitor.js +6 -1
  129. package/lib/metrics/validatorMonitor.js.map +1 -1
  130. package/lib/network/core/networkCore.js +2 -3
  131. package/lib/network/core/networkCore.js.map +1 -1
  132. package/lib/network/gossip/interface.d.ts +5 -5
  133. package/lib/network/gossip/interface.js.map +1 -1
  134. package/lib/network/gossip/topic.d.ts +1720 -129
  135. package/lib/network/gossip/topic.js +5 -5
  136. package/lib/network/gossip/topic.js.map +1 -1
  137. package/lib/network/interface.d.ts +2 -2
  138. package/lib/network/network.d.ts +2 -2
  139. package/lib/network/network.js.map +1 -1
  140. package/lib/network/peers/utils/assertPeerRelevance.js +2 -3
  141. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  142. package/lib/network/processor/gossipHandlers.js +6 -6
  143. package/lib/network/processor/gossipHandlers.js.map +1 -1
  144. package/lib/network/processor/gossipQueues/index.js +5 -2
  145. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  146. package/lib/network/processor/gossipQueues/indexed.js +1 -0
  147. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  148. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +2 -2
  149. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  150. package/lib/sync/unknownBlock.js +3 -4
  151. package/lib/sync/unknownBlock.js.map +1 -1
  152. package/lib/util/bufferPool.d.ts +7 -2
  153. package/lib/util/bufferPool.js +13 -7
  154. package/lib/util/bufferPool.js.map +1 -1
  155. package/lib/util/sszBytes.d.ts +31 -8
  156. package/lib/util/sszBytes.js +74 -13
  157. package/lib/util/sszBytes.js.map +1 -1
  158. package/package.json +15 -15
@@ -1,5 +1,10 @@
1
1
  /// <reference types="node" />
2
2
  import { Metrics } from "../metrics/metrics.js";
3
+ export declare enum AllocSource {
4
+ PERSISTENT_CHECKPOINTS_CACHE_VALIDATORS = "persistent_checkpoints_cache_validators",
5
+ PERSISTENT_CHECKPOINTS_CACHE_STATE = "persistent_checkpoints_cache_state",
6
+ ARCHIVE_STATE = "archive_state"
7
+ }
3
8
  /**
4
9
  * A simple implementation to manage a single buffer.
5
10
  * This is initially used for state serialization at every epoch and for state reload.
@@ -17,11 +22,11 @@ export declare class BufferPool {
17
22
  * If the buffer is already in use, return null.
18
23
  * Grow the buffer if the requested size is larger than the current buffer.
19
24
  */
20
- alloc(size: number): BufferWithKey | null;
25
+ alloc(size: number, source: AllocSource): BufferWithKey | null;
21
26
  /**
22
27
  * Same to alloc() but the buffer is not zeroed.
23
28
  */
24
- allocUnsafe(size: number): BufferWithKey | null;
29
+ allocUnsafe(size: number, source: AllocSource): BufferWithKey | null;
25
30
  private doAlloc;
26
31
  /**
27
32
  * Marks the buffer as free.
@@ -2,6 +2,12 @@
2
2
  * If consumer wants more memory than available, we grow the buffer by this ratio.
3
3
  */
4
4
  const GROW_RATIO = 1.1;
5
+ export var AllocSource;
6
+ (function (AllocSource) {
7
+ AllocSource["PERSISTENT_CHECKPOINTS_CACHE_VALIDATORS"] = "persistent_checkpoints_cache_validators";
8
+ AllocSource["PERSISTENT_CHECKPOINTS_CACHE_STATE"] = "persistent_checkpoints_cache_state";
9
+ AllocSource["ARCHIVE_STATE"] = "archive_state";
10
+ })(AllocSource || (AllocSource = {}));
5
11
  /**
6
12
  * A simple implementation to manage a single buffer.
7
13
  * This is initially used for state serialization at every epoch and for state reload.
@@ -28,22 +34,22 @@ export class BufferPool {
28
34
  * If the buffer is already in use, return null.
29
35
  * Grow the buffer if the requested size is larger than the current buffer.
30
36
  */
31
- alloc(size) {
32
- return this.doAlloc(size, false);
37
+ alloc(size, source) {
38
+ return this.doAlloc(size, source, false);
33
39
  }
34
40
  /**
35
41
  * Same to alloc() but the buffer is not zeroed.
36
42
  */
37
- allocUnsafe(size) {
38
- return this.doAlloc(size, true);
43
+ allocUnsafe(size, source) {
44
+ return this.doAlloc(size, source, true);
39
45
  }
40
- doAlloc(size, isUnsafe = false) {
46
+ doAlloc(size, source, isUnsafe = false) {
41
47
  if (this.inUse) {
42
- this.metrics?.misses.inc();
48
+ this.metrics?.misses.inc({ source });
43
49
  return null;
44
50
  }
45
51
  this.inUse = true;
46
- this.metrics?.hits.inc();
52
+ this.metrics?.hits.inc({ source });
47
53
  this.currentKey += 1;
48
54
  if (size > this.buffer.length) {
49
55
  this.metrics?.grows.inc();
@@ -1 +1 @@
1
- {"version":3,"file":"bufferPool.js","sourceRoot":"","sources":["../../src/util/bufferPool.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB;;;;GAIG;AACH,MAAM,OAAO,UAAU;IAMrB,YAAY,IAAY,EAAE,UAA0B,IAAI;QAJhD,UAAK,GAAG,KAAK,CAAC;QAEL,YAAO,GAAiC,IAAI,CAAC;QAG5D,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;YAClC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACxC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAY;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAEO,OAAO,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK;QAC5C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QACrB,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,GAAW;QACd,IAAI,GAAG,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,aAAa;IACxB,YACW,MAAkB,EACV,GAAW,EACX,IAAgB;QAFxB,WAAM,GAAN,MAAM,CAAY;QACV,QAAG,GAAH,GAAG,CAAQ;QACX,SAAI,GAAJ,IAAI,CAAY;IAChC,CAAC;IAEJ,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"bufferPool.js","sourceRoot":"","sources":["../../src/util/bufferPool.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { BitArray } from "@chainsafe/ssz";
2
2
  import { BLSSignature, RootHex, Slot } from "@lodestar/types";
3
+ import { ForkName } from "@lodestar/params";
3
4
  export type BlockRootHex = RootHex;
4
5
  export type AttDataBase64 = string;
6
+ export type CommitteeBitsBase64 = string;
5
7
  /**
6
8
  * Extract slot from attestation serialized bytes.
7
9
  * Return null if data is not long enough to extract slot.
@@ -13,35 +15,56 @@ export declare function getSlotFromAttestationSerialized(data: Uint8Array): Slot
13
15
  */
14
16
  export declare function getBlockRootFromAttestationSerialized(data: Uint8Array): BlockRootHex | null;
15
17
  /**
16
- * Extract attestation data base64 from attestation serialized bytes.
18
+ * Extract attestation data base64 from all forks' attestation serialized bytes.
17
19
  * Return null if data is not long enough to extract attestation data.
18
20
  */
19
- export declare function getAttDataBase64FromAttestationSerialized(data: Uint8Array): AttDataBase64 | null;
21
+ export declare function getAttDataFromAttestationSerialized(data: Uint8Array): AttDataBase64 | null;
22
+ /**
23
+ * Alias of `getAttDataFromAttestationSerialized` specifically for batch handling indexing in gossip queue
24
+ */
25
+ export declare function getGossipAttestationIndex(data: Uint8Array): AttDataBase64 | null;
20
26
  /**
21
27
  * Extract aggregation bits from attestation serialized bytes.
22
28
  * Return null if data is not long enough to extract aggregation bits.
23
29
  */
24
- export declare function getAggregationBitsFromAttestationSerialized(data: Uint8Array): BitArray | null;
30
+ export declare function getAggregationBitsFromAttestationSerialized(fork: ForkName, data: Uint8Array): BitArray | null;
25
31
  /**
26
32
  * Extract signature from attestation serialized bytes.
27
33
  * Return null if data is not long enough to extract signature.
28
34
  */
29
35
  export declare function getSignatureFromAttestationSerialized(data: Uint8Array): BLSSignature | null;
30
36
  /**
31
- * Extract slot from signed aggregate and proof serialized bytes.
32
- * Return null if data is not long enough to extract slot.
37
+ * Extract committee bits from Electra attestation serialized bytes.
38
+ * Return null if data is not long enough to extract committee bits.
39
+ */
40
+ export declare function getCommitteeBitsFromAttestationSerialized(data: Uint8Array): CommitteeBitsBase64 | null;
41
+ /**
42
+ * Extract slot from signed aggregate and proof serialized bytes
43
+ * Return null if data is not long enough to extract slot
44
+ * This works for both phase + electra
33
45
  */
34
46
  export declare function getSlotFromSignedAggregateAndProofSerialized(data: Uint8Array): Slot | null;
35
47
  /**
36
- * Extract block root from signed aggregate and proof serialized bytes.
37
- * Return null if data is not long enough to extract block root.
48
+ * Extract block root from signed aggregate and proof serialized bytes
49
+ * Return null if data is not long enough to extract block root
50
+ * This works for both phase + electra
38
51
  */
39
52
  export declare function getBlockRootFromSignedAggregateAndProofSerialized(data: Uint8Array): BlockRootHex | null;
53
+ /**
54
+ * Extract AttestationData base64 from SignedAggregateAndProof for electra
55
+ * Return null if data is not long enough
56
+ */
57
+ export declare function getAttDataFromSignedAggregateAndProofElectra(data: Uint8Array): AttDataBase64 | null;
58
+ /**
59
+ * Extract CommitteeBits base64 from SignedAggregateAndProof for electra
60
+ * Return null if data is not long enough
61
+ */
62
+ export declare function getCommitteeBitsFromSignedAggregateAndProofElectra(data: Uint8Array): CommitteeBitsBase64 | null;
40
63
  /**
41
64
  * Extract attestation data base64 from signed aggregate and proof serialized bytes.
42
65
  * Return null if data is not long enough to extract attestation data.
43
66
  */
44
- export declare function getAttDataBase64FromSignedAggregateAndProofSerialized(data: Uint8Array): AttDataBase64 | null;
67
+ export declare function getAttDataFromSignedAggregateAndProofPhase0(data: Uint8Array): AttDataBase64 | null;
45
68
  export declare function getSlotFromSignedBeaconBlockSerialized(data: Uint8Array): Slot | null;
46
69
  export declare function getSlotFromBlobSidecarSerialized(data: Uint8Array): Slot | null;
47
70
  //# sourceMappingURL=sszBytes.d.ts.map
@@ -1,10 +1,18 @@
1
1
  import { BitArray, deserializeUint8ArrayBitListFromBytes } from "@chainsafe/ssz";
2
- import { BYTES_PER_FIELD_ELEMENT, FIELD_ELEMENTS_PER_BLOB } from "@lodestar/params";
2
+ import { BYTES_PER_FIELD_ELEMENT, FIELD_ELEMENTS_PER_BLOB, ForkSeq, MAX_COMMITTEES_PER_SLOT, } from "@lodestar/params";
3
+ // pre-electra
3
4
  // class Attestation(Container):
4
5
  // aggregation_bits: Bitlist[MAX_VALIDATORS_PER_COMMITTEE] - offset 4
5
6
  // data: AttestationData - target data - 128
6
7
  // signature: BLSSignature - 96
8
+ // electra
9
+ // class Attestation(Container):
10
+ // aggregation_bits: BitList[MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT] - offset 4
11
+ // data: AttestationData - target data - 128
12
+ // signature: BLSSignature - 96
13
+ // committee_bits: BitVector[MAX_COMMITTEES_PER_SLOT]
7
14
  //
15
+ // for all forks
8
16
  // class AttestationData(Container): 128 bytes fixed size
9
17
  // slot: Slot - data 8
10
18
  // index: CommitteeIndex - data 8
@@ -16,10 +24,13 @@ const ATTESTATION_BEACON_BLOCK_ROOT_OFFSET = VARIABLE_FIELD_OFFSET + 8 + 8;
16
24
  const ROOT_SIZE = 32;
17
25
  const SLOT_SIZE = 8;
18
26
  const ATTESTATION_DATA_SIZE = 128;
27
+ // MAX_COMMITTEES_PER_SLOT is in bit, need to convert to byte
28
+ const COMMITTEE_BITS_SIZE = Math.max(Math.ceil(MAX_COMMITTEES_PER_SLOT / 8), 1);
19
29
  const SIGNATURE_SIZE = 96;
20
30
  // shared Buffers to convert bytes to hex/base64
21
31
  const blockRootBuf = Buffer.alloc(ROOT_SIZE);
22
32
  const attDataBuf = Buffer.alloc(ATTESTATION_DATA_SIZE);
33
+ const committeeBitsDataBuf = Buffer.alloc(COMMITTEE_BITS_SIZE);
23
34
  /**
24
35
  * Extract slot from attestation serialized bytes.
25
36
  * Return null if data is not long enough to extract slot.
@@ -42,10 +53,10 @@ export function getBlockRootFromAttestationSerialized(data) {
42
53
  return "0x" + blockRootBuf.toString("hex");
43
54
  }
44
55
  /**
45
- * Extract attestation data base64 from attestation serialized bytes.
56
+ * Extract attestation data base64 from all forks' attestation serialized bytes.
46
57
  * Return null if data is not long enough to extract attestation data.
47
58
  */
48
- export function getAttDataBase64FromAttestationSerialized(data) {
59
+ export function getAttDataFromAttestationSerialized(data) {
49
60
  if (data.length < VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE) {
50
61
  return null;
51
62
  }
@@ -53,15 +64,24 @@ export function getAttDataBase64FromAttestationSerialized(data) {
53
64
  attDataBuf.set(data.subarray(VARIABLE_FIELD_OFFSET, VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE));
54
65
  return attDataBuf.toString("base64");
55
66
  }
67
+ /**
68
+ * Alias of `getAttDataFromAttestationSerialized` specifically for batch handling indexing in gossip queue
69
+ */
70
+ export function getGossipAttestationIndex(data) {
71
+ return getAttDataFromAttestationSerialized(data);
72
+ }
56
73
  /**
57
74
  * Extract aggregation bits from attestation serialized bytes.
58
75
  * Return null if data is not long enough to extract aggregation bits.
59
76
  */
60
- export function getAggregationBitsFromAttestationSerialized(data) {
61
- if (data.length < VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE + SIGNATURE_SIZE) {
77
+ export function getAggregationBitsFromAttestationSerialized(fork, data) {
78
+ const aggregationBitsStartIndex = ForkSeq[fork] >= ForkSeq.electra
79
+ ? VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE + SIGNATURE_SIZE + COMMITTEE_BITS_SIZE
80
+ : VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE + SIGNATURE_SIZE;
81
+ if (data.length < aggregationBitsStartIndex) {
62
82
  return null;
63
83
  }
64
- const { uint8Array, bitLen } = deserializeUint8ArrayBitListFromBytes(data, VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE + SIGNATURE_SIZE, data.length);
84
+ const { uint8Array, bitLen } = deserializeUint8ArrayBitListFromBytes(data, aggregationBitsStartIndex, data.length);
65
85
  return new BitArray(uint8Array, bitLen);
66
86
  }
67
87
  /**
@@ -69,10 +89,23 @@ export function getAggregationBitsFromAttestationSerialized(data) {
69
89
  * Return null if data is not long enough to extract signature.
70
90
  */
71
91
  export function getSignatureFromAttestationSerialized(data) {
72
- if (data.length < VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE + SIGNATURE_SIZE) {
92
+ const signatureStartIndex = VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE;
93
+ if (data.length < signatureStartIndex + SIGNATURE_SIZE) {
73
94
  return null;
74
95
  }
75
- return data.subarray(VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE, VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE + SIGNATURE_SIZE);
96
+ return data.subarray(signatureStartIndex, signatureStartIndex + SIGNATURE_SIZE);
97
+ }
98
+ /**
99
+ * Extract committee bits from Electra attestation serialized bytes.
100
+ * Return null if data is not long enough to extract committee bits.
101
+ */
102
+ export function getCommitteeBitsFromAttestationSerialized(data) {
103
+ const committeeBitsStartIndex = VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE + SIGNATURE_SIZE;
104
+ if (data.length < committeeBitsStartIndex + COMMITTEE_BITS_SIZE) {
105
+ return null;
106
+ }
107
+ committeeBitsDataBuf.set(data.subarray(committeeBitsStartIndex, committeeBitsStartIndex + COMMITTEE_BITS_SIZE));
108
+ return committeeBitsDataBuf.toString("base64");
76
109
  }
77
110
  //
78
111
  // class SignedAggregateAndProof(Container):
@@ -87,8 +120,9 @@ const AGGREGATE_OFFSET = AGGREGATE_AND_PROOF_OFFSET + 8 + 4 + 96;
87
120
  const SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET = AGGREGATE_OFFSET + VARIABLE_FIELD_OFFSET;
88
121
  const SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET = SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + 8 + 8;
89
122
  /**
90
- * Extract slot from signed aggregate and proof serialized bytes.
91
- * Return null if data is not long enough to extract slot.
123
+ * Extract slot from signed aggregate and proof serialized bytes
124
+ * Return null if data is not long enough to extract slot
125
+ * This works for both phase + electra
92
126
  */
93
127
  export function getSlotFromSignedAggregateAndProofSerialized(data) {
94
128
  if (data.length < SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + SLOT_SIZE) {
@@ -97,8 +131,9 @@ export function getSlotFromSignedAggregateAndProofSerialized(data) {
97
131
  return getSlotFromOffset(data, SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET);
98
132
  }
99
133
  /**
100
- * Extract block root from signed aggregate and proof serialized bytes.
101
- * Return null if data is not long enough to extract block root.
134
+ * Extract block root from signed aggregate and proof serialized bytes
135
+ * Return null if data is not long enough to extract block root
136
+ * This works for both phase + electra
102
137
  */
103
138
  export function getBlockRootFromSignedAggregateAndProofSerialized(data) {
104
139
  if (data.length < SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET + ROOT_SIZE) {
@@ -107,11 +142,37 @@ export function getBlockRootFromSignedAggregateAndProofSerialized(data) {
107
142
  blockRootBuf.set(data.subarray(SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET, SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET + ROOT_SIZE));
108
143
  return "0x" + blockRootBuf.toString("hex");
109
144
  }
145
+ /**
146
+ * Extract AttestationData base64 from SignedAggregateAndProof for electra
147
+ * Return null if data is not long enough
148
+ */
149
+ export function getAttDataFromSignedAggregateAndProofElectra(data) {
150
+ const startIndex = SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET;
151
+ const endIndex = startIndex + ATTESTATION_DATA_SIZE;
152
+ if (data.length < endIndex + SIGNATURE_SIZE + COMMITTEE_BITS_SIZE) {
153
+ return null;
154
+ }
155
+ attDataBuf.set(data.subarray(startIndex, endIndex));
156
+ return attDataBuf.toString("base64");
157
+ }
158
+ /**
159
+ * Extract CommitteeBits base64 from SignedAggregateAndProof for electra
160
+ * Return null if data is not long enough
161
+ */
162
+ export function getCommitteeBitsFromSignedAggregateAndProofElectra(data) {
163
+ const startIndex = SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + ATTESTATION_DATA_SIZE + SIGNATURE_SIZE;
164
+ const endIndex = startIndex + COMMITTEE_BITS_SIZE;
165
+ if (data.length < endIndex) {
166
+ return null;
167
+ }
168
+ committeeBitsDataBuf.set(data.subarray(startIndex, endIndex));
169
+ return committeeBitsDataBuf.toString("base64");
170
+ }
110
171
  /**
111
172
  * Extract attestation data base64 from signed aggregate and proof serialized bytes.
112
173
  * Return null if data is not long enough to extract attestation data.
113
174
  */
114
- export function getAttDataBase64FromSignedAggregateAndProofSerialized(data) {
175
+ export function getAttDataFromSignedAggregateAndProofPhase0(data) {
115
176
  if (data.length < SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + ATTESTATION_DATA_SIZE) {
116
177
  return null;
117
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sszBytes.js","sourceRoot":"","sources":["../../src/util/sszBytes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sszBytes.js","sourceRoot":"","sources":["../../src/util/sszBytes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.22.0-dev.20c18ad85d",
14
+ "version": "1.22.0-dev.295690b896",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -103,7 +103,7 @@
103
103
  "@chainsafe/libp2p-noise": "^15.0.0",
104
104
  "@chainsafe/persistent-merkle-tree": "^0.8.0",
105
105
  "@chainsafe/prometheus-gc-stats": "^1.0.0",
106
- "@chainsafe/ssz": "^0.17.0",
106
+ "@chainsafe/ssz": "^0.17.1",
107
107
  "@chainsafe/threads": "^1.11.1",
108
108
  "@ethersproject/abi": "^5.7.0",
109
109
  "@fastify/bearer-auth": "^9.0.0",
@@ -119,18 +119,18 @@
119
119
  "@libp2p/peer-id-factory": "^4.1.0",
120
120
  "@libp2p/prometheus-metrics": "^3.0.21",
121
121
  "@libp2p/tcp": "9.0.23",
122
- "@lodestar/api": "1.22.0-dev.20c18ad85d",
123
- "@lodestar/config": "1.22.0-dev.20c18ad85d",
124
- "@lodestar/db": "1.22.0-dev.20c18ad85d",
125
- "@lodestar/fork-choice": "1.22.0-dev.20c18ad85d",
126
- "@lodestar/light-client": "1.22.0-dev.20c18ad85d",
127
- "@lodestar/logger": "1.22.0-dev.20c18ad85d",
128
- "@lodestar/params": "1.22.0-dev.20c18ad85d",
129
- "@lodestar/reqresp": "1.22.0-dev.20c18ad85d",
130
- "@lodestar/state-transition": "1.22.0-dev.20c18ad85d",
131
- "@lodestar/types": "1.22.0-dev.20c18ad85d",
132
- "@lodestar/utils": "1.22.0-dev.20c18ad85d",
133
- "@lodestar/validator": "1.22.0-dev.20c18ad85d",
122
+ "@lodestar/api": "1.22.0-dev.295690b896",
123
+ "@lodestar/config": "1.22.0-dev.295690b896",
124
+ "@lodestar/db": "1.22.0-dev.295690b896",
125
+ "@lodestar/fork-choice": "1.22.0-dev.295690b896",
126
+ "@lodestar/light-client": "1.22.0-dev.295690b896",
127
+ "@lodestar/logger": "1.22.0-dev.295690b896",
128
+ "@lodestar/params": "1.22.0-dev.295690b896",
129
+ "@lodestar/reqresp": "1.22.0-dev.295690b896",
130
+ "@lodestar/state-transition": "1.22.0-dev.295690b896",
131
+ "@lodestar/types": "1.22.0-dev.295690b896",
132
+ "@lodestar/utils": "1.22.0-dev.295690b896",
133
+ "@lodestar/validator": "1.22.0-dev.295690b896",
134
134
  "@multiformats/multiaddr": "^12.1.3",
135
135
  "c-kzg": "^2.1.2",
136
136
  "datastore-core": "^9.1.1",
@@ -167,5 +167,5 @@
167
167
  "beacon",
168
168
  "blockchain"
169
169
  ],
170
- "gitHead": "689c6cd8efea4903fb63094a7b5251790522ad18"
170
+ "gitHead": "4f12ac2d55a1c3ca459a0c55258f2e32b5aae4da"
171
171
  }