IEEE Access (Jan 2020)

Function-Level Bottleneck Analysis of Private Proof-of-Authority Ethereum Blockchain

  • Kentaroh Toyoda,
  • Koji Machi,
  • Yutaka Ohtake,
  • Allan N. Zhang

DOI
https://doi.org/10.1109/ACCESS.2020.3011876
Journal volume & issue
Vol. 8
pp. 141611 – 141621

Abstract

Read online

Private Ethereum blockchain-based systems are demanded in many industry sectors. However, the throughput performance of these systems does not meet their expectations. Many researchers have analyzed the performance of private blockchains, but their studies have failed to analyze root causes. In this paper, we perform a deep function-level bottleneck analysis for the private Ethereum blockchain. As the Ethereum client application is developed with golang, we leverage pprof, which is a resource-profiling tool for golang, and custom golang functions to measure the time taken by functions. To easily configure parameters and conduct our test, we code a shell script that automates the building process of a private Ethereum blockchain with docker containers. We conducted a series of experiments and identified the bottleneck function that is called every time a transaction arrives at an Ethereum node. In addition, we also found that the multi-threading is not well utilized, meaning that there is much room for improvement.

Keywords