We have identified the root cause of the BPX Chain outage that occurred last Saturday, taking down all Windows-based Beacon Chain nodes. A fix has been implemented and a patched release 1.0.1 is now available for download. Please install the hotfix on all Windows-based nodes as soon as possible.

đź’ľ Download Beacon Client:
https://github.com/bpx-chain/bpx-beacon-client/releases

The fixed release works for nodes that were restored using the temporary solution of replacing the database file, as well as for nodes that haven’t followed these steps and remain non-operational. Installing the hotfix immediately restores node functionality without the need to replace the database.

The issue was traced to a bug in the external library chiavdf used by the Beacon Client. The problem occurred in the function verify_n_wesolowski, responsible for validating Proof of Time. Under specific conditions, which unfortunately occurred in the BPX Beacon Chain block 412027, this function entered an infinite loop, preventing any return value that the rest of the Beacon Client logic was expecting, causing the node to hang. The bug has been fixed in the latest version of the package (commit).

For educational purposes, we are publishing a code snippet that confirms the nature of the bug. The code includes parameters extracted directly from block 412027 of the BPX Beacon Chain. Running it on the latest version of the chiavdf library returns True, while with older versions, the program never completes its execution.

Updating the Beacon Client dependency to the latest, bug-free version of chiavdf ensures that such an issue will not occur again in the future.