Attack of the Clones

In this epoch 31, Ouroboros scheduled our node to create six blocks. The Incentivized Testnet (ITN) was more unstable due to frequent occurrences of adversarial forks. An adversarial fork occurs when a stake pool node intentionally produces two blocks for the same slot time instead of producing just one block. When a node produces two blocks for the same slot, it creates a forked chain in the network. A forked chain means the blockchain split, and (in this case) one of them is wrong. As a result, nodes on the wrong chain stuck when that chain stops propagating. If a node created a block on this wrong forked chain, that node would lose both its block and rewards, respectively.

Some node operators were engaging in this malicious behavior as a way of preventing their node from missing its block. Though malicious, it was a node operator"s last attempt to secure their block in an unstable network. Unfortunately, their solution was only exacerbating the problems in an already unstable and buggy network. These problems were killing our node, DApp360. Out of principles to play fair and by the rules, our team rejected the clone nodes setup, which was responsible for adversarial forks.

DApp360 Block Real-Time Block Height

Despite our team’s best effort babysitting the node, we created only two of our scheduled six blocks. Again a 33% performance was not going to help us regain our lost staked delegates. Such poor performance scared away the current delegates we had. Our team expected to lose more staked delegates. Epoch 31 was more of the same poor performance for the DApp360 stake pool team and node.