# Find outages in public blockchain history Your coding challenge involves identifying the most reliable Ethereum testnet based on a specific criterion: **consistent block production at a fixed interval with no gaps**. In this context, a normal block is produced every 1 second (blocks are never produced more often than that), and any delay beyond (>) 2 seconds is considered a gap that needs to be recorded. To accomplish this, you have access to two API methods: * get_block_timestamp(height): This method provides the timestamp of a block at a given height, measured in milliseconds. Note that that this method is slow and resource-intensive. * get_current_block_height(): This method offers the height of the latest produced block - you only need to invoke it once in the beginning to get the current block height. ```rust= let totalBlocks = get_current_block_height() let currentTimestamp = get_block_timestamp(currentBlock) let startTimestamp = get_block_timestamp(0) let diff = currentTimestamp - startTimestamp let average = diff/totalBlocks // [1.9, 1.9, 1.9] < 6 // [1, 1, 2.5] let noFaultyBlocks = 0 let num = getNFaulty(0, totalBlocks) function getNFaulty(start: number, end: number) { if (start > end) throw Error() let startTimestamp = get_block_timestamp(start) let endTimestamp = get_block_timestamp(end) if (end - start == 1 && endTimestamp - startTimestamp > 2) return 1 if (endTimestamp - startTimestamp < end - start + 1) { return 0 } else { let mid = Math.floor((end + start) / 2) return getNFaulty(start, mid) + getNFaulty(mid , end) } } ```