From f0435d8232076c8195b0423b250453dc6c1b0c48 Mon Sep 17 00:00:00 2001 From: Matt Yue Date: Fri, 24 Aug 2018 11:47:07 +0800 Subject: [PATCH] :bug:when only one witness, solidified block not found --- src/main/java/org/tron/core/db/Manager.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/org/tron/core/db/Manager.java b/src/main/java/org/tron/core/db/Manager.java index 357fbd78883..1ad7eef0e21 100644 --- a/src/main/java/org/tron/core/db/Manager.java +++ b/src/main/java/org/tron/core/db/Manager.java @@ -683,6 +683,7 @@ private void applyBlock(BlockCapsule block) throws ContractValidateException, processBlock(block); this.blockStore.put(block.getBlockId().getBytes(), block); this.blockIndexStore.put(block.getBlockId()); + updateFork(); } private void switchFork(BlockCapsule newHead) @@ -1300,7 +1301,15 @@ public void updateLatestSolidifiedBlock() { } getDynamicPropertiesStore().saveLatestSolidifiedBlockNum(latestSolidifiedBlockNum); logger.info("update solid block, num = {}", latestSolidifiedBlockNum); + } + + public void updateFork() { + if (forkController.shouldBeForked()) { + return; + } + try { + long latestSolidifiedBlockNum = dynamicPropertiesStore.getLatestSolidifiedBlockNum(); BlockCapsule solidifiedBlock = getBlockByNum(latestSolidifiedBlockNum); forkController.update(solidifiedBlock); } catch (ItemNotFoundException | BadItemException e) {