Blockchain Performance Evaluation

BlueAuction: Benchmarking Tool


Related Publication : "DEVS-based Experimental Framework for Blockchain Services,"  Simulation Modelling Practice and Theory, 2021 

https://www.sciencedirect.com/science/article/pii/S1569190X21000095

BlueAuction is a blockchain-based auction system. In the BlueAuction, the stage is defined according to how much blockchain was used, and by generating request by using request generator, the characteristics of the blockchain-based services can be analyzed. By conducting various experiments through BlueAuction, we expect it could help you to decide whether to use the blockchain with these measurement values.

 

Components 

The overall structure of the BlueAuction is shown in the figure below. The system consists of 4 parts: front-end, smart contract, database and performance evaluation.

 

1. Front-end

The main page is developed by using Vue.js which is the JavaScript framework. When a user registers a new product, the information entered by the user is stored in the database. When a user clicks a specific product, detailed information such as image, minimum bid price, and current highest bid price is displayed through modal. In addition, more information in ‘my favorites’, ‘bidded auctions’ and ‘opened auctions’ in my page are also developed by using modal.

 

2. Smart Contract

Smart contract is developed by using Solidity language. In the 70% blockchain stage, important auction procedures such as registration of products, bidding, and successful bidding are implemented. In the 30% blockchain stage, essential parts which require integrin such as deposit stage and bidding process are implemented. And in the none-blockchain stage, smart contract is not used. The smart contract is connected with web.js.

 

3. Database

In the database, there are two broad categories: user entity and auction item entity. And each entity is connected with relations which are related to bidding process. Same as smart contract, information which is not stored in the blockchain is stored in the database. For example, in the none-blockchain stage, all information related to auction is stored in the database.

 

4. Performance Evaluation

When a client sends an auction request from the front of BlueAuction, Vue.js communicates with the Ethereum network through Web3.js. Request Generator generates requests for various scenarios during the DApp auction process. When the virtual client makes the request and the response is received, each timestamp is recorded in log files named req.log and res.log, respectively. The Request Generator is designed based on the behavior of the user who attempts multiple auctions, and the Performance Evaluator analyzes the timestamp log recorded through the Request Generator and evaluates the performance of the Ethereum. Python language was used to develop the request generator.