public LevelDbStorageModule(string baseDirectory, ChainType rulesType,
ulong? blocksCacheSize = null, ulong? blocksWriteCacheSize = null,
ulong? blockTxesCacheSize = null, ulong? blockTxesWriteCacheSize = null,
ulong? chainStateCacheSize = null, ulong? chainStateWriteCacheSize = null,
string[] blockTxesStorageLocations = null)
{
this.baseDirectory = baseDirectory;
this.blockTxesStorageLocations = blockTxesStorageLocations;
dataDirectory = Path.Combine(baseDirectory, "Data", rulesType.ToString());
peersDirectory = Path.Combine(baseDirectory, "Peers", rulesType.ToString());
chainType = rulesType;
this.blocksCacheSize = blocksCacheSize;
this.blocksWriteCacheSize = blocksWriteCacheSize;
this.blockTxesCacheSize = blockTxesCacheSize ?? (ulong)128.MEBIBYTE();
this.blockTxesWriteCacheSize = blockTxesWriteCacheSize ?? (ulong)32.MEBIBYTE();
this.chainStateCacheSize = chainStateCacheSize ?? (ulong)512.MEBIBYTE();
this.chainStateWriteCacheSize = chainStateWriteCacheSize ?? (ulong)128.MEBIBYTE();
}