Greetings CATs! It's not Caturday but I'm feeling like an update and hope y'all are, too. If not, go away - it'll be here when you're ready.
- So...we have this new code on the streets. Everyone critical has updated. The last two entities that we're still waiting on are the two additional block explorers - the one maintained by Prohashing and the one maintained by smartchain.cc. Prohashing did acknowledge that new code exists, so that's a plus.
- BTW - we've been pinging the folks that have made us Mac wallets in the past but it seems they're no longer in the compiling business. We're looking for leads - anyone up for compiling a 9.3.0 CAT wallet? Yes, there's a reward.
We had a few updates on testnet for more than a year but didn't want to release another wallet right away after 9.2.0 was released because frankly CAT's had so many wallets and forks in her life that we really wanted to just give her time to run a bit. What put us over the edge, decision wise, was that the new interest in CAT and our new life on the exchange brought at least one miner/hacker that likes CAT but doesn't want to buy or mine them, preferring to steal them. That wouldn't cause much stress by itself as any POW coin should expect selfish miners from time to time. But this one decided to exploit a hole in the code that wasn't properly vetting blocks. As some of you know, CAT was forked from LTC back in 2013. We've updated our codebase over the years to include advancements in the code, but unlike BTC and LTC with their significant mining base, a 'nuisance bug' for them is more critical for us. If you've been watching the block chart at catcoinwallets you will have noticed that about the same time our price started to climb, some of our block times got long again, and our difficulty jumped up from our normal 120-ish range to the 200s, then 300s, and now 400 range. Sometimes that's from more miners on the network - we've had up to 3 GH/s (!) of hashing for 6 to 8 hours. So some of the higher difficulty time has been from mining and that's normal and fantastic! But there's also this:
The output from the CatChain explorer shows us that something's not right. Block 117459 has a block time of 13:32:15 and 117460 has a block time of 13:31:41. Clearly 460 wasn't solved prior to 459. The code, though, does allow some range of block times in order to make up for network latency and for clocks to be a bit off. If we just look at that information, we might agree with Vampirus' earlier suggestion that it's just a simple clock problem. One thing about the CAT team, though, is that we like plenty of data sources and we like to cross-check them. Let's look at the output of the bot running 24/7 on Freenode IRC/#catcoin (everyone wave to jaboja when he goes by!):
Unlike the explorer, the bot gives us the (absolute value of the) block time as reported inside the block, but also gives us a UTC time hack. We can see that 117459 was solved around 08:32 UTC and that 117460 was accepted by the network at about 11:14 UTC. That's a healthy 2 hour and 42 second block. But the block time calculation shows a 34 second block time! Yeah, something's broken.
Finally, let's check the output of the chart that lives on catcoinwallets:
The last line at around 400 represents our time sitting on block 117460 waiting to solve 117461's 538 difficulty. The line prior to that, at just under 500 difficulty, represents the time we spent at 117459 (about 2 1/2 hours, more or less). The block prior to that is the approximately 1 hour we spent at 117458 before finding 459.
What we've got is someone building blocks - very often with only the 50 CAT block payout - that is also manipulating the block time. Sometimes blocks are in proper time order, sometimes blocks are reported to arrive prior to the parent block, and sometimes after a multi-hour wait a block arrives with an ridiculously small block time. And in POW code, the block times are used to calculate the change in difficulty.
In a textbook time-warp attack, the attacker wants to doctor the times to reduce the difficulty so they can mine more blocks. I don't think our attacker is mining, though, so they benefit from keeping our diff higher than it should be - it keeps legit miners from solving blocks and gives them plenty of time to build their next bogus block. I think you'll all agree that we have data to confirm that this isn't a simple system time error.
In nine days, when 9.3.0 activates (1st September at 00:00 UTC), blocks that arrive marked earlier in time will fail.
- Finally, we want to report that CAT's PID difficulty adjustment started a trend in crypto! After much work, we implemented a PID adjust process in 9.1.0 back in March of 2014 - the first coin in the ecosystem that brought in an industrial control system. Because this was in the early and very chaotic days for CAT, we needed to field an almost emergency wallet and didn't have time to implement all of the options we wanted - like more refined settings that eased dips, and the ability for the network to automatically reduce the difficulty if a block ran too long. We went with what we had and it's been the core tech that's kept us moving for almost four years. As we wait for 9.3.0 to take effect and begin work on 9.4.0, we found that another set of coindevs took up the PID challenge, and created an evolution of our PID and implemented the 'long block auto-drop' process we hoped to do back in 2014. It appears it's running in at least AnonCoin. If you're interested, there's some good nerd stuff below. Yes, we're reaching out to compare notes with them, and we're happy that CAT's a leader!
https://github.com/zcash/zcash/issues/998https://wiki.anoncoin.net/GroundRod_PID_main_ver2So CATs - too many words again, but hopefully it's useful info. Miners - thanks for mining! Traders - thanks for trading and enjoy the volatility! And CATs - thanks for being here and for telling your friends!
Andy