add a poison pill for sudden hash increases
It seems to me that a poison pill would make the changes in difficulty larger not smaller. There are 2 obvious ways to smooth out difficulty shorten adjustment period or make only fractional adjustments. I think 30 or 60 block adjustments will work fine. Anything > 5 min and < 1 hour seems pretty solid. Fractional adjustments would also work if you did say a geometric mean of the previous 2 targets with a double weight on the new target. This can mess with the time a bit. You probably could even use the same concept as pools use for PPLNS on difficulty adjustments.
There's a couple of things that bother me about how the retarget is calculated. One thing is that it only looks at a time frame and # of blocks. So essentially it runs all the calculations from two blocks, the first and the last. I've been working on a routine that inspects all the solves in pairs or triplets, runs a standard deviation on them, and then throws out data thats way out there. After that it would add a small percentage of the 'off the chart' data, to accomodate the flash. This should give a smooth retarget at almost any retarget interval you pick. In flash cases, we would get a difficulty that was a little higher than 'optimal', and during 'normal' times, there would be no difference.
Would someone please explain to me how a poison pill works?