@lodestar/beacon-node 1.31.0-dev.d1a37bc1f6 → 1.31.0-dev.d68d5933b8
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.js +2 -0
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/rewards/index.js +3 -0
- package/lib/api/impl/beacon/rewards/index.js.map +1 -1
- package/lib/api/impl/beacon/state/index.js +5 -0
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/config/index.d.ts +1 -1
- package/lib/api/impl/config/index.js +5 -0
- package/lib/api/impl/config/index.js.map +1 -1
- package/lib/api/impl/utils.d.ts +9 -0
- package/lib/api/impl/utils.js +23 -0
- package/lib/api/impl/utils.js.map +1 -0
- package/lib/api/impl/validator/index.js +11 -33
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +1 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/metrics.d.ts +22 -0
- package/lib/chain/archiveStore/historicalState/metrics.js +173 -0
- package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -0
- package/lib/chain/archiveStore/historicalState/types.d.ts +2 -16
- package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/worker.js +3 -163
- package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +1 -2
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/blocks/blockInput/blockInput.d.ts +4 -2
- package/lib/chain/blocks/blockInput/blockInput.js +28 -12
- package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
- package/lib/chain/blocks/blockInput/index.d.ts +1 -0
- package/lib/chain/blocks/blockInput/index.js +1 -0
- package/lib/chain/blocks/blockInput/index.js.map +1 -1
- package/lib/chain/blocks/blockInput/types.d.ts +2 -1
- package/lib/chain/blocks/blockInput/utils.d.ts +9 -0
- package/lib/chain/blocks/blockInput/utils.js +35 -0
- package/lib/chain/blocks/blockInput/utils.js.map +1 -0
- package/lib/chain/blocks/importBlock.d.ts +5 -0
- package/lib/chain/blocks/importBlock.js +27 -2
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/chain.d.ts +2 -0
- package/lib/chain/chain.js +16 -5
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/initState.js +11 -0
- package/lib/chain/initState.js.map +1 -1
- package/lib/chain/interface.d.ts +2 -0
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.d.ts +20 -14
- package/lib/chain/opPools/aggregatedAttestationPool.js +41 -49
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/syncContributionAndProofPool.d.ts +11 -4
- package/lib/chain/opPools/syncContributionAndProofPool.js +50 -8
- package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
- package/lib/chain/opPools/types.d.ts +1 -1
- package/lib/chain/opPools/types.js +1 -1
- package/lib/chain/opPools/types.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +2 -2
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/seenCache/seenAggregateAndProof.d.ts +3 -3
- package/lib/chain/seenCache/seenAggregateAndProof.js +22 -10
- package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
- package/lib/chain/seenCache/seenAttesters.js +20 -11
- package/lib/chain/seenCache/seenAttesters.js.map +1 -1
- package/lib/chain/seenCache/seenBlockInput.d.ts +84 -0
- package/lib/chain/seenCache/seenBlockInput.js +225 -0
- package/lib/chain/seenCache/seenBlockInput.js.map +1 -0
- package/lib/chain/validation/aggregateAndProof.js +10 -2
- package/lib/chain/validation/aggregateAndProof.js.map +1 -1
- package/lib/chain/validation/attestation.js +8 -0
- package/lib/chain/validation/attestation.js.map +1 -1
- package/lib/chain/validation/blobSidecar.js +2 -2
- package/lib/chain/validation/blobSidecar.js.map +1 -1
- package/lib/chain/validation/block.js +2 -2
- package/lib/chain/validation/block.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +36 -3
- package/lib/metrics/metrics/lodestar.js +71 -4
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/core/types.d.ts +2 -1
- package/lib/network/network.js +3 -3
- package/lib/network/network.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +2 -1
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/index.d.ts +0 -5
- package/lib/network/processor/index.js +0 -14
- package/lib/network/processor/index.js.map +1 -1
- package/lib/util/graffiti.d.ts +3 -2
- package/lib/util/graffiti.js +2 -2
- package/lib/util/graffiti.js.map +1 -1
- package/package.json +18 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getHistoricalState.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/historicalState/getHistoricalState.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,GAChB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"getHistoricalState.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/historicalState/getHistoricalState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BeaconStateTransitionMetrics } from "@lodestar/state-transition";
|
|
2
|
+
import { Gauge, Histogram } from "@lodestar/utils";
|
|
3
|
+
import { RegistryMetricCreator } from "../../../metrics/index.js";
|
|
4
|
+
import { QueueMetrics } from "../../../util/queue/options.js";
|
|
5
|
+
import { RegenErrorType } from "./types.js";
|
|
6
|
+
export type HistoricalStateTransitionMetrics = BeaconStateTransitionMetrics;
|
|
7
|
+
export type HistoricalStateRegenMetrics = HistoricalStateTransitionMetrics & {
|
|
8
|
+
regenTime: Histogram;
|
|
9
|
+
loadStateTime: Histogram;
|
|
10
|
+
stateTransitionTime: Histogram;
|
|
11
|
+
stateTransitionBlocks: Histogram;
|
|
12
|
+
stateSerializationTime: Histogram;
|
|
13
|
+
regenRequestCount: Gauge;
|
|
14
|
+
regenSuccessCount: Gauge;
|
|
15
|
+
regenErrorCount: Gauge<{
|
|
16
|
+
reason: RegenErrorType;
|
|
17
|
+
}>;
|
|
18
|
+
};
|
|
19
|
+
export declare function createHistoricalStateTransitionMetrics(metricsRegister: RegistryMetricCreator): HistoricalStateTransitionMetrics;
|
|
20
|
+
export declare function createHistoricalStateRegenMetrics(metricsRegister: RegistryMetricCreator): HistoricalStateRegenMetrics;
|
|
21
|
+
export declare function createHistoricalStateQueueMetrics(metricsRegister: RegistryMetricCreator): QueueMetrics;
|
|
22
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
export function createHistoricalStateTransitionMetrics(metricsRegister) {
|
|
2
|
+
return {
|
|
3
|
+
// state transition metrics
|
|
4
|
+
epochTransitionTime: metricsRegister.histogram({
|
|
5
|
+
name: "lodestar_historical_state_stfn_epoch_transition_seconds",
|
|
6
|
+
help: "Time to process a single epoch transition in seconds",
|
|
7
|
+
// Epoch transitions are 100ms on very fast clients, and average 800ms on heavy networks
|
|
8
|
+
buckets: [0.01, 0.05, 0.1, 0.2, 0.5, 0.75, 1, 1.25, 1.5, 3, 10],
|
|
9
|
+
}),
|
|
10
|
+
epochTransitionCommitTime: metricsRegister.histogram({
|
|
11
|
+
name: "lodestar_historical_state_stfn_epoch_transition_commit_seconds",
|
|
12
|
+
help: "Time to call commit after process a single epoch transition in seconds",
|
|
13
|
+
buckets: [0.01, 0.05, 0.1, 0.2, 0.5, 0.75, 1],
|
|
14
|
+
}),
|
|
15
|
+
epochTransitionStepTime: metricsRegister.histogram({
|
|
16
|
+
name: "lodestar_historical_state_stfn_epoch_transition_step_seconds",
|
|
17
|
+
help: "Time to call each step of epoch transition in seconds",
|
|
18
|
+
labelNames: ["step"],
|
|
19
|
+
buckets: [0.01, 0.05, 0.1, 0.2, 0.5, 0.75, 1],
|
|
20
|
+
}),
|
|
21
|
+
processBlockTime: metricsRegister.histogram({
|
|
22
|
+
name: "lodestar_historical_state_stfn_process_block_seconds",
|
|
23
|
+
help: "Time to process a single block in seconds",
|
|
24
|
+
// TODO: Add metrics for each step
|
|
25
|
+
// Block processing can take 5-40ms, 100ms max
|
|
26
|
+
buckets: [0.005, 0.01, 0.02, 0.05, 0.1, 1],
|
|
27
|
+
}),
|
|
28
|
+
processBlockCommitTime: metricsRegister.histogram({
|
|
29
|
+
name: "lodestar_historical_state_stfn_process_block_commit_seconds",
|
|
30
|
+
help: "Time to call commit after process a single block in seconds",
|
|
31
|
+
buckets: [0.005, 0.01, 0.02, 0.05, 0.1, 1],
|
|
32
|
+
}),
|
|
33
|
+
stateHashTreeRootTime: metricsRegister.histogram({
|
|
34
|
+
name: "lodestar_historical_state_stfn_hash_tree_root_seconds",
|
|
35
|
+
help: "Time to compute the hash tree root of a post state in seconds",
|
|
36
|
+
buckets: [0.05, 0.1, 0.2, 0.5, 1, 1.5],
|
|
37
|
+
labelNames: ["source"],
|
|
38
|
+
}),
|
|
39
|
+
numEffectiveBalanceUpdates: metricsRegister.gauge({
|
|
40
|
+
name: "lodestar_historical_state_stfn_num_effective_balance_updates_count",
|
|
41
|
+
help: "Count of effective balance updates in epoch transition",
|
|
42
|
+
}),
|
|
43
|
+
preStateBalancesNodesPopulatedMiss: metricsRegister.gauge({
|
|
44
|
+
name: "lodestar_historical_state_stfn_balances_nodes_populated_miss_total",
|
|
45
|
+
help: "Total count state.balances nodesPopulated is false on stfn",
|
|
46
|
+
labelNames: ["source"],
|
|
47
|
+
}),
|
|
48
|
+
preStateBalancesNodesPopulatedHit: metricsRegister.gauge({
|
|
49
|
+
name: "lodestar_historical_state_stfn_balances_nodes_populated_hit_total",
|
|
50
|
+
help: "Total count state.balances nodesPopulated is true on stfn",
|
|
51
|
+
labelNames: ["source"],
|
|
52
|
+
}),
|
|
53
|
+
preStateValidatorsNodesPopulatedMiss: metricsRegister.gauge({
|
|
54
|
+
name: "lodestar_historical_state_stfn_validators_nodes_populated_miss_total",
|
|
55
|
+
help: "Total count state.validators nodesPopulated is false on stfn",
|
|
56
|
+
labelNames: ["source"],
|
|
57
|
+
}),
|
|
58
|
+
preStateValidatorsNodesPopulatedHit: metricsRegister.gauge({
|
|
59
|
+
name: "lodestar_historical_state_stfn_validators_nodes_populated_hit_total",
|
|
60
|
+
help: "Total count state.validators nodesPopulated is true on stfn",
|
|
61
|
+
labelNames: ["source"],
|
|
62
|
+
}),
|
|
63
|
+
preStateClonedCount: metricsRegister.histogram({
|
|
64
|
+
name: "lodestar_historical_state_stfn_state_cloned_count",
|
|
65
|
+
help: "Histogram of cloned count per state every time state.clone() is called",
|
|
66
|
+
buckets: [1, 2, 5, 10, 50, 250],
|
|
67
|
+
}),
|
|
68
|
+
postStateBalancesNodesPopulatedHit: metricsRegister.gauge({
|
|
69
|
+
name: "lodestar_historical_state_stfn_post_state_balances_nodes_populated_hit_total",
|
|
70
|
+
help: "Total count state.validators nodesPopulated is true on stfn for post state",
|
|
71
|
+
}),
|
|
72
|
+
postStateBalancesNodesPopulatedMiss: metricsRegister.gauge({
|
|
73
|
+
name: "lodestar_historical_state_stfn_post_state_balances_nodes_populated_miss_total",
|
|
74
|
+
help: "Total count state.validators nodesPopulated is false on stfn for post state",
|
|
75
|
+
}),
|
|
76
|
+
postStateValidatorsNodesPopulatedHit: metricsRegister.gauge({
|
|
77
|
+
name: "lodestar_historical_state_stfn_post_state_validators_nodes_populated_hit_total",
|
|
78
|
+
help: "Total count state.validators nodesPopulated is true on stfn for post state",
|
|
79
|
+
}),
|
|
80
|
+
postStateValidatorsNodesPopulatedMiss: metricsRegister.gauge({
|
|
81
|
+
name: "lodestar_historical_state_stfn_post_state_validators_nodes_populated_miss_total",
|
|
82
|
+
help: "Total count state.validators nodesPopulated is false on stfn for post state",
|
|
83
|
+
}),
|
|
84
|
+
newSeenAttestersPerBlock: metricsRegister.gauge({
|
|
85
|
+
name: "lodestar_historical_state_stfn_new_seen_attesters_per_block_total",
|
|
86
|
+
help: "Count of new seen attesters in epoch transition",
|
|
87
|
+
}),
|
|
88
|
+
newSeenAttestersEffectiveBalancePerBlock: metricsRegister.gauge({
|
|
89
|
+
name: "lodestar_historical_state_stfn_new_seen_attesters_effective_balance_per_block_total",
|
|
90
|
+
help: "Total effective balance increment of new seen attesters per block",
|
|
91
|
+
}),
|
|
92
|
+
attestationsPerBlock: metricsRegister.gauge({
|
|
93
|
+
name: "lodestar_historical_state_stfn_attestations_per_block_total",
|
|
94
|
+
help: "Count of attestations per block",
|
|
95
|
+
}),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export function createHistoricalStateRegenMetrics(metricsRegister) {
|
|
99
|
+
return {
|
|
100
|
+
...createHistoricalStateTransitionMetrics(metricsRegister),
|
|
101
|
+
// historical state regen metrics
|
|
102
|
+
regenTime: metricsRegister.histogram({
|
|
103
|
+
name: "lodestar_historical_state_regen_time_seconds",
|
|
104
|
+
help: "Time to regenerate a historical state in seconds",
|
|
105
|
+
// Historical state regen can take up to 3h as of Aug 2024
|
|
106
|
+
// 5m, 10m, 30m, 1h, 3h
|
|
107
|
+
buckets: [5 * 60, 10 * 60, 30 * 60, 60 * 60, 180 * 60],
|
|
108
|
+
}),
|
|
109
|
+
loadStateTime: metricsRegister.histogram({
|
|
110
|
+
name: "lodestar_historical_state_load_nearest_state_time_seconds",
|
|
111
|
+
help: "Time to load a nearest historical state from the database in seconds",
|
|
112
|
+
// 30s, 1m, 2m, 4m
|
|
113
|
+
buckets: [30, 60, 120, 240],
|
|
114
|
+
}),
|
|
115
|
+
stateTransitionTime: metricsRegister.histogram({
|
|
116
|
+
name: "lodestar_historical_state_state_transition_time_seconds",
|
|
117
|
+
help: "Time to run state transition to regen historical state in seconds",
|
|
118
|
+
// 5m, 10m, 30m, 1h, 3h
|
|
119
|
+
buckets: [5 * 60, 10 * 60, 30 * 60, 60 * 60, 180 * 60],
|
|
120
|
+
}),
|
|
121
|
+
stateTransitionBlocks: metricsRegister.histogram({
|
|
122
|
+
name: "lodestar_historical_state_state_transition_blocks",
|
|
123
|
+
help: "Count of blocks processed during state transition to regen historical state",
|
|
124
|
+
// given archiveStateEpochFrequency=1024, it could process up to 32768 blocks
|
|
125
|
+
buckets: [10, 100, 1000, 10000, 30000],
|
|
126
|
+
}),
|
|
127
|
+
stateSerializationTime: metricsRegister.histogram({
|
|
128
|
+
name: "lodestar_historical_state_serialization_time_seconds",
|
|
129
|
+
help: "Time to serialize a historical state in seconds",
|
|
130
|
+
buckets: [0.25, 0.5, 1, 2],
|
|
131
|
+
}),
|
|
132
|
+
regenRequestCount: metricsRegister.gauge({
|
|
133
|
+
name: "lodestar_historical_state_request_count",
|
|
134
|
+
help: "Count of total historical state requests",
|
|
135
|
+
}),
|
|
136
|
+
regenSuccessCount: metricsRegister.gauge({
|
|
137
|
+
name: "lodestar_historical_state_success_count",
|
|
138
|
+
help: "Count of successful historical state regen",
|
|
139
|
+
}),
|
|
140
|
+
regenErrorCount: metricsRegister.gauge({
|
|
141
|
+
name: "lodestar_historical_state_error_count",
|
|
142
|
+
help: "Count of failed historical state regen",
|
|
143
|
+
labelNames: ["reason"],
|
|
144
|
+
}),
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
export function createHistoricalStateQueueMetrics(metricsRegister) {
|
|
148
|
+
return {
|
|
149
|
+
length: metricsRegister.gauge({
|
|
150
|
+
name: "lodestar_historical_state_queue_length",
|
|
151
|
+
help: "Count of total regen queue length",
|
|
152
|
+
}),
|
|
153
|
+
droppedJobs: metricsRegister.gauge({
|
|
154
|
+
name: "lodestar_historical_state_queue_dropped_jobs_total",
|
|
155
|
+
help: "Count of total regen queue dropped jobs",
|
|
156
|
+
}),
|
|
157
|
+
jobTime: metricsRegister.histogram({
|
|
158
|
+
name: "lodestar_historical_state_queue_job_time_seconds",
|
|
159
|
+
help: "Time to process regen queue job in seconds",
|
|
160
|
+
buckets: [0.01, 0.1, 1, 10, 100],
|
|
161
|
+
}),
|
|
162
|
+
jobWaitTime: metricsRegister.histogram({
|
|
163
|
+
name: "lodestar_historical_state_queue_job_wait_time_seconds",
|
|
164
|
+
help: "Time from job added to the regen queue to starting in seconds",
|
|
165
|
+
buckets: [0.01, 0.1, 1, 10, 100],
|
|
166
|
+
}),
|
|
167
|
+
concurrency: metricsRegister.gauge({
|
|
168
|
+
name: "lodestar_historical_state_queue_concurrency",
|
|
169
|
+
help: "Current concurrency of regen queue",
|
|
170
|
+
}),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/historicalState/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { ModuleThread } from "@chainsafe/threads";
|
|
2
|
-
import { BeaconConfig } from "@lodestar/config";
|
|
2
|
+
import { BeaconConfig, SpecJson } from "@lodestar/config";
|
|
3
3
|
import { LoggerNode, LoggerNodeOpts } from "@lodestar/logger/node";
|
|
4
|
-
import { BeaconStateTransitionMetrics } from "@lodestar/state-transition";
|
|
5
|
-
import { Gauge, Histogram } from "@lodestar/utils";
|
|
6
4
|
import { Metrics } from "../../../metrics/index.js";
|
|
7
5
|
export type HistoricalStateRegenInitModules = {
|
|
8
6
|
opts: {
|
|
@@ -18,7 +16,7 @@ export type HistoricalStateRegenModules = HistoricalStateRegenInitModules & {
|
|
|
18
16
|
api: ModuleThread<HistoricalStateWorkerApi>;
|
|
19
17
|
};
|
|
20
18
|
export type HistoricalStateWorkerData = {
|
|
21
|
-
chainConfigJson:
|
|
19
|
+
chainConfigJson: SpecJson;
|
|
22
20
|
genesisValidatorsRoot: Uint8Array;
|
|
23
21
|
genesisTime: number;
|
|
24
22
|
maxConcurrency: number;
|
|
@@ -37,16 +35,4 @@ export declare enum RegenErrorType {
|
|
|
37
35
|
invalidStateRoot = "invalid_state_root",
|
|
38
36
|
blockProcessing = "block_processing"
|
|
39
37
|
}
|
|
40
|
-
export type HistoricalStateRegenMetrics = BeaconStateTransitionMetrics & {
|
|
41
|
-
regenTime: Histogram;
|
|
42
|
-
loadStateTime: Histogram;
|
|
43
|
-
stateTransitionTime: Histogram;
|
|
44
|
-
stateTransitionBlocks: Histogram;
|
|
45
|
-
stateSerializationTime: Histogram;
|
|
46
|
-
regenRequestCount: Gauge;
|
|
47
|
-
regenSuccessCount: Gauge;
|
|
48
|
-
regenErrorCount: Gauge<{
|
|
49
|
-
reason: RegenErrorType;
|
|
50
|
-
}>;
|
|
51
|
-
};
|
|
52
38
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/historicalState/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/historicalState/types.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,0CAAwB,CAAA;IACxB,yDAAuC,CAAA;IACvC,sDAAoC,CAAA;AACtC,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
|
|
@@ -8,6 +8,7 @@ import { BeaconDb } from "../../../db/index.js";
|
|
|
8
8
|
import { RegistryMetricCreator, collectNodeJSMetrics } from "../../../metrics/index.js";
|
|
9
9
|
import { JobFnQueue } from "../../../util/queue/fnQueue.js";
|
|
10
10
|
import { getHistoricalState } from "./getHistoricalState.js";
|
|
11
|
+
import { createHistoricalStateQueueMetrics, createHistoricalStateRegenMetrics, } from "./metrics.js";
|
|
11
12
|
// most of this setup copied from networkCoreWorker.ts
|
|
12
13
|
const workerData = worker.workerData;
|
|
13
14
|
const logger = getNodeLogger(workerData.loggerOpts);
|
|
@@ -22,169 +23,8 @@ let queueMetrics;
|
|
|
22
23
|
if (metricsRegister) {
|
|
23
24
|
const closeMetrics = collectNodeJSMetrics(metricsRegister, "lodestar_historical_state_worker_");
|
|
24
25
|
abortController.signal.addEventListener("abort", closeMetrics, { once: true });
|
|
25
|
-
historicalStateRegenMetrics =
|
|
26
|
-
|
|
27
|
-
epochTransitionTime: metricsRegister.histogram({
|
|
28
|
-
name: "lodestar_historical_state_stfn_epoch_transition_seconds",
|
|
29
|
-
help: "Time to process a single epoch transition in seconds",
|
|
30
|
-
// Epoch transitions are 100ms on very fast clients, and average 800ms on heavy networks
|
|
31
|
-
buckets: [0.01, 0.05, 0.1, 0.2, 0.5, 0.75, 1, 1.25, 1.5, 3, 10],
|
|
32
|
-
}),
|
|
33
|
-
epochTransitionCommitTime: metricsRegister.histogram({
|
|
34
|
-
name: "lodestar_historical_state_stfn_epoch_transition_commit_seconds",
|
|
35
|
-
help: "Time to call commit after process a single epoch transition in seconds",
|
|
36
|
-
buckets: [0.01, 0.05, 0.1, 0.2, 0.5, 0.75, 1],
|
|
37
|
-
}),
|
|
38
|
-
epochTransitionStepTime: metricsRegister.histogram({
|
|
39
|
-
name: "lodestar_historical_state_stfn_epoch_transition_step_seconds",
|
|
40
|
-
help: "Time to call each step of epoch transition in seconds",
|
|
41
|
-
labelNames: ["step"],
|
|
42
|
-
buckets: [0.01, 0.05, 0.1, 0.2, 0.5, 0.75, 1],
|
|
43
|
-
}),
|
|
44
|
-
processBlockTime: metricsRegister.histogram({
|
|
45
|
-
name: "lodestar_historical_state_stfn_process_block_seconds",
|
|
46
|
-
help: "Time to process a single block in seconds",
|
|
47
|
-
// TODO: Add metrics for each step
|
|
48
|
-
// Block processing can take 5-40ms, 100ms max
|
|
49
|
-
buckets: [0.005, 0.01, 0.02, 0.05, 0.1, 1],
|
|
50
|
-
}),
|
|
51
|
-
processBlockCommitTime: metricsRegister.histogram({
|
|
52
|
-
name: "lodestar_historical_state_stfn_process_block_commit_seconds",
|
|
53
|
-
help: "Time to call commit after process a single block in seconds",
|
|
54
|
-
buckets: [0.005, 0.01, 0.02, 0.05, 0.1, 1],
|
|
55
|
-
}),
|
|
56
|
-
stateHashTreeRootTime: metricsRegister.histogram({
|
|
57
|
-
name: "lodestar_historical_state_stfn_hash_tree_root_seconds",
|
|
58
|
-
help: "Time to compute the hash tree root of a post state in seconds",
|
|
59
|
-
buckets: [0.05, 0.1, 0.2, 0.5, 1, 1.5],
|
|
60
|
-
labelNames: ["source"],
|
|
61
|
-
}),
|
|
62
|
-
numEffectiveBalanceUpdates: metricsRegister.gauge({
|
|
63
|
-
name: "lodestar_historical_state_stfn_num_effective_balance_updates_count",
|
|
64
|
-
help: "Count of effective balance updates in epoch transition",
|
|
65
|
-
}),
|
|
66
|
-
preStateBalancesNodesPopulatedMiss: metricsRegister.gauge({
|
|
67
|
-
name: "lodestar_historical_state_stfn_balances_nodes_populated_miss_total",
|
|
68
|
-
help: "Total count state.balances nodesPopulated is false on stfn",
|
|
69
|
-
labelNames: ["source"],
|
|
70
|
-
}),
|
|
71
|
-
preStateBalancesNodesPopulatedHit: metricsRegister.gauge({
|
|
72
|
-
name: "lodestar_historical_state_stfn_balances_nodes_populated_hit_total",
|
|
73
|
-
help: "Total count state.balances nodesPopulated is true on stfn",
|
|
74
|
-
labelNames: ["source"],
|
|
75
|
-
}),
|
|
76
|
-
preStateValidatorsNodesPopulatedMiss: metricsRegister.gauge({
|
|
77
|
-
name: "lodestar_historical_state_stfn_validators_nodes_populated_miss_total",
|
|
78
|
-
help: "Total count state.validators nodesPopulated is false on stfn",
|
|
79
|
-
labelNames: ["source"],
|
|
80
|
-
}),
|
|
81
|
-
preStateValidatorsNodesPopulatedHit: metricsRegister.gauge({
|
|
82
|
-
name: "lodestar_historical_state_stfn_validators_nodes_populated_hit_total",
|
|
83
|
-
help: "Total count state.validators nodesPopulated is true on stfn",
|
|
84
|
-
labelNames: ["source"],
|
|
85
|
-
}),
|
|
86
|
-
preStateClonedCount: metricsRegister.histogram({
|
|
87
|
-
name: "lodestar_historical_state_stfn_state_cloned_count",
|
|
88
|
-
help: "Histogram of cloned count per state every time state.clone() is called",
|
|
89
|
-
buckets: [1, 2, 5, 10, 50, 250],
|
|
90
|
-
}),
|
|
91
|
-
postStateBalancesNodesPopulatedHit: metricsRegister.gauge({
|
|
92
|
-
name: "lodestar_historical_state_stfn_post_state_balances_nodes_populated_hit_total",
|
|
93
|
-
help: "Total count state.validators nodesPopulated is true on stfn for post state",
|
|
94
|
-
}),
|
|
95
|
-
postStateBalancesNodesPopulatedMiss: metricsRegister.gauge({
|
|
96
|
-
name: "lodestar_historical_state_stfn_post_state_balances_nodes_populated_miss_total",
|
|
97
|
-
help: "Total count state.validators nodesPopulated is false on stfn for post state",
|
|
98
|
-
}),
|
|
99
|
-
postStateValidatorsNodesPopulatedHit: metricsRegister.gauge({
|
|
100
|
-
name: "lodestar_historical_state_stfn_post_state_validators_nodes_populated_hit_total",
|
|
101
|
-
help: "Total count state.validators nodesPopulated is true on stfn for post state",
|
|
102
|
-
}),
|
|
103
|
-
postStateValidatorsNodesPopulatedMiss: metricsRegister.gauge({
|
|
104
|
-
name: "lodestar_historical_state_stfn_post_state_validators_nodes_populated_miss_total",
|
|
105
|
-
help: "Total count state.validators nodesPopulated is false on stfn for post state",
|
|
106
|
-
}),
|
|
107
|
-
newSeenAttestersPerBlock: metricsRegister.gauge({
|
|
108
|
-
name: "lodestar_historical_state_stfn_new_seen_attesters_per_block_total",
|
|
109
|
-
help: "Count of new seen attesters in epoch transition",
|
|
110
|
-
}),
|
|
111
|
-
newSeenAttestersEffectiveBalancePerBlock: metricsRegister.gauge({
|
|
112
|
-
name: "lodestar_historical_state_stfn_new_seen_attesters_effective_balance_per_block_total",
|
|
113
|
-
help: "Total effective balance increment of new seen attesters per block",
|
|
114
|
-
}),
|
|
115
|
-
attestationsPerBlock: metricsRegister.gauge({
|
|
116
|
-
name: "lodestar_historical_state_stfn_attestations_per_block_total",
|
|
117
|
-
help: "Count of attestations per block",
|
|
118
|
-
}),
|
|
119
|
-
// historical state regen metrics
|
|
120
|
-
regenTime: metricsRegister.histogram({
|
|
121
|
-
name: "lodestar_historical_state_regen_time_seconds",
|
|
122
|
-
help: "Time to regenerate a historical state in seconds",
|
|
123
|
-
// Historical state regen can take up to 3h as of Aug 2024
|
|
124
|
-
// 5m, 10m, 30m, 1h, 3h
|
|
125
|
-
buckets: [5 * 60, 10 * 60, 30 * 60, 60 * 60, 180 * 60],
|
|
126
|
-
}),
|
|
127
|
-
loadStateTime: metricsRegister.histogram({
|
|
128
|
-
name: "lodestar_historical_state_load_nearest_state_time_seconds",
|
|
129
|
-
help: "Time to load a nearest historical state from the database in seconds",
|
|
130
|
-
// 30s, 1m, 2m, 4m
|
|
131
|
-
buckets: [30, 60, 120, 240],
|
|
132
|
-
}),
|
|
133
|
-
stateTransitionTime: metricsRegister.histogram({
|
|
134
|
-
name: "lodestar_historical_state_state_transition_time_seconds",
|
|
135
|
-
help: "Time to run state transition to regen historical state in seconds",
|
|
136
|
-
// 5m, 10m, 30m, 1h, 3h
|
|
137
|
-
buckets: [5 * 60, 10 * 60, 30 * 60, 60 * 60, 180 * 60],
|
|
138
|
-
}),
|
|
139
|
-
stateTransitionBlocks: metricsRegister.histogram({
|
|
140
|
-
name: "lodestar_historical_state_state_transition_blocks",
|
|
141
|
-
help: "Count of blocks processed during state transition to regen historical state",
|
|
142
|
-
// given archiveStateEpochFrequency=1024, it could process up to 32768 blocks
|
|
143
|
-
buckets: [10, 100, 1000, 10000, 30000],
|
|
144
|
-
}),
|
|
145
|
-
stateSerializationTime: metricsRegister.histogram({
|
|
146
|
-
name: "lodestar_historical_state_serialization_time_seconds",
|
|
147
|
-
help: "Time to serialize a historical state in seconds",
|
|
148
|
-
buckets: [0.25, 0.5, 1, 2],
|
|
149
|
-
}),
|
|
150
|
-
regenRequestCount: metricsRegister.gauge({
|
|
151
|
-
name: "lodestar_historical_state_request_count",
|
|
152
|
-
help: "Count of total historical state requests",
|
|
153
|
-
}),
|
|
154
|
-
regenSuccessCount: metricsRegister.gauge({
|
|
155
|
-
name: "lodestar_historical_state_success_count",
|
|
156
|
-
help: "Count of successful historical state regen",
|
|
157
|
-
}),
|
|
158
|
-
regenErrorCount: metricsRegister.gauge({
|
|
159
|
-
name: "lodestar_historical_state_error_count",
|
|
160
|
-
help: "Count of failed historical state regen",
|
|
161
|
-
labelNames: ["reason"],
|
|
162
|
-
}),
|
|
163
|
-
};
|
|
164
|
-
queueMetrics = {
|
|
165
|
-
length: metricsRegister.gauge({
|
|
166
|
-
name: "lodestar_historical_state_queue_length",
|
|
167
|
-
help: "Count of total regen queue length",
|
|
168
|
-
}),
|
|
169
|
-
droppedJobs: metricsRegister.gauge({
|
|
170
|
-
name: "lodestar_historical_state_queue_dropped_jobs_total",
|
|
171
|
-
help: "Count of total regen queue dropped jobs",
|
|
172
|
-
}),
|
|
173
|
-
jobTime: metricsRegister.histogram({
|
|
174
|
-
name: "lodestar_historical_state_queue_job_time_seconds",
|
|
175
|
-
help: "Time to process regen queue job in seconds",
|
|
176
|
-
buckets: [0.01, 0.1, 1, 10, 100],
|
|
177
|
-
}),
|
|
178
|
-
jobWaitTime: metricsRegister.histogram({
|
|
179
|
-
name: "lodestar_historical_state_queue_job_wait_time_seconds",
|
|
180
|
-
help: "Time from job added to the regen queue to starting in seconds",
|
|
181
|
-
buckets: [0.01, 0.1, 1, 10, 100],
|
|
182
|
-
}),
|
|
183
|
-
concurrency: metricsRegister.gauge({
|
|
184
|
-
name: "lodestar_historical_state_queue_concurrency",
|
|
185
|
-
help: "Current concurrency of regen queue",
|
|
186
|
-
}),
|
|
187
|
-
};
|
|
26
|
+
historicalStateRegenMetrics = createHistoricalStateRegenMetrics(metricsRegister);
|
|
27
|
+
queueMetrics = createHistoricalStateQueueMetrics(metricsRegister);
|
|
188
28
|
}
|
|
189
29
|
const queue = new JobFnQueue({
|
|
190
30
|
maxConcurrency: workerData.maxConcurrency,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/historicalState/worker.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/historicalState/worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,7 @@ const BLOB_SIDECAR_BATCH_SIZE = 32;
|
|
|
18
18
|
export async function archiveBlocks(config, db, forkChoice, lightclientServer, logger, finalizedCheckpoint, currentEpoch, archiveBlobEpochs) {
|
|
19
19
|
// Use fork choice to determine the blocks to archive and delete
|
|
20
20
|
// getAllAncestorBlocks response includes the finalized block, so it's also moved to the cold db
|
|
21
|
-
const finalizedCanonicalBlocks = forkChoice.
|
|
22
|
-
const finalizedNonCanonicalBlocks = forkChoice.getAllNonAncestorBlocks(finalizedCheckpoint.rootHex);
|
|
21
|
+
const { ancestors: finalizedCanonicalBlocks, nonAncestors: finalizedNonCanonicalBlocks } = forkChoice.getAllAncestorAndNonAncestorBlocks(finalizedCheckpoint.rootHex);
|
|
23
22
|
// NOTE: The finalized block will be exactly the first block of `epoch` or previous
|
|
24
23
|
const finalizedPostDeneb = finalizedCheckpoint.epoch >= config.DENEB_FORK_EPOCH;
|
|
25
24
|
const finalizedCanonicalBlockRoots = finalizedCanonicalBlocks.map((block) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiveBlocks.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/utils/archiveBlocks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,OAAO,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAEvF,OAAO,EAAS,OAAO,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAK3D,iCAAiC;AACjC,6EAA6E;AAC7E,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAKnC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAuB,EACvB,EAAa,EACb,UAAuB,EACvB,iBAAgD,EAChD,MAAc,EACd,mBAAkC,EAClC,YAAmB,EACnB,iBAA0B;IAE1B,gEAAgE;IAChE,gGAAgG;IAChG,MAAM,
|
|
1
|
+
{"version":3,"file":"archiveBlocks.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/utils/archiveBlocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@ import { BlobIndex, ColumnIndex, SignedBeaconBlock, Slot, deneb, fulu } from "@l
|
|
|
3
3
|
import { VersionedHashes } from "../../../execution/index.js";
|
|
4
4
|
import { AddBlob, AddBlock, AddColumn, BlobMeta, BlobWithSource, BlockInputInit, ColumnMeta, ColumnWithSource, CreateBlockInputMeta, DAData, DAType, IBlockInput, LogMetaBasic, LogMetaBlobs, LogMetaColumns, PromiseParts, SourceMeta } from "./types.js";
|
|
5
5
|
export type BlockInput = BlockInputPreData | BlockInputBlobs | BlockInputColumns;
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function isBlockInputPreDeneb(blockInput: IBlockInput): blockInput is BlockInputPreData;
|
|
7
|
+
export declare function isBlockInputBlobs(blockInput: IBlockInput): blockInput is BlockInputBlobs;
|
|
8
|
+
export declare function isBlockInputColumns(blockInput: IBlockInput): blockInput is BlockInputColumns;
|
|
7
9
|
type BlockInputState<F extends ForkName> = {
|
|
8
10
|
hasBlock: false;
|
|
9
11
|
hasAllData: false;
|
|
@@ -25,7 +27,7 @@ type BlockInputState<F extends ForkName> = {
|
|
|
25
27
|
declare abstract class AbstractBlockInput<F extends ForkName = ForkName, TData extends DAData = DAData> implements IBlockInput<F, TData> {
|
|
26
28
|
abstract type: DAType;
|
|
27
29
|
daOutOfRange: boolean;
|
|
28
|
-
|
|
30
|
+
timeCreatedSec: number;
|
|
29
31
|
forkName: ForkName;
|
|
30
32
|
slot: Slot;
|
|
31
33
|
blockRootHex: string;
|