一种基于区块链技术一致性算法的数据管理方法及系统与流程

文档序号:12751522阅读:393来源:国知局
一种基于区块链技术一致性算法的数据管理方法及系统与流程

本发明涉及区块链技术领域,具体涉及一种基于区块链技术一致性算法的数据管理方法及系统。



背景技术:

目前区块链常用于交易型数据的存储,其常用的一致性算法如工作量证明(POW)、股权证明(POS)、授权股权证明(DPOS)等均以交易型数据的应用场景来考虑,依据交易本身带有的货币价值属性,从中得到利益分成,使得整个系统持续正向的运行下去。但当区块链应用到非交易型数据中时,由于没有直接体现货币价值,以往的如工作量证明、股权证明、授权股权证明等常用的一致性算法由于不能直接按照之前的挖矿、交易分成等方式进行有效的货币激励,所以受到了局限,同时之前的交易分成的机制原理也成为了系统的冗余。



技术实现要素:

本发明提供了一种基于区块链技术一致性算法的数据管理方法及系统,对区块链中的区块进行有效性验证,构建了一套有效的正向激励措施。

本发明解决上述技术问题的技术方案如下:提供了一种基于区块链技术一致性算法的数据管理方法,包括:

S1,所有参与的服务器组成一个网络,每一个服务器作为网络中的一个节点,从网络中所有节点中确定一个作为维护节点,其它的作为普通节点;

S2,初始化区块链,每一个节点中均配置有该区块链,区块链中包含多个区块,每个区块中存储有一部分数据,整个区块链中存储有整套数据;

S3,维护节点从所有的节点中确定第一预定数量的节点作为网络中的代表节点,并配置所述代表节点产生区块的顺序和时间段;

S4,当代表节点中的一个节点产生新区块后,广播到全网中,当确定该新区块为有效时,全网中的节点根据该新区块,对初始区块链进行更新。

为了解决本发明的技术问题,还提供了一种基于区块链技术一致性算法的数据管理系统,包括多个服务器,所述多个服务器组成一个网络,每一个服务器作为网络中的一个节点,并从全网所有的节点中确定一个作为维护节点,其它的作为普通节点;

每一个节点中均包括:

初始化模块,用于初始化区块链,其中,每一个节点中均配置有该区块链,区块链中包含多个区块,每个区块中存储有一部分数据,整个区块链中存储有整套数据;

更新模块,用于当接收到代表节点中的一个节点广播的新区块,且该新区块为有效时,根据该新区块对初始区块链进行更新;

所述维护节点还包括:

代表节点确定模块,用于从所有的节点中确定第一预定数量的节点作为网络中的代表节点;

配置模块,用于配置所述代表节点产生区块的顺序和时间段。

本发明提供的一种基于区块链技术一致性算法的数据管理方法及系统,对网络中的节点产生的区块进行有效性验证,保证了数据的安全性,另外,为了提高全网区块链的整体效率,描述了一种可应用到区块链中的数据一致性算法规则:公益参与证明机制Participated proof of public good(PPOPG),其定义了一种网络中节点产生区块的规则,提高了区块链的整体效率,构建了有效的正向激励措施,保证整个网络系统良好运行。

附图说明

图1为实施例1的一种基于区块链技术一致性算法的数据管理方法流程图;

图2为实施例2的一种基于区块链技术一致性算法的数据管理系统框图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

实施例1、一种基于区块链技术一致性算法的数据管理方法。

参见图1,本实施例提供的基于区块链技术一致性算法的数据管理方法包括:

S1,所有参与的服务器组成一个网络,每一个服务器作为网络中的一个节点,从网络中所有节点中确定一个作为维护节点,其它的作为普通节点;

S2,初始化区块链,每一个节点中均配置有该区块链,区块链中包含多个区块,每个区块中存储有一部分数据,整个区块链中存储有整套数据;

S3,维护节点从所有的节点中确定第一预定数量的节点作为网络中的代表节点,并配置所述代表节点产生区块的顺序和时间段;

S4,当代表节点中的一个节点产生新区块后,广播到全网中,当确定该新区块为有效时,全网中的节点根据该新区块,对初始区块链进行更新。

下面对上述步骤进行具体介绍。

初始将所有参与其中的服务器组成一个网络,每一个服务器作为网络中的一个节点,并从网络的所有节点中确定一个作为维护节点,其它的节点作为普通节点,维护节点主要负责对全网中所有节点的管理和维护。

初始化区块链,网络中的每一个节点均配置有给初始化的区块链,区块链中包含有多个区块,每一个区块中存储有一部分数据,整个区块链中存储有整套数据。

对于整个网络中的所有节点,维护节点将所有的节点按照节点的运算能力、网络传输状况、节点服务器的稳定性和安全性作为考量进行综合排序,将排序靠前的第一预定数量的节点作为整个网络中的代表节点。需要说明的是,本实施例设置代表节点的淘汰机制,即全网的代表节点不是一成不变的,而是动态变化的。网络中的维护节点会定期对所有的节点进行按照上述的条件进行综合排序,并确定其中排序靠前的第一预定数量的节点作为全网中的代表节点。比如,维护节点会每隔一小时对全网中的1000个节点进行排序,确定排序靠前的100个节点作为全网中的代表节点,那么,基本上每隔一小时,网络中的代表节点是变化的,这样可以保证整个网络中的代表节点的性能比较好,保证整个网络的稳定性,也保证整个网络的合理去中心化。

当在某一时间段确定了网络中的代表节点后,维护节点配置这些代表节点产生区块的顺序和时间段。当代表节点中的一个节点产生新区块后,广播到全网中,当确定该新区块为有效时,全网中的节点根据该新区块,对初始区块链进行更新。确定新区块是否为有效的具体方法是:当在某一时刻某代表节点中的一个节点产生新区块后,广播到全网中,接收到该新区块的其它代表节点验证该新区块是否有效,比如,当前区块的产生者是否正确,包括产生该区块的节点是否为代表节点以及本时间段是否为该代表节点产生区块,区块本身的数据生成规则是否正确,包含数据的存储格式是否正确,加密验证规则是否正确,是否和上一个区块衔接正确。当验证有效时,代表节点存储该新区块;当其它代表节点中超过第二预定数量(通常为代表节点中的一半)的代表节点存储了该新区块后,该区块被确定为有效区块,全网中的节点均存储该新区块,对当前区块链进行更新。

此外,对于一定时间段通过综合排序确定的代表节点,也会定期进行优化,比如,当代表节点经常出现异常,如产生错误区块、产生的区块广播不及时、节点服务器经常掉线或者存储新区块不及时等情况,维护节点会剔除该代表节点,重新选拨新代表节点将其替代,通常是选择第一预定数量的后面一个节点代替该代表节点,使得网络中保持第一预定数量的代表节点。同时,维护节点发送报警信息给被代替的节点,提醒其自身进行优化。

本实施例为了激励网络中的每一个节点能够更好的参与网络,提升优化自身,计算全网中的每一个节点的贡献值,当节点的贡献值大时,能够促进节点的参与,当节点的贡献值小时,促进节点进行自身的提升优化。其中,计算全网的每一个节点的贡献值具体为:分别统计全网中每一个节点的在线时长,即节点加入网络的时刻到当前的总在线时长、该节点作为代表节点的在线时长,该节点被选为代表节点直至当次不再选为代表节点在线时长的总和、该节点产生的区块量,即节点作为代表节点时,产生的区块的总数量,以及该节点产生区块的数据量,节点作为代表节点时,产生的区块中存储数据的容量。

每一个节点的贡献值为:

节点贡献值=该节点在线时长/全网总时长*第一贡献系数+该节点作为代表节点的在线时长/全网总时长*第二贡献系数+该节点产生的区块量/区块链中区块的总量*第三贡献系数+该节点产生区块的数据量/区块链中存储数据的总容量*第四贡献系数。

通过上述方式将全网中的每一个节点的节点贡献值计算出来后,可促进各节点的积极参与以及对自身的优化提升。另外,对于整个区块链中的数据对应的数据提供者,为了激励个数据提供者更积极的参与数据的贡献,通过计算每一个数据提供者的贡献值。其中,区块链中的数据均对应有数据提供者的标识信息,根据数据提供者的标识信息,可以数据提供者为单位,将区块链中的数据进行划分,得到每一个数据提供者对应提供的数据以及这些数据存储于哪一个区块。其中,计算每一个数据提供者的贡献值的具体方法为:统计每一个数据提供者提供的有效样本数据数量以及在不同场景下每一个数据提供者提供的发挥实际作用的样本数量;

每一个数据提供者的贡献值为:

数据提供者的贡献值=数据提供者提供的有效样本数据数量/区块链中总的有效样本数量*第五贡献系数+在场景1下该数据提供者提供的发挥实际作用的样本数量/在场景1下区块链中发挥作用的样本总数量*场景1的贡献系数+在场景2下该数据提供者提供的发挥实际作用的样本数量/在场景2下区块链中发挥作用的样本总数量*场景2的贡献系数+…+在场景n下该数据提供者提供的发挥实际作用的样本数量/在场景n下区块链中发挥作用的样本总数量*场景n的贡献系数,其中,n为正整数。

上述的第一贡献系数、第二贡献系数、第三贡献系数、第四贡献系数和第五贡献系数,以及场景1下的贡献系数、场景2下的贡献系数直到场景n下的贡献系数可根据实际情况进行配置。

上述计算了每一个节点的贡献者以及每一个数据提供者的贡献值后,根据整个网络系统的总量化指标和网络中各节点的贡献值,计算得到每一个节点对应的量化指标;以及,根据整个网络系统的总量化指标和各数据提供者的贡献值,计算得到每一个数据提供者对应的量化指标。其中,网络系统的量化可以为社会投资回报率或者整个网络系统的效率。通过计算每一个节点或者数据提供者的量化指标,将所有节点、数据提供者对整个行业、社会的贡献进行量化,根据节点、数据提供者的“贡献值”进行排名,说明其在整体中作出的贡献大小,起到荣誉上的激励,促进节点及数据提供者的参与、自身优化的积极性,起到对节点和数据提供者正向激励的目的。

实施例2、一种基于区块链技术一致性算法的数据管理系统。

参见图2,本实施例提供的基于区块链技术一致性算法的数据管理系统包括多个服务器,所述多个服务器组成一个网络,每一个服务器作为网络中的一个节点,并从全网所有的节点中确定一个作为维护节点2,其它的作为普通节点1;

每一个节点中均包括:

初始化模块11,用于初始化区块链,其中,每一个节点中均配置有该区块链,区块链中包含多个区块,每个区块中存储有一部分数据,整个区块链中存储有整套数据;

更新模块12,用于当接收到代表节点中的一个节点广播的新区块,且该新区块为有效时,根据该新区块对初始区块链进行更新;

所述维护节点2还包括:

代表节点确定模块21,用于从所有的节点中确定第一预定数量的节点作为网络中的代表节点;

配置模块22,用于配置所述代表节点产生区块的顺序和时间段。

其中,所述代表节点确定模块21具体用于:

将全网中包括维护节点在内的所有节点按照运算能力、网络传输状况、服务器稳定性和安全性进行综合排序,将排序靠前的预定数量的节点作为网络中的代表节点。

所述代表节点确定模块21还用于:

定期对全网中所有的节点进行综合排序,并按照综合排序重新确定靠前的第一预定数量的节点作为网络中的代表节点。

在节点存储更新新区块时,对新区块的有效性验证具体为:当代表节点中的一个节点产生新区块后,广播到全网中,接收到该新区块的其它代表节点验证该新区块是否有效,当有效时,其它代表节点存储该新区块;

当其它代表节点中超过第二预定数量的代表节点存储了该新区块后,该区块被确定为有效区块,全网中的节点均存储该新区块,对当前区块链进行更新。

所述维护节点2还包括:

节点贡献值计算模块23,用于计算全网中的每一个节点的贡献值。计算全网中的每一个节点的贡献值具体为:分别统计全网中每一个节点的在线时长、该节点作为代表节点的在线时长、该节点产生的区块量以及该节点产生区块的数据量;

每一个节点的贡献值为:

节点贡献值=该节点在线时长/全网总时长*第一贡献系数+该节点作为代表节点的在线时长/全网总时长*第二贡献系数+该节点产生的区块量/区块链中区块的总量*第三贡献系数+该节点产生区块的数据量/区块链中存储数据的总容量*第四贡献系数。

以及维护节点2还包括数据提供者贡献值计算模块24,用于针对整个区块链中的数据对应的数据提供者,计算每一个数据提供者的贡献值。数据提供者计算每一个数据提供者的贡献值具体为:统计每一个数据提供者提供的有效样本数据数量以及在不同场景下每一个数据提供者提供的发挥实际作用的样本数量;

每一个数据提供者的贡献值为:

数据提供者的贡献值=数据提供者提供的有效样本数据数量/区块链中总的有效样本数量*第五贡献系数+在场景1下该数据提供者提供的发挥实际作用的样本数量/在场景1下区块链中发挥作用的样本总数量*场景1的贡献系数+在场景2下该数据提供者提供的发挥实际作用的样本数量/在场景2下区块链中发挥作用的样本总数量*场景2的贡献系数+…+在场景n下该数据提供者提供的发挥实际作用的样本数量/在场景n下区块链中发挥作用的样本总数量*场景n的贡献系数,其中,n为正整数。

另外,计算了每一个节点的贡献者以及每一个数据提供者的贡献值后,根据整个网络系统的总量化指标和网络中各节点的贡献值,计算得到每一个节点对应的量化指标;以及,根据整个网络系统的总量化指标和各数据提供者的贡献值,计算得到每一个数据提供者对应的量化指标。其中,网络系统的量化可以为社会投资回报率或者整个网络系统的效率。通过计算每一个节点或者数据提供者的量化指标,将所有节点、数据提供者对整个行业、社会的贡献进行量化,根据节点、数据提供者的“贡献值”进行排名,说明其在整体中作出的贡献大小,起到荣誉上的激励,促进节点及数据提供者的参与、自身优化的积极性,实现了区块链中数据的基于“公益参与证明机制(PPOPG,Participated proof of public good)”的一致性算法,特别适用于对非交易性数据的一致性算法。

本发明提供的一种基于区块链技术一致性算法的数据管理方法及系统,对网络中的节点产生的区块进行有效性验证,保证了整个区块链中数据的安全性;动态调整网络中的代表节点,实时优化整个网络系统,保证整个网络系统的稳定性以及合理的去中心化;另外,为了提高全网区块链的整体效率,描述了一种可应用到区块链中的数据一致性算法规则:公益参与证明机制Participated proof of public good(PPOPG),其定义了一种网络中节点产生区块的规则,提高了区块链的整体效率,构建了有效的正向激励措施,保证整个网络系统良好运行。

在本说明书的描述中,参考术语“实施例一”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体方法、装置或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、方法、装置或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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