Please read this post as a matter of constructive critics.
Everything is nice while it is nice...
Tone accepted
If any incident arise in production, it is your duty to preserve production (focus out from developing) and to protect your clients (unless you are doing it for free).
Unfortunately, this was tested in our development environment (fake test data), and our staging environment (live data, replicated database), however, failed when migrating to production. Unless we never want new features, everything has to hit production sooner or later. And as much as our staging boxes replicates the production boxes, there are certain things that aren't 100% duplicated (it doesn't send coins to exchanges for example), doesn't make trades, etc.
My main goal is always to provide a good service, that doesn't damage users (clients). I think there has been a good track record over the last 6 months of that. As for the free/paid aspect of it, I take the exact same risk as all of the WP users. If we mine on a fork for some time, and that affects user earnings, it directly affects my earnings in the exact same way (WP gets a percent of earnings, nothing more).
I asked you for API stat few pages ago...
So there are type of your clients who are not even visiting your website for checking progress, you should think about them too (at least send signal with message if you put on website).
During both of the issues there were notices in the header of the website (same as any time there is a major change/issue). I will work on adding the same message to the API results (probably in "system_message" at top level), so that people using the API can check against that.
In order to avoid forks - or at least to have indicator when something is not right, I suggest you to add maybe some indicator when confirmation of coin / exchange / exchange volume are not in alignment - this will help at least to catch fork much faster then 5 hours after. (not big deal to create) - but can save hash power ...
We had setups for this a while ago that would check block explorers to see when differences happened. Unfortunately, we ran into a ton of issues with block explorers going down, or falling behind, or not being updated after a fork, and waking me up with a ton of false-positives. Like I said before, this doesn't happen very often (mining the wrong fork). Just ended up missing this one.
Can you please explain difference in between stat:
Jun 23, 2014 (partial) 6.75425169 34.50 GH/s 0.00026793 81% - actual? (what price bid/ask/last what exchange? )
This is the stat for the day, starting at 00:00:00, ending at 23:59:59 ("partial" means it is not a complete day). Price has been discussed here before, but is likely very buried, so understandable if it was missed. It is based on the price we
expect to be able to sell each coin for. This takes into consideration splitting the sells across multiple exchanges, checking our coin depth against the exchange depth, and how many other coins were mined during the period by other miners, that could potentially be sold before ours. It is definitely just an estimate, and we normally estimate conservatively (sell price is normally a few percent higher than expected at mine-time).
and
x11 Hashrate: 40.93 GH/s Mining: fractalcoin vsLTC: 151% (in upper right corner) - avg 24hrs ?
This is the 24hr earnings (same as above in terms of price), just a rolling 24hrs rather than timestamped "day". (More info is in the FAQ, can get it from the "?" next to that stat as well).
It would be good if you point on your website that it is clients responsibility to keep an eye of forks and other updates, and that you are not taking any responsibility, that way people would be more careful and hopefully avoid today's scenario.
It was a bad day for me, but I will be more careful in the future...
BR
It is everyone's responsibility (mine more than others). I have users emailing me daily about coin additions, pending forks, etc. If I had seen the fork coming, I certainly would have updated. In fact, 2 posts before yours I posted:
I'm certainly not trying to say this falls on anyone but me. I should have seen the update, I should have updated the daemon/blockchain, and we should have been mining on the correct fork.
I appreciate the constructive criticism.