So some story time is in order here.
Back in early 2014, gpu mining on litecoin stopped being fun anymore, and there was Dogecoin. My first thought was "wow, shouldn't there be a catcoin too?"
Well by the time I figured this out, a few hundred other people also figured it out and there was
https://github.com/kR105/catcoin.
But this new coin had a problem. It used a 2016 block adjustment and the insta-miners showed up and clobbered it so there are lots of 1 second blocks until the difficulty adjusted, and miners went on to other naive altcoins. So a group of people who, at this point, knew very little about crypto or coins got together and argued and came to a consensus to release a version of Catcoin with a new PID (proportional-integral-derivative) control mechanism for difficulty adjustment. Shortly thereafter we found bugs and had a forked blockchain, and in the rush to get it working again, I released this:
https://github.com/CatcoinOfficial/CatcoinRelease/commit/0d03a5b3d8bb7bc3c935e7196c5d807da997cf9cThe
interesting stuff is a check to ensure there is always a minimum time gap of 30 seconds between blocks.
What I managed to not really think about until just now is that this sort of a change to the blockchain consensus rules needs... well, better consensus and discussion. The result of this rushed change is that as soon as it got deployed, if you happened to get lucky and find a block in 10 seconds, you got a nice big fat REJECTED notice. This 'feels' like getting cheated because it's like winning the lottery only to be told "no, we don't actually accept those winning numbers if you buy a ticket too soon".
The proper thing to do is update the 'mintime' fields in the stratum protocol, so the miners never generate invalid blocks, something like
https://github.com/catcoiner/catcoin/commit/14862b19e243520f0b9d809647b5a1db6723a9d6So fast forward to today, and the CatcoinOfficial group has released a new hardfork upgrade without the minimum block time. Also included is
this which, when combined, seem to me to be an invitation for a motivated individual or pool to write custom miner code that controls the miner timestamp selection for the block hash, this giving that miner the ability to select what difficulty adjustment will be used for the next block.
There's really two issues here; minimum block times, and selecting a difficulty adjustment based on the miner-supplied timestamp. I would rather focus on the first issue, and if this might be a relevant improvement for other chains, and if any other blockchain has tighter constraints on timestamps than bitcoin does.