Publication | Closed Access
OpBench: A CPU Performance Benchmark for Ethereum Smart Contract Operation Code
25
Citations
9
References
2019
Year
Unknown Venue
Cpu TimePerformance BenchmarkingEngineeringComputer ArchitectureSoftware EngineeringGo-ethereum ClientsSoftware AnalysisHardware SecurityEthereum Virtual MachineHigh-performance ArchitectureSystems EngineeringParallel ComputingInstruction-level ParallelismComputer EngineeringComputer SciencePerformance Analysis ToolCpu Performance BenchmarkBenchmarking ToolOperating SystemsProgram AnalysisEdge ComputingParallel Performance EvaluationCloud ComputingParallel ProgrammingPerformance PortabilityBlockchainSystem Software
Ethereum and other blockchains rely on miners contributing computational power to execute tasks such as the proof of work consensus mechanism and the execution and validation of smart contracts. Miners receive a fee, and for the correct operation of the blockchain, rewards should be proportional to the required investment (equipment, energy use, etc.). In Ethereum, the reward obtained for executing smart contracts is set statically, associating a fee with each operation code (opcode) in the smart contract. To determine whether fees are aligned with investments made, we propose OpBench, a platform-independent benchmarking approach. OpBench measures the CPU time required to execute opcodes in the Ethereum Virtual Machine. We implemented OpBench for the PyEthApp and Go-Ethereum clients, and present results for both platforms on three different machines and operating systems. The results show that the static fees set by Ethereum are not always proportional to the invested CPU time, with up to an order of magnitude difference across opcodes. The results also show a markable difference in performance between clients, with the Go client outperforming the Python client across machines.
| Year | Citations | |
|---|---|---|
Page 1
Page 1