华东师范大学学报(自然科学版) ›› 2021, Vol. 2021 ›› Issue (5): 48-59.doi: 10.3969/j.issn.1000-5641.2021.05.005

• 系统关键技术 • 上一篇    下一篇

基于CITA区块链的纠删码分片存储实现

尹芙蓉1, 朱承宇1, 赵斌2, 张召1,*()   

  1. 1. 华东师范大学 数据科学与工程学院, 上海 200062
    2. 南京师范大学计算机与电子信息学院/人工智能学院, 南京 210023
  • 收稿日期:2021-08-07 出版日期:2021-09-25 发布日期:2021-09-28
  • 通讯作者: 张召 E-mail:zhzhang@dase.ecnu.edu.cn
  • 基金资助:
    国家自然科学基金 (U1811264, U1911203, 61972152)

Erasure code partition storage based on the CITA blockchain

Furong YIN1, Chengyu ZHU1, Bin ZHAO2, Zhao ZHANG1,*()   

  1. 1. School of Data Science and Engineering, East China Normal University, Shanghai 200062, China
    2. School of Computer and Electronic Information/School of Artificial Intelligence, Nanjing Normal University, Nanjing 210023, China
  • Received:2021-08-07 Online:2021-09-25 Published:2021-09-28
  • Contact: Zhao ZHANG E-mail:zhzhang@dase.ecnu.edu.cn

摘要:

区块链系统采用全复制的数据存储机制, 为每个节点保留整个区块链的完整副本, 系统扩展性差. 同时由于区块链系统中拜占庭节点的存在, 导致传统分布式系统中使用的分片方案不能被直接应用于区块链系统中. 本文结合纠删码和拜占庭容错算法, 使每个区块的存储消耗由 $ O\left(n\right) $ 降到 $ O\left(1\right) $ , 增强了系统的可扩展性. 本文还提出了对区块数据进行划分的方法, 在降低存储冗余的同时减小对查询效率的影响. 提出了无需网络通信的编码块存储方法, 降低了系统存储和通信开销. 还提出了区块链节点加入和退出的动态重编码方法, 既保证系统的稳定性, 又降低了系统重编码开销. 最后, 在开源区块链系统CITA上实现, 并通过充分的实验, 证明系统可扩展性、可用性和存储效率提升.

关键词: 区块链, 纠删码, 拜占庭容错, 存储可扩展性

Abstract:

Blockchain system adopts full replication data storage mechanism, which retains a complete copy of the whole block chain for each node. The scalability of the system is poor. Due to the existence of Byzantine nodes in the blockchain system, the shard scheme used in the traditional distributed system cannot be directly applied in the blockchain system. In this paper, the storage consumption of each block is reduced from O(n) to O(1) by combining erasure code and Byzantine fault-tolerant algorithm, and the scalability of the system is enhanced. This paper proposes a method to partition block data, which can reduce the storage redundancy and affect the query efficiency less. A coding block storage method without network communication is proposed to reduce the system storage and communication overhead. In addition, a dynamic recoding method for entry and exit of blockchain nodes is proposed, which not only ensures the reliability of the system, but also reduces the system recoding overhead. Finally, the system is implemented on the open source blockchain system CITA, and through sufficient experiments, it is proved that the system has improved scalability, availability and storage efficiency.

Key words: blockchain, erasure code, Byzantine fault tolerance, storage scalability

中图分类号: