From 5ab57369f78b22bcbc08025fe6eba1dc270d064f Mon Sep 17 00:00:00 2001 From: Etan Kissling Date: Fri, 9 Sep 2022 02:31:33 +0200 Subject: [PATCH] testnet optimizations for low participation (#4100) Update finality check to improve performance in testnets. --- beacon_chain/fork_choice/proto_array.nim | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/beacon_chain/fork_choice/proto_array.nim b/beacon_chain/fork_choice/proto_array.nim index 0f6b97cce..2839cdc93 100644 --- a/beacon_chain/fork_choice/proto_array.nim +++ b/beacon_chain/fork_choice/proto_array.nim @@ -541,12 +541,14 @@ func nodeIsViableForHead(self: ProtoArray, node: ProtoNode): bool = return false if self.hasLowParticipation: - if node.checkpoints.justified.epoch < self.checkpoints.justified.epoch: - return false - if self.isPreviousEpochJustified: - return true - return node.checkpoints.finalized == self.checkpoints.finalized or - self.checkpoints.finalized.epoch == GENESIS_EPOCH + return + if node.checkpoints.justified.epoch < self.checkpoints.justified.epoch: + false + elif self.isPreviousEpochJustified: + node.checkpoints.finalized.epoch >= self.checkpoints.finalized.epoch + else: + node.checkpoints.finalized == self.checkpoints.finalized or + self.checkpoints.finalized.epoch == GENESIS_EPOCH ## Any node that has a different finalized or justified epoch ## should not be viable for the head.