Over the weekend, we released an important update to Particl Core which fixes an odd bug regarding staking nodes falling out of sync.

The update successfully patches the issue and is now available for all currently live Particl Core versions. We highly recommend updating your node as soon as possible to avoid any potential staking issue.

Get Started

Release Particl Core Β· particl/particl-core
Release Notes:https://github.com/particl/particl-core/blob/0.19/doc/release-notes-particl.md#019222Hashes265b2257ec5ed6de2437c9d9d37a617db20ed6827717c6f608e41e2f9269b07a particl-
Release Particl Core Β· particl/particl-core
Release Notes:https://github.com/particl/particl-core/blob/0.21/doc/release-notes-particl.md#021211Hashes9b43c0f2904c2bfba8e947c985de3a13960ae71842323fc2ed3ee8a89c3f7f5f particl-
Release Particl Core 22.0.3 Β· particl/particl-core
Release Notes:https://github.com/particl/particl-core/blob/22.x/doc/release-notes-particl.md#2203Hashes18a98d4ffafe8b8720aae8a5fac507ca1d76fa5b05236ce05d71106976fb9440 particl-

To see an in-depth description of what this update fixes, refer to this link.

What Happened?

A rare bug occurred around mid-week last week in which some staking nodes, including one staking pool, were knocked off the network and thrown into a fork.

Typically, Particl Core functions so that a block index is added for an invalid block to prevent nodes from trying to redownload the same block from other peers. The failed block index is then added to m_failed_blocks β€” a record of failed blocks maintained by the node β€” and remains in there even after the block index is removed from the blockchain to prevent DoS issues.

When the next valid block is staked, it is assigned the same block index as the removed block index still in m_failed_blocks because the blockchain only verifies m_failed_blocks when blocks arrive out of order, not knowing this specific block index is already in use.

Thus, after the node processes a group of blocks following an invalid block, it detects a false positive in m_failed_blocks and refuses to follow the valid chain, instead spawning a new fork. As m_failed_blocks only exists in memory when the node restarts, the chain can sync past that fork.

This update fixes that issue by properly removing the block index from the m_failed_blocks.

How to Check if my Node was Impacted?

The best way to check if your node was impacted is to verify at what block it is currently staking. If your staking node's current block number matches that of Particl's explorer, then your node hasn't been impacted.

If it shows a different block number, then it is likely stuck to an odd fork and isn't staking on the right chain anymore.

How to Fix my Impacted Node(s)?

  • For individual stakers: Simply update your Particl Core version, restart your node, and run the clearbanned command.
  • For staking pools: Update your Particl Core version, run a fresh syncing process in observer mode, then switch to the master branch.
Note: In some rare cases, you may need to restart your node more than once until it syncs back to the correct chain. Running clearbanned should, however, cleanly get you back in sync without having to restart your node multiple times.

What's the Impact of this Bug?

The impact of this bug would usually be relatively small, preventing affected stakers from receiving staking rewards until they get their nodes back in sync. Unfortunately, this time the issue happened during an on-chain voting period.

As a result, we expect this voting round's participation rate to be significantly lower than what we typically see in other votes because a number of large nodes and one staking pool were knocked off the network momentarily.

Still, the current vote is already well over the required participation rate threshold, meaning that its outcome won't be negatively impacted by this bug.

As always and especially this time, we strongly recommend updating your Particl Core node(s) as soon as possible. Although this issue may be very rare, it does impact the stability of the network and gets more problematic when on-chain voting rounds are ongoing.

Particl is Participation

Get recognized as someone that cares. With your help, we become more noticed out there. It takes seconds, and you are making a statement by giving us a follow and hitting the bell icon.

YouTube Twitter Mastodon Reddit

Join the instant messaging chats. There's no need to be active, but it’s good to be in the loop.

Discord Telegram Element / Matrix

Gain deep knowledge about Particl by reading.

Website Academy Wiki

Last but not least, a list that shows an infinite number of links clearly categorized and on one page.

Useful Particl links