@lodestar/beacon-node 1.39.0-dev.84b481ddb5 → 1.39.0-dev.aceb5b7416

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 (132) hide show
  1. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  2. package/lib/chain/blocks/verifyBlock.js +1 -1
  3. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  4. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  5. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +2 -4
  6. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  7. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +1 -2
  8. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  9. package/lib/chain/blocks/verifyBlocksSignatures.js +2 -2
  10. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  11. package/lib/chain/chain.d.ts.map +1 -1
  12. package/lib/chain/chain.js +4 -6
  13. package/lib/chain/chain.js.map +1 -1
  14. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  15. package/lib/chain/forkChoice/index.js +3 -3
  16. package/lib/chain/forkChoice/index.js.map +1 -1
  17. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +4 -4
  18. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  19. package/lib/chain/opPools/aggregatedAttestationPool.js +4 -4
  20. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  21. package/lib/chain/opPools/opPool.d.ts +0 -3
  22. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  23. package/lib/chain/opPools/opPool.js +8 -9
  24. package/lib/chain/opPools/opPool.js.map +1 -1
  25. package/lib/chain/produceBlock/produceBlockBody.js +2 -2
  26. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  27. package/lib/chain/rewards/attestationsRewards.d.ts +1 -2
  28. package/lib/chain/rewards/attestationsRewards.d.ts.map +1 -1
  29. package/lib/chain/rewards/attestationsRewards.js +8 -8
  30. package/lib/chain/rewards/attestationsRewards.js.map +1 -1
  31. package/lib/chain/rewards/blockRewards.d.ts +1 -2
  32. package/lib/chain/rewards/blockRewards.d.ts.map +1 -1
  33. package/lib/chain/rewards/blockRewards.js +5 -5
  34. package/lib/chain/rewards/blockRewards.js.map +1 -1
  35. package/lib/chain/rewards/syncCommitteeRewards.d.ts +1 -2
  36. package/lib/chain/rewards/syncCommitteeRewards.d.ts.map +1 -1
  37. package/lib/chain/rewards/syncCommitteeRewards.js +2 -2
  38. package/lib/chain/rewards/syncCommitteeRewards.js.map +1 -1
  39. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +1 -4
  40. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  41. package/lib/chain/stateCache/persistentCheckpointsCache.js +2 -4
  42. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  43. package/lib/chain/validation/attesterSlashing.js +1 -1
  44. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  45. package/lib/chain/validation/block.d.ts.map +1 -1
  46. package/lib/chain/validation/block.js +3 -3
  47. package/lib/chain/validation/block.js.map +1 -1
  48. package/lib/chain/validation/blsToExecutionChange.js +1 -1
  49. package/lib/chain/validation/proposerSlashing.js +1 -1
  50. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  51. package/lib/chain/validation/signatureSets/aggregateAndProof.js +1 -1
  52. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  53. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +1 -2
  54. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
  55. package/lib/chain/validation/signatureSets/contributionAndProof.js +2 -2
  56. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  57. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +1 -2
  58. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
  59. package/lib/chain/validation/signatureSets/syncCommittee.js +2 -2
  60. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  61. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +1 -2
  62. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
  63. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js +2 -2
  64. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  65. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +1 -2
  66. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
  67. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +2 -1
  68. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  69. package/lib/chain/validation/syncCommittee.js +1 -1
  70. package/lib/chain/validation/syncCommittee.js.map +1 -1
  71. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  72. package/lib/chain/validation/syncCommitteeContributionAndProof.js +3 -3
  73. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  74. package/lib/chain/validation/voluntaryExit.js +1 -1
  75. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  76. package/lib/db/beacon.d.ts +0 -2
  77. package/lib/db/beacon.d.ts.map +1 -1
  78. package/lib/db/beacon.js +0 -32
  79. package/lib/db/beacon.js.map +1 -1
  80. package/lib/db/buckets.d.ts +0 -12
  81. package/lib/db/buckets.d.ts.map +1 -1
  82. package/lib/db/buckets.js +6 -12
  83. package/lib/db/buckets.js.map +1 -1
  84. package/lib/db/interface.d.ts +0 -1
  85. package/lib/db/interface.d.ts.map +1 -1
  86. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  87. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  88. package/lib/node/nodejs.d.ts.map +1 -1
  89. package/lib/node/nodejs.js +0 -10
  90. package/lib/node/nodejs.js.map +1 -1
  91. package/lib/node/notifier.d.ts.map +1 -1
  92. package/lib/node/notifier.js +6 -9
  93. package/lib/node/notifier.js.map +1 -1
  94. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  95. package/lib/sync/backfill/backfill.js +4 -2
  96. package/lib/sync/backfill/backfill.js.map +1 -1
  97. package/lib/sync/backfill/verify.d.ts +1 -1
  98. package/lib/sync/backfill/verify.d.ts.map +1 -1
  99. package/lib/sync/backfill/verify.js +2 -2
  100. package/lib/sync/backfill/verify.js.map +1 -1
  101. package/package.json +14 -14
  102. package/src/chain/blocks/verifyBlock.ts +0 -1
  103. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +2 -9
  104. package/src/chain/blocks/verifyBlocksSignatures.ts +1 -3
  105. package/src/chain/chain.ts +4 -6
  106. package/src/chain/forkChoice/index.ts +2 -3
  107. package/src/chain/opPools/aggregatedAttestationPool.ts +7 -7
  108. package/src/chain/opPools/opPool.ts +8 -8
  109. package/src/chain/produceBlock/produceBlockBody.ts +2 -2
  110. package/src/chain/rewards/attestationsRewards.ts +4 -13
  111. package/src/chain/rewards/blockRewards.ts +3 -6
  112. package/src/chain/rewards/syncCommitteeRewards.ts +1 -3
  113. package/src/chain/stateCache/persistentCheckpointsCache.ts +2 -15
  114. package/src/chain/validation/attesterSlashing.ts +1 -1
  115. package/src/chain/validation/block.ts +2 -3
  116. package/src/chain/validation/blsToExecutionChange.ts +1 -1
  117. package/src/chain/validation/proposerSlashing.ts +1 -1
  118. package/src/chain/validation/signatureSets/aggregateAndProof.ts +1 -1
  119. package/src/chain/validation/signatureSets/contributionAndProof.ts +1 -3
  120. package/src/chain/validation/signatureSets/syncCommittee.ts +1 -3
  121. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +1 -3
  122. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +1 -2
  123. package/src/chain/validation/syncCommittee.ts +1 -1
  124. package/src/chain/validation/syncCommitteeContributionAndProof.ts +3 -8
  125. package/src/chain/validation/voluntaryExit.ts +1 -1
  126. package/src/db/beacon.ts +1 -38
  127. package/src/db/buckets.ts +6 -12
  128. package/src/db/interface.ts +0 -2
  129. package/src/node/nodejs.ts +0 -11
  130. package/src/node/notifier.ts +7 -13
  131. package/src/sync/backfill/backfill.ts +3 -8
  132. package/src/sync/backfill/verify.ts +1 -3
package/src/db/beacon.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import {ChainForkConfig} from "@lodestar/config";
2
- import {Db, LevelDbControllerMetrics, encodeKey} from "@lodestar/db";
3
- import {Bucket} from "./buckets.js";
2
+ import {Db, LevelDbControllerMetrics} from "@lodestar/db";
4
3
  import {IBeaconDb} from "./interface.js";
5
4
  import {CheckpointStateRepository} from "./repositories/checkpointState.js";
6
5
  import {
@@ -96,40 +95,4 @@ export class BeaconDb implements IBeaconDb {
96
95
  // TODO: Enable once it's deemed safe
97
96
  // await this.block.batchDelete(await this.block.keys());
98
97
  }
99
-
100
- async deleteDeprecatedEth1Data(): Promise<void> {
101
- const deprecatedBuckets = [
102
- Bucket.phase0_eth1Data,
103
- Bucket.index_depositDataRoot,
104
- Bucket.phase0_depositData,
105
- Bucket.phase0_depositEvent,
106
- Bucket.phase0_preGenesisState,
107
- Bucket.phase0_preGenesisStateLastProcessedBlock,
108
- ];
109
-
110
- for (const bucket of deprecatedBuckets) {
111
- await this.deleteBucketData(bucket);
112
- }
113
- }
114
-
115
- private async deleteBucketData(bucket: Bucket): Promise<void> {
116
- const minKey = encodeKey(bucket, Buffer.alloc(0));
117
- const maxKey = encodeKey(bucket + 1, Buffer.alloc(0));
118
-
119
- // Batch delete to avoid loading all keys into memory at once
120
- const BATCH_DELETE_SIZE = 1000;
121
- let keysBatch: Uint8Array[] = [];
122
-
123
- for await (const key of this.db.keysStream({gte: minKey, lt: maxKey})) {
124
- keysBatch.push(key);
125
- if (keysBatch.length >= BATCH_DELETE_SIZE) {
126
- await this.db.batchDelete(keysBatch);
127
- keysBatch = [];
128
- }
129
- }
130
-
131
- if (keysBatch.length > 0) {
132
- await this.db.batchDelete(keysBatch);
133
- }
134
- }
135
98
  }
package/src/db/buckets.ts CHANGED
@@ -16,16 +16,13 @@ export enum Bucket {
16
16
  index_mainChain = 6, // Slot -> Root<BeaconBlock>
17
17
  // justified, finalized state and block hashes
18
18
  index_chainInfo = 7, // Key -> Number64 | stateHash | blockHash
19
- /** @deprecated Eth1 deposit tracking is not required since electra, only kept around to delete data from existing databases */
20
- phase0_eth1Data = 8,
21
- /** @deprecated Eth1 deposit tracking is not required since electra, only kept around to delete data from existing databases */
22
- index_depositDataRoot = 9,
19
+ // phase0_eth1Data = 8, // DEPRECATED - eth1 deposit tracking is not required since electra
20
+ // index_depositDataRoot = 9, // DEPRECATED - eth1 deposit tracking is not required since electra
23
21
 
24
22
  // op pool
25
23
  // phase0_attestation = 10, // DEPRECATED on v0.25.0
26
24
  // phase0_aggregateAndProof = 11, // Root -> AggregateAndProof, DEPRECATED on v.27.0
27
- /** @deprecated Eth1 deposit tracking is not required since electra, only kept around to delete data from existing databases */
28
- phase0_depositData = 12,
25
+ // phase0_depositData = 12, // DEPRECATED - eth1 deposit tracking is not required since electra
29
26
  phase0_exit = 13, // ValidatorIndex -> VoluntaryExit
30
27
  phase0_proposerSlashing = 14, // ValidatorIndex -> ProposerSlashing
31
28
  allForks_attesterSlashing = 15, // Root -> AttesterSlashing
@@ -34,18 +31,15 @@ export enum Bucket {
34
31
  allForks_checkpointState = 17, // Root -> BeaconState
35
32
 
36
33
  // allForks_pendingBlock = 25, // Root -> SignedBeaconBlock // DEPRECATED on v0.30.0
37
- /** @deprecated Eth1 deposit tracking is not required since electra, only kept around to delete data from existing databases */
38
- phase0_depositEvent = 19,
34
+ // phase0_depositEvent = 19, // DEPRECATED - eth1 deposit tracking is not required since electra
39
35
 
40
36
  index_stateArchiveRootIndex = 26, // State Root -> slot
41
37
 
42
38
  deneb_blobSidecars = 27, // DENEB BeaconBlockRoot -> BlobSidecars
43
39
  deneb_blobSidecarsArchive = 28, // DENEB BeaconBlockSlot -> BlobSidecars
44
40
 
45
- /** @deprecated Genesis from eth1 is no longer supported, only kept around to delete data from existing databases */
46
- phase0_preGenesisState = 30,
47
- /** @deprecated Genesis from eth1 is no longer supported, only kept around to delete data from existing databases */
48
- phase0_preGenesisStateLastProcessedBlock = 31,
41
+ // phase0_preGenesisState = 30, // DEPRECATED - genesis from eth1 is no longer supported
42
+ // phase0_preGenesisStateLastProcessedBlock = 31, // DEPRECATED - genesis from eth1 is no longer supported
49
43
 
50
44
  // Lightclient server
51
45
  // altair_bestUpdatePerCommitteePeriod = 30, // DEPRECATED on v0.32.0
@@ -56,8 +56,6 @@ export interface IBeaconDb {
56
56
 
57
57
  pruneHotDb(): Promise<void>;
58
58
 
59
- deleteDeprecatedEth1Data(): Promise<void>;
60
-
61
59
  /** Close the connection to the db instance and close the db store. */
62
60
  close(): Promise<void>;
63
61
  /** To inject metrics after CLI initialization */
@@ -197,17 +197,6 @@ export class BeaconNode {
197
197
  // TODO: Should this call be awaited?
198
198
  await db.pruneHotDb();
199
199
 
200
- // Delete deprecated eth1 data to free up disk space for users
201
- logger.debug("Deleting deprecated eth1 data from database");
202
- const startTime = Date.now();
203
- db.deleteDeprecatedEth1Data()
204
- .then(() => {
205
- logger.debug("Deleted deprecated eth1 data", {durationMs: Date.now() - startTime});
206
- })
207
- .catch((e) => {
208
- logger.error("Failed to delete deprecated eth1 data", {}, e);
209
- });
210
-
211
200
  const monitoring = opts.monitoring.endpoint
212
201
  ? new MonitoringService(
213
202
  "beacon",
@@ -6,7 +6,6 @@ import {
6
6
  computeEpochAtSlot,
7
7
  computeStartSlotAtEpoch,
8
8
  isExecutionCachedStateType,
9
- isMergeTransitionComplete,
10
9
  } from "@lodestar/state-transition";
11
10
  import {Epoch} from "@lodestar/types";
12
11
  import {ErrorAborted, Logger, prettyBytes, prettyBytesShort, sleep} from "@lodestar/utils";
@@ -172,18 +171,13 @@ function getHeadExecutionInfo(
172
171
 
173
172
  // Add execution status to notifier only if head is on/post bellatrix
174
173
  if (isExecutionCachedStateType(headState)) {
175
- if (isMergeTransitionComplete(headState)) {
176
- const executionPayloadHashInfo =
177
- headInfo.executionStatus !== ExecutionStatus.PreMerge ? headInfo.executionPayloadBlockHash : "empty";
178
- const executionPayloadNumberInfo =
179
- headInfo.executionStatus !== ExecutionStatus.PreMerge ? headInfo.executionPayloadNumber : NaN;
180
- return [
181
- `exec-block: ${executionStatusStr}(${executionPayloadNumberInfo} ${prettyBytesShort(
182
- executionPayloadHashInfo
183
- )})`,
184
- ];
185
- }
186
- return [`exec-block: ${executionStatusStr}`];
174
+ const executionPayloadHashInfo =
175
+ headInfo.executionStatus !== ExecutionStatus.PreMerge ? headInfo.executionPayloadBlockHash : "empty";
176
+ const executionPayloadNumberInfo =
177
+ headInfo.executionStatus !== ExecutionStatus.PreMerge ? headInfo.executionPayloadNumber : NaN;
178
+ return [
179
+ `exec-block: ${executionStatusStr}(${executionPayloadNumberInfo} ${prettyBytesShort(executionPayloadHashInfo)})`,
180
+ ];
187
181
  }
188
182
 
189
183
  return [];
@@ -750,13 +750,9 @@ export class BackfillSync extends (EventEmitter as {new (): BackfillSyncEmitter}
750
750
 
751
751
  // GENESIS_SLOT doesn't has valid signature
752
752
  if (anchorBlock.message.slot === GENESIS_SLOT) return;
753
- await verifyBlockProposerSignature(
754
- this.chain.config,
755
- this.chain.index2pubkey,
756
- this.chain.bls,
757
- this.chain.getHeadState(),
758
- [anchorBlock]
759
- );
753
+ await verifyBlockProposerSignature(this.chain.index2pubkey, this.chain.bls, this.chain.getHeadState(), [
754
+ anchorBlock,
755
+ ]);
760
756
 
761
757
  // We can write to the disk if this is ahead of prevFinalizedCheckpointBlock otherwise
762
758
  // we will need to go make checks on the top of sync loop before writing as it might
@@ -822,7 +818,6 @@ export class BackfillSync extends (EventEmitter as {new (): BackfillSyncEmitter}
822
818
  // If any of the block's proposer signature fail, we can't trust this peer at all
823
819
  if (verifiedBlocks.length > 0) {
824
820
  await verifyBlockProposerSignature(
825
- this.chain.config,
826
821
  this.chain.index2pubkey,
827
822
  this.chain.bls,
828
823
  this.chain.getHeadState(),
@@ -46,7 +46,6 @@ export function verifyBlockSequence(
46
46
  }
47
47
 
48
48
  export async function verifyBlockProposerSignature(
49
- config: BeaconConfig,
50
49
  index2pubkey: Index2PubkeyCache,
51
50
  bls: IBlsVerifier,
52
51
  state: CachedBeaconStateAllForks,
@@ -55,8 +54,7 @@ export async function verifyBlockProposerSignature(
55
54
  if (blocks.length === 1 && blocks[0].message.slot === GENESIS_SLOT) return;
56
55
  const signatures = blocks.reduce((sigs: ISignatureSet[], block) => {
57
56
  // genesis block doesn't have valid signature
58
- if (block.message.slot !== GENESIS_SLOT)
59
- sigs.push(getBlockProposerSignatureSet(config, index2pubkey, state, block));
57
+ if (block.message.slot !== GENESIS_SLOT) sigs.push(getBlockProposerSignatureSet(index2pubkey, state, block));
60
58
  return sigs;
61
59
  }, []);
62
60