CN115037755B - 基于数据重分布和动态节点策略的区块链轻量存储方法 - Google Patents
基于数据重分布和动态节点策略的区块链轻量存储方法 Download PDFInfo
- Publication number
- CN115037755B CN115037755B CN202210449044.7A CN202210449044A CN115037755B CN 115037755 B CN115037755 B CN 115037755B CN 202210449044 A CN202210449044 A CN 202210449044A CN 115037755 B CN115037755 B CN 115037755B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- block
- nodes
- light
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1091—Interfacing with client-server systems or between P2P systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于数据重分布和动态节点策略的区块链轻量存储方法,涉及区块链技术领域。该方法设计了一种基于轻量化存储和高效数据访问的划分节点层级架构,将区块链系统中存储节点区分层级,并将节点分为全节点和轻节点,以实现轻量存储及冗余备份;再基于遗忘恢复方法对轻节点内部区块数据进行动态的删除和恢复,实现数据重分布;并采用基于恢复贡献的激励策略对轻节点进行激励奖励;最后根据节点的奖励值和存储能力调整节点所在的层级。该方法通过对节点层级划分,对冷热区块数据做遗忘和恢复的优化存储策略实现区块链轻量存储。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于数据重分布和动态节点策略的区块链轻量存储方法。
背景技术
随着互联网技术的不断发展,衍生出大量新兴技术,如区块链,云计算,大数据,5G等技术。随着上述新兴技术的成熟,大量相关应用和项目落地。其中,区块链技术由于其不可篡改、去中心化、数据透明等特性受到国内外研究者持续的关注和研究。区块链技术由大量基础技术组成,如Merkle树、工作量证明、密码学、分布式网络等。
区块链技术作为综合了多种基础技术的分布式共享总账技术,可理解为一种网络中全部参与方共同使用、共同维护的分布式数据库,但是与原有数据库不同的是,各参与方均获得了链上的全部数据,提高了参与方的查询效率和系统的数据安全的同时,减少了原有数据库维护方的维护成本。公有区块链使用去中心化的方式,如区块链节点通过PoW共识机制参与事务,共同维护公有区块链的完整性和事务的持久性,保证了数据的可信性和可追溯性。
联盟区块链则是由一组预选节点控制其共识机制的区块链,预选节点具有高度可信性,对加入节点进行权限控制,如PBFT共识过程中签名节点数量达总数的三分之二即生效,且信息不一定公开,例如对于公开区块的根哈希值。联盟区块链属于弱中心化区块链,尽管牺牲了一部分去中心化性质可能对安全性产生影响,但是联盟链减轻了验证负担和事务造价以提高发块速率,并获得了更灵活的区块链结构。目前大量区块链系统基于全复制备份,随着区块的不断写入将不断增大系统存储负担。且对于最近新写入的区块,系统对新区块的访问频率相比于旧区块高,对于访问频率差距较大的区块,采用相同的存储策略,无疑会浪费系统的存储资源。因此使用轻节点并根据区块的冷热程度对联盟链存储系统进行优化、实现联盟链的轻量存储是目前亟待解决的关键科学问题。
联盟链轻量化存储是一种高效解决区块链存储资源消耗的新型技术。此前研究人员多基于纠删码、分片以及引入分布式数据库的协作存储方式以解决存储资源消耗的问题,均存在不同的缺陷,如纠删码策略存在消耗大量算力,查询效率低下;分片策略数据冗余度较大、查询效率较低;引入分布式数据库导致出现中心化效应等问题。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于数据重分布和动态节点策略的区块链轻量存储方法,基于Fabric联盟链系统,根据联盟链受控准入等技术特点并基于可信执行环境对Fabric系统内部组织以及存储节点做出改进,弱化联盟链内组织概念,减轻系统内节点存储负担,并保证数据安全和访问效率。
为解决上述技术问题,本发明所采取的技术方案是:基于数据重分布和动态节点策略的区块链轻量存储方法,
根据存储能力对区块链设计划分节点层级架构,将联盟链系统中存储节点区分层级,划分为全节点层和轻节点层;
对各层级节点进行数据重分布,划分全节点与轻节点;其中,全节点保存联盟链系统中的所有数据副本,轻节点保留区块链上区块头数据;
基于遗忘恢复方法对轻节点内部区块数据进行动态的删除和恢复;
采用基于恢复贡献的激励策略对轻节点进行激励奖励;
根据节点的奖励值和存储能力调整节点所在的层级。
优选地,所述全节点层与轻节点层之间基于p2p进行通信,客户端与轻节点之间进行交易与区块数据的查询,随着联盟链系统中节点的不断增加,系统中轻节点的数量远大于全节点的数量;系统中节点所在的层级不固定,能够依据节点获得的激励值动态的调整节点所在的层级。
优选地,所述区块链轻量存储方法对各层级节点进行数据重分布时,全节点数量设有最低阈值,并随着系统规模和节点数量的不断扩大,全节点数量根据比例增加,以保证系统内部的查询效率。
优选地,所述划分节点层级架构中全节点为第0层级,其他轻节点位于其他低层级,低层级的层级数量根据节点规模动态调整。
优选地,所述轻节点内部区块数据进行动态的删除的具体方法为:
轻节点执行冷热数据判别技术将区块划分为冷区块和热区块,针对冷区块采用遗忘方法进行删除,具体方法为:
步骤A1:轻节点执行冷热数据识别算法,区块高度位于[N,M]之间的区块为冷区块,该区间之外的为热区块;N为上一次遗忘过程冷数据块区间右端点的区块高度值,M为满足不等式M-N>=T的区块高度值,T为给定的阈值;
步骤A2:针对区块高度不处于[N,M]的区块执行步骤A3,区块高度处于区间内的区块执行步骤A4;
步骤A3:轻节点将热区块存储在联盟链数据库levelDB中,流程结束;
步骤A 4:轻节点执行遗忘算法遗忘冷区块,流程结束。
优选地,所述轻节点内部区块数据进行恢复的具体方法为:
基于联盟链的冷热数据判别技术,将区块划分为冷区块和热区块,再判别联盟链上冷区块的访问频率,对于某一访问频率达到预设阈值的冷区块进行恢复;
若某一数据相关区块体不在客户端访问请求的节点,且数据访问频率未达到预设阈值,由该节点向区块链网络中广播此请求,以获得该区块数据,再由该节点根据区块头数据验证其数据可靠性,将相关交易数据发送给客户端;
若数据访问频率到达预设阈值,被访问节点在验证数据可靠性后执行恢复操作,同时帮助数据恢复及访问请求的节点获得相应激励。
优选地,所述帮助数据恢复及访问请求的节点获得相应激励的具体方法为:
以恢复策略中使用Gossip向网络广播请求的方式开始竞赛,由响应速度最快的节点发出区块数据,请求节点获得网络中其他轻节点保存的相关区块体信息,验证无误后由请求节点向联盟链系统申请激励,系统使用保存在智能合约容器的相关激励合约以发起一笔交易,向帮助恢复的节点发送一笔代币奖励,该代币奖励不用于市场流通,而是用于节点的层级升级。
优选地,所述轻节点内部区块数据进行恢复包括以下步骤:
步骤C1、客户端节点向联盟链系统某节点发送某个区块查询或某笔交易请求,系统调用RPC接口并初始化区块访问次数变量count;
步骤C2、RPC接口执行节点访问函数访问peer节点,受访问peer节点查找本地缓存,并且区块访问频数计数器count大小自增1;
步骤C3、受访问peer节点如果存在客户端节点所查找的数据,将数据响应给RPC接口,RPC接口将查找数据返回给客户端节点,否则,执行步骤C4;
步骤C4、受访问peer节点向联盟链网络广播目标数据请求,其他peer节点从联盟链系统中接收到数据请求消息,初始化节点激励值reword,其他peer节点存在数据块并将数据块返回给受访问peer节点;
步骤C5、受访问peer节点接收到其他peer节点的数据响应消息,并验证数据块的真实性,若数据块篡改则重新执行步骤C4,否则将数据块返回给RPC接口,RPC接口将数据块返回给客户端节点;
步骤C6、受访问peer节点判断频数变量count与阈值的大小关系,如果count大于等于阈值,受访问peer节点保存目标区块,执行数据恢复,帮助恢复的其他peer节点获得奖励,reword变量自增1,如果count小于阈值,则不恢复区块。
优选地,所述根据节点的奖励值和存储能力调整节点所在的层级的具体方法为:
步骤S1:新节点加入区块链系统,系统为新节点分配层级,新节点根据自身存储能力同步链上区块数据;
步骤S2:联盟链系统中节点正常运行,若节点宕机执行步骤S3,若节点收到其他节点请求帮助执行步骤S4,若节点收到升级竞选通知执行骤S5;
步骤S3:宕机节点若为全节点,则节点所在层级下降,联盟链系统开放升级;节点等待恢复并同步链上数据,节点恢复正常,重新执行步骤S2;
步骤S4:节点收到其他节点帮助恢复数据请求,发出帮助恢复请求的节点成功恢复数据块,节点获得奖励,激励值reword自增1,执行步骤S2;否则直接执行步骤S2;
步骤S5:节点收到升级竞选通知,联盟链系统检查其存储能力和激励值,若激励值为本层最大值,节点所在层级上升,成功升级,重新执行步骤S2;否则升级失败,重新执行步骤S2。
采用上述技术方案所产生的有益效果在于:本发明提供的基于数据重分布和动态节点策略的区块链轻量存储方法,提出了针对轻量化存储和高效数据访问的划分节点层级架构的方法,并探究了适用于节点层级的数据重分布方法和基于数据动态变化的节点动态性处理方法;其中包括冗余控制方法,以实现保证链上安全和查询效率的去冗余;数据重分布方法,实现时间与空间资源平衡的最优化,并防止浪费计算资源;轻节点功能设计,保证节点去中心化性质的前提下实现轻量存储,并实现不依赖第三方的轻节点验证功能;系统鲁棒性设计,实现链上节点突发情况的应对和防范方法;吞吐率提升方法,实现轻量侧链的一类方法以达到轻量存储系统的吞吐率提升。采用对节点层级划分为全节点层、轻节点层,对冷热区块数据做遗忘和恢复的优化存储策略实现区块链轻量存储。
附图说明
图1为本发明实施例提供的节点分层模型示意图;系统架构图
图2为本发明实施例提供的数据重分布模式图;
图3为本发明实施例提供的联盟链系统的整体执行流程图;
图4为本发明实施例提供的遗忘流程图;
图5为本发明实施例提供的联盟链系统数据查询架构图;
图6为本发明实施例提供的区块查询恢复流程图;
图7为本发明实施例提供的节点层级调整流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例,基于联盟链受控准入等技术特点并基于可信执行环境对Fabric内部组织以及存储节点做出改进,提出一种弱化联盟链内组织概念,减轻系统内节点存储压力,并保证数据安全和访问效率的方案。首先考虑系统运行的前提条件,当前研究热点包括TEE合约以及CPU硬件保护技术,极大地提高了区块链技术的安全性,尤其在联盟链环境中节点受控,如组织等内部节点的划分造成了较大的开销浪费,因此基于弱化联盟链内部组织的概念,以实现更高效的轻量的数据存储方法。
本实施例中,基于数据重分布和动态节点策略的区块链轻量存储方法,包括以下内容:
1、针对轻量存储和高效数据访问的节点层级架构:
本发明设计了一种基于轻量化存储和高效数据访问的划分节点层级架构。节点分层是将区块链系统中存储节点区分层级,以实现轻量存储及冗余备份。同时轻节点仍保证高效的访问功能,避免其他轻量存储技术“时间换空间”的弊端。实现节点分层后对各层级节点进行数据重分布,使其划分为全节点与轻节点。其中为保证轻节点的去中心化特性,轻节点保留链上区块头数据,以避免轻节点过度依赖全节点。
为保证系统必要的冗余备份,本发明保留部分全节点,全节点数量设有最低阈值,且随着系统规模和节点数量的不断扩大,全节点数量可根据比例上升,以保证系统内部相应的查询效率。联盟链系统中设置全节点和轻节点。其中,设置全节点为第0层级其他轻节点位于其他较低层级,较低层级的层级数量可根据节点规模动态调整。
基于轻量化存储和高效数据访问的划分节点层级架构不仅考虑了轻量化存储的去冗余需求和数据访问效率,同时保证了轻节点的基本链上功能和节点去中心化性质。其次全节点设置也保证了区块链系统的数据安全和备份容灾,同时也最大程度地保证了系统内部的数据查询效率。本实施例中,节点分层的模型如图1所示。
2、基于遗忘恢复的数据重分布的方法:
针对联盟链系统中,区块内部数据的访问频率差距较大的特性,本发明参考传统的冷热数据判别技术,结合区块链区块数据结构特点,发明一种高效的数据重分布方法,如图2所示,保证轻节点查询效率并减轻其存储负担,且无需依赖第三方帮助验证。
在研究中发现,大量链上区块数据在节点验证同步后长时间未受到访问,节点存储这一类“冷”数据相较于高昂的存储设备费用并无实际生产价值,同时可能部分区块数据长时间被访问,其“热度”较高,也可能某时刻一区块数据热度突然上升,并保持较长时间,原有的轻量存储技术针对上述情况缺少适性良好的存储方法。因此本发明针对于联盟链的冷热数据判别技术,将区块划分为冷区块和热区块,以判别联盟链上区块数据的冷热度。同时发明了面向联盟链区块数据的遗忘方法,遗忘方法即删除轻节点内冷数据块,以降低轻节点的存储压力。
轻节点除了应具有数据的遗忘(即删除)功能外还需要具备数据恢复的功能。轻节点常用的数据重分布策略包括前文所述的纠删码技术,其将原始的数据进行编码得到冗余,节点根据策略对区块体进行删除或保留,当节点需要恢复区块时,只需从其他节点请求编码数据,解码后验证成功即可获得区块数据,但该方法需要占用大量的计算资源,且对区块链数据冗余量的下降程度有限,尤其在当前大量提出的可信执行环境下,纠删码的数据保护特性失去其意义。
为防止上述区块数据热度突然上升的情况,本发明提出了数据恢复算法,对于某一访问频率达到预设阈值的冷区块进行恢复。预设阈值的目的是为防止偶然的数据查询事务导致频繁的数据恢复,频繁的数据恢复可能会造成系统浪费大量算力,难以减轻节点的存储负担,若某一数据相关冷区块不在客户端访问请求的节点,且数据访问频率未达到预设阈值,可由该节点向区块链网络中广播此请求,以获得该区块数据,再由该节点根据区块头数据验证其数据可靠性,将相关交易数据发送给客户端,同时帮助数据恢复及访问请求的节点可获得相应激励,若数据访问频率到达预设阈值,被访问节点在验证数据可靠性后执行恢复操作。
本发明提出的数据重分布方法基于区块链数据分布特点及数据实际使用访问频率,当数据热度发生变化,轻节点内部可以动态的删除和恢复区块数据,并根据轻节点设计保存的区块头数据实现的验证功能以保证数据的真实可靠。同时设置访问频率阈值,避免浪费系统大量计算资源。
3、基于数据动态变化的节点动态性处理方法:
本发明实现了一种基于恢复贡献的激励方法,避免消耗大量算力争取记账权而导致性能瓶颈的缺点,以恢复策略中使用Gossip向区块链网络广播请求的方式开始竞赛,由响应速度最快的节点发出区块数据,请求节点可获得网络中其他轻节点保存的相关区块体信息,验证无误后由请求节点向联盟链系统申请激励,系统使用保存在智能合约容器的相关激励合约以发起一笔交易,向帮助恢复的节点发送一笔代币奖励,该代币奖励不用于市场流通,而是用于节点的层级升级。在该方法中具有高存储能力、高性能且响应速度快的节点将被选出,不仅避免了传统激励机制的造成的性能瓶颈,同时提高系统整体的查询效率。
在实际应用中,无论是分布式数据库系统还是联盟链系统都是动态的,伴随着节点的加入与退出,甚至是节点突然宕机、出现网络隔离等情况。例如在应用纠删码联盟区块链系统中,某一成员节点突然宕机,该成员节点是中心化的纠删码存储节点,在鲁棒性良好的系统中因单一节点宕机不可能造成系统崩溃或数据丢失,但在大量查询事务的条件下,极有可能造成网络拥塞,导致系统崩溃;又如系统中加入某一新节点,该节点具有优秀的存储能力和响应速度,其可以首先同步最新账本数据,帮助其他节点实现数据恢复,以此获得节点升级的条件,实现分级架构中层级的上升,获得系统内部更大的权利,并可作为系统中新的全节点。
本实施例中,联盟链系统的整体执行流程如图3所示,包括以下步骤:
步骤1:客户端节点向fabric网络中的背书节点提交交易提案,背书节点模拟执行提案并进行背书,背书结束向客户端节点返回模拟执行结果;
步骤2:客户端节点向排序服务节点提交包含签名背书和模拟执行结果的交易,排序服务节点对交易进行排序并打包生成区块并将区块广播给主节点,主节点将区块保存到本地账本;
步骤3:背书节点、记账节点、主节点同步区块内容,记账节点(全节点与轻节点)保存区块到账本并执行数据重分布策略;
步骤4:排序服务节点请求为帮助恢复的记账节点提供奖励,帮助恢复的轻节点获得激励值。
联盟链系统中节点的通信基于p2p方式实现。本发明将联盟链中的节点划分为多个层级如图2所示,其中,0层节点为全节点层,全节点层保存着联盟链系统中的所有数据副本,目的是备份数据,防止系统出现节点宕机等故障导致数据丢失。全节点设有最低阈值,并随着系统规模和节点数量的不断扩大,全节点数量可根据比例上升,以保证系统内部的查询效率。其他层为轻节点层,如图2所示,全节点层与轻节点层之间的通信方式基于p2p,客户端主要与轻节点查询交易与区块数据,随着节点的不断增加,联盟链系统中轻节点的数量远大于全节点的数量,其中,第0层可作为全节点备份存在。系统中节点所在的层级不固定,可以依据节点激励值动态的调整节点所在的层级。
本发明针对联盟链系统的特殊性,以合理的冗余可以为联盟链系统提供数据备份,实现高可信的容灾机制和抗攻击能力,且提高数据查询效率,实现了动态自适应去冗余的方法,且保证链上系统的备份与查询效率。
联盟链系统中的轻节点执行冷热数据判别算法将区块划分为热区块和冷区块,随着新区块的不断写入,系统中存在大量的冷区块,占用大量的节点存储空间,遗忘冷区块可以有效的减轻节点的存储压力,因此实现了针对冷区块的遗忘方法。每个轻节点中都嵌入遗忘方法,如图4所示,遗忘流程包括以下几个步骤:
步骤A1:节点执行冷热数据识别算法,区块高度位于[N,M]之间的区块为冷区块,该区间之外的为热区块。N为上一次遗忘过程冷数据块区间右端点的区块高度值,M为满足不等式M-N>=T的区块高度值,T为给定的阈值;
步骤A2:针对区块高度不处于[N,M]的区块执行步骤A3,区块高度处于区间内的区块执行步骤A4;
步骤A3:轻节点将热区块存储在联盟链数据库levelDB中,流程结束;
步骤A4:轻节点执行遗忘算法遗忘冷区块,流程结束;
经过使用冷热数据判别方法,遗忘方法有效的实现了联盟链中部分节点的数据重分布。但是大量的遗忘数据块会造成轻节点依赖全节点的情况,为保证节点的去中心化性质,轻节点应具备数据恢复功能。
数据恢复基于如图5所示数据查询,数据恢复总体步骤为客户端要查询某个区块的数据,目标节点存在所需数据时,把查询的结果返回给客户端节点。当所需数据不存在联盟链上,本地节点向网络中广播数据请求,存在目标区块且响应力强的其他节点优先对受访问peer节点的数据请求响应,返回所需的区块数据,由受访问peer节点根据其保存的区块头验证数据,验证数据可靠后向客服端发送相关数据。受访问peer节点是否需要恢复目标数据块则需要判断目标区块的访问次数是否大于或等于预设的访问阈值,如果区块的访问频次到达阈值,节点恢复数据所在的区块体,并重新调整数据块的热度。设定阈值可以有效减少访问率低区块的恢复,减少系统的开销。帮助受访问peer节点提供区块数据的其他相关peer节点会获得相应的激励值。数据查询恢复具体的相关过程如图6所示,包括以下步骤:
步骤C1:客户端节点向联盟链系统某节点发送某个区块查询或某笔交易请求,系统调用RPC接口并初始化区块访问次数变量count;
步骤C2:RPC接口执行节点访问函数访问peer节点,受访问peer节点查找本地缓存,并且区块访问频数计数器count大小自增1;
步骤C3:受访问peer节点存在客户端节点所查找的数据,将数据响应给RPC接口,RPC接口将查找数据返回给客户端节点,不存在执行步骤3.4;
步骤C4:受访问peer节点向联盟链网络广播目标数据请求,其他peer节点从联盟链网络中接收到数据请求消息,初始化节点激励值reword,其他peer节点存在数据块并将数据块返回给受访问peer节点;
步骤C5:受访问peer节点接收到其他peer节点的数据响应消息,并验证数据块的真实性,若数据块篡改则重新执行步骤C4,否则将数据块返回给RPC接口,RPC接口将数据块返回给客户端节点;
步骤C6:受访问peer节点判断频数变量count与阈值的大小关系,如果count大于等于,则受访问peer节点保存目标区块,执行数据恢复,帮助恢复的其他peer节点获得奖励,reword变量自增1,如果count小于阈值,则不恢复区块。
通过激励机制可以不断的激发区块链网络中节点的“积极性”,这些节点能不断的参与区块链网络的查询事务,从而提高系统的查询性能与效率。系统的响应性能越强,越有利于维护系统的安全性。可以对激励值高的节点动态的调整它们的层级。
本发明实现了一种基于恢复贡献的激励策略,动态性调整节点的首要目的是基于系统安全性方面。动态性处理即可理解为节点层级的升降,如图7所示,其开放时间由系统定时开放或节点规模增加到一定程度。本发明只激励轻节点层的节点,0层的节点所在层级最高并拥有区块链中全部数据副本,故该层节点不需要升级。轻节点层中的节点若帮助其他节点恢复数据块,该节点将获得奖励,根据节点的奖励值和存储能力相应的调整节点所在的层级。若第0层级的某一全节点发生了宕机等故障,系统可直接将满足存储要求且拥有最高代币第1层级节点使用大规模恢复算法升级为全节点,以此保证系统的最低冗余,保证系统的数据安全和访问效率。同时不符合存储等要求的节点,或宕机全节点在开放时间内降级处理。
其次是为了系统的性能考虑,在节点动态性处理中全节点可能拥有系统中最快的响应速度和数据备份,因此在数据恢复操作中对全体全节点采取时延策略,全节点需要时延后才能响应网络中的恢复请求,这一操作的目的是筛选出系统中除全节点外能力最“优秀”的轻节点,尤其是对于新加入的高性能节点十分友好。对于响应能力强和存储能力强的轻节点,可保存完整的数据备份,以更高效的帮助其他peer节点恢复数据块。这些节点加入系统后,将快速进入较高层级,以此提高系统的响应能力与查询速率。
本实施例中,节点激励与升级的动态调整如图7所示,包括以下步骤:
步骤S1:新节点加入系统,系统为新节点分配层级,新节点根据自身存储能力同步链上区块数据。
步骤S2:节点在系统中正常运行,之后可能会出现3种状态,若节点宕机执行步骤S3,若节点收到升级竞选通知执行骤S4,若节点收到其他节点帮助恢复数据请求执行步骤S5;
步骤S3:宕机节点若为全节点,则节点所在层级下降,系统开放升级;节点等待恢复并同步链上数据,节点恢复正常,执行步骤S2;
步骤S4:节点收到其他节点帮助恢复数据请求,发出帮助恢复请求的节点成功恢复数据块,节点获得奖励,激励值reword自增1,执行步骤S2;否则,直接执行步骤S2;
步骤S5:节点收到升级竞选通知,系统检查其存储能力和激励值,若激励值为本层最大值,节点所在层级上升,成功升级,执行步骤S2;否则升级失败,执行步骤S2。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (7)
1.一种基于数据重分布和动态节点策略的区块链轻量存储方法,其特征在于:
根据存储能力对区块链设计划分节点层级架构,将联盟链系统中存储节点区分层级,划分为全节点层和轻节点层;
对各层级节点进行数据重分布,划分全节点与轻节点;其中,全节点保存联盟链系统中的所有数据副本,轻节点保留区块链上区块头数据;
基于遗忘恢复方法对轻节点内部区块数据进行动态的删除和恢复;
采用基于恢复贡献的激励策略对轻节点进行激励奖励;
根据节点的奖励值和存储能力调整节点所在的层级;
所述轻节点内部区块数据进行动态的删除的具体方法为:
轻节点执行冷热数据判别算法将区块划分为冷区块和热区块,针对冷区块采用遗忘方法进行删除,具体方法为:
步骤A1:轻节点执行冷热数据识别算法,区块高度位于[N,M]之间的区块为冷区块,该区间之外的为热区块;N为上一次遗忘过程冷数据块区间右端点的区块高度值,M为满足不等式M-N>=T的区块高度值,T为给定的阈值;
步骤A2:针对区块高度不处于[N,M]的区块执行步骤A3,区块高度处于区间内的区块执行步骤A4;
步骤A3:轻节点将热区块存储在联盟链数据库levelDB中,流程结束;
步骤A4:轻节点执行遗忘算法遗忘冷区块,流程结束;
所述轻节点内部区块数据进行恢复的方法为:
基于联盟链的冷热数据判别技术,判别联盟链上区块数据的访问频率,对于某一访问频率达到预设阈值的区块体进行恢复;
若某一数据相关区块体不在客户端访问请求的节点,且数据访问频率未达到预设阈值,由该节点向区块链网络中广播此请求,以获得该区块数据,再由该节点根据区块头数据验证其数据可靠性,将相关交易数据发送给客户端,同时帮助数据恢复及访问请求的节点获得相应激励;
若数据访问频率到达预设阈值,被访问节点在验证数据可靠性后执行恢复操作。
2.根据权利要求1所述的基于数据重分布和动态节点策略的区块链轻量存储方法,其特征在于:所述全节点层与轻节点层之间基于p2p进行通信,客户端与轻节点之间进行交易与区块数据的查询,随着联盟链系统中节点的不断增加,系统中轻节点的数量远大于全节点的数量;系统中节点所在的层级不固定,能够依据节点获得的激励值动态的调整节点所在的层级。
3.根据权利要求1所述的基于数据重分布和动态节点策略的区块链轻量存储方法,其特征在于:所述区块链轻量存储方法对各层级节点进行数据重分布时,全节点数量设有最低阈值,并随着系统规模和节点数量的不断扩大,全节点数量根据比例增加,以保证系统内部的查询效率。
4.根据权利要求1所述的基于数据重分布和动态节点策略的区块链轻量存储方法,其特征在于:所述划分节点层级架构中全节点为第0层级,其他轻节点位于其他低层级,低层级的层级数量根据节点规模动态调整。
5.根据权利要求4所述的基于数据重分布和动态节点策略的区块链轻量存储方法,其特征在于:所述轻节点内部区块数据进行恢复具体包括以下步骤:
步骤C1、客户端节点向联盟链系统某节点发送某个区块查询或某笔交易请求,系统调用RPC接口并初始化区块访问次数变量count;
步骤C2、RPC接口执行节点访问函数访问peer节点,受访问peer节点查找本地缓存,并且区块访问频数计数器count大小自增1;
步骤C3、受访问peer节点如果存在客户端节点所查找的数据,将数据响应给RPC接口,RPC接口将查找数据返回给客户端节点,否则,执行步骤C4;
步骤C4、受访问peer节点向联盟链网络广播目标数据请求,其他peer节点从联盟链系统中接收到数据请求消息,初始化节点激励值reword,其他peer节点存在数据块并将数据块返回给受访问peer节点;
步骤C5、受访问peer节点接收到其他peer节点的数据响应消息,并验证数据块的真实性,若数据块篡改则重新执行步骤C4,否则将数据块返回给RPC接口,RPC接口将数据块返回给客户端节点;
步骤C6、受访问peer节点判断频数变量count与阈值的大小关系,如果count大于等于阈值,受访问peer节点保存目标区块,执行数据恢复,帮助恢复的其他peer节点获得奖励,reword变量自增1,如果count小于阈值,则不恢复区块。
6.根据权利要求5所述的基于数据重分布和动态节点策略的区块链轻量存储方法,其特征在于:所述帮助数据恢复及访问请求的节点获得相应激励的具体方法为:
以恢复策略中使用Gossip向网络广播请求的方式开始竞赛,由响应速度最快的节点发出区块体数据,请求节点获得网络中其他轻节点保存的相关区块体信息,验证无误后由请求节点向联盟链系统申请激励,系统使用保存在智能合约容器的相关激励合约以发起一笔交易,向帮助恢复的节点发送一笔代币奖励,该代币奖励不用于市场流通,而是用于节点的层级升级。
7.根据权利要求6所述的基于数据重分布和动态节点策略的区块链轻量存储方法,其特征在于:所述根据节点的奖励值和存储能力调整节点所在的层级的具体方法为:
步骤S1:新节点加入区块链系统,系统为新节点分配层级,新节点根据自身存储能力同步链上区块数据;
步骤S2:联盟链系统中节点正常运行,若节点宕机执行步骤S3,若节点收到其他节点请求帮助执行步骤S4,若节点收到升级竞选通知执行骤S5;
步骤S3:宕机节点若为全节点,则节点所在层级下降,联盟链系统开放升级;节点等待恢复并同步链上数据,节点恢复正常,重新执行步骤S2;
步骤S4:节点收到其他节点帮助恢复数据请求,发出帮助恢复请求的节点成功恢复数据块,节点获得奖励,激励值reword自增1,执行步骤S2;否则直接执行步骤S2;
步骤S5:节点收到升级竞选通知,联盟链系统检查其存储能力和激励值,若激励值为本层最大值,节点所在层级上升,成功升级,重新执行步骤S2;否则升级失败,重新执行步骤S2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210449044.7A CN115037755B (zh) | 2022-04-27 | 2022-04-27 | 基于数据重分布和动态节点策略的区块链轻量存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210449044.7A CN115037755B (zh) | 2022-04-27 | 2022-04-27 | 基于数据重分布和动态节点策略的区块链轻量存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115037755A CN115037755A (zh) | 2022-09-09 |
CN115037755B true CN115037755B (zh) | 2023-04-07 |
Family
ID=83118601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210449044.7A Active CN115037755B (zh) | 2022-04-27 | 2022-04-27 | 基于数据重分布和动态节点策略的区块链轻量存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115037755B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934849B (zh) * | 2023-03-13 | 2023-05-30 | 安徽中科晶格技术有限公司 | 区块的工作量证明共识方法、装置、节点及存储介质 |
CN117478706B (zh) * | 2023-12-27 | 2024-03-08 | 西安捷成优禾智能科技有限公司 | 一种基于区块链的机加工平台数据共享系统 |
CN117806876A (zh) * | 2024-03-01 | 2024-04-02 | 北京邮电大学 | 一种海洋卫星物联网区块链轻量级存储、恢复方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165224A (zh) * | 2018-08-24 | 2019-01-08 | 东北大学 | 一种在区块链数据库上针对关键字key的索引方法 |
CN112199334A (zh) * | 2020-10-23 | 2021-01-08 | 东北大学 | 基于消息队列的数据流处理检查点文件存储的方法及装置 |
CN114003662A (zh) * | 2021-11-12 | 2022-02-01 | 国网河南省电力公司信息通信公司 | 基于缓存策略的区块链性能优化机制 |
CN114065283A (zh) * | 2020-11-20 | 2022-02-18 | 北京邮电大学 | 一种轻量级可循环再生的区块链存储方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870726A (zh) * | 2016-09-26 | 2018-04-03 | 北京优朋普乐科技有限公司 | 基于冗余机制的数据存储方法和装置、服务器 |
WO2019185710A1 (en) * | 2018-03-29 | 2019-10-03 | NEC Laboratories Europe GmbH | Method and system of preserving privacy for usage of lightweight blockchain clients |
CN109101664B (zh) * | 2018-09-18 | 2021-12-07 | 百度在线网络技术(北京)有限公司 | 一种轻量级节点的数据传输方法、装置、设备和介质 |
CN111723126B (zh) * | 2020-05-11 | 2022-09-02 | 杭州电子科技大学 | 基于区块链的冷热时序数据分类处理方法及存储系统 |
CN113824755A (zh) * | 2020-06-19 | 2021-12-21 | 华为技术有限公司 | 区块链数据处理的方法、系统及相关装置 |
CN113608670B (zh) * | 2021-05-25 | 2023-10-27 | 武汉理工大学 | 基于公平性和访问热度的区块链数据存储方法 |
CN113572618B (zh) * | 2021-08-10 | 2022-11-18 | 东北大学 | 结合Fabric和IPFS的去中心化存储系统及其数据存储方法 |
-
2022
- 2022-04-27 CN CN202210449044.7A patent/CN115037755B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165224A (zh) * | 2018-08-24 | 2019-01-08 | 东北大学 | 一种在区块链数据库上针对关键字key的索引方法 |
CN112199334A (zh) * | 2020-10-23 | 2021-01-08 | 东北大学 | 基于消息队列的数据流处理检查点文件存储的方法及装置 |
CN114065283A (zh) * | 2020-11-20 | 2022-02-18 | 北京邮电大学 | 一种轻量级可循环再生的区块链存储方法及装置 |
CN114003662A (zh) * | 2021-11-12 | 2022-02-01 | 国网河南省电力公司信息通信公司 | 基于缓存策略的区块链性能优化机制 |
Also Published As
Publication number | Publication date |
---|---|
CN115037755A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115037755B (zh) | 基于数据重分布和动态节点策略的区块链轻量存储方法 | |
US5423037A (en) | Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes | |
US20180308091A1 (en) | Fairness preserving byzantine agreements | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
Aiyer et al. | BAR fault tolerance for cooperative services | |
US5555404A (en) | Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas | |
CN100586058C (zh) | 基于j2ee中间件规范的容忍入侵应用服务器及容忍入侵方法 | |
AU2019323042C1 (en) | Consenus of shared blockchain data storage based on error correction code | |
CN109166037B (zh) | 区块链的共识方法 | |
AU2019321745B2 (en) | Prioritizing shared blockchain data storage | |
CN111373378B (zh) | 基于纠错码的共享区块链数据存储的数据安全性 | |
CN113419823B (zh) | 一种适用于高并发事务的联盟链系统及其设计方法 | |
CN103034739A (zh) | 一种分布式存储系统及其更新和查询方法 | |
CN112929186B (zh) | 一种基于通信模式结构的联盟链共识优化方法 | |
CN113553375A (zh) | 一种面向图式区块链的分片存储装置及方法 | |
CN113986143A (zh) | 一种面向区块链日志存储的高可靠低开销数据存储方法 | |
US6212595B1 (en) | Computer program product for fencing a member of a group of processes in a distributed processing environment | |
CN113873040B (zh) | 基于区块链的电力物联网跨域服务功能链编排方法 | |
Zhou et al. | Vg-raft: An improved byzantine fault tolerant algorithm based on raft algorithm | |
CN113923093A (zh) | 一种基于可信执行环境的新型拜占庭容错共识方法 | |
CN115689760B (zh) | 一种高并发电力交易的区块链分片共识方法、装置和设备 | |
Wels | Guaranteed-TX: The exploration of a guaranteed cross-shard transaction execution protocol for Ethereum 2.0. | |
CN115276999B (zh) | 一种基于信任模型的自适应切换高效容错共识方法 | |
CN114723444A (zh) | 一种用于并行投票共识的数据分片方法 | |
CN113518126A (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 |