Last week, we ran into a few minor issues on the ProximaX Sirius Chain mainnet. This did not affect the integrity of the data on-chain. There were no downtimes, and blocks continued to be generated. Additionally, the validators were active during this period.

Before we report on the issues, it is good to understand first how the Sirius Chain was designed. Sirius Chain has two main components: (1) the P2P node; and (2) the REST API node. 

P2P nodes are the primary validator nodes that evaluate, check, counter check, sign, and propose blocks to the Sirius Chain. 

REST API nodes are also P2P nodes, but they are either validators or just a blockchain interface for external systems to use as a communication gateway to the blockchain. Some call it an API gateway and it acts as a host to communicate with the blockchain. REST API nodes that were not validators required the fix.

REST API nodes are accessible through the Unified Resource Links (URLs) that we named after galactic objects or stars (Arcturus, Betelgeuse, Aldebaran, etc.).

You can view the REST API list here: Sirius Explorer.  

What exactly happened

The REST API went down, and it failed to synchronize with other REST API nodes. It was caused by several factors such as unconfirmed transaction cache and exchange offer cache build-up due to invalid and expired transactions. There were also instances where REST API nodes encountered race conditions that resulted to deadlocks and forks. These forks were prevented due to the internal rollback mechanism that protects the integrity of the chain.

Solution

We developed a patch to clear up the cache more effectively on our server code. This includes additional conditions to clear the decentralized exchange cache. We also increased the storage of our servers for this purpose.

What’s next?

The REST API Nodes have been running with the fix since the middle of last week . We have been running daily calls to the API nodes by sending continuous batches of asynchronous transactions. The testing has been positive and we are now rolling it out as a fix for the mainnet API nodes.

For validators, an upgrade is recommended. Please follow the steps in the link to pull the latest version: Access here.

For external systems owners (applications, exchange, etc.), you may now continue working on the main public network API nodes. Please do run your integration tests, perform the proper smoke test, and go through your quality assurance policies and gates.

Please feel free to drop by our Helpdesk if you have further inquiries.

Our world-class team has always thrived to build stable and robust solutions with a microscopic focus on secure coding and delivering quality. We want to assure everyone that this will always be the case for every code that we deliver. Thank you all for your support.