@lodestar/beacon-node 1.35.0-dev.39be8f0882 → 1.35.0-dev.47470aab65
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 +1 -1
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/lodestar/index.js +1 -1
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/api/impl/validator/index.d.ts.map +1 -1
- package/lib/api/impl/validator/index.js +5 -6
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
- package/lib/chain/blocks/blockInput/blockInput.js +1 -1
- package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
- package/lib/chain/blocks/importBlock.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.js +3 -3
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.js +8 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +1 -7
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/chain.js +1 -1
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/validatorMonitor.d.ts.map +1 -1
- package/lib/chain/validatorMonitor.js +5 -5
- package/lib/chain/validatorMonitor.js.map +1 -1
- package/lib/network/gossip/gossipsub.js +1 -1
- package/lib/network/gossip/gossipsub.js.map +1 -1
- package/lib/network/gossip/scoringParameters.js +4 -4
- package/lib/network/gossip/scoringParameters.js.map +1 -1
- package/lib/network/peers/peerManager.d.ts.map +1 -1
- package/lib/network/peers/peerManager.js +2 -1
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +1 -1
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/subnets/attnetsService.d.ts.map +1 -1
- package/lib/network/subnets/attnetsService.js +1 -1
- package/lib/network/subnets/attnetsService.js.map +1 -1
- package/lib/node/notifier.js +1 -1
- package/lib/node/notifier.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts.map +1 -1
- package/lib/sync/unknownBlock.js +2 -1
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/util/clock.d.ts +3 -3
- package/lib/util/clock.js +6 -6
- package/lib/util/clock.js.map +1 -1
- package/package.json +14 -14
- package/src/api/impl/beacon/blocks/index.ts +1 -1
- package/src/api/impl/lodestar/index.ts +1 -1
- package/src/api/impl/validator/index.ts +6 -5
- package/src/chain/blocks/blockInput/blockInput.ts +2 -1
- package/src/chain/blocks/importBlock.ts +4 -2
- package/src/chain/blocks/verifyBlocksDataAvailability.ts +10 -2
- package/src/chain/blocks/writeBlockInputToDb.ts +1 -9
- package/src/chain/chain.ts +1 -1
- package/src/chain/validatorMonitor.ts +5 -4
- package/src/network/gossip/gossipsub.ts +1 -1
- package/src/network/gossip/scoringParameters.ts +4 -4
- package/src/network/peers/peerManager.ts +2 -1
- package/src/network/processor/gossipHandlers.ts +1 -1
- package/src/network/subnets/attnetsService.ts +3 -6
- package/src/node/notifier.ts +1 -1
- package/src/sync/unknownBlock.ts +2 -1
- package/src/util/clock.ts +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unknownBlock.js","sourceRoot":"","sources":["../../src/sync/unknownBlock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unknownBlock.js","sourceRoot":"","sources":["../../src/sync/unknownBlock.ts"],"names":[],"mappings":"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"}
|
package/lib/util/clock.d.ts
CHANGED
|
@@ -5,12 +5,12 @@ import type { Epoch, Slot } from "@lodestar/types";
|
|
|
5
5
|
export declare enum ClockEvent {
|
|
6
6
|
/**
|
|
7
7
|
* This event signals the start of a new slot, and that subsequent calls to `clock.currentSlot` will equal `slot`.
|
|
8
|
-
* This event is guaranteed to be emitted every `
|
|
8
|
+
* This event is guaranteed to be emitted every `SLOT_DURATION_MS` milliseconds.
|
|
9
9
|
*/
|
|
10
10
|
slot = "clock:slot",
|
|
11
11
|
/**
|
|
12
12
|
* This event signals the start of a new epoch, and that subsequent calls to `clock.currentEpoch` will return `epoch`.
|
|
13
|
-
* This event is guaranteed to be emitted every `
|
|
13
|
+
* This event is guaranteed to be emitted every `SLOT_DURATION_MS * SLOTS_PER_EPOCH` milliseconds.
|
|
14
14
|
*/
|
|
15
15
|
epoch = "clock:epoch"
|
|
16
16
|
}
|
|
@@ -23,7 +23,7 @@ export type ClockEvents = {
|
|
|
23
23
|
*
|
|
24
24
|
* The time is dependent on:
|
|
25
25
|
* - `state.genesisTime` - the genesis time
|
|
26
|
-
* - `
|
|
26
|
+
* - `SLOT_DURATION_MS` - # of milliseconds per slot
|
|
27
27
|
* - `SLOTS_PER_EPOCH` - # of slots per epoch
|
|
28
28
|
*/
|
|
29
29
|
export type IClock = StrictEventEmitter<EventEmitter, ClockEvents> & {
|
package/lib/util/clock.js
CHANGED
|
@@ -6,12 +6,12 @@ export var ClockEvent;
|
|
|
6
6
|
(function (ClockEvent) {
|
|
7
7
|
/**
|
|
8
8
|
* This event signals the start of a new slot, and that subsequent calls to `clock.currentSlot` will equal `slot`.
|
|
9
|
-
* This event is guaranteed to be emitted every `
|
|
9
|
+
* This event is guaranteed to be emitted every `SLOT_DURATION_MS` milliseconds.
|
|
10
10
|
*/
|
|
11
11
|
ClockEvent["slot"] = "clock:slot";
|
|
12
12
|
/**
|
|
13
13
|
* This event signals the start of a new epoch, and that subsequent calls to `clock.currentEpoch` will return `epoch`.
|
|
14
|
-
* This event is guaranteed to be emitted every `
|
|
14
|
+
* This event is guaranteed to be emitted every `SLOT_DURATION_MS * SLOTS_PER_EPOCH` milliseconds.
|
|
15
15
|
*/
|
|
16
16
|
ClockEvent["epoch"] = "clock:epoch";
|
|
17
17
|
})(ClockEvent || (ClockEvent = {}));
|
|
@@ -110,14 +110,14 @@ export class Clock extends EventEmitter {
|
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
112
|
secFromSlot(slot, toSec = Date.now() / 1000) {
|
|
113
|
-
return toSec - (this.
|
|
113
|
+
return toSec - computeTimeAtSlot(this.config, slot, this.genesisTime);
|
|
114
114
|
}
|
|
115
115
|
msFromSlot(slot, toMs = Date.now()) {
|
|
116
|
-
return toMs - (this.
|
|
116
|
+
return toMs - computeTimeAtSlot(this.config, slot, this.genesisTime) * 1000;
|
|
117
117
|
}
|
|
118
118
|
onNextSlot = (slot) => {
|
|
119
119
|
const clockSlot = slot ?? getCurrentSlot(this.config, this.genesisTime);
|
|
120
|
-
// process multiple clock slots in the case the main thread has been saturated for >
|
|
120
|
+
// process multiple clock slots in the case the main thread has been saturated for > SLOT_DURATION_MS
|
|
121
121
|
while (this._currentSlot < clockSlot && !this.signal.aborted) {
|
|
122
122
|
const previousSlot = this._currentSlot;
|
|
123
123
|
this._currentSlot++;
|
|
@@ -134,7 +134,7 @@ export class Clock extends EventEmitter {
|
|
|
134
134
|
}
|
|
135
135
|
};
|
|
136
136
|
msUntilNextSlot() {
|
|
137
|
-
const milliSecondsPerSlot = this.config.
|
|
137
|
+
const milliSecondsPerSlot = this.config.SLOT_DURATION_MS;
|
|
138
138
|
const diffInMilliSeconds = Date.now() - this.genesisTime * 1000;
|
|
139
139
|
return milliSecondsPerSlot - (diffInMilliSeconds % milliSecondsPerSlot);
|
|
140
140
|
}
|
package/lib/util/clock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/util/clock.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/util/clock.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.35.0-dev.
|
|
14
|
+
"version": "1.35.0-dev.47470aab65",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -134,18 +134,18 @@
|
|
|
134
134
|
"@libp2p/peer-id": "^5.1.0",
|
|
135
135
|
"@libp2p/prometheus-metrics": "^4.3.15",
|
|
136
136
|
"@libp2p/tcp": "^10.1.8",
|
|
137
|
-
"@lodestar/api": "1.35.0-dev.
|
|
138
|
-
"@lodestar/config": "1.35.0-dev.
|
|
139
|
-
"@lodestar/db": "1.35.0-dev.
|
|
140
|
-
"@lodestar/fork-choice": "1.35.0-dev.
|
|
141
|
-
"@lodestar/light-client": "1.35.0-dev.
|
|
142
|
-
"@lodestar/logger": "1.35.0-dev.
|
|
143
|
-
"@lodestar/params": "1.35.0-dev.
|
|
144
|
-
"@lodestar/reqresp": "1.35.0-dev.
|
|
145
|
-
"@lodestar/state-transition": "1.35.0-dev.
|
|
146
|
-
"@lodestar/types": "1.35.0-dev.
|
|
147
|
-
"@lodestar/utils": "1.35.0-dev.
|
|
148
|
-
"@lodestar/validator": "1.35.0-dev.
|
|
137
|
+
"@lodestar/api": "1.35.0-dev.47470aab65",
|
|
138
|
+
"@lodestar/config": "1.35.0-dev.47470aab65",
|
|
139
|
+
"@lodestar/db": "1.35.0-dev.47470aab65",
|
|
140
|
+
"@lodestar/fork-choice": "1.35.0-dev.47470aab65",
|
|
141
|
+
"@lodestar/light-client": "1.35.0-dev.47470aab65",
|
|
142
|
+
"@lodestar/logger": "1.35.0-dev.47470aab65",
|
|
143
|
+
"@lodestar/params": "1.35.0-dev.47470aab65",
|
|
144
|
+
"@lodestar/reqresp": "1.35.0-dev.47470aab65",
|
|
145
|
+
"@lodestar/state-transition": "1.35.0-dev.47470aab65",
|
|
146
|
+
"@lodestar/types": "1.35.0-dev.47470aab65",
|
|
147
|
+
"@lodestar/utils": "1.35.0-dev.47470aab65",
|
|
148
|
+
"@lodestar/validator": "1.35.0-dev.47470aab65",
|
|
149
149
|
"@multiformats/multiaddr": "^12.1.3",
|
|
150
150
|
"datastore-core": "^10.0.2",
|
|
151
151
|
"datastore-fs": "^10.0.6",
|
|
@@ -180,5 +180,5 @@
|
|
|
180
180
|
"beacon",
|
|
181
181
|
"blockchain"
|
|
182
182
|
],
|
|
183
|
-
"gitHead": "
|
|
183
|
+
"gitHead": "ab2c472cebf1799b709644ec7bf1939c76495863"
|
|
184
184
|
}
|
|
@@ -256,7 +256,7 @@ export function getBeaconBlockApi({
|
|
|
256
256
|
}
|
|
257
257
|
|
|
258
258
|
// TODO: Validate block
|
|
259
|
-
const delaySec = seenTimestampSec - (
|
|
259
|
+
const delaySec = seenTimestampSec - computeTimeAtSlot(config, slot, chain.genesisTime);
|
|
260
260
|
metrics?.gossipBlock.elapsedTimeTillReceived.observe({source: OpSource.api}, delaySec);
|
|
261
261
|
chain.validatorMonitor?.registerBeaconBlock(OpSource.api, delaySec, signedBlock.message);
|
|
262
262
|
|
|
@@ -26,7 +26,7 @@ export function getLodestarApi({
|
|
|
26
26
|
}: Pick<ApiModules, "chain" | "config" | "db" | "network" | "sync">): ApplicationMethods<routes.lodestar.Endpoints> {
|
|
27
27
|
let writingHeapdump = false;
|
|
28
28
|
let writingProfile = false;
|
|
29
|
-
const defaultProfileMs = SLOTS_PER_EPOCH * config.
|
|
29
|
+
const defaultProfileMs = SLOTS_PER_EPOCH * config.SLOT_DURATION_MS;
|
|
30
30
|
|
|
31
31
|
return {
|
|
32
32
|
async writeHeapdump({thread = "main", dirpath = "."}) {
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
calculateCommitteeAssignments,
|
|
23
23
|
computeEpochAtSlot,
|
|
24
24
|
computeStartSlotAtEpoch,
|
|
25
|
+
computeTimeAtSlot,
|
|
25
26
|
createCachedBeaconState,
|
|
26
27
|
getBlockRootAtSlot,
|
|
27
28
|
getCurrentSlot,
|
|
@@ -180,7 +181,7 @@ export function getValidatorApi(
|
|
|
180
181
|
* This value is the same to MAXIMUM_GOSSIP_CLOCK_DISPARITY_SEC.
|
|
181
182
|
* For very fast networks, reduce clock disparity to half a slot.
|
|
182
183
|
*/
|
|
183
|
-
const MAX_API_CLOCK_DISPARITY_SEC = Math.min(0.5, config.
|
|
184
|
+
const MAX_API_CLOCK_DISPARITY_SEC = Math.min(0.5, config.SLOT_DURATION_MS / 2000);
|
|
184
185
|
const MAX_API_CLOCK_DISPARITY_MS = MAX_API_CLOCK_DISPARITY_SEC * 1000;
|
|
185
186
|
|
|
186
187
|
/** Compute and cache the genesis block root */
|
|
@@ -213,7 +214,7 @@ export function getValidatorApi(
|
|
|
213
214
|
return;
|
|
214
215
|
}
|
|
215
216
|
|
|
216
|
-
const slotStartSec =
|
|
217
|
+
const slotStartSec = computeTimeAtSlot(config, slot, chain.genesisTime);
|
|
217
218
|
const msToSlot = slotStartSec * 1000 - Date.now();
|
|
218
219
|
|
|
219
220
|
if (msToSlot > MAX_API_CLOCK_DISPARITY_MS) {
|
|
@@ -244,7 +245,7 @@ export function getValidatorApi(
|
|
|
244
245
|
*/
|
|
245
246
|
function msToNextEpoch(): number {
|
|
246
247
|
const nextEpoch = chain.clock.currentEpoch + 1;
|
|
247
|
-
const secPerEpoch = SLOTS_PER_EPOCH * config.
|
|
248
|
+
const secPerEpoch = (SLOTS_PER_EPOCH * config.SLOT_DURATION_MS) / 1000;
|
|
248
249
|
const nextEpochStartSec = chain.genesisTime + nextEpoch * secPerEpoch;
|
|
249
250
|
return nextEpochStartSec * 1000 - Date.now();
|
|
250
251
|
}
|
|
@@ -1018,8 +1019,8 @@ export function getValidatorApi(
|
|
|
1018
1019
|
const head = chain.forkChoice.getHead();
|
|
1019
1020
|
let state: CachedBeaconStateAllForks | undefined = undefined;
|
|
1020
1021
|
const startSlot = computeStartSlotAtEpoch(epoch);
|
|
1021
|
-
const
|
|
1022
|
-
|
|
1022
|
+
const prepareNextSlotLookAheadMs =
|
|
1023
|
+
config.SLOT_DURATION_MS - config.getSlotComponentDurationMs(PREPARE_NEXT_SLOT_BPS);
|
|
1023
1024
|
const toNextEpochMs = msToNextEpoch();
|
|
1024
1025
|
// validators may request next epoch's duties when it's close to next epoch
|
|
1025
1026
|
// this is to avoid missed block proposal due to 0 epoch look ahead
|
|
@@ -652,7 +652,8 @@ export class BlockInputColumns extends AbstractBlockInput<ForkColumnsDA, fulu.Da
|
|
|
652
652
|
static createFromColumn(
|
|
653
653
|
props: AddColumn & CreateBlockInputMeta & {sampledColumns: ColumnIndex[]; custodyColumns: ColumnIndex[]}
|
|
654
654
|
): BlockInputColumns {
|
|
655
|
-
const hasAllData =
|
|
655
|
+
const hasAllData =
|
|
656
|
+
props.daOutOfRange || props.columnSidecar.kzgCommitments.length === 0 || props.sampledColumns.length === 0;
|
|
656
657
|
const state: BlockInputColumnsState = {
|
|
657
658
|
hasBlock: false,
|
|
658
659
|
hasAllData,
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
RootCache,
|
|
15
15
|
computeEpochAtSlot,
|
|
16
16
|
computeStartSlotAtEpoch,
|
|
17
|
+
computeTimeAtSlot,
|
|
17
18
|
isExecutionStateType,
|
|
18
19
|
isStartSlotOfEpoch,
|
|
19
20
|
isStateValidatorsNodesPopulated,
|
|
@@ -78,7 +79,8 @@ export async function importBlock(
|
|
|
78
79
|
const currentEpoch = computeEpochAtSlot(currentSlot);
|
|
79
80
|
const blockEpoch = computeEpochAtSlot(blockSlot);
|
|
80
81
|
const prevFinalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
|
|
81
|
-
const blockDelaySec =
|
|
82
|
+
const blockDelaySec =
|
|
83
|
+
fullyVerifiedBlock.seenTimestampSec - computeTimeAtSlot(this.config, blockSlot, postState.genesisTime);
|
|
82
84
|
const recvToValLatency = Date.now() / 1000 - (opts.seenTimestampSec ?? Date.now() / 1000);
|
|
83
85
|
const fork = this.config.getForkSeq(blockSlot);
|
|
84
86
|
|
|
@@ -258,7 +260,7 @@ export async function importBlock(
|
|
|
258
260
|
this.metrics.headSlot.set(newHead.slot);
|
|
259
261
|
// Only track "recent" blocks. Otherwise sync can distort this metrics heavily.
|
|
260
262
|
// We want to track recent blocks coming from gossip, unknown block sync, and API.
|
|
261
|
-
if (delaySec < SLOTS_PER_EPOCH * this.config.
|
|
263
|
+
if (delaySec < (SLOTS_PER_EPOCH * this.config.SLOT_DURATION_MS) / 1000) {
|
|
262
264
|
this.metrics.importBlock.elapsedTimeTillBecomeHead.observe(delaySec);
|
|
263
265
|
const cutOffSec = this.config.getAttestationDueMs(this.config.getForkName(blockSlot)) / 1000;
|
|
264
266
|
if (delaySec > cutOffSec) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {DataAvailabilityStatus} from "@lodestar/state-transition";
|
|
2
|
-
import {DAType, IBlockInput} from "./blockInput/index.js";
|
|
2
|
+
import {DAData, DAType, IBlockInput} from "./blockInput/index.js";
|
|
3
3
|
|
|
4
4
|
// we can now wait for full 12 seconds because unavailable block sync will try pulling
|
|
5
5
|
// the blobs from the network anyway after 500ms of seeing the block
|
|
@@ -18,7 +18,15 @@ export async function verifyBlocksDataAvailability(
|
|
|
18
18
|
dataAvailabilityStatuses: DataAvailabilityStatus[];
|
|
19
19
|
availableTime: number;
|
|
20
20
|
}> {
|
|
21
|
-
|
|
21
|
+
const promises: Promise<DAData>[] = [];
|
|
22
|
+
for (const blockInput of blocks) {
|
|
23
|
+
// block verification is triggered on a verified gossip block so we only need to wait for all data
|
|
24
|
+
if (!blockInput.hasAllData()) {
|
|
25
|
+
promises.push(blockInput.waitForAllData(BLOB_AVAILABILITY_TIMEOUT, signal));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
await Promise.all(promises);
|
|
29
|
+
|
|
22
30
|
const availableTime = Math.max(0, Math.max(...blocks.map((blockInput) => blockInput.getTimeComplete())));
|
|
23
31
|
const dataAvailabilityStatuses: DataAvailabilityStatus[] = blocks.map((blockInput) => {
|
|
24
32
|
if (blockInput.type === DAType.PreData) {
|
|
@@ -102,15 +102,7 @@ export async function removeEagerlyPersistedBlockInputs(this: BeaconChain, block
|
|
|
102
102
|
if (!this.forkChoice.hasBlockHex(blockRootHex)) {
|
|
103
103
|
blockToRemove.push(block);
|
|
104
104
|
|
|
105
|
-
if (isBlockInputColumns(blockInput)) {
|
|
106
|
-
const {custodyColumns} = this.custodyConfig;
|
|
107
|
-
const dataColumnsLen = custodyColumns.length;
|
|
108
|
-
const dataColumnSidecars = blockInput.getCustodyColumns();
|
|
109
|
-
if (dataColumnSidecars.length !== dataColumnsLen) {
|
|
110
|
-
throw Error(
|
|
111
|
-
`Invalid dataColumnSidecars=${dataColumnSidecars.length} for custody expected custodyColumnsLen=${dataColumnsLen}`
|
|
112
|
-
);
|
|
113
|
-
}
|
|
105
|
+
if (isBlockInputColumns(blockInput) && blockInput.getCustodyColumns().length > 0) {
|
|
114
106
|
dataColumnsToRemove.push(blockRoot);
|
|
115
107
|
} else if (isBlockInputBlobs(blockInput)) {
|
|
116
108
|
const blobSidecars = blockInput.getBlobs();
|
package/src/chain/chain.ts
CHANGED
|
@@ -1139,7 +1139,7 @@ export class BeaconChain implements IBeaconChain {
|
|
|
1139
1139
|
const metrics = this.metrics;
|
|
1140
1140
|
if (metrics && (slot + 1) % SLOTS_PER_EPOCH === 0) {
|
|
1141
1141
|
// On the last slot of the epoch
|
|
1142
|
-
sleep(
|
|
1142
|
+
sleep(this.config.SLOT_DURATION_MS / 2)
|
|
1143
1143
|
.then(() => this.validatorMonitor?.onceEveryEndOfEpoch(this.getHeadState()))
|
|
1144
1144
|
.catch((e) => {
|
|
1145
1145
|
if (!isErrorAborted(e)) this.logger.error("Error on validator monitor onceEveryEndOfEpoch", {slot}, e);
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
ParticipationFlags,
|
|
7
7
|
computeEpochAtSlot,
|
|
8
8
|
computeStartSlotAtEpoch,
|
|
9
|
+
computeTimeAtSlot,
|
|
9
10
|
getBlockRootAtSlot,
|
|
10
11
|
getCurrentSlot,
|
|
11
12
|
parseAttesterFlags,
|
|
@@ -455,7 +456,7 @@ export function createValidatorMonitor(
|
|
|
455
456
|
// Returns the duration between when the attestation `data` could be produced (ATTESTATION_DUE_BPS through the slot) and `seenTimestamp`.
|
|
456
457
|
const delaySec =
|
|
457
458
|
seenTimestampSec -
|
|
458
|
-
(
|
|
459
|
+
(computeTimeAtSlot(config, data.slot, genesisTime) + config.getAttestationDueMs(fork) / 1000);
|
|
459
460
|
for (const index of indexedAttestation.attestingIndices) {
|
|
460
461
|
const validator = validators.get(index);
|
|
461
462
|
if (validator) {
|
|
@@ -491,7 +492,7 @@ export function createValidatorMonitor(
|
|
|
491
492
|
// Returns the duration between when the attestation `data` could be produced (ATTESTATION_DUE_BPS through the slot) and `seenTimestamp`.
|
|
492
493
|
const delaySec =
|
|
493
494
|
seenTimestampSec -
|
|
494
|
-
(
|
|
495
|
+
(computeTimeAtSlot(config, data.slot, genesisTime) + config.getAttestationDueMs(fork) / 1000);
|
|
495
496
|
|
|
496
497
|
for (const index of indexedAttestation.attestingIndices) {
|
|
497
498
|
const validator = validators.get(index);
|
|
@@ -510,7 +511,7 @@ export function createValidatorMonitor(
|
|
|
510
511
|
const fork = config.getForkName(data.slot);
|
|
511
512
|
// Returns the duration between when a `AggregateAndproof` with `data` could be produced (AGGREGATE_DUE_BPS through the slot) and `seenTimestamp`.
|
|
512
513
|
const delaySec =
|
|
513
|
-
seenTimestampSec - (
|
|
514
|
+
seenTimestampSec - (computeTimeAtSlot(config, data.slot, genesisTime) + config.getAggregateDueMs(fork) / 1000);
|
|
514
515
|
|
|
515
516
|
for (const index of indexedAttestation.attestingIndices) {
|
|
516
517
|
const validator = validators.get(index);
|
|
@@ -539,7 +540,7 @@ export function createValidatorMonitor(
|
|
|
539
540
|
const fork = config.getForkName(data.slot);
|
|
540
541
|
// Returns the duration between when a `AggregateAndproof` with `data` could be produced (AGGREGATE_DUE_BPS through the slot) and `seenTimestamp`.
|
|
541
542
|
const delaySec =
|
|
542
|
-
seenTimestampSec - (
|
|
543
|
+
seenTimestampSec - (computeTimeAtSlot(config, data.slot, genesisTime) + config.getAggregateDueMs(fork) / 1000);
|
|
543
544
|
|
|
544
545
|
const aggregatorIndex = signedAggregateAndProof.message.aggregatorIndex;
|
|
545
546
|
const validatorAggregator = validators.get(aggregatorIndex);
|
|
@@ -105,7 +105,7 @@ export class Eth2Gossipsub extends GossipSub {
|
|
|
105
105
|
mcacheLength: 6,
|
|
106
106
|
mcacheGossip: 3,
|
|
107
107
|
// this should be in ms
|
|
108
|
-
seenTTL: config.
|
|
108
|
+
seenTTL: config.SLOT_DURATION_MS * SLOTS_PER_EPOCH * 2,
|
|
109
109
|
scoreParams,
|
|
110
110
|
scoreThresholds: gossipScoreThresholds,
|
|
111
111
|
// For a single stream, await processing each RPC before processing the next
|
|
@@ -84,10 +84,10 @@ export function computeGossipPeerScoreParams({
|
|
|
84
84
|
config: BeaconConfig;
|
|
85
85
|
eth2Context: Eth2Context;
|
|
86
86
|
}): Partial<PeerScoreParams> {
|
|
87
|
-
const decayIntervalMs = config.
|
|
87
|
+
const decayIntervalMs = config.SLOT_DURATION_MS;
|
|
88
88
|
const decayToZero = 0.01;
|
|
89
|
-
const epochDurationMs = config.
|
|
90
|
-
const slotDurationMs = config.
|
|
89
|
+
const epochDurationMs = config.SLOT_DURATION_MS * SLOTS_PER_EPOCH;
|
|
90
|
+
const slotDurationMs = config.SLOT_DURATION_MS;
|
|
91
91
|
const scoreParameterDecayFn = (decayTimeMs: number): number => {
|
|
92
92
|
return scoreParameterDecayWithBase(decayTimeMs, decayIntervalMs, decayToZero);
|
|
93
93
|
};
|
|
@@ -265,7 +265,7 @@ function getTopicScoreParams(
|
|
|
265
265
|
|
|
266
266
|
if (meshMessageInfo) {
|
|
267
267
|
const {decaySlots, capFactor, activationWindow, currentSlot} = meshMessageInfo;
|
|
268
|
-
const decayTimeMs = config.
|
|
268
|
+
const decayTimeMs = config.SLOT_DURATION_MS * decaySlots;
|
|
269
269
|
params.meshMessageDeliveriesDecay = scoreParameterDecayFn(decayTimeMs);
|
|
270
270
|
params.meshMessageDeliveriesThreshold = threshold(params.meshMessageDeliveriesDecay, expectedMessageRate / 50);
|
|
271
271
|
params.meshMessageDeliveriesCap = Math.max(capFactor * params.meshMessageDeliveriesThreshold, 2);
|
|
@@ -3,6 +3,7 @@ import {BitArray} from "@chainsafe/ssz";
|
|
|
3
3
|
import {BeaconConfig} from "@lodestar/config";
|
|
4
4
|
import {LoggerNode} from "@lodestar/logger/node";
|
|
5
5
|
import {ForkSeq, SLOTS_PER_EPOCH, SYNC_COMMITTEE_SUBNET_COUNT} from "@lodestar/params";
|
|
6
|
+
import {computeTimeAtSlot} from "@lodestar/state-transition";
|
|
6
7
|
import {Metadata, Status, altair, fulu, phase0} from "@lodestar/types";
|
|
7
8
|
import {prettyPrintIndices, toHex, withTimeout} from "@lodestar/utils";
|
|
8
9
|
import {GOODBYE_KNOWN_CODES, GoodByeReasonCode, Libp2pEvent} from "../../constants/index.js";
|
|
@@ -599,7 +600,7 @@ export class PeerManager {
|
|
|
599
600
|
subnet: query.subnet,
|
|
600
601
|
type,
|
|
601
602
|
maxPeersToDiscover: query.maxPeersToDiscover,
|
|
602
|
-
toUnixMs:
|
|
603
|
+
toUnixMs: computeTimeAtSlot(this.config, query.toSlot, this.clock.genesisTime) * 1000,
|
|
603
604
|
});
|
|
604
605
|
}
|
|
605
606
|
|
|
@@ -379,7 +379,7 @@ function getSequentialHandlers(modules: ValidatorFnsModules, options: GossipHand
|
|
|
379
379
|
|
|
380
380
|
// Handler - MUST NOT `await`, to allow validation result to be propagated
|
|
381
381
|
|
|
382
|
-
const delaySec = seenTimestampSec - (
|
|
382
|
+
const delaySec = seenTimestampSec - computeTimeAtSlot(config, slot, chain.genesisTime);
|
|
383
383
|
metrics?.gossipBlock.elapsedTimeTillReceived.observe({source: OpSource.gossip}, delaySec);
|
|
384
384
|
chain.validatorMonitor?.registerBeaconBlock(OpSource.gossip, delaySec, signedBlock.message);
|
|
385
385
|
if (!blockInput.hasBlockAndAllData()) {
|
|
@@ -163,12 +163,9 @@ export class AttnetsService implements IAttnetsService {
|
|
|
163
163
|
*/
|
|
164
164
|
private onSlot = (clockSlot: Slot): void => {
|
|
165
165
|
try {
|
|
166
|
-
setTimeout(
|
|
167
|
-
()
|
|
168
|
-
|
|
169
|
-
},
|
|
170
|
-
this.config.SECONDS_PER_SLOT * 0.5 * 1000
|
|
171
|
-
);
|
|
166
|
+
setTimeout(() => {
|
|
167
|
+
this.onHalfSlot(clockSlot);
|
|
168
|
+
}, this.config.SLOT_DURATION_MS * 0.5);
|
|
172
169
|
|
|
173
170
|
for (const [dutiedSlot, dutiedInfo] of this.aggregatorSlotSubnet.entries()) {
|
|
174
171
|
if (dutiedSlot === clockSlot + this.opts.slotsToSubscribeBeforeAggregatorDuty) {
|
package/src/node/notifier.ts
CHANGED
|
@@ -157,7 +157,7 @@ export async function runNodeNotifier(modules: NodeNotifierModules): Promise<voi
|
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
function timeToNextHalfSlot(config: BeaconConfig, chain: IBeaconChain, isFirstTime: boolean): number {
|
|
160
|
-
const msPerSlot = config.
|
|
160
|
+
const msPerSlot = config.SLOT_DURATION_MS;
|
|
161
161
|
const msPerHalfSlot = msPerSlot / 2;
|
|
162
162
|
const msFromGenesis = Date.now() - chain.genesisTime * 1000;
|
|
163
163
|
const msToNextSlot =
|
package/src/sync/unknownBlock.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {ChainForkConfig} from "@lodestar/config";
|
|
2
2
|
import {ForkSeq} from "@lodestar/params";
|
|
3
3
|
import {RequestError, RequestErrorCode} from "@lodestar/reqresp";
|
|
4
|
+
import {computeTimeAtSlot} from "@lodestar/state-transition";
|
|
4
5
|
import {RootHex} from "@lodestar/types";
|
|
5
6
|
import {Logger, prettyPrintIndices, pruneSetToMax, sleep} from "@lodestar/utils";
|
|
6
7
|
import {isBlockInputBlobs, isBlockInputColumns} from "../chain/blocks/blockInput/blockInput.js";
|
|
@@ -329,7 +330,7 @@ export class BlockInputSync {
|
|
|
329
330
|
this.pendingBlocks.set(pending.blockInput.blockRootHex, pending);
|
|
330
331
|
const blockSlot = pending.blockInput.slot;
|
|
331
332
|
const finalizedSlot = this.chain.forkChoice.getFinalizedBlock().slot;
|
|
332
|
-
const delaySec = Date.now() / 1000 - (this.
|
|
333
|
+
const delaySec = Date.now() / 1000 - computeTimeAtSlot(this.config, blockSlot, this.chain.genesisTime);
|
|
333
334
|
this.metrics?.blockInputSync.elapsedTimeTillReceived.observe(delaySec);
|
|
334
335
|
|
|
335
336
|
const parentInForkChoice = this.chain.forkChoice.hasBlockHex(pending.blockInput.parentRootHex);
|
package/src/util/clock.ts
CHANGED
|
@@ -9,12 +9,12 @@ import {MAXIMUM_GOSSIP_CLOCK_DISPARITY} from "../constants/constants.js";
|
|
|
9
9
|
export enum ClockEvent {
|
|
10
10
|
/**
|
|
11
11
|
* This event signals the start of a new slot, and that subsequent calls to `clock.currentSlot` will equal `slot`.
|
|
12
|
-
* This event is guaranteed to be emitted every `
|
|
12
|
+
* This event is guaranteed to be emitted every `SLOT_DURATION_MS` milliseconds.
|
|
13
13
|
*/
|
|
14
14
|
slot = "clock:slot",
|
|
15
15
|
/**
|
|
16
16
|
* This event signals the start of a new epoch, and that subsequent calls to `clock.currentEpoch` will return `epoch`.
|
|
17
|
-
* This event is guaranteed to be emitted every `
|
|
17
|
+
* This event is guaranteed to be emitted every `SLOT_DURATION_MS * SLOTS_PER_EPOCH` milliseconds.
|
|
18
18
|
*/
|
|
19
19
|
epoch = "clock:epoch",
|
|
20
20
|
}
|
|
@@ -29,7 +29,7 @@ export type ClockEvents = {
|
|
|
29
29
|
*
|
|
30
30
|
* The time is dependent on:
|
|
31
31
|
* - `state.genesisTime` - the genesis time
|
|
32
|
-
* - `
|
|
32
|
+
* - `SLOT_DURATION_MS` - # of milliseconds per slot
|
|
33
33
|
* - `SLOTS_PER_EPOCH` - # of slots per epoch
|
|
34
34
|
*/
|
|
35
35
|
export type IClock = StrictEventEmitter<EventEmitter, ClockEvents> & {
|
|
@@ -174,16 +174,16 @@ export class Clock extends EventEmitter implements IClock {
|
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
secFromSlot(slot: Slot, toSec = Date.now() / 1000): number {
|
|
177
|
-
return toSec - (this.
|
|
177
|
+
return toSec - computeTimeAtSlot(this.config, slot, this.genesisTime);
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
msFromSlot(slot: Slot, toMs = Date.now()): number {
|
|
181
|
-
return toMs - (this.
|
|
181
|
+
return toMs - computeTimeAtSlot(this.config, slot, this.genesisTime) * 1000;
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
private onNextSlot = (slot?: Slot): void => {
|
|
185
185
|
const clockSlot = slot ?? getCurrentSlot(this.config, this.genesisTime);
|
|
186
|
-
// process multiple clock slots in the case the main thread has been saturated for >
|
|
186
|
+
// process multiple clock slots in the case the main thread has been saturated for > SLOT_DURATION_MS
|
|
187
187
|
while (this._currentSlot < clockSlot && !this.signal.aborted) {
|
|
188
188
|
const previousSlot = this._currentSlot;
|
|
189
189
|
this._currentSlot++;
|
|
@@ -205,7 +205,7 @@ export class Clock extends EventEmitter implements IClock {
|
|
|
205
205
|
};
|
|
206
206
|
|
|
207
207
|
private msUntilNextSlot(): number {
|
|
208
|
-
const milliSecondsPerSlot = this.config.
|
|
208
|
+
const milliSecondsPerSlot = this.config.SLOT_DURATION_MS;
|
|
209
209
|
const diffInMilliSeconds = Date.now() - this.genesisTime * 1000;
|
|
210
210
|
return milliSecondsPerSlot - (diffInMilliSeconds % milliSecondsPerSlot);
|
|
211
211
|
}
|