mirror of
https://github.com/Qortal/altcoinj.git
synced 2025-02-07 14:54:15 +00:00
Make MemoryBlockStore store only a rolling window of the last 5000 blocks. Fixes BuildCheckpoints which was trying to store every block header and running out of heap space.
This commit is contained in:
parent
3ea3735d4f
commit
2ccfd3fd48
@ -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<Sha256Hash, StoredBlock> blockMap;
|
||||
private LinkedHashMap<Sha256Hash, StoredBlock> blockMap = new LinkedHashMap<Sha256Hash, StoredBlock>() {
|
||||
@Override
|
||||
protected boolean removeEldestEntry(Map.Entry<Sha256Hash, StoredBlock> eldest) {
|
||||
return blockMap.size() > 5000;
|
||||
}
|
||||
};
|
||||
private StoredBlock chainHead;
|
||||
|
||||
public MemoryBlockStore(NetworkParameters params) {
|
||||
blockMap = new HashMap<Sha256Hash, StoredBlock>();
|
||||
// Insert the genesis block.
|
||||
try {
|
||||
Block genesisHeader = params.getGenesisBlock().cloneAsHeader();
|
||||
|
Loading…
x
Reference in New Issue
Block a user