CN110442456B - 一种基于Hyperledger-fabric的多通道的负载均衡方法 - Google Patents
一种基于Hyperledger-fabric的多通道的负载均衡方法 Download PDFInfo
- Publication number
- CN110442456B CN110442456B CN201910722146.XA CN201910722146A CN110442456B CN 110442456 B CN110442456 B CN 110442456B CN 201910722146 A CN201910722146 A CN 201910722146A CN 110442456 B CN110442456 B CN 110442456B
- Authority
- CN
- China
- Prior art keywords
- data
- channel
- channels
- uplink
- organization object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Fuzzy Systems (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于Hyperledger‑fabric的多通道的负载均衡方法,该方法包括下列步骤:1)创建多个通道,将各个Peer节点加入各通道中,对区块数据进行分流,实现数据拆分;2)实例化智能合约,在客户端调用智能合约,定位数据上链的通道,使数据均分在多个通道中;3)轮询Peer节点,获取组织对象,进行数据上链或数据查询交易;4)对创建的多个通道进行初始化,对每个通道中的区块链进行遍历,根据主键查询数据,完成多通道的负载均衡。与现有技术相比,本发明具有实现负载均衡、增强数据的隔离和保密性、增强数据查询速度等优点。
Description
技术领域
本发明涉及联盟链技术领域,尤其是涉及一种基于Hyperledger-fabric的多通道的负载均衡方法。
背景技术
区块链作为分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式已成为当下最受关注的技术,区块链(Blockchain)本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,用于验证其信息的有效性(防伪)和生成下一个区块。然而国内企业级的区块链项目,几乎无一例外的选择了可监管的,部分去中心,高性能的联盟链。
Hyperledger Fabric是一个联盟链开发平台,与时下流行的以太坊、EOS等公链平台有较大的不同。Hyperledger Fabric的中心化程度更高,并且链只限于联盟内的成员使用,但Hyperledger Fabric相对容易达到更高的性能。在Fabric中,通道(channel)是构建在Fabric网络上的私有区块链,实现数据的隔离和保密,通道内特定的账本在通道中是与所有Peer节点共享的,并且交易方必须通过该通道的正确性校验才能与账本进行交互。然而在实际应用中,通道只是为了实现加入通道的Peer节点账本共享,LevelDB是嵌入在peer进程中的默认键/值状态数据库,CouchDB可选,LevelDB采用跳表SkipList实现O(logn)的时间复杂度,所以数据量大小决定查询速度,通道channel中保存区块的交易信息。当单个通道数据量非常大时,将会降低区块数据查询的性能及加大运维的成本。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于Hyperledger-fabric的多通道的负载均衡方法。
本发明的目的可以通过以下技术方案来实现:
一种基于Hyperledger-fabric的多通道的负载均衡方法,该方法包括下列步骤:
S1、创建多个通道,将各个Peer节点加入各通道中,对区块数据进行分流。
S2、实例化智能合约,在客户端调用智能合约,定位数据上链的通道,使数据均分在多个通道中,实现数据拆分。定位数据上链的通道的具体内容为:
对于上链的数据,将其主键的哈希值除以通道数取余后取绝对值,获取的数值作为通道号,以定位数据上链的通道,定位数据上链的通道后,将区块数据均分存储在这多个通道中。
S3、轮询Peer节点,获取组织对象,进行数据上链或数据查询交易。
轮询Peer节点,通过确定KEY值确定交易由哪个Peer节点处理,创建组织对象,若KEY值判断为存在全局MAP集合,则为每一个节点获取组织对象,若KEY值判断为不存在全局MAP集合,则为每一个节点组装组织对象,并将组装后的组织对象放入全局MAP集合后作为最终获取的组织对象,对获取的组织对象进行数据上链或数据查询交易。所述的全局MAP集合为ConcurrentHashMap<Integer,FabricManager>,所述的KEY值为Peer节点编号。
S4、对创建的多个通道进行初始化,对每个通道中的区块链进行遍历,根据主键查询数据,完成多通道的负载均衡。
初始化创建的多个通道,对每个通道中的区块链进行遍历,根据主键查询数据时,对主键hash值除以通道数量取余后取绝对值,获取通道号,根据通道号查询该通道对应的存储的数据,完成多通道的负载均衡。
与现有技术相比,本发明具有以下优点:
1)本发明中的通道是构建在Fabric网络中上的私有区块链,实现了数据的隔离和保密,多通道把数据进行拆分存储,增强了数据的隔离和保密性;
2)本发明基于Hyperledger-fabric进行多通道的数据存储,实现了对数据存储的负载均衡;
3)LevelDB是嵌入在peer进程中的默认键/值状态数据库,LevelDB采用跳表SkipList实现O(logn)的时间复杂度,因此本发明将数据划分至多个通道后,单通道数据量越小查询的速度就越快,增强了数据的查询的速度。
附图说明
图1为本发明方法的流程示意图;
图2为本发明实施例中对区块数据进行多通道分流的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
实施例
本发明涉及一种基于Hyperledger-fabric的多通道的负载均衡方法,该方法在客户端进行处理,包括如下步骤:
步骤一、创建多个通道,将各个Peer节点加入各通道中,对区块数据进行分流,实现数据拆分。
步骤二、实例化智能合约,在客户端调用智能合约,定位数据上链的通道,使数据均分在多个通道中。
步骤三、轮询Peer节点,获取组织对象,进行数据上链或数据查询交易。
步骤四、初始化创建的多个通道,对每个通道中的区块链进行遍历,获取查询数据。
本实施例以“区块数据总量10G,分10个通道存取,每个通道1G”的场景举例:
a)通道:创建10个通道,让Peer1节点加入这10个通道。
b)智能合约:安装,实例化智能合约。
c)数据上链:客户端调用智能合约,对于上链的数据,主键的哈希值除通道数取余,然后取绝对值,定位数据上链的通道,并将数据均分存储在这10个通道中,10G数据,每个通道存放1G。
d)数据查询:根据主键的哈希值除通道数取余,然后取绝对值,定位查询的通道,然后对数据总量为1G的区块链进行遍历,获取数据。
其中,客户端程序对数据上链和查询的处理步骤包括:1)配置通道集合、2)定位通道、3)存储数据、4)查询数据。具体实现的过程如下:
1)配置通道集合:
配置yaml文件,定义通道集合channel0至channel9。
2)定位通道:
根据数据主键的hash值取余:主键hash值除通道数量取余,然后取绝对值,得到通道号,生成组织对象,将其放入全局Map中。例如得到channel0。
3)存储数据
根据定位得到的通道,例如channel0,把数据存储到channel0中。
4)获取组织对象:
在创建组织对象时,轮询Peer节点,通过确定KEY值来确定交易由哪个Peer节点处理,创建组织对象。若KEY值判断为存在全局MAP集合,则为每一个节点获取组织对象。若KEY值判断为不存在全局MAP集合,则为每一个节点组装组织对象,并将组装后的组织对象放入全局MAP集合后作为最终获取的组织对象。对获取的组织对象进行数据上链或数据查询交易。
5)查询数据
初始化创建的通道channel0~channel9,根据主键查询数据时,也是对主键hash值除通道数量取余,然后取绝对值得到通道号,例如得到channel0,然后就可以从channel0查询出相应的存储的数据。
本发明中的通道是构建在Fabric网络中上的私有区块链,实现了数据的隔离和保密,多通道把数据进行拆分存储,增强了数据的隔离和保密性;基于Hyperledger-fabric进行多通道的数据存储,实现了对数据存储的负载均衡;又因LevelDB是嵌入在peer进程中的默认键/值状态数据库,LevelDB采用跳表SkipList实现O(logn)的时间复杂度,所以本发明将数据划分至多个通道后,单通道数据量越小查询的速度就越快,增强了数据的查询的速度。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (3)
1.一种基于Hyperledger-fabric的多通道的负载均衡方法,其特征在于,该方法包括下列步骤:
1)创建多个通道,将各个Peer节点加入各通道中,对区块数据进行分流;
2)实例化智能合约,在客户端调用智能合约,定位数据上链的通道,使数据均分在多个通道中,实现数据拆分;
3)轮询Peer节点,获取组织对象,进行数据上链或数据查询交易;
4)对创建的多个通道进行初始化,对每个通道中的区块链进行遍历,根据主键查询数据,完成多通道的负载均衡;
步骤2)中,定位数据上链的通道的具体内容为:
对于上链的数据,将其主键的哈希值除以通道数取余后取绝对值,获取的数值作为通道号,以定位数据上链的通道,定位数据上链的通道后,将区块数据均分存储在这多个通道中;
步骤3)的具体内容为:
轮询Peer节点,通过确定KEY值确定交易由哪个Peer节点处理,创建组织对象,若KEY值判断为存在全局MAP集合,则为每一个节点获取组织对象,若KEY值判断为不存在全局MAP集合,则为每一个节点组装组织对象,并将组装后的组织对象放入全局MAP集合后作为最终获取的组织对象,对获取的组织对象进行数据上链或数据查询交易。
2.根据权利要求1所述的一种基于Hyperledger-fabric的多通道的负载均衡方法,其特征在于,步骤4)中的具体内容为:
初始化创建的多个通道,对每个通道中的区块链进行遍历,根据主键查询数据时,对主键 hash值除以通道数量取余后取绝对值,获取通道号,根据通道号查询该通道对应的存储的数据,完成多通道的负载均衡。
3.根据权利要求1所述的一种基于Hyperledger-fabric的多通道的负载均衡方法,其特征在于,所述的全局MAP集合为ConcurrentHashMap<Integer, FabricManager>,所述的KEY值为Peer节点编号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910722146.XA CN110442456B (zh) | 2019-08-06 | 2019-08-06 | 一种基于Hyperledger-fabric的多通道的负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910722146.XA CN110442456B (zh) | 2019-08-06 | 2019-08-06 | 一种基于Hyperledger-fabric的多通道的负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442456A CN110442456A (zh) | 2019-11-12 |
CN110442456B true CN110442456B (zh) | 2023-02-28 |
Family
ID=68433492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910722146.XA Active CN110442456B (zh) | 2019-08-06 | 2019-08-06 | 一种基于Hyperledger-fabric的多通道的负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442456B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111431960B (zh) * | 2020-02-19 | 2022-04-22 | 重庆邮电大学 | 一种基于超级账本的去中心化物联网异构标识解析方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694669A (zh) * | 2018-07-18 | 2018-10-23 | 矩阵元技术(深圳)有限公司 | 一种区块链智能合约实现方法及装置 |
CN109246179A (zh) * | 2018-06-30 | 2019-01-18 | 华为技术有限公司 | 维护区块链的方法和装置、服务器和计算机可读存储介质 |
CN109711839A (zh) * | 2018-12-13 | 2019-05-03 | 平安科技(深圳)有限公司 | 基于数据压缩的区块链存储方法、装置、设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160275156A1 (en) * | 2015-03-20 | 2016-09-22 | Pure Storage, Inc. | Sql-like query language for selecting and retrieving systems telemetry including performance, access and audit data |
-
2019
- 2019-08-06 CN CN201910722146.XA patent/CN110442456B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246179A (zh) * | 2018-06-30 | 2019-01-18 | 华为技术有限公司 | 维护区块链的方法和装置、服务器和计算机可读存储介质 |
CN108694669A (zh) * | 2018-07-18 | 2018-10-23 | 矩阵元技术(深圳)有限公司 | 一种区块链智能合约实现方法及装置 |
CN109711839A (zh) * | 2018-12-13 | 2019-05-03 | 平安科技(深圳)有限公司 | 基于数据压缩的区块链存储方法、装置、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
"区块链在综合能源系统的应用前景及实践";张建文;《云南电力技术》;20181231;第2-11页 * |
Dejan Vujičićet al.."Blockchain technology, bitcoin, and Ethereum: A brief overview".《2018 17th International Symposium INFOTEH-JAHORINA (INFOTEH)》.2018,第1-6页. * |
Also Published As
Publication number | Publication date |
---|---|
CN110442456A (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11721152B2 (en) | Blockchain-based anonymized cryptologic ballot organization | |
CN110163004B (zh) | 一种区块链生成的方法、相关设备及系统 | |
US11190525B2 (en) | Blockchain system and permission management method thereof | |
CN106657216B (zh) | 序列号生成方法和装置 | |
CN110912707A (zh) | 基于区块链的数字证书处理方法、装置、设备及存储介质 | |
EP3477561A1 (en) | System for goods delivery | |
CN109766389B (zh) | 一种基于位图索引的区块链轻客户端验证查询方法 | |
CA3030250A1 (en) | File storage method and apparatus for blockchain network | |
CN114648130A (zh) | 纵向联邦学习方法、装置、电子设备及存储介质 | |
CN110445765B (zh) | 基于区块链的数据共享方法、终端设备及介质 | |
CN110910148A (zh) | 一种基于区块链的物品验证方法及装置、存储介质 | |
CN109241352A (zh) | 个人档案信息的获取方法及服务器 | |
CN110022315A (zh) | 一种块链式账本中的权重管理方法、装置及设备 | |
CN105224541B (zh) | 数据的唯一性控制方法、信息存储方法及装置 | |
CN110442456B (zh) | 一种基于Hyperledger-fabric的多通道的负载均衡方法 | |
CN113079139A (zh) | 基于区块链的共识组主节点确定方法、装置及系统 | |
CN103425684A (zh) | 数据库的操作方法及装置 | |
CN107305570A (zh) | 一种数据检索方法及系统 | |
JP2024539910A (ja) | 分散型ブロックチェーン機能のための方法およびシステム | |
US9648002B2 (en) | Location-based user disambiguation | |
CN103051623A (zh) | 限制开放平台的调用的方法 | |
CN112711683A (zh) | 数据比对方法、装置及计算机设备 | |
CN115687276B (zh) | 一种文件处理方法、装置、电子设备及存储介质 | |
CN114884968A (zh) | 基于区块链隐私交易的态势感知方法及相关装置 | |
CN109815047A (zh) | 一种数据处理的方法和相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Tie Jincheng Inventor after: Li Hu Inventor after: Zeng Yifeng Inventor after: Liu Jiali Inventor after: Wu Hao Inventor before: Li Hu Inventor before: Zeng Yifeng Inventor before: Liu Jiali Inventor before: Wu Hao |