SmartBCH Launches Billiongas Testnet and Reaches Benchmarking Goal
Tags: Evm, Blockchain, Bitcoincash, Scalability

The Goal

From the very beginning, we have had the objective of utilizing low-level optimizations to maximize EVM throughput. The medium-term goal for showcasing such efforts was to consume 1 billion gas every 15 seconds.

For comparison, Ethereum consumes a maximum of 15 million gas every 15 seconds. Therefore, if we were to reach our goal, that would mean consuming more than 66 times the amount of gas Ethereum can currently handle. Needless to say, it is quite an ambitious goal!

We are proud to announce the release of the Billiongas Testnet, a testnet specifically designed to demonstrate the upper limits of the gas consumption capabilities of smartBCH. At the link, you will find the chain-ID, a list of JSON-RPC nodes you can connect to, and instructions on how to join.

Benchmark

Our first benchmark on this testnet went very well, as shown in the chart below.

The benchmark lasted 290,168 seconds (3 days, 8 hours, and 36 minutes) and produced 55,042 blocks. The total gas consumption was 27.297 trillion gas. Averaged out, that comes out to 94.07 million gas per second or 1.41 billion gas every 15 seconds. Mission accomplished!

For those who are curious about the variation in the chart, the dip and subsequent rise in gas/second around block 31,000 was due to switching to another machine for stressing different transactions. The drop at block 40,000 was because one machine switched to generating a different type of transaction. The drop around block 48,000 was caused by one machine running out of prepared transaction data.

The transactions executed during this benchmark were not just simple token transfers. To simulate actual usage of the EVM for the benchmark, we executed smart contract transactions on the Billiongas testnet. More details can be found in this document.

Making a fresh node catch up to the Billiongas testnet is very fast. It took one of our nodes 9 hours and 27 minutes to catch up to all 55,042 blocks. That’s 8.52 times faster than normal execution.

We would like to remind the reader that this is all without sharding or rollups. This is simply an EVM implementation optimized as described in our whitepaper. Additionally, the benchmark was done in a real-world environment with validators across the globe in Ohio, Singapore, and Ireland.

One more noteworthy point about this concerns Vitalik Buterin’s recent article. Buterin, a co-founder of Ethereum, is of the opinion that no more than 10% of the CPU power of a validating node should be used for transaction validation. We agree that most of a validation node’s processing power should be held in reserve. Therefore, the Billiongas testnet benchmark only used 10–20% of the CPU for block verification. Should that become standard practice across the board, validation nodes will have processing power in reserve to respond to significant increases in transaction demand, to perform other tasks related to validation, and to sync quickly after being offline. We did another benchmark using 100% of the CPU for block verification. Those benchmark results can be found in this document.

Next Steps

We encourage all interested parties to join one of our testnets to see how smartBCH works, test edge cases, and help debug if possible. We suggest using m6gd.4xlarge or m5ad.4xlarge to join the billiongas testnet, which is currently running.

Soon we will start testing a Bitcoin Cash  smartBCH bridge and we will be working on testing election logic for smartBCH validators. Detailed discussions with Bitcoin Cash mining pools are ongoing and we expect to launch the smartBCH mainnet in July.

We would like to thank the Bitcoin Cash community and all interested and involved parties for their support and willingness to run testnet nodes, test transactions, and report issues. With the assistance, we continue to receive we expect great things in the very near future!