Measured Time-energy Performance of Blockchain on Brawny and Wimpy Nodes
This repository contains time-energy performance measurements of both brawny (high-performance) and wimpy (low-power) nodes running three blockchains, namely Hyperledger Fabric v0.6, Ethereum v1.8.15, and Parity v2.1.6. Brawny nodes are represented by traditional server systems based on Intel Xeon CPU, and wimpy nodes are represented by (i) a low-power Intel NUC with Intel Core i3 CPU, (ii) an Nvidia Jetson TX2 with 64-bit ARM CPU, and (iii) a Raspberry Pi 3 Model B running 32-bit ARM software. To benchmark the blockchain systems, we use BLOCKBENCH with its micro-benchmarks at single-node-level and macro-benchmarks at cluster-level. These measurements are analyzed in the research paper entitled "Blockchain Goes Green? An Analysis of Blockchain on Low-Power Nodes". In summary, we show that low-end wimpy nodes, such as Raspberry Pi 3, are unable to run full-fledged blockchains due to the limited size and low bandwidth of their main memory. In contrast, wimpy nodes with a balanced performance-to-power profile, such as Jetson TX2, can save significant energy while achieving reasonable performance compared to brawny nodes. In particular, our measured data shows that 8 Jetson TX2 nodes achieve almost 80% and 30% of the throughput of Parity and Fabric, respectively, while using 18 and 23 times less energy compared to 8 Intel Xeon servers.
Steps to reproduce
The versions of the software used in our experiments can be found in the paper (https://arxiv.org/abs/1905.06520). The steps to (partially) reproduce the measurements can be found on our BLOCKBENCH Github repository (https://github.com/dloghin/blockbench). Below, we summarize the hardware and software systems used in these measurements. Hardware Systems: - Xeon: server with Intel Xeon E5-1650 v3 CPU - NUC: Intel NUC with Intel Core i3 - TX2: Nvidia Jetson TX2 - RP3: Raspberry Pi 3 model B Power Meter: Yokogawa WT210 Blockchain Systems: - Fabric: Hyperledger Fabric v0.6 compiled with go v1.11 - Ethereum: go-ethereum v1.8.15 compiled with go v1.11 - Parity: parity-ethereum v2.1.6 compiled with cargo v1.30.0 System-level Benchmarking Tools: - CPU: CoreMark v1.01 (compiled with gcc) - CPU crypto: Keccak256 and Keccak512 (from go-ethereum v1.8.15 compiled with go v1.11) - Memory: lmbench v3 - Storage throughput: dd (Linux command) - Storage latency: ioping (Linux command) - Networking bandwidth: iperf (Linux command) - Networking latency: ping (Linux command)