docs: private void loadHeader(RandomAccessFile fc) throws IOException {
  		dbstats.clear();
  
  		ByteBuffer buf = ByteBuffer.allocateDirect(HEADER_SIZE);
  
  		long n = 0;
  		int read;
  		do {
  			read = fc.getChannel().read(buf);
  			n += read;
  		} while (read > 0); // fill the buffer
  
  		assert n == HEADER_SIZE;
  
  		Check.state(n == HEADER_SIZE, "The file doesn't have a valid OhmDB format!");
  
  		dbstats.put(DbStats.HEADER_SIZE, n);
  
  		buf.rewind();
  
  		String mark = readStr(buf, MARK.length());
  		Check.state(mark.equals(MARK), "The file doesn't have a valid OhmDB format (incorrect mark)!");
  
  		int fileVersion = buf.getInt();
  		Check.state(fileVersion == 1, "Unsupported OhmDB file format version: %s", fileVersion);
  
  		dbstats.put(DbStats.FILE_VERSION, fileVersion);
  
  		long oddTx1 = buf.getLong();
  		long oddTx2 = buf.getLong();
  		long oddTx3 = buf.getLong();
  
  		long evenTx1 = buf.getLong();
  		long evenTx2 = buf.getLong();
  		long evenTx3 = buf.getLong();
  
  		long latestTx = 0;
  		if (oddTx1 == oddTx2 && oddTx2 == oddTx3 && oddTx1 > latestTx) {
  			latestTx = oddTx1;
  			firstTxCounter = false;
  		}
  		if (evenTx1 == evenTx2 && evenTx2 == evenTx3 && evenTx1 > latestTx) {
  			latestTx = evenTx1;
  			firstTxCounter = true;
  		}
  
  		Long[] commited = { oddTx1, oddTx2, oddTx3, evenTx1, evenTx2, evenTx3 };
  		dbstats.put(DbStats.COMMITED, Arrays.asList(commited));
  
  		dbstats.put(DbStats.LATEST_TRANSACTION, latestTx);
  		txCounter.set(latestTx);
  
  		// ...
  
  		dbstats.put(DbStats.BLOCK_SIZE, BLOCK_SIZE);
  
  		buf.position(HEADER_SIZE - MARK2.length());
  		String mark2 = readStr(buf, MARK2.length());
  		Check.state(mark2.equals(MARK2), "The file doesn't have a valid OhmDB format (incorrect mark2)!");
  	}