protected static int calcLength(byte[] buf, int offset) { VarInt varint; // jump past transaction int cursor = offset + Transaction.calcLength(buf, offset); // jump past header hash cursor += 4; // Coin base branch cursor += MerkleBranch.calcLength(buf, offset); // Block chain branch cursor += MerkleBranch.calcLength(buf, offset); // Block header cursor += Block.HEADER_SIZE; return cursor - offset + 4; }