首页 / 专利库 / 电信 / 输出节点 / 基于区块链的数据处理方法、装置、终端及介质

基于链的数据处理方法、装置、终端及介质

阅读:1029发布:2020-06-24

专利汇可以提供基于链的数据处理方法、装置、终端及介质专利检索,专利查询,专利分析的服务。并且本 发明 实施例 公开了一种基于 区 块 链 的 数据处理 方法、装置、终端及介质,所述方法包括:获取基于 智能合约 生成的数据获取 请求 ,根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合;若参考数据集合中的各个参考数据之间的相似度大于预设相似度,则从各个参考数据中选取出一个参考数据作为所述目标数据;将目标数据应用于所述智能合约中。通过实施上述方法,可以使得智能合约直接从 节点 中获取到数据,从而简化共识校验过程,提升智能合约获取数据的效率。,下面是基于链的数据处理方法、装置、终端及介质专利的具体信息内容。

1.一种基于链的数据处理方法,应用于区块链网络中,所述方法由所述区块链网络中的第一节点执行,所述区块链网络中部署有智能合约,其特征在于,所述方法包括:
获取基于所述智能合约生成的数据获取请求,所述数据获取请求用于获取满足预设需求的目标数据,所述数据获取请求包含数据源对象,各个数据源对象用于提供参考数据;
根据所述数据获取请求从所述各个数据源对象中获取到参考数据,得到参考数据集合;
若所述参考数据集合中的各个参考数据之间的相似度大于预设相似度,则从所述各个参考数据中选取出一个参考数据作为所述目标数据;
将所述目标数据应用于所述智能合约中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据获取请求从所述各个数据源对象中获取到参考数据,得到参考数据集合之后,所述方法还包括:
确定所述参考数据集合中相同的参考数据对应的第一数量以及所述参考数据集合中所有的参考数据对应的第二数量;
将所述第一数量与所述第二数量之间的比值确定所述参考数据集合中的各个参考数据之间的相似度。
3.根据权利要求1所述的方法,其特征在于,所述从所述各个参考数据中选取出一个参考数据作为所述目标数据,包括:
从所述参考数据集合中的确定出相同的M个参考数据,所述M为正整数;
将所述M个参考数据中任意一个参考数据确定为所述目标数据。
4.根据权利要求1所述的方法,其特征在于,所述数据源对象包括应用程序,所述根据所述数据获取请求从所述各个数据源对象中获取到参考数据,得到参考数据集合,包括:
检测所述第一节点是否具有针对所述数据获取请求中的各个应用程序的访问权限;
若是,则执行根据所述数据获取请求从所述各个数据源对象中获取到参考数据的步骤。
5.根据权利要求1所述的方法,其特征在于,所述第一节点中预先部署有预言机合约,所述预言机合约中包括数据获取代码,所述根据所述数据获取请求从所述各个数据源对象中获取到参考数据,得到参考数据集合,包括:
将所述各个数据源对象的信息以参数的形式加入至所述数据获取代码中,得到目标数据获取代码;
执行所述预言机合约中的目标数据获取代码,向所述各个数据源对象发送所述数据获取请求;
接收所述各个数据源对象返回的参考数据,得到参考数据集合。
6.根据权利要求1所述的方法,其特征在于,所述每个参考数据携带有签名信息,所述根据所述数据获取请求从所述各个数据源对象中获取到参考数据,得到参考数据集合之后,所述方法还包括:
校验所述参考数据集合中的各个参考数据携带的签名信息是否存在于预置数据库中,所述预置数据库中预先存储了合法的签名信息集;
若是,则执行所述若所述参考数据集合中的各个参考数据之间的相似度大于预设相似度,则从所述各个参考数据中选取出一个参考数据作为所述目标数据的步骤。
7.根据权利要求1所述的方法,其特征在于,所述将所述目标数据应用于所述智能合约中之后,所述方法还包括:
向所述区块链网络中的至少一个第二节点广播所述目标数据,以使得所述至少一个第二节点对所述目标数据进行共识校验;
若所述区块链网络中的至少一个第二节点对所述目标数据校验通过,则将所述目标数据打包成区块,并将所述区块加入至所述区块链网络中。
8.一种基于区块链的数据处理装置,其特征在于,所述方法由所述区块链网络中任意一个第一节点执行,所述区块链网络中部署有智能合约,所述装置包括:
获取模块,用于获取基于所述智能合约生成的数据获取请求,所述数据获取请求用于获取满足预设需求的目标数据,所述数据获取请求包含数据源对象,各个数据源对象用于提供参考数据;
所述获取模块,还用于根据所述数据获取请求从所述各个数据源对象中获取到参考数据,得到参考数据集合;
选取模块,用于若所述参考数据集合中的各个参考数据之间的相似度大于预设相似度,则从所述各个参考数据中选取出一个参考数据作为所述目标数据;
应用模块,用于将所述目标数据应用于所述智能合约中。
9.一种终端,其特征在于,包括处理器、输入接口、输出接口和存储器,所述处理器、输入接口、输出接口和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。

说明书全文

基于链的数据处理方法、装置、终端及介质

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法、装置、终端及介质。

背景技术

[0002] 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用本质上是一个去中心化的数据库,也即是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次的交易信息,用于验证交易信息的有效性和生成下一个区块。然而区块链是一个封闭的环境,链上是无法主动获取链外真实世界的数据。主要是因为区块链无法主动发起网络调用,而链上智能合约是被动接收数据的。其次,智能合约其实并不“智能”,它只是在满足相应条件下,才达到触发状态的程序。而智能合约需要获取到外部数据才能判断当前是否满足相应条件。
[0003] 现有的智能合约需要获取数据时,需要向部署于区块链网络中的预言机合约发送获取请求,预言机合约拿到智能合约发送的访问请求后,去外网获取数据,再将数据上传至区块链网络中,使得智能合约再从区块链中拿到数据,因需要多个共识节点的参与才能完成上链操作,造成智能合约获取数据的效率较低。

发明内容

[0004] 本发明实施例提供了一种基于区块链的数据处理方法、装置、终端及介质,可以使得智能合约直接从节点中获取到数据,从而简化共识校验过程,提升智能合约获取数据的效率。
[0005] 第一方面,本发明实施例提供了一种基于区块链的数据处理方法,所述方法由所述区块链网络中任意一个第一节点执行,所述区块链网络中部署有智能合约,所述方法包括:
[0006] 获取基于所述智能合约生成的数据获取请求,所述数据获取请求用于获取满足预设需求的目标数据,所述数据获取请求包含数据源对象,各个数据源对象用于提供参考数据;
[0007] 根据所述数据获取请求从所述各个数据源对象中获取到参考数据,得到参考数据集合;
[0008] 若所述参考数据集合中的各个参考数据之间的相似度大于预设相似度,则从所述各个参考数据中选取出一个参考数据作为所述目标数据;
[0009] 将所述目标数据应用于所述智能合约中。
[0010] 第二方面,本发明实施例提供了一种基于区块链的数据处理装置,所述装置包括:
[0011] 获取模块,用于获取基于所述智能合约生成的数据获取请求,所述数据获取请求用于获取满足预设需求的目标数据,所述数据获取请求包含数据源对象,各个数据源对象用于提供参考数据;
[0012] 所述获取模块,还用于根据所述数据获取请求从所述各个数据源对象中获取到参考数据,得到参考数据集合;
[0013] 选取模块,用于若所述参考数据集合中的各个参考数据之间的相似度大于预设相似度,则从所述各个参考数据中选取出一个参考数据作为所述目标数据;
[0014] 应用模块,用于将所述目标数据应用于所述智能合约中。
[0015] 第三方面,本发明实施例提供了一种终端,包括处理器、输入接口、输出接口和存储器,所述处理器、输入接口、输出接口和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行第一方面所述的方法。
[0016] 第四方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行第一方面所述的方法。
[0017] 本发明实施例中,第一节点获取基于智能合约生成的数据获取请求,并根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合;若参考数据集合中的各个参考数据之间的相似度大于预设相似度,则第一节点从各个参考数据中选取出一个参考数据作为目标数据,并将目标数据应用于所述智能合约中。通过实施上述方法,区块链网络中的节点可以直接返回智能合约需要的数据,而无需将数据上链,从而简化共识校验过程,提升智能合约获取数据的效率。附图说明
[0018] 为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019] 图1是本发明实施例提供的一种基于区块链的数据处理方法的流程示意图;
[0020] 图2是本发明实施例提供的另一种基于区块链的数据处理方法的流程示意图;
[0021] 图3是本发明实施例提供的一种共识校验流程示意图;
[0022] 图4是本发明实施例提供的一种区块链网络的结构示意图;
[0023] 图5是本发明实施例提供的一种区块链的结构示意图;
[0024] 图6是本发明实施例提供的一种基于区块链的数据处理装置的结构示意图;
[0025] 图7是本发明实施例提供的一种终端的结构示意图。

具体实施方式

[0026] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0027] 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用本质上是一个去中心化的数据库,也即是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次的交易信息,用于验证交易信息的有效性和生成下一个区块。然而区块链是一个封闭的环境,链上是无法主动获取链外真实世界的数据。主要是因为区块链无法主动发起网络调用,而链上智能合约是被动接收数据的。其次,智能合约其实并不“智能”,它只是在满足相应条件下,才达到触发状态的程序。而智能合约需要获取到外部数据才能判断当前是否满足相应条件。
[0028] 现有的智能合约需要获取数据时,需要向部署于区块链网络中的预言机合约发送获取请求,预言机合约拿到智能合约发送的访问请求后,去外网获取数据,再将数据上传至区块链网络中,使得智能合约再从区块链中拿到数据,因需要多个共识节点的参与才能完成上链操作,造成智能合约获取数据的效率较低。例如,智能合约中的具体设置而为,当温度为20度时,A向B转账100元,则智能合约只有在检测到温度为20度时才会执行合约,因此,智能合约需要向预言机合约发送数据获取请求,预言机合约获取到温度数据后,将数据发送至区块链网络中的各个节点进行共识校验,并在校验通过后将温度数据上传至区块链网络,使得智能合约获取到温度数据。上述过程需要各个共识节点的参与,且智能节约需要数据上链之后才能获取到数据,数据获取的效率较低。
[0029] 基于上述描述,本发明实施例提供一种基于区块链的数据处理方法,该数据处理方法主要基于区块链技术实现,其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用本质上是一个去中心化的数据库,也即是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次的交易信息,用于验证交易信息的有效性和生成下一个区块。区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等。其具体实现步骤可以包括,第一节点获取基于智能合约生成的数据获取请求,并根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合;若参考数据集合中的各个参考数据之间的相似度大于预设相似度,则第一节点从各个参考数据中选取出一个参考数据作为目标数据,并将目标数据应用于所述智能合约中。其中,第一节点可以为区块链网络中的任意一个节点,具体可以为一个终端,通过实施上述方法,第一节点可以直接返回智能合约需要的数据,而无需将数据上链,从而简化共识校验过程,提升智能合约获取数据的效率。
[0030] 综上可知,采用上述基于区块链的数据处理方法,在智能合约需要获取数据时,第一节点直接在外部获取到相应的数据,并基于不同数据源获取的数据的相似性来判断获取到的数据是否为可靠数据,在确定获取到可靠数据后直接将数据返回给智能合约,使得智能合约基于接收到的数据确定是否满足触发条件。通过实施上述方法,节点可以直接对获取到的数据进行校验,并在校验通过后将数据发送至智能合约,简化了其他节点对数据进行共识校验的过程,提升了智能合约获取数据的效率。
[0031] 本发明实施例提供了一种基于区块链的数据处理方法,请参见图1,该基于区块链的数据处理过程可包括以下步骤S101-S104:
[0032] S101、第一节点获取基于智能合约生成的数据获取请求。
[0033] 本发明实施例中,第一节点可以为区块链网络中的任意一个节点,具体可以为一个终端,包括手机、电脑、平板电脑等,区块链网络中部署有智能合约,数据获取请求用于获取满足预设需求的目标数据,预设需求可以为温度值需求、球赛进行时间节点需求等,具体可以由用户预先设置,目标数据即为满足该预设需求的数据,如温度值,球赛进行时间节点等,数据获取请求包含数据源对象,各个数据源对象用于提供参考数据,数据源对象可以为各类应用程序,如天气应用程序、球赛转播应用程序,每个数据源对象的后台服务器可以存储了相应的参考数据,具体实现中,数据获取请求中的数据源对象可以包括多个同类型的应用程序,每个数据源对象都各自可以提供相应的满足该预设需求的参考数据,不同数据源对象存储的满足该预设需求的参考数据可以相同或不同,如针对温度值需求,第一数据源对象提供的温度值为20度,第二数据源对象提供的温度值为19度,第三数据源对象提供的温度值为20度。
[0034] 具体的,用户在设置智能合约时,可以在智能合约中设置合约触发条件,合约触发条件可以为温度为20度、球赛进行到第4节等,智能合约在检测到满足上述触发条件时,才会执行智能合约对应的任务,任务可以为A向B转账100元,B向A发送货物等。然而,智能合约需要获取到外部的目标数据(如当前温度或球赛进行状况)才能判断当前是否满足合约触发条件,因此,需要基于智能合约生成数据获取请求,并由区块链中的第一节点获取到该数据获取请求。
[0035] 具体实现中,本发明实施例提供的区块链网络中的每个节点都可以部署有预言机合约,用于获取基于智能合约生成的数据获取请求,第一节点获取基于智能合约生成的数据获取请求的具体方式可以为,区块链网络定时基于智能合约生成数据获取请求,并将该数据获取请求发送至第一节点的预言机合约中,以使得第一节点定时获取到基于智能合约生成的数据获取请求,或者,区块链网络也可以在检测到触发事件时,基于智能合约生成数据获取请求,并将该数据获取请求发送至第一节点的预言机合约中,其中,触发事件可以为区块链网络的节点之间发生了交易、网络中的节点新增或退出等,具体可以有用户预先在区块链网络中的智能合约中设置。或者,也可以预先在区块链网络中设置多个用于数据获取的数据获取节点,数据获取节点定时从区块链网络中去获取基于智能合约生成的数据获取请求,第一节点为该数据获取节点中的任意一个节点。
[0036] S102、第一节点根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合。
[0037] 本发明实施例中,第一节点获取到基于智能合约生成的数据获取请求之后,将根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合。例如,数据获取请求用于获取当前室外温度值,数据源对象包括第一天气应用程序、第二天气应用程序和第三天气应用程序,第一节点可以从第一天气应用程序中获取到当前室外温度值为第一温度值,从第二天气应用程序中获取到当前室外温度值为第二温度值,以及从第三天气应用程序中获取到当前室外温度值为第三温度值,第一节点将第一温度值、第二温度值和第三温度值确定为参考数据,并将上述3个参考数据确定为参考数据集合。
[0038] 在一种实现方式中,第一节点中预先部署有预言机合约,预言机合约中包括数据获取代码,第一节点根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合的具体方式可以为,第一节点将各个数据源对象的信息以参数的形式加入至数据获取代码中,得到目标数据获取代码;第一节点执行预言机合约中的目标数据获取代码,以向各个数据源对象发送数据获取请求;并接收各个数据源对象返回的参考数据,得到参考数据集合。其中,数据源对象的信息可以为数据源对象的名称或访问地址等,即第一节点具体以其部署的预言机合约获取到对应的参考数据。
[0039] S103、若参考数据集合中的各个参考数据之间的相似度大于预设相似度,则第一节点从各个参考数据中选取出一个参考数据作为目标数据。
[0040] 本发明实施例中,第一节点从各个数据源对象中获取到参考数据,得到参考数据集合之后,将计算参考数据集合中各个参考数据之间的相似度。
[0041] 具体实现中,参考数据集合中各个参考数据之间的相似度的具体计算方式可以为,第一节点确定参考数据集合中相同的参考数据对应的第一数量以及参考数据集合中所有的参考数据对应的第二数量;并将第一数量与第二数量之间的比值确定参考数据集合中的各个参考数据之间的相似度。需要说明的是,上述相同的参考数据具体可以为参考数据集合中的众数数据,即出现频数最高的参考数据,例如,参考数据集合中包含了5个数据源对象返回的温度值,包括“20、20、20、20、20”,则确定相同的参考数据对应的第一数量为5,所有参考数据对应的第二数量为5,第一数量与第二数量之间的比值为100%。则第一节点确定参考数据集合中各个参考数据之间的相似度为100%,又如,参考数据集合中包含了5个数据源对象返回的温度值,包括“20、20、19、20、20”,则确定相同的参考数据对应的第一数量为4,所有参考数据对应的第二数量为5,第一数量与第二数量之间的比值为80%。则第一节点确定参考数据集合中各个参考数据之间的相似度为80%。
[0042] 进一步的,若参考数据集合中的各个参考数据之间的相似度大于预设相似度,则第一节点从各个参考数据中选取出一个参考数据作为目标数据。
[0043] 具体的,第一节点从各个参考数据中选取出一个参考数据作为目标数据的具体方式可以为,第一节点从参考数据集合中的确定出相同的M个参考数据,并将M个参考数据中任意一个参考数据确定为目标数据,M为正整数,该相同的M个参考数据具体可以为出现频数最高的M个参考数据。例如,参考数据集合中包含了5个数据源对象返回的温度值,包括“20、20、19、20、20”,则第一节点确定参考数据集合中各个参考数据之间的相似度为80%,预设相似度为70%,则第一节点确定各个参考数据之间的相似度大于预设相似度,相同的参考数据为“20”,则第一节点可以将“20”确定为目标数据。
[0044] 在一种实现方式中,上述步骤具体可以由部署于第一节点中的预言机合约进行执行,如在预言机合约中预先设置相似度判断条件,以及目标数据选取方式,使得预言机合约从各个参考数据中选取出一个参考数据作为目标数据。
[0045] S104、第一节点将目标数据应用于智能合约中。
[0046] 本发明实施例中,第一节点确定目标数据之后,可以直接将该目标数据返回至智能合约中,使得智能合约对该目标数据进行应用,即根据目标数据判断当前是否满足任务触发条件。具体的,第一节点可以通过部署于第一节点中的预言机合约向智能合约返回至智能合约之中。通过上述方式,节点可以基于从不同数据源获取到的数据的相似度判定数据的可靠性,若多个数据源返回的数据的相似度足够高,则可以将数据直接应用于区块链中的智能合约中,而无需发送至其他节点进行共识校验,简化了数据校验的过程,提升了智能合约获取数据的效率。
[0047] 本发明实施例中,第一节点获取基于智能合约生成的数据获取请求,并根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合;若参考数据集合中的各个参考数据之间的相似度大于预设相似度,则第一节点从各个参考数据中选取出一个参考数据作为目标数据,并将所述目标数据应用于所述智能合约中。通过实施上述方法,节点可以直接返回智能合约需要的数据,而无需将数据上链,从而简化共识校验过程,提升智能合约获取数据的效率。
[0048] 本发明实施例提供了一种基于区块链的数据处理方法,请参见图2,该基于区块链的数据处理过程可包括以下步骤S201-S208:
[0049] S201、第一节点获取基于智能合约生成的数据获取请求。
[0050] 本发明实施例中,第一节点可以为区块链网络中的任意一个节点,具体可以为一个终端,包括手机、电脑、平板电脑等,区块链网络中部署有智能合约,数据获取请求用于获取满足预设需求的目标数据,数据获取请求包含数据源对象,各个数据源对象用于提供参考数据,各个数据源对象具体可以为各个应用程序,具体的,第一节点可以通过配置于第一节点中的预言机合约定时从区块链网络中获取到基于智能合约生成的数据获取请求,用户可以预先在预言机合约中配置定时获取的间隔时长。
[0051] S202、第一节点根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合。
[0052] 本发明实施例中,各个数据源对象具体可以为各个应用程序,第一节点获取基于智能合约生成的数据获取请求之后,可以检测自身是否具有针对数据获取请求中的各个应用程序的访问权限,若存在不具备访问权限的目标应用程序,则第一节点向区块链网络反馈自身不具备访问上述目标应用程序的权限,即无法获取到目标应用程序提供的参考数据,在上述情形下,区块链网络可以自动对基于智能合约生成的数据获取请求进行修改,即将上述目标应用程序从数据获取请求包含数据源对象中进行剔除,并重新向该第一节点发送新的数据获取请求,该新的数据获取请求中不包括该目标应用程序,以使得第一节点根据新的数据获取请求从各个数据源对象中获取到参考数据,或者,第一节点将数据获取请求发送至区块链网络中具备该目标应用程序的访问权限的其他节点,以使得其他节点从目标应用程序中获取到参考数据,第一节点从其他节点处获取到目标应用程序提供的参考数据。
[0053] 若第一节点具有针对数据获取请求中的各个应用程序的访问权限,则第一节点将根据数据获取请求从各个应用程序中获取到参考数据,得到参考数据集合。具体的,第一节点向各个应用程序发送访问请求,并接收各个应用程序返回的参考数据。在一种实现方式中,第一节点中预先部署有预言机合约,预言机合约中包括数据获取代码,第一节点根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合的具体方式可以为,第一节点将各个应用程序的访问地址以参数的形式加入至数据获取代码中,得到目标数据获取代码;第一节点执行预言机合约中的目标数据获取代码,以向各个数据源对象发送数据获取请求;并接收各个数据源对象返回的参考数据,得到参考数据集合。
[0054] S203、第一节点校验参考数据集中的各个参考数据携带的签名信息是否存在于预置数据库中。
[0055] 本发明实施例中,参考数据集合中的每个参考数据还携带有签名信息,第一节点根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合之后,将检测参考数据集合中的各个参考数据中携带的签名信息是否存在于预置数据库中,其中,预置数据库中预先存储了合法的签名信息集,合法的签名信息集中包括了多个合法的签名信息。即第一节点获取到各个参考数据之后,将检测各个参考数据的来源的合法性,具体可以通过对参考数据中携带的签名信息进行验证,若参考数据携带的签名信息存储于预置数据库中,则确定该参考数据具有合法性,可以使用,并执行步骤S204,若参考数据携带的标签信息未存储于预置数据库中,则第一节点可以对该参考数据进行舍弃。签名信息具体可以为数字密钥、指纹密码等,具体不做限定。通过上述方式,可以检测到参考数据来源的合法性,避免获取到来自非法数据源对象的信息。具体的,第一节点可以采用部署于第一节点中的预言机合约执行上述步骤。
[0056] S204、第一节点计算参考数据集合中的各个参考数据之间的相似度。
[0057] 本发明实施例中,第一节点确定获取到的各个参考数据为合法的数据之后,将计算参考数据集合中的各个参考数据之间的相似度。
[0058] 具体实现中,参考数据集合中各个参考数据之间的相似度的具体计算方式可以为,第一节点确定参考数据集合中相同的参考数据对应的第一数量以及参考数据集合中所有的参考数据对应的第二数量;并将第一数量与第二数量之间的比值确定参考数据集合中的各个参考数据之间的相似度。需要说明的是,上述相同的参考数据具体可以为参考数据集合中的众数数据,即出现频数最高的参考数据。例如,参考数据集合中包含了5个数据源对象返回的温度值,包括“20、20、18、18、20”,则确定出现频数最高的参考数据(即相同的参考数据)为“20”,并确定相同的参考数据对应的第一数量为3,所有参考数据对应的第二数量为5,第一数量与第二数量之间的比值为60%。
[0059] S205、若参考数据集合中的各个参考数据之间的相似度大于预设相似度,则第一节点从各个参考数据中选取出一个参考数据作为目标数据。
[0060] 本发明实施例中,若参考数据集合中的各个参考数据之间的相似度大于预设相似度,则第一节点从各个参考数据中选取出一个参考数据作为目标数据。具体的,第一节点从各个参考数据中选取出一个参考数据作为目标数据的具体方式可以为,第一节点从参考数据集合中的确定出相同的M个参考数据,并将M个参考数据中任意一个参考数据确定为目标数据,M为正整数,该相同的M个参考数据具体可以为出现频数最高的M个参考数据。
[0061] S206、第一节点将目标数据应用于智能合约中。
[0062] 本发明实施例中,第一节点确定目标数据之后,可以直接将该目标数据返回至智能合约中,使得智能合约对该目标数据进行应用,即根据目标数据判断当前是否满足任务触发条件。具体的,第一节点可以通过部署于第一节点中的预言机合约向智能合约返回至智能合约之中。
[0063] S207、第一节点向区块链网络中的至少一个第二节点广播所述目标数据,以使得至少一个第二节点对所述目标数据进行共识校验。
[0064] 本发明实施例中,第一节点将目标数据应用于智能合约中之后,智能合约将判断目标数据是否满足合约触发条件,其中,智能合约中预先设置有合约触发条件,合约触发条件可以为温度为20度、球赛进行到第4节等,智能合约在检测到满足上述触发条件时,才会执行智能合约对应的任务,任务可以为A向B转账100元,B向A发送货物等。进一步的,当智能合约确定目标数据满足任务触发条件时,将触发第一节点向区块链网络中的至少一个第二节点广播目标数据以及智能合约执行的任务,以使得区块链网络中的至少一个第二节点对目标数据进行共识校验。具体的,至少一个第二节点对目标数据进行共识校验的过程可以为,各个第二节点也从数据源对象中获取第二参考数据,并检测基于第二参考数据得到的第二目标数据是否与第一节点广播的目标数据相同,若相同,则确定对于目标数据的校验结果为校验通过,并执行步骤S208,如图3所示,第二节点包括节点1、节点2、节点3和节点4,数据获取请求携带的数据源对象包括数据源对象1、数据源对象2、数据源对象3和数据源对象4,节点1、节点2、节点3和节点4可以从各个数据源对象中获取到相应的参考数据,以完成对目标数据的共识校验。
[0065] S208、若区块链网络中的至少一个第二节点对目标数据校验通过,则第一节点将目标数据打包成区块,并将区块加入至所述区块链网络中。
[0066] 本发明实施实例中,若区块链网络中的至少一个第二节点对目标数据校验通过,则第一节点将目标数据打包成区块,并将区块加入至区块链网络中。通过上述方式,智能合约在使用外部获取到的目标数据之后,再对外部数据进行上链,提升了智能合约获取数据的效率,并且,至少一个第二节点基于从数据源对象中获取到的数据对目标数据进行共识校验,也简化了共识校验的过程,提升了数据上链的效率。
[0067] 本发明实施例中,第一节点获取基于智能合约生成的数据获取请求,并根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合;若参考数据集合中的各个参考数据之间的相似度大于预设相似度,则第一节点从各个参考数据中选取出一个参考数据作为目标数据,并将所述目标数据应用于所述智能合约中,智能合约在使用外部获取到的目标数据之后,再对外部数据进行上链,提升了智能合约获取数据的效率,并且,至少一个第二节点基于从数据源对象中获取到的数据对目标数据进行共识校验,也简化了共识校验的过程,提升了数据上链的效率。
[0068] 如图4所示,为本发明实施例提供的区块链网络,参见图4所示的区块链网络,区块链网络是指用于进行节点与节点之间数据共享的系统,该区块链网络中可以包括多个节点401,多个节点401可以是指区块链网络中各个终端。每个节点在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该区块链网络内的共享数据。为了保证区块链网络内的信息互通,区块链网络中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当区块链网络中的任意节点接收到输入信息时,区块链网络中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链网络中全部节点上存储的数据均一致。
[0069] 对于区块链网络中的每个节点,均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有区块链网络中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链网络中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
[0070]节点名称 节点标识
节点1 117.114.151.174
节点2 117.116.189.145
… …
节点N 119.123.789.258
[0071] 区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图5,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息的版本号、上一区块哈希值和Merkle根节点,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的版本号、上一区块哈希值和Merkle根节点,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。具体实现中,每个区块中可以保存了各个节点上传的收入信息。
[0072] 在生成区块链中的各个区块时,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
[0073] SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))阈值,该特征值阈值可以根据nbits确定得到。
[0075] 这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据区块链网络中其他节点的节点标识,将新生成的区块分别发送给其所在的区块链网络中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
[0076] 基于上述基于区块链的数据处理方法实施例的描述,本发明实施例还公开了一种基于区块链的数据处理装置,该基于区块链的数据处理装置可以是运行于终端中的一个计算机程序(包括程序代码),也可以是包含在终端中的一个实体装置。该基于区块链的数据处理装置可以执行图1或图2所示的方法。请参见图6,该基于区块链的数据处理装置60包括:获取模块601、选取模块602、应用模块603、确定模块604、检测模块605、上传模块606。
[0077] 获取模块601,用于获取基于所述智能合约生成的数据获取请求,所述数据获取请求用于获取满足预设需求的目标数据,所述数据获取请求包含数据源对象,各个数据源对象用于提供参考数据;
[0078] 所述获取模块601,还用于根据所述数据获取请求从所述各个数据源对象中获取到参考数据,得到参考数据集合;
[0079] 选取模块602,用于若所述参考数据集合中的各个参考数据之间的相似度大于预设相似度,则从所述各个参考数据中选取出一个参考数据作为所述目标数据;
[0080] 应用模块603,用于将所述目标数据应用于所述智能合约中。
[0081] 在一种实现方式中,确定模块604,具体用于:
[0082] 确定所述参考数据集合中相同的参考数据对应的第一数量以及所述参考数据集合中所有的参考数据对应的第二数量;
[0083] 将所述第一数量与所述第二数量之间的比值确定所述参考数据集合中的各个参考数据之间的相似度。
[0084] 在一种实现方式中,选取模块602,具体用于:
[0085] 从所述参考数据集合中的确定出相同的M个参考数据,所述M为正整数;
[0086] 将所述M个参考数据中任意一个参考数据确定为所述目标数据。
[0087] 在一种实现方式中,所述数据源对象包括应用程序,检测模块605,具体用于:
[0088] 检测所述第一节点是否具有针对所述数据获取请求中的各个应用程序的访问权限;
[0089] 若是,则执行根据所述数据获取请求从所述各个数据源对象中获取到参考数据的步骤。
[0090] 在一种实现方式中,所述第一节点中预先部署有预言机合约,所述预言机合约中包括数据获取代码,获取模块601,具体用于:
[0091] 将所述各个数据源对象的信息以参数的形式加入至所述数据获取代码中,得到目标数据获取代码;
[0092] 执行所述预言机合约中的目标数据获取代码,向所述各个数据源对象发送所述数据获取请求;
[0093] 接收所述各个数据源对象返回的参考数据,得到参考数据集合。
[0094] 在一种实现方式中,所述每个参考数据携带有签名信息,检测模块605,具体用于:
[0095] 校验所述参考数据集合中的各个参考数据携带的签名信息是否存在于预置数据库中,所述预置数据库中预先存储了合法的签名信息集;
[0096] 若是,则执行所述若所述参考数据集合中的各个参考数据之间的相似度大于预设相似度,则从所述各个参考数据中选取出一个参考数据作为所述目标数据的步骤。
[0097] 在一种实现方式中,所述每个参考数据携带有签名信息,上传模块606,具体用于:
[0098] 向所述区块链网络中的至少一个第二节点广播所述目标数据,以使得所述至少一个第二节点对所述目标数据进行共识校验;
[0099] 若所述区块链网络中的至少一个第二节点对所述目标数据校验通过,则将所述目标数据打包成区块,并将所述区块加入至所述区块链网络中。
[0100] 本发明实施例中,获取模块601获取基于智能合约生成的数据获取请求,并根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合;若参考数据集合中的各个参考数据之间的相似度大于预设相似度,则选取模块602从各个参考数据中选取出一个参考数据作为目标数据,应用模块603将目标数据应用于所述智能合约中。通过实施上述方法,区块链网络中的节点可以直接返回智能合约需要的数据,而无需将数据上链,从而简化共识校验过程,提升智能合约获取数据的效率。
[0101] 请参见图7,为本发明实施例提供的一种终端的结构示意图。如图7所示,该终端包括:至少一个处理器701,输入设备703,输出设备704,存储器705,至少一个通信总线702。其中,通信总线702用于实现这些组件之间的连接通信。其中,存储器705可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器705可选的还可以是至少一个位于远离前述处理器701的存储装置。其中处理器701可以结合图6所描述的装置,存储器705中存储一组程序代码,且处理器701,输入设备703,输出设备704调用存储器705中存储的程序代码,用于执行以下操作:
[0102] 处理器701,用于获取基于所述智能合约生成的数据获取请求,所述数据获取请求用于获取满足预设需求的目标数据,所述数据获取请求包含数据源对象,各个数据源对象用于提供参考数据;
[0103] 处理器701,用于根据所述数据获取请求从所述各个数据源对象中获取到参考数据,得到参考数据集合;
[0104] 处理器701,用于若所述参考数据集合中的各个参考数据之间的相似度大于预设相似度,则从所述各个参考数据中选取出一个参考数据作为所述目标数据;
[0105] 处理器701,用于将所述目标数据应用于所述智能合约中。
[0106] 在一种实现方式中,处理器701,具体用于:
[0107] 确定所述参考数据集合中相同的参考数据对应的第一数量以及所述参考数据集合中所有的参考数据对应的第二数量;
[0108] 将所述第一数量与所述第二数量之间的比值确定所述参考数据集合中的各个参考数据之间的相似度。
[0109] 在一种实现方式中,处理器701,具体用于:
[0110] 从所述参考数据集合中的确定出相同的M个参考数据,所述M为正整数;
[0111] 将所述M个参考数据中任意一个参考数据确定为所述目标数据。
[0112] 在一种实现方式中,所述数据源对象包括应用程序,处理器701,具体用于:
[0113] 检测所述第一节点是否具有针对所述数据获取请求中的各个应用程序的访问权限;
[0114] 若是,则执行根据所述数据获取请求从所述各个数据源对象中获取到参考数据的步骤。
[0115] 在一种实现方式中,所述第一节点中预先部署有预言机合约,所述预言机合约中包括数据获取代码,处理器701,具体用于:
[0116] 将所述各个数据源对象的信息以参数的形式加入至所述数据获取代码中,得到目标数据获取代码;
[0117] 执行所述预言机合约中的目标数据获取代码,向所述各个数据源对象发送所述数据获取请求;
[0118] 接收所述各个数据源对象返回的参考数据,得到参考数据集合。
[0119] 在一种实现方式中,所述每个参考数据携带有签名信息,处理器701,具体用于:
[0120] 校验所述参考数据集合中的各个参考数据携带的签名信息是否存在于预置数据库中,所述预置数据库中预先存储了合法的签名信息集;
[0121] 若是,则执行所述若所述参考数据集合中的各个参考数据之间的相似度大于预设相似度,则从所述各个参考数据中选取出一个参考数据作为所述目标数据的步骤。
[0122] 在一种实现方式中,所述每个参考数据携带有签名信息,处理器701,具体用于:
[0123] 向所述区块链网络中的至少一个第二节点广播所述目标数据,以使得所述至少一个第二节点对所述目标数据进行共识校验;
[0124] 若所述区块链网络中的至少一个第二节点对所述目标数据校验通过,则将所述目标数据打包成区块,并将所述区块加入至所述区块链网络中。
[0125] 本发明实施例中,处理器701获取基于智能合约生成的数据获取请求,并根据数据获取请求从各个数据源对象中获取到参考数据,得到参考数据集合;若参考数据集合中的各个参考数据之间的相似度大于预设相似度,则处理器701从各个参考数据中选取出一个参考数据作为目标数据,处理器701将目标数据应用于所述智能合约中。通过实施上述方法,区块链网络中的节点可以直接返回智能合约需要的数据,而无需将数据上链,从而简化共识校验过程,提升智能合约获取数据的效率。
[0126] 本发明实施例中所述模块,可以通过通用集成电路,例如CPU(Central Processing Unit,中央处理器),或通过ASIC(Application Specific Integrated Circuit,专用集成电路)来实现。
[0127] 应当理解,在本发明实施例中,所称处理器701可以是中央处理模块(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0128] 总线702可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互联(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等,该总线702可以分为地址总线数据总线、控制总线等,为便于表示,图7仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0129] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0130] 以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈