基于区块链的自动拨测方法、装置、设备和存储介质与流程

文档序号:18009229发布日期:2019-06-25 23:47阅读:155来源:国知局
基于区块链的自动拨测方法、装置、设备和存储介质与流程

本发明涉及拨测技术领域,尤其涉及一种基于区块链的自动拨测方法、装置、设备和存储介质。



背景技术:

随着信息化的推进,互联网在人们的生活中占据着越来越重要的地位。互联网上的各种网站每时每刻都在为来自世界各地的用户服务,因此网站的稳定性非常重要。鉴于互联网的特性,网站的服务器一般都是由定制化的计算机集群组成,因此每台计算机的稳定性都对整个集群的稳定性产生影响。为了及时发现提供服务的计算机是否有死机、服务不可用等现象,需要由拨测系统对计算机集群进行拨测。当前现有的拨测系统均为中心化系统,拨测节点均是传统部署方式,拨测节点间没有信息同步和传递,且拨测节点对于网络整体拨测业务贡献依靠中心化记录方式,在分配拨测任务时,容易产生争议。



技术实现要素:

有鉴于此,有必要针对传统拨测系统中的拨测节点间没有信息同步和传递,容易产生争议的问题,提供一种基于区块链的自动拨测方法、装置、设备和存储介质。

一种基于区块链的自动拨测方法,包括:

通过共识机制在区块链网络中筛选出预设个数的拨测节点,所述拨测节点按照预设的时间表获得轮流记账权利;

当获得获得轮流记账权利后,从所述区块链网络中读取智能合约预设的拨测算法及拨测任务,通过所述拨测算法执行所述拨测任务,得到拨测结果;

将所述拨测结果生成拨测区块,并在所述区块链网络中进行上链,形成新的区块链。

一种可能的设计中,所述通过共识机制在区块链网络中筛选出预设个数的拨测节点,所述拨测节点按照预设的时间表获得轮流记账权利,包括:

采集自身节点的节点资源信息,所述节点资源信息包括网络连通性、cpu空闲率和内存空闲率,将所述节点资源信息广播到所述区块链网络中的其他节点;

获得所述区块链网络中多个节点的节点资源信息后,将网络连通性中的网络连接速度、cpu空闲率和内存空闲率相加,得到每个节点的节点资源值,对多个节点的节点资源值从高到底排序,筛选出节点资源值最高的多个节点;

通过所述区块链网络的共识机制,自动投票给筛选出的多个节点,通过共识机制记录所述区块链网络中所有节点的投票数,将得票数最高的预设个数节点定义为拨测节点。

一种可能的设计中,所述对多个节点的节点资源值从高到底排序,筛选出节点资源值最高的多个节点,包括:

在筛选所述节点资源值最高的多个节点时,若存在至少两个节点的节点资源值相同,则获取每个节点的节点稳定性,并从区块链列表中获取每个节点的拨测任务次数、执行质量分数,计算每个节点的节点贡献度,第i个节点的节点贡献度zi公式为:

zi=ai*a+bi*b+ci*c

a+b+c=100%

其中,ai为第i个节点的拨测任务次数,bi为第i个节点的执行质量分数,ci为第i个节点的节点稳定性,a、b和c为百分比系数;

在至少两个节点中筛选出所述节点贡献度最高的多个节点;

若至少两个节点的节点贡献度相同时,则筛选出广播在前的节点。

一种可能的设计中,当获得获得轮流记账权利后,从所述区块链网络中读取智能合约预设的拨测算法及拨测任务,通过所述拨测算法执行所述拨测任务,得到拨测结果前,包括:

通过预设的拨测维护界面,获取用户上传的拨测算法和拨测任务,将所述拨测算法和所述拨测任务存储在所述区块链网络的智能合约中;

通过预设的拨测维护界面,获取用户查询的拨测算法或拨测任务,将所述拨测算法或拨测任务通过拨测维护界面进行展示;

通过预设的拨测维护界面,获取用户修改的拨测算法或拨测任务,将所述拨测算法或拨测任务更新至所述区块链网络的智能合约中。

一种可能的设计中,当获得获得轮流记账权利后,从所述区块链网络中读取智能合约预设的拨测算法及拨测任务,通过所述拨测算法执行所述拨测任务,得到拨测结果,包括:

当获得获得轮流记账权利后,从所述区块链网络中读取智能合约预设的拨测算法及拨测任务;

将所述拨测算法与自身节点的智能合约中存储的拨测算法进行比较,若不同,则将所述拨测算法替换自身节点存储的拨测算法;

调用自身节点存储的拨测算法,执行所述拨测任务,得到拨测结果。

一种可能的设计中,所述将所述拨测结果生成拨测区块,并在所述区块链网络中进行上链,形成新的区块链,包括:

将所述拨测结果生成拨测区块后,在所述区块链网络中进行广播,通过其他节点对所述拨测区块进行一致性验证,当所述拨测区块通过m个其他节点的验证,定义为所述拨测区块在所述区块链网络中完成上链,形成新的区块链。

一种可能的设计中,所述通过其他节点对所述拨测区块进行一致性验证,当所述拨测区块通过验证,包括:

接收到广播后,根据共识机制中获得轮流记账权利拨测节点的排列顺序,判断广播所述拨测区块的节点是否与排列顺序一致,若不一致则定义为验证不通过,结束验证,若一致则继续进行验证;

获取所述拨测区块的区块体中的数据信息、所述区块头中的哈希值,对所述数据信息根据哈希值算法,得到验证值;

将所述验证值与所述哈希值进行对比,判断是否相同,若不同则验证不通过,结束验证,若相同则对区块头中的哈希值进行签名后,继续广播给所述区块链网络中的其他节点。

一种基于区块链的自动拨测装置,包括:

筛选拨测节点模块,用于通过共识机制在区块链网络中筛选出预设个数的拨测节点,所述拨测节点按照预设的时间表获得轮流记账权利;

执行拨测任务模块,用于当获得获得轮流记账权利后,从所述区块链网络中读取智能合约预设的拨测算法及拨测任务,通过所述拨测算法执行所述拨测任务,得到拨测结果;

生成拨测区块模块,用于将所述拨测结果生成拨测区块,并在所述区块链网络中进行上链,形成新的区块链。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述基于区块链的自动拨测方法的步骤。

一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述基于区块链的自动拨测方法的步骤。

上述基于区块链的自动拨测方法、装置、计算机设备和存储介质,包括通过共识机制在区块链网络中筛选出预设个数的拨测节点,所述拨测节点按照预设的时间表获得轮流记账权利;当获得获得轮流记账权利后,从所述区块链网络中读取智能合约预设的拨测算法及拨测任务,通过所述拨测算法执行所述拨测任务,得到拨测结果;将所述拨测结果生成拨测区块,并在所述区块链网络中进行上链,形成新的区块链。本发明引入去中心化的区块链网络,基于区块链去中心化的优势,依托区块链的时间戳及不可篡改等特性进行拨测节点竞争选举、拨测算法同步,实现公平公开的执行拨测任务。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。

图1为本发明一个实施例中的基于区块链的自动拨测方法的流程图;

图2为一个实施例中步骤s1的一种流程图;

图3为一个实施例中步骤s102节点筛选方法的一种流程图;

图4为一个实施例中步骤s3一致性验证的一种流程图;

图5为本发明一个实施例中基于区块链的自动拨测装置的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

图1为本发明一个实施例中的基于区块链的自动拨测方法的流程图,如图1所示,一种基于区块链的自动拨测方法,包括以下步骤:

步骤s1,筛选拨测节点:通过共识机制在区块链网络中筛选出预设个数的拨测节点,拨测节点按照预设的时间表获得轮流记账权利。

区块链网络是一种基于区块链技术的系统,也被称为分布式账本技术,是一种互联网数据库技术。其特点是去中心化、公开透明,让每个用户均可参与维护数据库记录。区块链网络是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链网络主要包括数据层、智能合约层等,其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法,而底层数据区块以链式结构呈现,即区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则、条款或算法。

任一参与拨测的终端都可以在区块链网络中注册成为节点,通过区块链网络的共识机制,共同参与本步骤中对拨测节点的筛选。筛选出的拨测节点获得轮流记账权利,此记账即为获得并执行拨测任务的过程。

在一个实施例中,步骤s1,如图2所示,包括:

步骤s101,采集并广播信息:采集自身节点的节点资源信息,节点资源信息包括网络连通性、cpu空闲率和内存空闲率,将节点资源信息广播到区块链网络中的其他节点。

在采集节点资源信息时,可以通过hook机制监听自身节点的网络连通性、cpu空闲率和内存空闲率,得到节点资源信息。其中对网络连通性的采集主要采集自身节点的网络连接速度。

将节点资源信息广播到区块链网络中的其他节点时,启动共识orderer节点,通过orderer节点与多个对等网络peer节点建立连接,将节点资源信息广播至peer节点,并将节点资源信息存储在peer节点中。

步骤s102,筛选多个节点:获得区块链网络中多个节点的节点资源信息后,将网络连通性中的网络连接速度、cpu空闲率和内存空闲率相加,得到每个节点的节点资源值,对多个节点的节点资源值从高到底排序,筛选出节点资源值最高的多个节点。

区块链网络中的任一节点不仅将自身节点的节点资源信息广播至其他节点,还接收其他节点广播的节点资源信息,接收到一定数量节点的节点资源信息后,例如,当区块链网络中90%的节点广播的节点资源信息后,对节点资源信息进行处理,得到每个节点的节点资源值。本步骤在对节点资源信息进行统一处理前,无需接收全部节点广播的节点资源信息。在筛选节点资源最高的多个节点时,可以根据区块链网络中的节点个数,筛选一定比例的多个节点。例如,当区块链网络中含有1000个节点时,筛选出100个节点资源值最高的节点。

在进行节点筛选时,若存在多个节点具有相同节点资源值时,例如,筛选出的节点o、节点p和节点q分别为第99、100和101个节点具有相同节点资源值时,在一个实施例中,如图3所示,采用如下筛选方法:

步骤s10201,计算节点贡献度:在筛选节点资源值最高的多个节点时,若存在至少两个节点的节点资源值相同,则获取每个节点的节点稳定性,并从区块链列表中获取每个节点的拨测任务次数、执行质量分数,计算每个节点的节点贡献度,第i个节点的节点贡献度zi公式为:

zi=ai*a+bi*b+ci*c

a+b+c=100%

其中,ai为第i个节点的拨测任务次数,bj为第i个节点的执行质量分数,ci为第i个节点的节点稳定性,a、b和c为百分比系数。

本步骤中节点稳定性是指连接节点网络的稳定性,通过固定频次连接节点,监控延时时间,将延时时间的倒数定义为节点稳定性参数。

在区块链网络中注册的每个节点都预设有区块链列表,此区块链列表按区块上链顺序存储有每个已上链的拨测区块的拨测节点、拨测区块的哈希值等信息。在区块链列表中,任一拨测节点含有对应一个拨测区块,记为对应拨测次数加一,至此从区块链列表中查找出节点资源值最高的多个节点中每个节点的拨测次数。根据拨测区块的哈希值获取拨测区块的区块体中的拨测结果,在拨测结果中含有一项状态参数,为好或坏,读取此状态参数,若为好,则质量值加一,从区块链列表中查找出节点资源值最高的多个节点中每个节点的质量值,将每个节点质量值除以拨测次数得到每个节点的执行质量分数。

在节点贡献度zi公式中,系数a、b和c可以分别取值为10%、50%和40%。

步骤s10202,按节点贡献度筛选节点:在至少两个节点中筛选出节点贡献度最高的多个节点。

在得到多个节点的节点贡献度后,对节点贡献度从高到低进行排序,筛选出节点贡献度最高的节点。例如,节点o、节点p和节点q分别为第99、100和101个节点且具有相同节点资源值时,计算这三个节点的节点贡献度,并进行排序后,按节点贡献度排序从高到底得到节点q、节点o、节点p。由于需要筛选100个节点,因此将节点q、节点o筛选出来,舍弃节点p。

步骤s10203,按广播在前筛选节点:若至少两个节点的节点贡献度相同时,则筛选出广播在前的节点。

当步骤步骤s10202按节点贡献度筛选节点时,存在两个节点的节点贡献度相同时,例如节点q的节点贡献度最高,而节点o、节点p的节点贡献度相同,需要在两个节点中筛选出其中一个节点,此时,筛选出接收到两个节点中广播在前的节点。

本实施例分别通过节点资源信息、节点贡献度和广播时间三层参数递进式对多个节点进行筛选,筛选出区块链网络中相对空闲的、执行拨测质量较高的、运行速度较快的多个节点。

步骤s103,筛选拨测节点:通过区块链网络的共识机制,自动投票给筛选出的多个节点,通过共识机制记录区块链网络中所有节点的投票数,将得票数最高的预设个数节点定义为拨测节点。

在区块链网络中的每个节点都具有投票的权利,且都通过共识机制自动进行投票工作,通过共识机制记录每个节点获得的投票数,对投票数最高的预设个数节点作为拨测节点。例如,对投票数最高的100个节点定义为拨测节点。

本步骤的共识机制采用dpos共识机制,通过dpos共识机制选出预设个数的节点。dpos共识机制是一种股份授权证明机制,其原理是通过不同的策略,不定时的选中一小群节点,被选中的这一小群节点做新区块的创建、验证、签名和相互监督,大幅度的减少了区块创建和确认所需要消耗的时间和算力成本。

本实施例通过共识机制,采用多层递进的方式,在区块链网络中筛选出一批相对空闲的、执行拨测质量较高的、运行速度较快的多个节点作为拨测节点,执行后续的拨测任务。

步骤s2,执行拨测任务:当获得获得轮流记账权利后,从区块链网络中读取智能合约预设的拨测算法及拨测任务,通过拨测算法执行拨测任务,得到拨测结果。

在区块链网络中具有智能合约层,智能合约层的智能合约中含有若干拨测算法和对应的拨测任务。本步骤中的拨测算法和拨测任务如:拨测任务为校验一个域名是否可用,而域名对应有很多个机房,拨测节点需要通过拨测算法计算出离自己最近的机房信息,请求该机房进行测试。具体的拨测算法比如通过获取拨测节点的ip分析出节点位置,扫描机房信息,计算出哪个机房的ip的位置离拨测节点最近,则定义为需要执行拨测任务的机房。

在一个实施例中,步骤s2前,包括:通过预设的拨测维护界面,获取用户上传的拨测算法和拨测任务,将拨测算法和拨测任务存储在区块链网络的智能合约中;通过预设的拨测维护界面,获取用户查询的拨测算法或拨测任务,将拨测算法或拨测任务通过拨测维护界面进行展示;通过预设的拨测维护界面,获取用户修改的拨测算法或拨测任务,将拨测算法或拨测任务更新至区块链网络的智能合约中。

本实施例的主体是具有维护智能合约权限的节点,普通节能无此维护权限。当需要升级或修改拨测算法时,通过本实施例对智能合约中的拨测算法和拨测任务,根据需求进行增加、修改和删除。

在一个实施例中,步骤s2,包括:当获得获得轮流记账权利后,从区块链网络中读取智能合约预设的拨测算法及拨测任务;将拨测算法与自身节点的智能合约中存储的拨测算法进行比较,若不同,则将拨测算法替换自身节点存储的拨测算法;调用自身节点存储的拨测算法,执行拨测任务,得到拨测结果。

任一节点在获得轮流记账权利后,为了与区块链网络的智能合约中的拨测算法同步,在进行拨测任务前,从区块链网络中读取智能合约中的拨测算法及拨测任务,与自身智能合约中存储的拨测算法进行比较和同步后,再执行拨测任务,保证每次执行的拨测算法和拨测任务是最新的。

为了同步区块链网络中直接升级或修改的智能合约,本实施例在进行拨测任务前,还进行智能合约的同步工作,实现拨测算法的维护,维护拨测算法和拨测任务简单方便,克服了传统拨测节点需要一个个手动升级拨测算法,维护困难的问题。

步骤s3,生成拨测区块:将拨测结果生成拨测区块,并在区块链网络中进行上链,形成新的区块链。

在拨测节点完成拨测任务后,还对拨测结果生成拨测区块,共享于区块链网络中,供其他节点共享拨测结果。

在一个实施例中,步骤s3,包括:将拨测结果生成拨测区块后,在区块链网络中进行广播,通过其他节点对拨测区块进行一致性验证,当拨测区块通过m个其他节点的验证,定义为拨测区块在区块链网络中完成上链,形成新的区块链。其中,一致性验证,如图4所示,采用如下方式:

步骤s301,第一次验证:接收到广播后,根据共识机制中获得轮流记账权利拨测节点的排列顺序,判断广播拨测区块的节点是否与排列顺序一致,若不一致则定义为验证不通过,结束验证,若一致则继续进行验证。

区块链中任一节点在接收到广播后进行一致性验证。为了减少验证所需要消耗的时间和算力成本,优选拨测节点对拨测区块进行一致性验证,拨测节点不仅将生成的拨测区块进行广播,等待其他节点的一致性验证,还对其他节点广播的拨测区块进行一致性验证。节点在接收广播时,通过peer节点接收区块链网络中的其他节点广播的拨测区块。由于步骤s1中确定了获得轮流记账权利的拨测节点,因此第一次验证是节点根据共识机制中拨测节点的排列顺序,判断每次出块的拨测区块顺序是否一致,从而保证一致性。

步骤s302,第二次验证:获取拨测区块的区块体中的数据信息、区块头中的哈希值,对数据信息根据哈希值算法,得到验证值,将验证值与哈希值进行对比,判断是否相同,若不同则验证不通过,结束验证,若相同则对区块头中的哈希值进行签名后,继续广播给区块链网络中的其他节点。

本步骤的数据信息即为拨测结果,本步骤用于验证拨测区块本身的数据是否被篡改。当验证值与哈希值相同时,认为拨测结果没有被篡改。

当拨测区块通过m个其他节点的验证,完成上链,还对完成上链的拨测区块进行同步更新,区块链网络中的所有节点对自身的区块链列表中进行更新:读取拨测区块中的前一区块的哈希值、当前区块的哈希值,与自身节点中的区块链列表进行比较,当区块链列表的链尾是前一区块的哈希值时,将当前区块的哈希值、对应的拨测节点一起添加入区块链列表中,将拨测区块区块定义为链尾区块,实现了区块链网络中数据的同步。

当预设个数的拨测节点均完成拨测任务后,触发智能合约,重新进行步骤s1筛选拨测节点。

本实施例基于区块链的自动拨测方法,拨测节点通过资源竞争方式获取节点权利,对每个节点均地位平等,不容产生争议;拨测算法通过智能合约同步,便于更新拨测算法;对拨测结果进行记账上链,保证账本的透明性和各节点的公平性,且账本不可篡改,可追溯。本实施例,通过引入区块链技术的去中心化和不可篡改的优势,增加拨测节点加盟的积极性、透明性,构建了更加公平的拨测网络。

在一个实施例中,提出了一种基于区块链的自动拨测装置,如图5所示,包括如下模块:

筛选拨测节点模块,用于通过共识机制在区块链网络中筛选出预设个数的拨测节点,拨测节点按照预设的时间表获得轮流记账权利;

执行拨测任务模块,用于当获得获得轮流记账权利后,从区块链网络中读取智能合约预设的拨测算法及拨测任务,通过拨测算法执行拨测任务,得到拨测结果;

生成拨测区块模块,用于将拨测结果生成拨测区块,并在区块链网络中进行上链,形成新的区块链。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行计算机可读指令时实现上述各实施例的基于区块链的自动拨测方法中的步骤。

在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例的基于区块链的自动拨测方法中的步骤。其中,存储介质可以为非易失性存储介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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