From fa30bcf10086292883ef086202474ac4df67ffe1 Mon Sep 17 00:00:00 2001 From: tuyennhv Date: Fri, 10 Nov 2023 19:35:00 +0300 Subject: [PATCH] fix: only transfer cache at epoch transition (#6102) --- packages/beacon-node/src/chain/blocks/verifyBlock.ts | 1 + packages/beacon-node/src/chain/prepareNextSlot.ts | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/beacon-node/src/chain/blocks/verifyBlock.ts b/packages/beacon-node/src/chain/blocks/verifyBlock.ts index 77c6b4832bbc..4f8bcfa86d01 100644 --- a/packages/beacon-node/src/chain/blocks/verifyBlock.ts +++ b/packages/beacon-node/src/chain/blocks/verifyBlock.ts @@ -71,6 +71,7 @@ export async function verifyBlocksInEpoch( if (!isStateValidatorsNodesPopulated(preState0)) { this.logger.verbose("verifyBlocksInEpoch preState0 SSZ cache stats", { + slot: preState0.slot, cache: isStateValidatorsNodesPopulated(preState0), clonedCount: preState0.clonedCount, clonedCountWithTransferCache: preState0.clonedCountWithTransferCache, diff --git a/packages/beacon-node/src/chain/prepareNextSlot.ts b/packages/beacon-node/src/chain/prepareNextSlot.ts index a1b5c23144d1..43fac1d1b120 100644 --- a/packages/beacon-node/src/chain/prepareNextSlot.ts +++ b/packages/beacon-node/src/chain/prepareNextSlot.ts @@ -98,8 +98,9 @@ export class PrepareNextSlotScheduler { const prepareState = await this.chain.regen.getBlockSlotState( headRoot, prepareSlot, - // the 1st slot of next epoch will likely use this Previous Root Checkpoint state so we transfer cache here - {dontTransferCache: false}, + // the slot 0 of next epoch will likely use this Previous Root Checkpoint state for state transition so we transfer cache here + // for other slots dontTransferCached=true because we don't run state transition on this state + {dontTransferCache: !isEpochTransition}, RegenCaller.precomputeEpoch );