public void Rollback(int count)
{
if (count > blocks.Count)
throw new InvalidOperationException();
for (var i = 0; i < count; i++)
{
blocks.RemoveAt(blocks.Count - 1);
chain.RemoveBlock(chain.LastBlock);
}
Debug.Assert(chain.Height == blocks.Count - 1);
}