DPOPS Beta Update — Phase 2

Paul Bugnot
X-Cash
4 min readAug 21, 2020

--

Dear Community,

It is with great excitement that we are sharing with you this update about the DPOPS Beta progress.

During the last year, we have developed an innovative consensus protocol called Delegated-Proof-of-Private-Stake. This protocol is the first DPOS that allows the use of private stakes for staking. While we coded most of the features from scratch, we have chosen to rely on Monero’s core technology for the obfuscation of the transactions.

In this article, we are providing you with an update on what has been developed and fixed since the start of the Beta. We would also like to give a huge thanks to all the contributors who assisted us since the alpha to identify these bugs and also providing their feedback to improve DPOPS.

Bugs fixing

Below is the exhaustive lists of the bugs identified and solved in the last weeks.

Incorrect block producer picking up [DPOPS]

This issue caused some delegates to pay for blocks they did not create.

Wrong block producer in block [DPOPS]

The wrong block producer was stored in the created block.

Double pay replay round [DPOPS]

Shared delegates were paying double or more for replayed rounds.

Security issue VRF key generation [DPOPS]

VRF keys were generated using a non-CSPRNG generator, making them weaker.

Majority check for syncing not working [DPOPS]

Fixed the majority check which verifies the integrity of a DB synced from a delegate.

Server stability [DPOPS]

Various fixes to make server and messaging more stable and less prone to drops.

Empty DB sync error [DPOPS]

Syncing would get stuck if the DB to sync was empty.

False positives reserve proofs [DPOPS]

Some edge cases were causing false positives for reserve proofs.

Syncing issue [Core]

One should be able to sync even if 34%+ of delegates are offline, fall back is 80% of seed nodes need to be online to sync.

Sometimes vote fails but is added [Core]

Checking was too strict with a 100% seed nodes threshold + 67% of delegates. Now adjusted to 80% seed nodes + 67% of delegates.

Reorganization issues [Core]

Reorganizations were triggered while not allowed under DPOPS rules.

Changing from solo to shared setups [Autoinstaller]

Switching between setup was not working after the installation.

Blockchain bootstrapping [Autoinstaller]

Blockchain was not being bootstrapped during installation.

Spelling errors [Autoinstaller]

Various wording and spelling adjustments.

Showing wrong info sometimes [Delegates website]

Some wrong information was displayed in several delegates metrics/stats

Logo not showing [Delegates & Shared Delegates websites]

Fixed logo not being displayed

No-blocks produced error [Shared delegates website]

An error as displayed before producing the first block

Non-functional API error [Shared delegates website]

Don’t allow for lookup based on the hash of a block.

Features & Optimisations

We also added a few notable features thanks to your feedbacks !

Get online status [DPOPS]

Delegates are now sorted by online/offline status and followed by vote count. This way, only the top 50 online delegates are displayed.

Miscellaneous optimizations [DPOPS]

Various CPU optimizations.

Seed nodes backup DB [DPOPS]

Seed nodes now save a second physical backup of decentralized DB for extra security.

Seed nodes don’t produce blocks anymore [DPOPS]

Only elected delegates will now be eligible to become block producers.

Stricter block verification rules [Core]

Stricter rules for delegates to add blocks to the blockchain, and faster syncing for all users.

Average delegate estimate vote count [Delegates website]

Added an average estimate indicator for becoming a delegate (total votes / 45).

Show blocks produced [Delegates website]

Blocks produced are now displayed on the front page

What’s next

It is with great excitement that we are now moving to the next step of the tests: Beta v2. This version includes all the fixes and features described above and should be the last before the main net release.

On Saturday 29th August, at 6 pm Paris time, we will start the second phase of DPOPS Beta, all delegates should update both their version and their VRF keys.

To update your keys please refer to the documentation here.

On behalf of the team, the contributors, and all the network participants, I would like to thank once again our great community for their support in creating the first delegated Proof-of-Private-Stake consensus. With beta v2 we are one step closer to bringing our innovation to the ecosystem and continuing to make X-Cash a successful project.

Finally, as the project is progressing significantly, we are preparing a special announcement for next week that will strengthen once again our commitment to the X-Cash project.

--

--