一种基于区块链的节点隔离自恢复方法及装置与流程

文档序号:15845436发布日期:2018-11-07 08:57阅读:318来源:国知局
一种基于区块链的节点隔离自恢复方法及装置与流程

本公开涉及区块链技术领域,具体涉及一种基于区块链的节点隔离自恢复方法及装置。

背景技术

区块链网络是一种开放的、不受限制的网络,各区块链节点对整个网络的了解是十分有限的,每个区块链节点只需维护邻居节点的信息,并进行实时更新,就可以保证整个网络正常运行。目前,针对区块链网络的sybil攻击、日蚀攻击(eclipseattack)、ddos(distributeddenialofservice,分布式拒绝服务)攻击等的相关研究在国际国内获得了广泛关注。sybil攻击通过向区块链网络中引入多个恶意构造的节点来达到控制整个层叠网络的目的,它可以被用于监控发布和搜索流量、隔离特定共享内容等;日蚀攻击的目的是将若干个目标节点从区块链网络中隔离出去,劫持其通信信息,控制其网络行为。ddos攻击的目标是单个区块链网络节点,占用甚至耗尽其资源(如cpu、带宽等),使其不能正常提供服务。目前暂无相关的同类技术以防止该类问题的发生。

区块链网络中出现的问题主要是文件同步更新写入的性能比较低下,同时对区块中的节点出现问题的时候缺乏有效的发现和隔离机制后在区块链的节点恢复的时候将隔离后恢复了的区块链节点自动加入到整体的区块链网络中之中。



技术实现要素:

本公开提供一种基于区块链的节点隔离自恢复方法及装置,当区块链网络中的一个故障或者恶意节点失效或共识被隔离后时,监控隔离的恶意节点的同步情况恢复情况,节点恢复为正常节点后,将原来的节点恢复到原区块链网络中。

为了实现上述目的,根据本公开的一方面,提供一种基于区块链的节点隔离自恢复方法,所述方法包括以下步骤:

步骤1,读取区块链网络中各区块链节点的工作量证明数据;

步骤2,根据工作量证明数据计算节点的工作量阈值;

步骤3,根据工作量阈值运行隔离恶意节点机制将恶意节点映射到代价最小节点;

步骤4,监测已隔离的恶意节点的工作量证明数据;

步骤5,当恶意节点工作量证明数据大于工作量阈值时将恶意节点标记为已恢复节点;

步骤6,重新启用已恢复节点的数据同步队列;

步骤7,恢复已恢复节点的同步连接。

进一步地,在步骤1中,所述区块链网络为多个区块链节点构成的网状拓扑结构,每个区块链节点都有唯一的节点id编号、数据同步队列、虚拟同步序列,所述数据同步队列用于按照同步发生时间的顺序将数据同步请求排队依次进行数据同步,同步序列队列中的元素为数据同步请求,执行数据同步队列中的数据同步请求时区块链节点的数据进行同步更新,所述虚拟同步序列用于在恶意节点被隔离时按照顺序计算工作量但并不实际的同步数据到恶意节点中,即只进行数据同步时间的更新,每个区块链节点至少有一个相邻的节点,所述各区块链节点通过有线网络、无线网络任意一种互相连接并进行通信。

进一步地,在步骤1中,所述工作量证明数据包括区块链节点的数据同步总时间的十进制形式经过sha256哈希运算的递增值字符串,sha256哈希运算的方法为:将十进制数x看作十三进制,再按照十三进制数以转换基数转换成十进制数,提取其中若干为作为x的哈希值,所述转换基数为大于原来基数的数,并且两个基数应该是互素的,所述数据同步总时间的十进制形式,例如数据同步总时间为80127429秒,则十进制形式为(80127429)10。

例如:

hash(80127429)=(80127429)13=8*137+0*136+1*135+2*134+7*133+4*132+2*131+9=(502432641)10,如果取中间三位作为哈希值,得hash(80127429)=432。

进一步地,在步骤2中,所述根据工作量证明数据计算节点的工作量阈值的方法为:工作量阈值为计算节点工作量证明数据与相邻节点工作量证明数据总和的加权几何平均数。

进一步地,在步骤3中,根据工作量阈值运行隔离恶意节点机制将恶意节点映射到代价最小节点的方法为:

步骤3.1,如果节点的工作量证明数据小于节点的工作量阈值则将节点标记为恶意节点;

步骤3.2,恶意节点发送同步数据包请求给区块链中所有的节点;

步骤3.3,各区块链节点接收到同步数据包请求后返回应答数据包到恶意节点;

步骤3.4,恶意节点接收应答数据包,应答响应时间最短的节点为代价最小节点;

步骤3.5,将恶意节点断开连接,将与恶意节点断开的连接重新连接至代价最小节点;

步骤3.6,将恶意节点的数据同步队列中的数据同步请求按照原队列的顺序依次添加到代价最小节点的数据同步队列中;

步骤3.7,清空并停用恶意节点的数据同步队列;

步骤3.8,将代价最小节点的数据同步队列中的数据同步请求添加到恶意节点的虚拟同步序列中;

步骤3.9,代价最小节点的数据同步队列与恶意节点的虚拟同步序列同步更新数据同步请求;

所述应答数据包至少包括应答节点id编号、应答响应时间。

进一步地,在步骤4中,恶意节点的工作量证明数据由虚拟同步序列的数据同步请求进行更新,但是并不进行实际的数据同步更新。

进一步地,在步骤6中,重新启用已恢复节点的数据同步队列的方法为:

步骤6.1,清空已恢复节点的虚拟同步序列;

步骤6.2,重新启用已恢复节点的数据同步队列。

进一步地,在步骤7中,恢复已恢复节点的同步连接的方法为:将已恢复节点已断开的连接重新恢复,并将与已重新连接至代价最小节点的连接重新与已恢复节点进行连接。

本发明还提供了一种基于区块链的节点隔离自恢复装置,所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:

工作量读取单元,用于读取区块链网络中各区块链节点的工作量证明数据;

阈值计算单元,用于根据工作量证明数据计算节点的工作量阈值;

节点隔离单元,用于根据工作量阈值运行隔离恶意节点机制将恶意节点映射到代价最小节点;

监测恢复单元,用于监测已隔离的恶意节点的工作量证明数据;

恢复标记单元,用于当恶意节点工作量证明数据大于工作量阈值时将恶意节点标记为已恢复节点;

同步重启单元,用于重新启用已恢复节点的数据同步队列;

连接恢复单元,用于恢复已恢复节点的同步连接。

本公开的有益效果为:本发明提供一种基于区块链的节点隔离自恢复方法及装置,当区块链网络中的一个故障或者恶意节点失效或共识被隔离后时,监控隔离的恶意节点的同步情况恢复情况,节点恢复为正常节点后,将原来的节点恢复到原区块链网络中,使得区块链系统具有自动恢复的能力,在保证整个区块链系统业务正常的情况下,能够自动将已经恢复的故障区块节点,加入到原区块链网络中继续服务,大大的提升了区块链系统的业务可持续能力。

附图说明

通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:

图1所示为一种基于区块链的节点隔离自恢复方法的流程图;

图2所示为一种基于区块链的节点隔离自恢复装置图。

具体实施方式

以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

如图1所示为根据本公开的一种基于区块链的节点隔离自恢复方法的流程图,下面结合图1来阐述根据本公开的实施方式的一种基于区块链的节点隔离自恢复方法。

本公开提出一种基于区块链的节点隔离自恢复方法,具体包括以下步骤:

步骤1,读取区块链网络中各区块链节点的工作量证明数据;

步骤2,根据工作量证明数据计算节点的工作量阈值;

步骤3,根据工作量阈值运行隔离恶意节点机制将恶意节点映射到代价最小节点;

步骤4,监测已隔离的恶意节点的工作量证明数据;

步骤5,当恶意节点工作量证明数据大于工作量阈值时将恶意节点标记为已恢复节点;

步骤6,重新启用已恢复节点的数据同步队列;

步骤7,恢复已恢复节点的同步连接。

进一步地,在步骤1中,所述区块链网络为多个区块链节点构成的网状拓扑结构,每个区块链节点都有唯一的节点id编号、数据同步队列、虚拟同步序列,所述数据同步队列用于按照同步发生时间的顺序将数据同步请求排队依次进行数据同步,同步序列队列中的元素为数据同步请求,执行数据同步队列中的数据同步请求时区块链节点的数据进行同步更新,所述虚拟同步序列用于在恶意节点被隔离时按照顺序计算工作量但并不实际的同步数据到恶意节点中,即只进行数据同步时间的更新,每个区块链节点至少有一个相邻的节点,所述各区块链节点通过有线网络、无线网络任意一种互相连接并进行通信。

进一步地,在步骤1中,所述工作量证明数据包括区块链节点的数据同步总时间的十进制形式经过sha256哈希运算的递增值字符串,sha256哈希运算的方法为:将十进制数x看作十三进制,再按照十三进制数以转换基数转换成十进制数,提取其中若干为作为x的哈希值,所述转换基数为大于原来基数的数,并且两个基数应该是互素的,所述数据同步总时间的十进制形式,例如数据同步总时间为80127429秒,则十进制形式为(80127429)10。

例如:

hash(80127429)=(80127429)13=8*137+0*136+1*135+2*134+7*133+4*132+2*131+9=(502432641)10,如果取中间三位作为哈希值,得hash(80127429)=432。

进一步地,在步骤2中,所述根据工作量证明数据计算节点的工作量阈值的方法为:工作量阈值为计算节点工作量证明数据与相邻节点工作量证明数据总和的加权几何平均数。

进一步地,在步骤3中,根据工作量阈值运行隔离恶意节点机制将恶意节点映射到代价最小节点的方法为:

步骤3.1,如果节点的工作量证明数据小于节点的工作量阈值则将节点标记为恶意节点;

步骤3.2,恶意节点发送同步数据包请求给区块链中所有的节点;

步骤3.3,各区块链节点接收到同步数据包请求后返回应答数据包到恶意节点;

步骤3.4,恶意节点接收应答数据包,应答响应时间最短的节点为代价最小节点;

步骤3.5,将恶意节点断开连接,将与恶意节点断开的连接重新连接至代价最小节点;

步骤3.6,将恶意节点的数据同步队列中的数据同步请求按照原队列的顺序依次添加到代价最小节点的数据同步队列中;

步骤3.7,清空并停用恶意节点的数据同步队列;

步骤3.8,将代价最小节点的数据同步队列中的数据同步请求添加到恶意节点的虚拟同步序列中;

步骤3.9,代价最小节点的数据同步队列与恶意节点的虚拟同步序列同步更新数据同步请求;

所述应答数据包至少包括应答节点id编号、应答响应时间。

进一步地,在步骤4中,恶意节点的工作量证明数据由虚拟同步序列的数据同步请求进行更新,但是并不进行实际的数据同步更新。

进一步地,在步骤6中,重新启用已恢复节点的数据同步队列的方法为:

步骤6.1,清空已恢复节点的虚拟同步序列;

步骤6.2,重新启用已恢复节点的数据同步队列。

进一步地,在步骤7中,恢复已恢复节点的同步连接的方法为:将已恢复节点已断开的连接重新恢复,并将与已重新连接至代价最小节点的连接重新与已恢复节点进行连接。

本公开的实施例提供的一种基于区块链的节点隔离自恢复装置,如图2所示为本公开的一种基于区块链的节点隔离自恢复装置图,该实施例的一种基于区块链的节点隔离自恢复装置包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种基于区块链的节点隔离自恢复装置实施例中的步骤。

所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:

工作量读取单元,用于读取区块链网络中各区块链节点的工作量证明数据;

阈值计算单元,用于根据工作量证明数据计算节点的工作量阈值;

节点隔离单元,用于根据工作量阈值运行隔离恶意节点机制将恶意节点映射到代价最小节点;

监测恢复单元,用于监测已隔离的恶意节点的工作量证明数据;

恢复标记单元,用于当恶意节点工作量证明数据大于工作量阈值时将恶意节点标记为已恢复节点;

同步重启单元,用于重新启用已恢复节点的数据同步队列;

连接恢复单元,用于恢复已恢复节点的同步连接。

所述一种基于区块链的节点隔离自恢复装置可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种基于区块链的节点隔离自恢复装置,可运行的装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种基于区块链的节点隔离自恢复装置的示例,并不构成对一种基于区块链的节点隔离自恢复装置的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种基于区块链的节点隔离自恢复装置还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种基于区块链的节点隔离自恢复装置运行装置的控制中心,利用各种接口和线路连接整个一种基于区块链的节点隔离自恢复装置可运行装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种基于区块链的节点隔离自恢复装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1