diff --git a/core/src/main/java/com/google/bitcoin/store/MemoryBlockStore.java b/core/src/main/java/com/google/bitcoin/store/MemoryBlockStore.java index d97a287a..06539a41 100644 --- a/core/src/main/java/com/google/bitcoin/store/MemoryBlockStore.java +++ b/core/src/main/java/com/google/bitcoin/store/MemoryBlockStore.java @@ -18,18 +18,22 @@ package com.google.bitcoin.store; import com.google.bitcoin.core.*; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; /** * Keeps {@link com.google.bitcoin.core.StoredBlock}s in memory. Used primarily for unit testing. */ public class MemoryBlockStore implements BlockStore { - private Map blockMap; + private LinkedHashMap blockMap = new LinkedHashMap() { + @Override + protected boolean removeEldestEntry(Map.Entry eldest) { + return blockMap.size() > 5000; + } + }; private StoredBlock chainHead; public MemoryBlockStore(NetworkParameters params) { - blockMap = new HashMap(); // Insert the genesis block. try { Block genesisHeader = params.getGenesisBlock().cloneAsHeader();