void ArchiveBlocks()
{
if (mBlocks.Count > 10000)
{
mBlockLock.WaitOne();
int archiveEnd = mArchiveMarker + 10000;
List<Block> archive = new List<Block>();
foreach (Block b in mBlocks)
{
if (b.mHeight >= mArchiveMarker && b.mHeight < archiveEnd)
{
if( b.mTransactions.Count > 0 )
archive.Add(b);
}
}
if (archive.Count == 10000 || (archive.Count == 9999 && mArchiveMarker == 0))
{
WriteArchive(archive);
}
mBlockLock.ReleaseMutex();
}
}