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.
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
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.
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 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/
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.