Hello VeFam and future VeFam. Welcome back to Part 2 of my BFC Story. First of all, I would like to say thank you for all the positive feedback from part 1. I really appreciate that.

In the first part I distributed VET to 20.000 addresses to play around with them. In the following minutes, you will see some awesome numbers resulting from these addresses. BUT these tests must be considered synthetic testing. This means, that the VeChain mainnet will probably never see the kind of transactions I have created here. The tests in this part are purely to max out the technology. To give you a perspective about whats going on and why these numbers are important for the technology but not so much for the actual mainnet, I need to explain a feature unique to Vechain.

What are Multi-Task-Transactions?

VeChain has a build-in technology called Multi-Task-Transactions or MTT. With MTT a transaction can contain multiple clauses. You can get an idea of that if you imagine a transaction as an Excel-file. In Ethereum, the “father” of VeChain, the Excel-file itself contains the “sender” and additionally contains exactly one row. In this row are the colums “to”, “amount” and “data” (simplyfied). In VeChain the same Excel-file can contain multiple rows. Like thousands of them.

Now imagine your Ethereum-boss gives you a task to put 5.000 sets of data from the same “sender” into 5.000 Excel-files. You have to create the file, put in the data, save the file to the appropriate place and repeat for 4.999 times.

If your VeChain-boss gives you that same task, you don’t have the overhead of doing ”create the file” and “save the file” all over again. You create one Excel-file, put in the 5.000 sets of data and save it. Boom. Done.

That’s the same thing I am doing here. I am creating incredible big transactions with unrealistic high amounts of clauses, becauses I only have to create one transaction with 5.000 clauses instead of 5.000 transactions with 1 clause each. My litte Ryzen 5 can do those small amounts of big transactions but for a more natural reflection of the actual usage of the mainnet, much more CPU-power is needed (maybe in part 3 ;) ).

So it is important to know the difference between TPS (Transactions Per Second) and CPS (Clauses Per Second). Although CPS can reflect natural usage, the ratio between transactions and clauses will never be like it is in my tests. TPS and CPS is also the difference between the blue and the yellow chart.

VeChain Transactions and Clauses

Infrastructure upgrade

The tests in part 1 were done using two nodes with 1 CPU and 2 GB RAM. For the testing in this part I had to upgrade my nodes. The load of the chain forced me to upgrade to 4 CPUs and 8 GB RAM. The monthy infrastructure costs went up from 20$ to 80$.

The Blockexplorer

To pull statistics of my tests I need the results of transactions and clauses in each block. A few months ago, I wrote a blockexplorer for myself that imports the chain into MySQL. That way I can do easy SQL queries over the chain. That came in handy now.

Show the numbers already!

Okay, here we go. In my tests I was able to get astonishing results. You can check them yourself at https://bfc.veblocks.net

In the chart below I took statistics of a blockrange to not overload the chart. The complete information can also be downloaded. I was able to push around 30–40 transactions with 25.000 clauses in each block all the time. The block algorhythem did not allow more at the time. You can see in the csv file that there were some drops because of chaincrashes (due to limited resources) or restart of the clause-generating-script.

Transactions and Clauses of my BFC Testchain

If you open the links below in Sync connected to https://bfc.veblocks.net you can see them directly.

Highest transactions in one block:

64 transactions were put in Block 337. This is nothing special. This happened on the mainnet already.

Biggest Block:

Block 325 is 867.465 Byte (867KB) big. Remember that Bitcoin does 1MB blocks every 10 minutes.

Highest amount of gas used in a block:

Block 325 has also burned the most gas with 431.087.680 (431M) in total. An equivalent of 431.087 VTHO on mainnet.

Highest amount of clauses in one block:

Again block 325. It had 26.920 Clauses in it.

Highest amount of clauses in a transactions:

The highest amount I tested was 5.000 clauses in a single transaction. This happened the first time at block 19.

Average CPS over one hour:

Over 360 blocks (from block 188 to block 548) the average Clauses Per Second were 2.370,9 CPS! Scaled up to one day (86.400 seconds) this results in a theoretically amount of unbelivable 204 million clauses per day, done with two VPS and 2x4 CPUs.

Conclusion

Although I am sure that these are not the maximum values of the chain, I am very confident, that TPS or CPS will not be a problem in the near future. Also including the clean source code and the Vechain Tech Deep Dive Series on Youtube (I don’t understand Jianliang Gu but I love to listen to that guy) it makes me even more confident that VeChain will deliver high-quality solutions; down from the smallest technological aspect up to complete BaaS environments (Blockchain-as-a-Service).