Challenges & Future Directions

Challenges

Validator Node Performance

During the load test on xDai we observed 3 validators who consistently skipped blocks, resulting in an average 6 second block time for the test. This did not impact overall test performance because we did not fully load blocks (average load was 60-70% of the available gas per block). We diagnosed this as a hardware issue, their nodes were not performant enough. To address this issue we are updating our specs to recommend all future nodes run with a minimum of 2 CPU Cores and 4 Gb RAM.

qDai tuning

We ran into issues when launching the qDai chain. Many of these were solved through trial-and-error. Initially, qDai launched with a single validator and was running an archive node connected to BlockScout. The additional load from BlockScout created a transaction bottleneck where a max of 150 claims could be processed per second. We created a separate non-validator archive node for BlockScout to solve this issue. To stabilize the chain, we added additional validators (there are currently 4 validators) and fine tuned some configuration parameters to stabilize the chain. --minerthreads 4 --cache 4096 --txpool.globalslots 65535 --txpool.accountslots 65535
We found the current limitations during load testing:
  • 180 tps for claims
  • 200 tps for subscribe
  • 280 tps for burns
  • 250 tps for transfers
While we ran out of time to optimize further, we would address this in future implementations and look to upgrade to geth >= 1.9.11 where transaction propagation optimization was implemented: Our current qDai implementation is based on goquorum v2.6.0.

Future Directions

POSDAO permissionless consensus

The xDai chain is transitioning to a permissionless delegated Proof of Stake algorithm called POSDAO. Currently, the chain is protected by well known organizations within the Ethereum community. With POSDAO, the validator set will increase to up to 19, and validators will be incentivized to produce blocks and maintain consensus, while delegators will be incentivized to support the validators they believe will maintain chain integrity. This important update will promote further decentralization of the protocol.

Arbitrary Message Bridge multi-token implementation

The AMB multi-token protocol will greatly simplify token deployments across chains. New subreddit community tokens can be introduced without deploying mediators for each new token. This will create an easy onboarding flow for subreddits as community points are added.

Connext State Channels Integration

Connext has been working on an xDai integration that enables instant, high volume, cross-chain transfers. This creates a non-custodial interoperability option. State channels enable users to batch up transactions without needing to trust intermediaries. Connext State Channels Documentation. Their implementation is now live at https://www.spacefold.io/​

Bridge to Ethereum 2.0

We recognize that xDai is not the fastest nor the most decentralized solution. It is a stable chain, with fast transactions and very low predictable gas prices. It has been in production for nearly 2 years and is a tested, proven L2 solution. xDai may not be the ultimate long-term solution for scaling the entire Reddit user base of 430 million and growing. However, it does provide a seamless bridge between Ethereum 1.0 and 2.0. As an EVM-compatible chain, historical data can be easily migrated to an Eth 2.0 shard once that solution is ready. In the meantime, data availability and scalability can be achieved within the Ethereum ecosystem right now with xDai.
Last modified 1yr ago