Loading...
|
Please use this identifier to cite or link to this item:
https://nccur.lib.nccu.edu.tw/handle/140.119/124194
|
Title: | 基於以太坊的私有鏈的共識效能評估工具 A Performance Evaluation Tool for the Consensus Mechanism of Ethereum-Based Private Blockchains |
Authors: | 廖偉宗 Liao, Wei-Tsung |
Contributors: | 陳恭 Chen, Kung 廖偉宗 Liao, Wei-Tsung |
Keywords: | 區塊鏈 共識演算法 共識引擎 以太坊 實用拜占庭容錯 Blockchain Consensus algorithm Consensus engine Ethereum Proof-of-Authority Practical Byzantine Fault Tolerance |
Date: | 2018 |
Issue Date: | 2019-07-01 10:58:58 (UTC+8) |
Abstract: | 共識引擎是區塊鏈相關技術最核心的一環,一個區塊鏈系統適合的應用環境、運作效能、安全性、活性都由共識引擎所主宰。為了讓Ethereum 能夠更有效率地被應用在私有區塊鏈環境或聯盟區塊鏈環境,近年來許多團隊陸續設計出相容於Ethereum Protocol 且更適用於私有領域的共識引擎,基於Practical Byzantine Fault Tolerance 共識演算法所實作的共識引擎和基於Proof-of-Authority的共識引擎都是熱門的提案。
本研究將測試並評估目前幾款基於PBFT、PoA 共識機制所設計的Ethereum 共識引擎,其中包含Go Ethereum Clique、Parity Tendermint、Parity Aura、NCCU BFT、Istanbul BFT。評估項目包含「吞吐量與延遲」、「網路分割」、「隨機網路延遲」、「崩潰故障」和「拜占庭故障」。
為了讓開發人員或是測試人員得以快速部署並測試Ethereum 共識引擎,我們在研究過程中實作了一款稱為Crete 的測試工具,測試人員可以透過撰寫設定檔控制實驗流程和調整實驗參數。Crete 也提供一個簡易的Dashboard 界面,方便測試人員了解實驗過程中區塊鏈系統的整體狀況,並在實驗結束之後自動收集實驗數據,藉此幫助測試人員評估共識引擎的表現。 The consensus engine is a core technical component of blockchain related technology. The operational environment, performance, security and liveness of a blockchain system are dominated by the consensus engine. In order to make Ethereum more efficient in private blockchain environments or federated blockchain environments, many development teams have successively designed consensus engines that are compatible with the Ethereum protocol and are more suitable for private blockchains or federated blockchains. The consensus engine based on the Practical Byzantine Fault Tolerance consensus algorithm and the consensus engine based on Proof-of-Authority are popular proposals.
This study will test and evaluate several Ethereum consensus engine based on PBFT and PoA consensus mechanisms, including Go Ethereum Clique, Parity Tendermint, Parity Aura, NCCU BFT and AMIS Istanbul BFT. Evaluation items include throughput and latency, network partition, random network delay, crash failure, and Byzantine failure.
In order to allow developers or testers to quickly deploy and test the Ethereum consensus engine, we implemented a test tool called Crete in the course of research. Testers can control the experiment procedure and adjust the experimental parameters by writing a profile. Crete also provides a simple dashboard interface that allows testers to observe the overall status of the blockchain system during the experiment and automatically collect experimental data after the end of the experiment to help testers evaluate the performance of the consensus engine. |
Reference: | [1] S. Nakamoto, “Bitcoin: A peer-to-peer electronic cash system,” 2008. [2] V. Buterin, “Ethereum: A next-generation smart contract and decentralized application platform.” https://github.com/ethereum/wiki/wiki/White-Paper, 2014. Accessed: 2016-08-22. [3] G. Wood, “Ethereum: A secure decentralised generalised transaction ledger eip-150 revision (759dccd - 2017-08-07),” 2017. Accessed: 2018-04-03. [4] M. Castro and B. Liskov, “Practical byzantine fault tolerance,” in Proceedings of the Third Symposium on Operating Systems Design and Implementation, OSDI ’99, (Berkeley, CA, USA), pp. 173–186, USENIX Association, 1999. [5] “Official golang implementation of the ethereum protocol..” https://github.com/ethereum/go-ethereum [6] “Parity.” https://www.parity.io [7] “Github - paritytech/parity-ethereum: The fast, light, and robust evm and wasm client..” https://github.com/paritytech/parity/ [8] S. De Angelis, “Assessing Security and Performances of Consensus algorithms for Permissioned Blockchains,” ArXiv e-prints, May 2018. [9] “Clique poa protocol & rinkeby poa testnet · issue #650 · ethereum/eips.” https://github.com/ethereum/EIPs/issues/225 [10] “Aura - authority round - parity ethereum documentation.” https://wiki.parity.io/Aura.html [11] S. D. Angelis, L. Aniello, R. Baldoni, F. Lombardi, A. Margheri, and V. Sassone, “Pbft vs proof-of-authority: applying the cap theorem to permissioned blockchain,” January 2018. [12] E. Brewer, “Cap twelve years later: How the "rules" have changed,” Computer, vol. 45, pp. 23–29, Feb 2012. [13] E. Buchman, “Tendermint: Byzantine fault tolerance in the age of blockchains,” 2016. [14] “Tendermint: Blockchain consensus.” https://tendermint.com [15] Yi-Jiun. Shiu, “An implementation of bft consensus for ethereum,” 2017. [16] “Nccu bft consensus for go ethereum.” https://github.com/NCCUCS-PLSM/NCCU-BFT-for-Go-Ethereum [17] “Hydrachain: Permissioned distributed ledger based on ethereum.” https://github.com/HydraChain/hydrachain [18] “Amis.” https://am.is [19] “Istanbul byzantine fault tolerance.” https://github.com/getamis/go-ethereum [20] “Istanbul byzantine fault tolerance · issue #650 · ethereum/eips.” https://github.com/ethereum/EIPs/issues/650 [21] T. T. A. Dinh, J. Wang, G. Chen, R. Liu, B. C. Ooi, and K.-L. Tan, “Blockbench: A framework for analyzing private blockchains,” in Proceedings of the 2017 ACM International Conference on Management of Data , SIGMOD ’17, (New York, NY, USA), pp. 1085–1100, ACM, 2017. [22] “Blockbench: A framework for analyzing private blockchains. blockbench contains workloads for measuring the data processing performance, and workloads for understanding the performance of different layers of blockchain systems..” https://github.com/ooibc88/blockbench [23] “Istanbul bft tools.” https://github.com/getamis/istanbul-tools [24] “Benchmarking tendermint networks.” https://github.com/tendermint/network_testing [25] “Geth ethereum/go-ethereum wiki· github.” https://github.com/ethereum/go-ethereum/wiki/geth [26] “Parity ethereum documentation.” https://wiki.parity.io [27] “Docker - build, ship, and run any app, anywhere.” https://www.docker.com [28] “Docker hub.” https://hub.docker.com [29] iptables(8) iptables Manual [30] ipset(8) ipset Manual [31] tc(8) tc Manual |
Description: | 碩士 國立政治大學 資訊科學系 105753017 |
Source URI: | http://thesis.lib.nccu.edu.tw/record/#G0105753017 |
Data Type: | thesis |
DOI: | 10.6814/NCCU201900045 |
Appears in Collections: | [資訊科學系] 學位論文
|
Files in This Item:
File |
Size | Format | |
301701.pdf | 3591Kb | Adobe PDF2 | 0 | View/Open |
|
All items in 政大典藏 are protected by copyright, with all rights reserved.
|