@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.
- package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlock.js +1 -1
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +2 -4
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksSignatures.d.ts +1 -2
- package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksSignatures.js +2 -2
- package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +4 -6
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/forkChoice/index.d.ts.map +1 -1
- package/lib/chain/forkChoice/index.js +3 -3
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.d.ts +4 -4
- package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +4 -4
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/opPool.d.ts +0 -3
- package/lib/chain/opPools/opPool.d.ts.map +1 -1
- package/lib/chain/opPools/opPool.js +8 -9
- package/lib/chain/opPools/opPool.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +2 -2
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/rewards/attestationsRewards.d.ts +1 -2
- package/lib/chain/rewards/attestationsRewards.d.ts.map +1 -1
- package/lib/chain/rewards/attestationsRewards.js +8 -8
- package/lib/chain/rewards/attestationsRewards.js.map +1 -1
- package/lib/chain/rewards/blockRewards.d.ts +1 -2
- package/lib/chain/rewards/blockRewards.d.ts.map +1 -1
- package/lib/chain/rewards/blockRewards.js +5 -5
- package/lib/chain/rewards/blockRewards.js.map +1 -1
- package/lib/chain/rewards/syncCommitteeRewards.d.ts +1 -2
- package/lib/chain/rewards/syncCommitteeRewards.d.ts.map +1 -1
- package/lib/chain/rewards/syncCommitteeRewards.js +2 -2
- package/lib/chain/rewards/syncCommitteeRewards.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +1 -4
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.js +2 -4
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/validation/attesterSlashing.js +1 -1
- package/lib/chain/validation/attesterSlashing.js.map +1 -1
- package/lib/chain/validation/block.d.ts.map +1 -1
- package/lib/chain/validation/block.js +3 -3
- package/lib/chain/validation/block.js.map +1 -1
- package/lib/chain/validation/blsToExecutionChange.js +1 -1
- package/lib/chain/validation/proposerSlashing.js +1 -1
- package/lib/chain/validation/proposerSlashing.js.map +1 -1
- package/lib/chain/validation/signatureSets/aggregateAndProof.js +1 -1
- package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
- package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +1 -2
- package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
- package/lib/chain/validation/signatureSets/contributionAndProof.js +2 -2
- package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommittee.d.ts +1 -2
- package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommittee.js +2 -2
- package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +1 -2
- package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommitteeContribution.js +2 -2
- package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +1 -2
- package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +2 -1
- package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
- package/lib/chain/validation/syncCommittee.js +1 -1
- package/lib/chain/validation/syncCommittee.js.map +1 -1
- package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
- package/lib/chain/validation/syncCommitteeContributionAndProof.js +3 -3
- package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
- package/lib/chain/validation/voluntaryExit.js +1 -1
- package/lib/chain/validation/voluntaryExit.js.map +1 -1
- package/lib/db/beacon.d.ts +0 -2
- package/lib/db/beacon.d.ts.map +1 -1
- package/lib/db/beacon.js +0 -32
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/buckets.d.ts +0 -12
- package/lib/db/buckets.d.ts.map +1 -1
- package/lib/db/buckets.js +6 -12
- package/lib/db/buckets.js.map +1 -1
- package/lib/db/interface.d.ts +0 -1
- package/lib/db/interface.d.ts.map +1 -1
- package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
- package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
- package/lib/node/nodejs.d.ts.map +1 -1
- package/lib/node/nodejs.js +0 -10
- package/lib/node/nodejs.js.map +1 -1
- package/lib/node/notifier.d.ts.map +1 -1
- package/lib/node/notifier.js +6 -9
- package/lib/node/notifier.js.map +1 -1
- package/lib/sync/backfill/backfill.d.ts.map +1 -1
- package/lib/sync/backfill/backfill.js +4 -2
- package/lib/sync/backfill/backfill.js.map +1 -1
- package/lib/sync/backfill/verify.d.ts +1 -1
- package/lib/sync/backfill/verify.d.ts.map +1 -1
- package/lib/sync/backfill/verify.js +2 -2
- package/lib/sync/backfill/verify.js.map +1 -1
- package/package.json +14 -14
- package/src/chain/blocks/verifyBlock.ts +0 -1
- package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +2 -9
- package/src/chain/blocks/verifyBlocksSignatures.ts +1 -3
- package/src/chain/chain.ts +4 -6
- package/src/chain/forkChoice/index.ts +2 -3
- package/src/chain/opPools/aggregatedAttestationPool.ts +7 -7
- package/src/chain/opPools/opPool.ts +8 -8
- package/src/chain/produceBlock/produceBlockBody.ts +2 -2
- package/src/chain/rewards/attestationsRewards.ts +4 -13
- package/src/chain/rewards/blockRewards.ts +3 -6
- package/src/chain/rewards/syncCommitteeRewards.ts +1 -3
- package/src/chain/stateCache/persistentCheckpointsCache.ts +2 -15
- package/src/chain/validation/attesterSlashing.ts +1 -1
- package/src/chain/validation/block.ts +2 -3
- package/src/chain/validation/blsToExecutionChange.ts +1 -1
- package/src/chain/validation/proposerSlashing.ts +1 -1
- package/src/chain/validation/signatureSets/aggregateAndProof.ts +1 -1
- package/src/chain/validation/signatureSets/contributionAndProof.ts +1 -3
- package/src/chain/validation/signatureSets/syncCommittee.ts +1 -3
- package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +1 -3
- package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +1 -2
- package/src/chain/validation/syncCommittee.ts +1 -1
- package/src/chain/validation/syncCommitteeContributionAndProof.ts +3 -8
- package/src/chain/validation/voluntaryExit.ts +1 -1
- package/src/db/beacon.ts +1 -38
- package/src/db/buckets.ts +6 -12
- package/src/db/interface.ts +0 -2
- package/src/node/nodejs.ts +0 -11
- package/src/node/notifier.ts +7 -13
- package/src/sync/backfill/backfill.ts +3 -8
- 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
|
|
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
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
46
|
-
|
|
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
|
package/src/db/interface.ts
CHANGED
|
@@ -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 */
|
package/src/node/nodejs.ts
CHANGED
|
@@ -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",
|
package/src/node/notifier.ts
CHANGED
|
@@ -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
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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
|
-
|
|
755
|
-
|
|
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
|
|