I have seen contracts use block numbers to manage when the crowdsale should start and stop. How reliable is this? I understand the average time in ethereum is 17secs between blocks, but can this be relied on as this can change in the future.
const startBlock = web3.eth.blockNumber + 2 // blockchain block number where the crowdsale will commence.
const endBlock = startBlock + 300 // 300 is little over an hour.
If this is avg 17 secs, can this be accurately use to give bonus slabs during the crowdsale? If not, what would be the best alternative?