Using Virtualization for Blockchain Testing

Blockchain technology is experiencing prosperity. A wide variety of open source blockchains emerge recent years, which are different in architecture design or protocol parameters. When a developer wants to compare runtime performance of different blockchains, he could conduct a simulation with event simulator, or run application on physical machines. Either way will result in problems of unconvincing or costly. Container, a lightweight virtualization technique, is suitable for solving this dilemma. Tens of containers could run simultaneously in a single-core CPU computer, with each container having a running blockchain client. A simulated blockchain network with hundreds of nodes could be easily established in this way. In this paper, we firstly overview blockchain architecture choices which will significantly affect performance. Then we introduce our framework on testing blockchains using containerization. Authenticity and high cost of P2P application testing would be balanced in this framework. Finally, we implement our framework to run a demo testing how bitcoin’s network parameters will affect system reliability.

[1]  Beng Chin Ooi,et al.  BLOCKBENCH: A Framework for Analyzing Private Blockchains , 2017, SIGMOD Conference.

[2]  Marko Vukolic,et al.  The Quest for Scalable Blockchain Fabric: Proof-of-Work vs. BFT Replication , 2015, iNetSeC.

[3]  Miguel Oom Temudo de Castro,et al.  Practical Byzantine fault tolerance , 1999, OSDI '99.

[4]  Hubert Ritzdorf,et al.  On the Security and Performance of Proof of Work Blockchains , 2016, IACR Cryptol. ePrint Arch..

[5]  Lihua Li,et al.  A RCP-Based Congestion Control Protocol in Named Data Networking , 2015, 2015 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery.