Handling conditional queries and data storage on Hyperledger Fabric efficiently

  • PDF / 1,903,197 Bytes
  • 21 Pages / 439.642 x 666.49 pts Page_size
  • 36 Downloads / 193 Views

DOWNLOAD

REPORT


Handling conditional queries and data storage on Hyperledger Fabric efficiently Tianlu Yan1 · Wei Chen2 · Pengpeng Zhao1 · Zhixu Li1 · An Liu1 · Lei Zhao1 Received: 21 March 2020 / Revised: 22 July 2020 / Accepted: 21 September 2020 / © Springer Science+Business Media, LLC, part of Springer Nature 2020

Abstract As a popular consortium blockchain platform, Hyperledger Fabric has received increasing attention recently. When executing transactions on such platform, it usually costs a lot of time and hardly to achieve high efficiency. Although efficiently handling transactions can be leveraged to support various use-cases, it presents significant challenges as data on Hyperledger Fabric is organized on file-system and exposed via limited API. We tackle the problem in two ways: conditional queries and data storage. In this paper, we propose the following novel methods. To improve the performance of conditional queries on Hyperledger Fabric, we use all attributes of the query to create composite keys before executing it. In order to achieve further performance improvements, we build an index called AUP in the second method, where we also study the update of AUP during transactions. To speed up data storage on Hyperledger Fabric, We create a cache for the data in the block header. The extensive experiments conducted on the real-world dataset demonstrate that the proposed methods can achieve high performance in terms of efficiency and memory cost. Finally, We implement a prototype system. Keywords Hyperledger Fabric · Conditional queries · Data storage

1 Introduction In recent years, blockchain technologies have attracted wide attention as they get rid of the centralized storage and can guarantee the data security. As a result, blockchain has been

This article belongs to the Topical Collection: Special Issue on Web Information Systems Engineering 2019 Guest Editors: Reynold Cheng, Nikos Mamoulis, and Xin Huang  Lei Zhao

[email protected]

Extended author information available on the last page of the article.

World Wide Web

widely used in many real applications. A blockchain is a shared, distributed ledger that records transactions between different nodes in a verifiable and permanent way where nodes do not trust each other [24]. Each node in the blockchain network holds the same ledger which contains multiple blocks. A block usually has a list of transactions and encloses the hash of its immediate previous block, where a transaction can be saved in a ledger only after it has passed a series of validations. Note that, blockchain network can be divided into three categories, namely private network, public network and consortium network. In a public network, everyone can join the network to perform transaction. In a private network, there are only a limited range of participating nodes. The access of data has strict right management, where only participants have the write permission. The consortium chain is only for participants of a specific group. It internally specifies multiple pre-selected nodes as billers, and the