하이퍼레저 패브릭 Raft 알고리즘의 가용성 제고를 위한 개선 방안
An Improvement of Hyperledger Fabric Raft Algorithm toward Enhancing Availability
0
조회
0
다운로드
4
인용
0
참고문헌
키워드
초록
하이퍼레저 패브릭의 분산 합의 알고리즘인 Raft는 클러스터를 구성하는 여러 복제 노드에서 동작하며 블록체인 프레임워크의 오더링 서비스를 제공하는 데 사용된다. 이 실용적인 합의 알고리즘의 성능과 안전성을 분석하기 위한 여러 연구가 있었으나, 가용성의 측면에서는 아직 충분한 고려가 없었다. 복제 노드 중 리더의 실패가 전체 시스템을 사용할 수 없게 만들고 실패한 리더가 복구될 때까지 사용 불가 상태가 지속된다면, 복제를 두거나 이 알고리즘 자체를 사용하는 이유가 없을 것이다. 이 논문에서는 Raft 알고리즘이 제공하는 블록체인의 가용성을 분석하고 개선안을 제시하고자 한다. 알고리즘의 상태 전이 단계에 Favorite이라는 새로운 상태를 추가하여, 추가적인 시간 비용을 발생시키거나 구현을 복잡하게 하지 않으면서 가용성을 높일 수 있도록 하였다. Raft를 구동하는 다섯 개의 오더링 서비스 노드로 구성되는 테스트베드를 하이퍼레저 패브릭 플랫폼상에 구현하였다. 이 실험을 통하여 실질적인 타이밍 매개변수를 적용한 시뮬레이션을 수행함으로써 제안한 방법의 이점을 검증하였다. 이 연구는 보다 높은 시스템 가용성을 갖도록 Raft 알고리즘의 설계와 구현을 개선하는 데 기여할 수 있을 것으로 기대된다.
Abstract
Raft, as a distributed consensus algorithm for Hyperledger Fabric, runs on multiple replicated nodes composing a cluster to provide an ordering service for the blockchain framework. Although many research works have been conducted to analyze the performance and safety of the practical consensus algorithm, its availability has not been fully considered yet. If a crash of a leader among replicated nodes makes the whole system unavailable and the unavailability condition continues until the leader recovers from its crash, there is no use of replicas and algorithm itself. The availability of the blockchain supported by the Raft algorithm is analyzed and an improvement is proposed in the paper. By introducing a new state called ‘Favorite’ into the state transition of the algorithm, we believe that it can get rid of the undesirable situation while making the implementation simple without incurring any extra runtime cost. A testbed system was implemented with five orderering service nodes running Raft on a Hyperledger Fabric platform. Based on the experiment on the testbed, a simulation adopting practical timing parameters has been conducted to verify and demonstrate the benefit of the proposed method. This work is anticipated to contribute to the improvement of the design and implementation of the Raft algorithm with higher system availability.
참고문헌 (15)
- 임종철, "블록체인과 합의 알고리즘", 전자통신동향분석, 33(1), pp.45~56 (2018), 한국전자통신연구원
- Andrew S. Tanenbaum, "Distributed Systems: Principles and Paradigms" (2016), Pearson International Edition
- L. Lamport, "Paxos made simple", ACM SIGACT News, 32(4), pp.18~25 (2001)
- M. Pease, "Reaching agreement in the presence of faults", Journal of the ACM (JACM), 27(2), pp.228~234 (1980)
- Marius Poke, "Algorithms for High-Performance State-Machine Replication", Doctoral, pp.2019
- Diego Ongaro, "In Search of and Understandable Consensus Algorithm (Extended Version)", Proc. of the USENIX Annual Tech. Conf. (2014)
- Heidi Howard, "Raft Refloated: Do We Have Consensus?", SIGOPS Oper. Syst. Rev., 49(1) (2015)
- "Hyperledger Blockchain Performance Metrics" (2018)[URL]
- Dongyan Huang, "Performance Analysis of the Raft Consensus Algorithm for Private Blockchain", IEEE Trans. on Systems, Man, and Cybernetics: Systems, (99), pp.1~10 (2019)
- Caixiang Fan, "Performance Evaluation of Blockchain Systems: A Systematic Survey", IEEE Access, 8 (2020)
- 민연아, "프라이빗 블록체인 기반 효율적 합의 알고리즘 선정을 위한 성능평가요소 연구", 한국차세대컴퓨팅학회 논문지, 16(1), pp.65~74 (2020), 한국차세대컴퓨팅학회[DOI]
- Gunter Bolch, "Queueing Networks and Markov Chains: Modeling and Performance Evaluation with Computer Science Application" (2006), Wiley
- 조문옥, "하이퍼레저 패브릭 실전 프로젝트" (2020), 에이콘출판
- 김재하, "크라우드 소싱을 위한 블록체인 기법의 활용 현황 분석", 한국차세대컴퓨팅학회 논문지, 16(4), pp.78~87 (2020), 한국차세대컴퓨팅학회[DOI]
