From d0cf0788e6110323029abf0d2884f9321882f3c6 Mon Sep 17 00:00:00 2001 From: Shargon Date: Thu, 28 Jan 2021 10:33:24 +0100 Subject: [PATCH] Optimize --- src/neo/Ledger/Blockchain.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/neo/Ledger/Blockchain.cs b/src/neo/Ledger/Blockchain.cs index 85ce25fa5f..169ab979e4 100644 --- a/src/neo/Ledger/Blockchain.cs +++ b/src/neo/Ledger/Blockchain.cs @@ -133,13 +133,14 @@ public SnapshotCache GetSnapshot() private void OnImport(IEnumerable blocks, bool verify) { - uint currentHeight = NativeContract.Ledger.CurrentIndex(View); + DataCache snapshot = View; + uint currentHeight = NativeContract.Ledger.CurrentIndex(snapshot); foreach (Block block in blocks) { if (block.Index <= currentHeight) continue; if (block.Index != currentHeight + 1) throw new InvalidOperationException(); - if (verify && !block.Verify(View)) + if (verify && !block.Verify(snapshot)) throw new InvalidOperationException(); Persist(block); ++currentHeight; @@ -215,7 +216,8 @@ private void OnInventory(IInventory inventory, bool relay = true) private VerifyResult OnNewBlock(Block block) { - uint currentHeight = NativeContract.Ledger.CurrentIndex(View); + DataCache snapshot = View; + uint currentHeight = NativeContract.Ledger.CurrentIndex(snapshot); if (block.Index <= currentHeight) return VerifyResult.AlreadyExists; if (block.Index - 1 > currentHeight) @@ -225,7 +227,7 @@ private VerifyResult OnNewBlock(Block block) } if (block.Index == currentHeight + 1) { - if (!block.Verify(View)) + if (!block.Verify(snapshot)) return VerifyResult.Invalid; block_cache.TryAdd(block.Hash, block); block_cache_unverified.Remove(block.Index);