@lodestar/beacon-node 1.50.0-dev.2e668c516f → 1.50.0-dev.335476095e
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/api/impl/beacon/blocks/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/blocks/index.js +6 -1
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/index.js +13 -0
- package/lib/api/impl/beacon/index.js.map +1 -1
- package/lib/api/impl/validator/index.d.ts +1 -0
- package/lib/api/impl/validator/index.d.ts.map +1 -1
- package/lib/api/impl/validator/index.js +17 -1
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.js +1 -1
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +2 -2
- package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.js +5 -7
- package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +1 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/types.d.ts +2 -2
- package/lib/chain/archiveStore/historicalState/types.d.ts.map +1 -1
- package/lib/chain/archiveStore/historicalState/worker.js +1 -1
- package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
- package/lib/chain/archiveStore/interface.d.ts +1 -1
- package/lib/chain/archiveStore/interface.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.js +4 -0
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +2 -1
- package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -1
- 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/verifyBlocksStateTransitionOnly.d.ts +2 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +5 -4
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
- package/lib/chain/chain.d.ts +6 -4
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +40 -13
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +7 -1
- package/lib/chain/emitter.d.ts.map +1 -1
- package/lib/chain/emitter.js +5 -0
- package/lib/chain/emitter.js.map +1 -1
- package/lib/chain/errors/envelopeReconstructionError.d.ts +5 -0
- package/lib/chain/errors/envelopeReconstructionError.d.ts.map +1 -1
- package/lib/chain/errors/envelopeReconstructionError.js +2 -0
- package/lib/chain/errors/envelopeReconstructionError.js.map +1 -1
- package/lib/chain/errors/gossipValidation.d.ts +3 -1
- package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
- package/lib/chain/errors/gossipValidation.js +2 -0
- package/lib/chain/errors/gossipValidation.js.map +1 -1
- package/lib/chain/forkChoice/index.d.ts.map +1 -1
- package/lib/chain/forkChoice/index.js +2 -0
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/interface.d.ts +2 -2
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/opPools/proposerPreferencesPool.d.ts +4 -4
- package/lib/chain/opPools/proposerPreferencesPool.d.ts.map +1 -1
- package/lib/chain/opPools/proposerPreferencesPool.js +14 -11
- package/lib/chain/opPools/proposerPreferencesPool.js.map +1 -1
- package/lib/chain/options.d.ts +1 -1
- package/lib/chain/options.d.ts.map +1 -1
- package/lib/chain/options.js +1 -1
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/prepareNextSlot.d.ts.map +1 -1
- package/lib/chain/prepareNextSlot.js +5 -2
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.js +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +6 -2
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/regen/regen.d.ts +2 -0
- package/lib/chain/regen/regen.d.ts.map +1 -1
- package/lib/chain/regen/regen.js +10 -4
- package/lib/chain/regen/regen.js.map +1 -1
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +9 -2
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +23 -13
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
- package/lib/chain/validatorMonitor.d.ts +5 -1
- package/lib/chain/validatorMonitor.d.ts.map +1 -1
- package/lib/chain/validatorMonitor.js +64 -54
- package/lib/chain/validatorMonitor.js.map +1 -1
- package/lib/execution/engine/disabled.d.ts +0 -2
- package/lib/execution/engine/disabled.d.ts.map +1 -1
- package/lib/execution/engine/disabled.js +0 -6
- package/lib/execution/engine/disabled.js.map +1 -1
- package/lib/execution/engine/http.d.ts +1 -3
- package/lib/execution/engine/http.d.ts.map +1 -1
- package/lib/execution/engine/http.js +2 -17
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +2 -4
- package/lib/execution/engine/interface.d.ts.map +1 -1
- package/lib/execution/engine/mock.d.ts +0 -2
- package/lib/execution/engine/mock.d.ts.map +1 -1
- package/lib/execution/engine/mock.js +0 -8
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/types.d.ts +0 -8
- package/lib/execution/engine/types.d.ts.map +1 -1
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/metrics/metrics.d.ts +7 -3
- package/lib/metrics/metrics.d.ts.map +1 -1
- package/lib/metrics/metrics.js +4 -4
- package/lib/metrics/metrics.js.map +1 -1
- package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
- package/lib/network/processor/gossipHandlers.js +3 -0
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipValidatorFn.d.ts +7 -3
- package/lib/network/processor/gossipValidatorFn.d.ts.map +1 -1
- package/lib/network/processor/gossipValidatorFn.js +7 -3
- package/lib/network/processor/gossipValidatorFn.js.map +1 -1
- package/lib/network/processor/index.d.ts +9 -0
- package/lib/network/processor/index.d.ts.map +1 -1
- package/lib/network/processor/index.js +77 -10
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +1 -1
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -1
- package/lib/node/nodejs.d.ts.map +1 -1
- package/lib/node/nodejs.js +25 -3
- package/lib/node/nodejs.js.map +1 -1
- package/lib/sync/range/batch.d.ts +6 -0
- package/lib/sync/range/batch.d.ts.map +1 -1
- package/lib/sync/range/batch.js +10 -0
- package/lib/sync/range/batch.js.map +1 -1
- package/lib/sync/range/chain.d.ts.map +1 -1
- package/lib/sync/range/chain.js +5 -1
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.d.ts.map +1 -1
- package/lib/sync/range/range.js +50 -18
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts.map +1 -1
- package/lib/sync/unknownBlock.js +5 -4
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/util/execution.d.ts +9 -11
- package/lib/util/execution.d.ts.map +1 -1
- package/lib/util/execution.js +5 -1
- package/lib/util/execution.js.map +1 -1
- package/package.json +16 -16
- package/src/api/impl/beacon/blocks/index.ts +7 -4
- package/src/api/impl/beacon/index.ts +15 -0
- package/src/api/impl/validator/index.ts +16 -2
- package/src/chain/archiveStore/archiveStore.ts +1 -1
- package/src/chain/archiveStore/historicalState/getHistoricalState.ts +5 -7
- package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +1 -1
- package/src/chain/archiveStore/historicalState/types.ts +2 -2
- package/src/chain/archiveStore/historicalState/worker.ts +1 -2
- package/src/chain/archiveStore/interface.ts +1 -1
- package/src/chain/blocks/importBlock.ts +4 -0
- package/src/chain/blocks/payloadEnvelopeInput/types.ts +2 -1
- package/src/chain/blocks/verifyBlock.ts +1 -0
- package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +6 -3
- package/src/chain/chain.ts +47 -16
- package/src/chain/emitter.ts +7 -1
- package/src/chain/errors/envelopeReconstructionError.ts +3 -0
- package/src/chain/errors/gossipValidation.ts +2 -0
- package/src/chain/forkChoice/index.ts +2 -0
- package/src/chain/interface.ts +2 -2
- package/src/chain/opPools/proposerPreferencesPool.ts +14 -10
- package/src/chain/options.ts +2 -2
- package/src/chain/prepareNextSlot.ts +6 -3
- package/src/chain/produceBlock/computeNewStateRoot.ts +1 -1
- package/src/chain/produceBlock/produceBlockBody.ts +8 -1
- package/src/chain/regen/regen.ts +12 -4
- package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +31 -13
- package/src/chain/validatorMonitor.ts +75 -57
- package/src/execution/engine/disabled.ts +0 -8
- package/src/execution/engine/http.ts +1 -30
- package/src/execution/engine/interface.ts +2 -6
- package/src/execution/engine/mock.ts +1 -19
- package/src/execution/engine/types.ts +0 -10
- package/src/metrics/metrics.ts +21 -6
- package/src/network/processor/gossipHandlers.ts +3 -0
- package/src/network/processor/gossipValidatorFn.ts +13 -3
- package/src/network/processor/index.ts +89 -10
- package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +1 -1
- package/src/node/nodejs.ts +31 -3
- package/src/sync/range/batch.ts +11 -0
- package/src/sync/range/chain.ts +6 -1
- package/src/sync/range/range.ts +50 -18
- package/src/sync/unknownBlock.ts +5 -4
- package/src/util/execution.ts +16 -8
package/lib/chain/regen/regen.js
CHANGED
|
@@ -171,7 +171,7 @@ export class StateRegenerator {
|
|
|
171
171
|
// Only advances state trusting block's signture and hashes.
|
|
172
172
|
// We are only running the state transition to get a specific state's data.
|
|
173
173
|
// stateTransition() does the clone() inside, transfer cache to make the regen faster
|
|
174
|
-
state = state.stateTransition(block, {
|
|
174
|
+
state = state.stateTransition({ block, ssz: this.modules.serializedCache.get(block) }, {
|
|
175
175
|
// Replay previously imported blocks, assume valid and available
|
|
176
176
|
executionPayloadStatus: ExecutionPayloadStatus.valid,
|
|
177
177
|
dataAvailabilityStatus: DataAvailabilityStatus.Available,
|
|
@@ -179,7 +179,7 @@ export class StateRegenerator {
|
|
|
179
179
|
verifyProposer: false,
|
|
180
180
|
verifySignatures: false,
|
|
181
181
|
dontTransferCache: false,
|
|
182
|
-
}, this.modules);
|
|
182
|
+
}, { metrics: this.modules.metrics?.stateTransition, validatorMonitor: this.modules.validatorMonitor });
|
|
183
183
|
const hashTreeRootTimer = this.modules.metrics?.stateHashTreeRootTime.startTimer({
|
|
184
184
|
source: StateHashTreeRootSource.regenState,
|
|
185
185
|
});
|
|
@@ -229,7 +229,10 @@ export class StateRegenerator {
|
|
|
229
229
|
async function processSlotsByCheckpoint(modules, preState, slot, regenCaller, opts) {
|
|
230
230
|
let postState = await processSlotsToNearestCheckpoint(modules, preState, slot, regenCaller, opts);
|
|
231
231
|
if (postState.slot < slot) {
|
|
232
|
-
postState = postState.processSlots(slot, opts,
|
|
232
|
+
postState = postState.processSlots(slot, opts, {
|
|
233
|
+
metrics: modules.metrics?.stateTransition,
|
|
234
|
+
validatorMonitor: modules.validatorMonitor,
|
|
235
|
+
});
|
|
233
236
|
}
|
|
234
237
|
return postState;
|
|
235
238
|
}
|
|
@@ -255,7 +258,10 @@ export async function processSlotsToNearestCheckpoint(modules, preState, slot, r
|
|
|
255
258
|
caller: regenCaller,
|
|
256
259
|
});
|
|
257
260
|
// processSlots calls .clone() before mutating
|
|
258
|
-
postState = postState.processSlots(nextEpochSlot, opts,
|
|
261
|
+
postState = postState.processSlots(nextEpochSlot, opts, {
|
|
262
|
+
metrics: metrics?.stateTransition,
|
|
263
|
+
validatorMonitor: modules.validatorMonitor,
|
|
264
|
+
});
|
|
259
265
|
metrics?.epochTransitionByCaller.inc({ caller: regenCaller });
|
|
260
266
|
// this is usually added when we prepare for next slot or validate gossip block
|
|
261
267
|
// then when we process the 1st block of epoch, we don't have to do state transition again
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regen.js","sourceRoot":"","sources":["../../../src/chain/regen/regen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EAEtB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAS,OAAO,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"regen.js","sourceRoot":"","sources":["../../../src/chain/regen/regen.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,8 +31,9 @@ export type SeenPayloadEnvelopeInputModules = {
|
|
|
31
31
|
* Created whenever we have a block because it needs block bid.
|
|
32
32
|
* Steady state (linear chain, healthy progression): the cache holds ~2 entries — the head
|
|
33
33
|
* (parent for next-slot production) and its parent (proposer-boost-reorg fallback). It can
|
|
34
|
-
*
|
|
35
|
-
*
|
|
34
|
+
* hold more during forks and range sync, or while an entry's payload is not FULL on the head's
|
|
35
|
+
* branch or its columns are still being gathered. Such entries are evicted on a later block
|
|
36
|
+
* import, on finalization or by the size cap.
|
|
36
37
|
*/
|
|
37
38
|
export declare class SeenPayloadEnvelopeInput {
|
|
38
39
|
private readonly config;
|
|
@@ -71,6 +72,12 @@ export declare class SeenPayloadEnvelopeInput {
|
|
|
71
72
|
size(): number;
|
|
72
73
|
/** Removes the single PayloadEnvelopeInput from the cache */
|
|
73
74
|
remove(blockRootHex: RootHex): void;
|
|
75
|
+
/**
|
|
76
|
+
* Removes a PayloadEnvelopeInput whose envelope failed import with a definitive invalid verdict. The envelope
|
|
77
|
+
* cannot be replaced in place, sync recreates the entry via `getOrReload()` or `add()` to fetch another one.
|
|
78
|
+
* No-op if the cached entry is a different object, it may already be the recreated one.
|
|
79
|
+
*/
|
|
80
|
+
removeInvalid(payloadInput: PayloadEnvelopeInput): void;
|
|
74
81
|
pruneBelowParent(parentBlock: ProtoBlock): void;
|
|
75
82
|
/**
|
|
76
83
|
* Bound this cache to have at most MAX_PAYLOAD_ENVELOPE_INPUT_CACHE_SIZE items.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seenPayloadEnvelopeInput.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/seenPayloadEnvelopeInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAoB,WAAW,EAAiB,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAGhG,OAAO,EAAC,OAAO,EAAoB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAC,MAAM,EAAU,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EAGrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAa,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAEzD,YAAY,EAAC,yBAAyB,EAAC,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAC,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AAK7E,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,eAAe,EAAE,eAAe,CAAC;IACjC,EAAE,EAAE,SAAS,CAAC;IACd,mBAAmB,EAAE,cAAc,CAAC;IACpC,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"seenPayloadEnvelopeInput.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/seenPayloadEnvelopeInput.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,9 @@ const MAX_PAYLOAD_ENVELOPE_INPUT_CACHE_SIZE = (MAX_LOOK_AHEAD_EPOCHS + 1) * SLOT
|
|
|
15
15
|
* Created whenever we have a block because it needs block bid.
|
|
16
16
|
* Steady state (linear chain, healthy progression): the cache holds ~2 entries — the head
|
|
17
17
|
* (parent for next-slot production) and its parent (proposer-boost-reorg fallback). It can
|
|
18
|
-
*
|
|
19
|
-
*
|
|
18
|
+
* hold more during forks and range sync, or while an entry's payload is not FULL on the head's
|
|
19
|
+
* branch or its columns are still being gathered. Such entries are evicted on a later block
|
|
20
|
+
* import, on finalization or by the size cap.
|
|
20
21
|
*/
|
|
21
22
|
export class SeenPayloadEnvelopeInput {
|
|
22
23
|
config;
|
|
@@ -198,18 +199,27 @@ export class SeenPayloadEnvelopeInput {
|
|
|
198
199
|
this.evictPayloadInput(input, "remove");
|
|
199
200
|
}
|
|
200
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Removes a PayloadEnvelopeInput whose envelope failed import with a definitive invalid verdict. The envelope
|
|
204
|
+
* cannot be replaced in place, sync recreates the entry via `getOrReload()` or `add()` to fetch another one.
|
|
205
|
+
* No-op if the cached entry is a different object, it may already be the recreated one.
|
|
206
|
+
*/
|
|
207
|
+
removeInvalid(payloadInput) {
|
|
208
|
+
if (this.payloadInputs.get(payloadInput.blockRootHex) === payloadInput) {
|
|
209
|
+
this.evictPayloadInput(payloadInput, "invalid");
|
|
210
|
+
}
|
|
211
|
+
}
|
|
201
212
|
pruneBelowParent(parentBlock) {
|
|
202
|
-
for (const
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
//
|
|
209
|
-
//
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
}
|
|
213
|
+
for (const input of this.payloadInputs.values()) {
|
|
214
|
+
if (input.slot < parentBlock.slot &&
|
|
215
|
+
// Don't evict while columns are still being gathered: writeDataColumnsToDb awaits the same
|
|
216
|
+
// hasComputedAllData() before persisting. Such entries are pruned by a later call.
|
|
217
|
+
input.hasComputedAllData() &&
|
|
218
|
+
// Only evict once the payload is FULL (revealed/imported) on the parent's branch. On an EMPTY/PENDING
|
|
219
|
+
// branch we may still need to download the FULL envelope (see #9475), and without the entry gossip
|
|
220
|
+
// for the block is ignored until by-root sync reloads it.
|
|
221
|
+
this.forkChoice.isDescendant(input.blockRootHex, PayloadStatus.FULL, parentBlock.blockRoot, parentBlock.payloadStatus)) {
|
|
222
|
+
this.evictPayloadInput(input, "belowParent");
|
|
213
223
|
}
|
|
214
224
|
}
|
|
215
225
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seenPayloadEnvelopeInput.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenPayloadEnvelopeInput.ts"],"names":[],"mappings":"AACA,OAAO,EAAiC,aAAa,EAAa,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAgB,eAAe,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAS,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAI9D,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAGL,oBAAoB,EAEpB,0BAA0B,GAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAC,UAAU,EAAoB,MAAM,eAAe,CAAC;AAI5D,OAAO,EAAC,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AAE7E,wEAAwE;AACxE,MAAM,qCAAqC,GAAG,CAAC,qBAAqB,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;AAgB5F
|
|
1
|
+
{"version":3,"file":"seenPayloadEnvelopeInput.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenPayloadEnvelopeInput.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,8 +35,12 @@ export type ValidatorMonitorOpts = {
|
|
|
35
35
|
/** Log validator monitor events as info */
|
|
36
36
|
validatorMonitorLogs?: boolean;
|
|
37
37
|
};
|
|
38
|
+
export type NativeValidatorMonitor = {
|
|
39
|
+
registerLocalValidator(index: ValidatorIndex): void;
|
|
40
|
+
unregisterLocalValidator(index: ValidatorIndex): void;
|
|
41
|
+
};
|
|
38
42
|
export declare const defaultValidatorMonitorOpts: ValidatorMonitorOpts;
|
|
39
|
-
export declare function createValidatorMonitor(metricsRegister: RegistryMetricCreator | null, config: ChainForkConfig, genesisTime: number, logger: Logger, opts: ValidatorMonitorOpts): ValidatorMonitor;
|
|
43
|
+
export declare function createValidatorMonitor(metricsRegister: RegistryMetricCreator | null, config: ChainForkConfig, genesisTime: number, logger: Logger, opts: ValidatorMonitorOpts, nativeValidatorMonitor?: NativeValidatorMonitor | null): ValidatorMonitor;
|
|
40
44
|
/**
|
|
41
45
|
* Cache to prevent accessing the state tree to fetch block roots repeteadly.
|
|
42
46
|
* In normal network conditions the same root is read multiple times, specially the target.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validatorMonitor.d.ts","sourceRoot":"","sources":["../../src/chain/validatorMonitor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validatorMonitor.d.ts","sourceRoot":"","sources":["../../src/chain/validatorMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,7 +70,7 @@ function getEpochSummary(validator, epoch) {
|
|
|
70
70
|
}
|
|
71
71
|
return summary;
|
|
72
72
|
}
|
|
73
|
-
export function createValidatorMonitor(metricsRegister, config, genesisTime, logger, opts) {
|
|
73
|
+
export function createValidatorMonitor(metricsRegister, config, genesisTime, logger, opts, nativeValidatorMonitor = null) {
|
|
74
74
|
const logLevel = opts.validatorMonitorLogs ? LogLevel.info : LogLevel.debug;
|
|
75
75
|
const log = (message, context) => {
|
|
76
76
|
logger[logLevel](message, context);
|
|
@@ -90,15 +90,20 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
|
|
|
90
90
|
lastRegisteredTimeMs: 0,
|
|
91
91
|
}));
|
|
92
92
|
let lastRegisteredStatusEpoch = -1;
|
|
93
|
+
let lastAttestationSummaryEpoch = -1;
|
|
93
94
|
// Track validator additions/removals per epoch for logging
|
|
94
95
|
const addedValidatorsInEpoch = new Set();
|
|
95
96
|
const removedValidatorsInEpoch = new Set();
|
|
96
|
-
const
|
|
97
|
+
const shouldRegisterStateDerivedMetrics = nativeValidatorMonitor === null;
|
|
98
|
+
const validatorMonitorMetrics = metricsRegister
|
|
99
|
+
? createValidatorMonitorMetrics(metricsRegister, shouldRegisterStateDerivedMetrics)
|
|
100
|
+
: null;
|
|
97
101
|
const validatorMonitor = {
|
|
98
102
|
registerLocalValidator(index) {
|
|
99
103
|
const isNewValidator = !validators.has(index);
|
|
100
104
|
validators.getOrDefault(index).lastRegisteredTimeMs = Date.now();
|
|
101
105
|
if (isNewValidator) {
|
|
106
|
+
nativeValidatorMonitor?.registerLocalValidator(index);
|
|
102
107
|
addedValidatorsInEpoch.add(index);
|
|
103
108
|
}
|
|
104
109
|
},
|
|
@@ -121,7 +126,7 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
|
|
|
121
126
|
}
|
|
122
127
|
// Track total balance instead of per-validator balance to reduce metric cardinality
|
|
123
128
|
let totalBalance = 0;
|
|
124
|
-
for (const
|
|
129
|
+
for (const index of validators.keys()) {
|
|
125
130
|
// We subtract two from the state of the epoch that generated these summaries.
|
|
126
131
|
//
|
|
127
132
|
// - One to account for it being the previous epoch.
|
|
@@ -129,66 +134,30 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
|
|
|
129
134
|
// statuses.
|
|
130
135
|
const summary = statusToSummary(inclusionDelays[index], flags[index], isActiveCurrEpoch[index], isActiveInPrevEpoch[index]);
|
|
131
136
|
if (summary.isPrevSourceAttester) {
|
|
132
|
-
validatorMonitorMetrics?.prevEpochOnChainSourceAttesterHit
|
|
137
|
+
validatorMonitorMetrics?.prevEpochOnChainSourceAttesterHit?.inc();
|
|
133
138
|
}
|
|
134
139
|
else {
|
|
135
|
-
validatorMonitorMetrics?.prevEpochOnChainSourceAttesterMiss
|
|
140
|
+
validatorMonitorMetrics?.prevEpochOnChainSourceAttesterMiss?.inc();
|
|
136
141
|
}
|
|
137
142
|
if (summary.isPrevHeadAttester) {
|
|
138
|
-
validatorMonitorMetrics?.prevEpochOnChainHeadAttesterHit
|
|
143
|
+
validatorMonitorMetrics?.prevEpochOnChainHeadAttesterHit?.inc();
|
|
139
144
|
}
|
|
140
145
|
else {
|
|
141
|
-
validatorMonitorMetrics?.prevEpochOnChainHeadAttesterMiss
|
|
146
|
+
validatorMonitorMetrics?.prevEpochOnChainHeadAttesterMiss?.inc();
|
|
142
147
|
}
|
|
143
148
|
if (summary.isPrevTargetAttester) {
|
|
144
|
-
validatorMonitorMetrics?.prevEpochOnChainTargetAttesterHit
|
|
149
|
+
validatorMonitorMetrics?.prevEpochOnChainTargetAttesterHit?.inc();
|
|
145
150
|
}
|
|
146
151
|
else {
|
|
147
|
-
validatorMonitorMetrics?.prevEpochOnChainTargetAttesterMiss
|
|
148
|
-
}
|
|
149
|
-
const prevEpochSummary = monitoredValidator.summaries.get(previousEpoch);
|
|
150
|
-
const attestationCorrectHead = prevEpochSummary?.attestationCorrectHead;
|
|
151
|
-
if (attestationCorrectHead !== null && attestationCorrectHead !== undefined) {
|
|
152
|
-
if (attestationCorrectHead) {
|
|
153
|
-
validatorMonitorMetrics?.prevOnChainAttesterCorrectHead.inc();
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
validatorMonitorMetrics?.prevOnChainAttesterIncorrectHead.inc();
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
const attestationMinBlockInclusionDistance = prevEpochSummary?.attestationMinBlockInclusionDistance;
|
|
160
|
-
const inclusionDistance = attestationMinBlockInclusionDistance != null && attestationMinBlockInclusionDistance > 0
|
|
161
|
-
? // altair, attestation is not missed
|
|
162
|
-
attestationMinBlockInclusionDistance
|
|
163
|
-
: summary.inclusionDistance
|
|
164
|
-
? // phase0, this is from the state transition
|
|
165
|
-
summary.inclusionDistance
|
|
166
|
-
: null;
|
|
167
|
-
if (inclusionDistance !== null) {
|
|
168
|
-
validatorMonitorMetrics?.prevEpochOnChainInclusionDistance.observe(inclusionDistance);
|
|
169
|
-
validatorMonitorMetrics?.prevEpochOnChainAttesterHit.inc();
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
validatorMonitorMetrics?.prevEpochOnChainAttesterMiss.inc();
|
|
152
|
+
validatorMonitorMetrics?.prevEpochOnChainTargetAttesterMiss?.inc();
|
|
173
153
|
}
|
|
174
154
|
const balance = balances?.[index];
|
|
175
155
|
if (balance !== undefined) {
|
|
176
156
|
totalBalance += balance;
|
|
177
157
|
}
|
|
178
|
-
if (!summary.isPrevSourceAttester || !summary.isPrevTargetAttester || !summary.isPrevHeadAttester) {
|
|
179
|
-
log("Failed attestation in previous epoch", {
|
|
180
|
-
validator: index,
|
|
181
|
-
prevEpoch: currentEpoch - 1,
|
|
182
|
-
isPrevSourceAttester: summary.isPrevSourceAttester,
|
|
183
|
-
isPrevHeadAttester: summary.isPrevHeadAttester,
|
|
184
|
-
isPrevTargetAttester: summary.isPrevTargetAttester,
|
|
185
|
-
// inclusionDistance is not available in summary since altair
|
|
186
|
-
inclusionDistance,
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
158
|
}
|
|
190
159
|
if (balances !== undefined) {
|
|
191
|
-
validatorMonitorMetrics?.prevEpochOnChainBalance
|
|
160
|
+
validatorMonitorMetrics?.prevEpochOnChainBalance?.set(totalBalance);
|
|
192
161
|
}
|
|
193
162
|
},
|
|
194
163
|
registerBeaconBlock(src, delaySec, block) {
|
|
@@ -436,6 +405,7 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
|
|
|
436
405
|
// Prune validators not seen in a while
|
|
437
406
|
for (const [index, validator] of validators.entries()) {
|
|
438
407
|
if (Date.now() - validator.lastRegisteredTimeMs > retainRegisteredValidatorsMs) {
|
|
408
|
+
nativeValidatorMonitor?.unregisterLocalValidator(index);
|
|
439
409
|
validators.delete(index);
|
|
440
410
|
removedValidatorsInEpoch.add(index);
|
|
441
411
|
}
|
|
@@ -464,6 +434,35 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
|
|
|
464
434
|
if (validators.size === 0) {
|
|
465
435
|
return;
|
|
466
436
|
}
|
|
437
|
+
// On-chain attestation summary of prevEpoch. Reads only the epoch summaries filled by
|
|
438
|
+
// registerAttestationInBlock(), so it works with both TS and native state transition.
|
|
439
|
+
if (prevEpoch > lastAttestationSummaryEpoch) {
|
|
440
|
+
lastAttestationSummaryEpoch = prevEpoch;
|
|
441
|
+
for (const monitoredValidator of validators.values()) {
|
|
442
|
+
const prevEpochSummary = monitoredValidator.summaries.get(prevEpoch);
|
|
443
|
+
const attestationCorrectHead = prevEpochSummary?.attestationCorrectHead;
|
|
444
|
+
if (attestationCorrectHead !== null && attestationCorrectHead !== undefined) {
|
|
445
|
+
if (attestationCorrectHead) {
|
|
446
|
+
validatorMonitorMetrics?.prevOnChainAttesterCorrectHead.inc();
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
validatorMonitorMetrics?.prevOnChainAttesterIncorrectHead.inc();
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
const attestationMinBlockInclusionDistance = prevEpochSummary?.attestationMinBlockInclusionDistance;
|
|
453
|
+
const inclusionDistance = attestationMinBlockInclusionDistance != null && attestationMinBlockInclusionDistance > 0
|
|
454
|
+
? // altair, attestation is not missed
|
|
455
|
+
attestationMinBlockInclusionDistance
|
|
456
|
+
: null;
|
|
457
|
+
if (inclusionDistance !== null) {
|
|
458
|
+
validatorMonitorMetrics?.prevEpochOnChainInclusionDistance.observe(inclusionDistance);
|
|
459
|
+
validatorMonitorMetrics?.prevEpochOnChainAttesterHit.inc();
|
|
460
|
+
}
|
|
461
|
+
else {
|
|
462
|
+
validatorMonitorMetrics?.prevEpochOnChainAttesterMiss.inc();
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
467
466
|
const rootCache = new RootHexCache(headState);
|
|
468
467
|
if (isStatePostAltair(headState)) {
|
|
469
468
|
const prevEpochStartSlot = computeStartSlotAtEpoch(prevEpoch);
|
|
@@ -479,6 +478,16 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
|
|
|
479
478
|
epoch: prevEpoch,
|
|
480
479
|
summary,
|
|
481
480
|
});
|
|
481
|
+
if (!flags.timelySource || !flags.timelyTarget || !flags.timelyHead) {
|
|
482
|
+
log("Failed attestation in previous epoch", {
|
|
483
|
+
validator: index,
|
|
484
|
+
prevEpoch,
|
|
485
|
+
isPrevSourceAttester: flags.timelySource,
|
|
486
|
+
isPrevHeadAttester: flags.timelyHead,
|
|
487
|
+
isPrevTargetAttester: flags.timelyTarget,
|
|
488
|
+
inclusionDistance: validator.summaries.get(prevEpoch)?.attestationMinBlockInclusionDistance ?? null,
|
|
489
|
+
});
|
|
490
|
+
}
|
|
482
491
|
}
|
|
483
492
|
}
|
|
484
493
|
if (headState.previousProposers !== null) {
|
|
@@ -813,7 +822,8 @@ export class RootHexCache {
|
|
|
813
822
|
return root;
|
|
814
823
|
}
|
|
815
824
|
}
|
|
816
|
-
function createValidatorMonitorMetrics(register) {
|
|
825
|
+
function createValidatorMonitorMetrics(register, registerStateDerivedMetrics = true) {
|
|
826
|
+
const stateDerivedRegister = registerStateDerivedMetrics ? register : null;
|
|
817
827
|
return {
|
|
818
828
|
validatorsConnected: register.gauge({
|
|
819
829
|
name: "validator_monitor_validators",
|
|
@@ -829,7 +839,7 @@ function createValidatorMonitorMetrics(register) {
|
|
|
829
839
|
help: "Count of validators monitored by this beacon node that are part of sync committee",
|
|
830
840
|
}),
|
|
831
841
|
// Validator Monitor Metrics (per-epoch summaries)
|
|
832
|
-
prevEpochOnChainBalance:
|
|
842
|
+
prevEpochOnChainBalance: stateDerivedRegister?.gauge({
|
|
833
843
|
name: "validator_monitor_prev_epoch_on_chain_balance",
|
|
834
844
|
help: "Total balance of all monitored validators after an epoch",
|
|
835
845
|
}),
|
|
@@ -841,19 +851,19 @@ function createValidatorMonitorMetrics(register) {
|
|
|
841
851
|
name: "validator_monitor_prev_epoch_on_chain_attester_miss_total",
|
|
842
852
|
help: "Incremented if validator's submitted attestation is not included in any blocks",
|
|
843
853
|
}),
|
|
844
|
-
prevEpochOnChainSourceAttesterHit:
|
|
854
|
+
prevEpochOnChainSourceAttesterHit: stateDerivedRegister?.gauge({
|
|
845
855
|
name: "validator_monitor_prev_epoch_on_chain_source_attester_hit_total",
|
|
846
856
|
help: "Incremented if the validator is flagged as a previous epoch source attester during per epoch processing",
|
|
847
857
|
}),
|
|
848
|
-
prevEpochOnChainSourceAttesterMiss:
|
|
858
|
+
prevEpochOnChainSourceAttesterMiss: stateDerivedRegister?.gauge({
|
|
849
859
|
name: "validator_monitor_prev_epoch_on_chain_source_attester_miss_total",
|
|
850
860
|
help: "Incremented if the validator is not flagged as a previous epoch source attester during per epoch processing",
|
|
851
861
|
}),
|
|
852
|
-
prevEpochOnChainHeadAttesterHit:
|
|
862
|
+
prevEpochOnChainHeadAttesterHit: stateDerivedRegister?.gauge({
|
|
853
863
|
name: "validator_monitor_prev_epoch_on_chain_head_attester_hit_total",
|
|
854
864
|
help: "Incremented if the validator is flagged as a previous epoch head attester during per epoch processing",
|
|
855
865
|
}),
|
|
856
|
-
prevEpochOnChainHeadAttesterMiss:
|
|
866
|
+
prevEpochOnChainHeadAttesterMiss: stateDerivedRegister?.gauge({
|
|
857
867
|
name: "validator_monitor_prev_epoch_on_chain_head_attester_miss_total",
|
|
858
868
|
help: "Incremented if the validator is not flagged as a previous epoch head attester during per epoch processing",
|
|
859
869
|
}),
|
|
@@ -865,11 +875,11 @@ function createValidatorMonitorMetrics(register) {
|
|
|
865
875
|
name: "validator_monitor_prev_epoch_on_chain_attester_incorrect_head_total",
|
|
866
876
|
help: "Total count of times a validator votes incorrect head",
|
|
867
877
|
}),
|
|
868
|
-
prevEpochOnChainTargetAttesterHit:
|
|
878
|
+
prevEpochOnChainTargetAttesterHit: stateDerivedRegister?.gauge({
|
|
869
879
|
name: "validator_monitor_prev_epoch_on_chain_target_attester_hit_total",
|
|
870
880
|
help: "Incremented if the validator is flagged as a previous epoch target attester during per epoch processing",
|
|
871
881
|
}),
|
|
872
|
-
prevEpochOnChainTargetAttesterMiss:
|
|
882
|
+
prevEpochOnChainTargetAttesterMiss: stateDerivedRegister?.gauge({
|
|
873
883
|
name: "validator_monitor_prev_epoch_on_chain_target_attester_miss_total",
|
|
874
884
|
help: "Incremented if the validator is not flagged as a previous epoch target attester during per epoch processing",
|
|
875
885
|
}),
|