X-Cash Delegated Proof of Private Stake

October 4, 2020 ยท View on GitHub

X-Cash Delegated Proof of Private Stake

chat License: MIT

X-Cash Delegated Proof of Private Stake

๐Ÿ—ณ๏ธ The X-Cash Delegated Proof of Private Stake (xcash-dpops) is a custom variation of a DPoS with DBFT consensus made with privacy coin from the CryptoNote legacy in mind. The X-Cash Public Network is governed by delegates elected by XCASH holders to secure and forge new blocks.

Table of Content

Features

Implementing a Delegated Proof of Stake and Delegated Byzantine Fault Tolerance consensus in a privacy-based cryptocurrency presents a challenge. Taking inspiration from successful blockchain governance systems, X-Cash Delegated Proof of Private Stake proposes a unique solution to bring DPOS and DBFT based consensus to the privacy coin space.

Staking

The X-Cash Public Network is secured by delegates, elected in their position by XCASH holders. By providing your vote through a stake in XCASH, you are electing a representative to secure the network and forge new blocks, which will in return split the block reward with you.

DBFT

The unique implementation of DBFT into the consensus process enables the X-Cash blockchain to become immune to forks, henceforth instantly validating new transactions.

Randomized Block Producer Selection

The selection of the next delegate in charge of forging a block is completely randomized through the use of Verifiable Random Functions (VRF), increasing the security of the delegates by preventing attacks to the next block producer.

Stake Delegation with Reserve Proofs

Instead of sending your stake to another wallet to vote toward a delegate, you are providing a cryptographic reserve proof of your funds to your delegate, meaning that you keep complete control of your stake at all times.

Have a look at our ๐Ÿ“œ Delegated Proof-of-Private-Stake yellow paper to learn more about the technical challenge of integrating this consensus on a Monero-based privacy coin.

License

X-Cash is an open-source project managed by the X-Cash Foundation.
We are operating under the MIT License.

Contributing

Thank you for thinking of contributing! ๐Ÿ˜ƒ
If you want to help out, fork the repository, check CONTRIBUTING for a set of guidelines, and check our opened issues.

Documentation

We are hosting our documentation on GitBook ๐Ÿ‘‰ docs.xcash.foundation

You can contribute directly on our gitbook-docs repository.

Security

If you discover a security vulnerability, please send an e-mail to security@xcash.foundation.
All security vulnerabilities concerning the X-Cash blockchain will be promply addressed.

Installation

Every steps of the installation and build instructions are described in our detailed guide.

System Requirements

In the first beta version, xcash-dpops will only run on a Linux/Unix OS. We recommend installing it on a Ubuntu VPS/dedicated server (18.04) for best compatibility.

The recommended system requirement is designed to be future-development proof, meaning that an hardware update should never be needed and still comfortably handle the xcash-dpops program.

MinimumRecommended
OSUbuntu 18.04Ubuntu 18.04
CPU4 threads, 2.0 GHz or more per thread4 threads, 2.0 GHz or more per thread
RAM6GB32GB
Hard Drive50GB2TB
Bandwidth Transfer100GB per month500GB per month
Bandwidth Speed100 Mbps500 Mbps

Dependencies

The following table summarizes the tools and libraries required to run X-Cash's DPoPS program.

DependenciesMin. versionUbuntu package
GCC4.7.3build-essential
CMake3.0.0cmake
pkg-configanypkg-config
OpenSSLanylibssl-dev
Gitanygit
MongoDB4.0.3Install from binaries
MongoDB C Driver (includes BSON libary)1.13.1Build from source
xcash-coreLatest versiondownload the latest release or build from source

Installation

To install the xcash-dpops program and the related services to set up a delegate node, have a look first at our server setup guide.

Then, run the autoinstaller.sh script and follow our guide.

source <(curl -sSL https://raw.githubusercontent.com/X-CASH-official/xcash-dpops/master/scripts/autoinstaller/autoinstaller.sh)

To build everything from source, follow our manual installation guide.

Maintenance

All delegates will be able to use the maintenance script to easily view there statistics and to check there system.

bash -c "$(curl -sSL https://raw.githubusercontent.com/X-CASH-official/xcash-dpops/master/scripts/management/xcash-maintenance)"

If you choose to setup the delegate as a shared delegate, you will be able to view additional statistics by using the IP of the delegate in any web browser, as the Delegates Pool Website is automatically installed.

If you choose to setup the delegate as a solo delegate, you have the option of installing the Delegates Supervisor