CN114090689A - 基于联盟链的智能合约数据处理方法、及其相关设备 - Google Patents
基于联盟链的智能合约数据处理方法、及其相关设备 Download PDFInfo
- Publication number
- CN114090689A CN114090689A CN202111393972.8A CN202111393972A CN114090689A CN 114090689 A CN114090689 A CN 114090689A CN 202111393972 A CN202111393972 A CN 202111393972A CN 114090689 A CN114090689 A CN 114090689A
- Authority
- CN
- China
- Prior art keywords
- chain
- node
- target
- data
- request
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 51
- 238000012795 verification Methods 0.000 claims description 54
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 26
- 230000004044 response Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请实施例属于区块链领域,涉及一种基于联盟链的智能合约数据处理方法,包括获取业务请求,并从请求链调用与业务请求对应的智能合约;根据业务请求确定请求链的出块节点和联盟链的目标节点;通过出块节点向目标节点发送与业务请求对应的数据获取请求,并通过出块节点接收由目标节点发送的目标数据,其中目标数据由联盟链响应数据获取请求调用得到;执行智能合约,通过目标数据处理业务请求。本申请还提供一种基于联盟链的智能合约数据处理的相关设备。本申请实现了主动调用联盟链目标数据的同时,也避免造成请求链因存储过多的目标数据导致存储空间拥挤的问题,保证请求链中智能合约的业务处理速度。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及基于联盟链的智能合约数据处理方法、及其相关设备。
背景技术
目前,区块链中的智能合约可直接访问链上数据,以从链上数据中调用数据执行智能合约,但智能合约不直接访问链下数据(如业务请求对应的目标数据),因此当区块链需访问链下数据供智能合约处理业务请求时,需通过“喂数据”的方式将链下数据进行数据上链,导致区块链的链上存储空间拥挤,影响业务的处理速度。
发明内容
本申请实施例的目的在于提出一种基于联盟链的智能合约数据处理方法、及其相关设备,以解决现有技术中难以调用链下数据供智能合约处理业务请求的问题。
为了解决上述技术问题,本申请实施例提供一种基于联盟链的智能合约数据处理方法,采用了如下所述的技术方案:
获取业务请求,并从请求链中调用与所述业务请求对应的智能合约;
根据所述业务请求确定所述请求链的出块节点和联盟链的目标节点;
通过所述出块节点向所述目标节点发送与所述业务请求对应的数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据,其中所述目标数据由所述联盟链响应所述数据获取请求调用得到;
执行所述智能合约,通过所述目标数据处理所述业务请求。
进一步的,所述根据所述业务请求确定所述请求链的出块节点和联盟链的目标节点的步骤包括:
获取所述请求链中参与共识的所有节点,根据预设规则从参与共识的所有节点中确定共识节点,将所述共识节点作为所述出块节点;
从联盟链的所有节点中随机选用单个或多个节点作为所述目标节点。
进一步的,在所述从联盟链的所有节点中随机选用单个或多个节点作为所述目标节点的步骤之前,还包括:
获取所述业务请求的数据获取类型;
从联盟链集合中确定与所述数据获取类型对应的联盟链,其中所述联盟链集合包括多个所述联盟链,每个所述联盟链存储的所述目标数据不同。
进一步的,在所述并通过所述出块节点接收由所述目标节点发送的目标数据的步骤之后,还包括:
获取所述目标数据的有效期;
当所述有效期到达预设期限时,从所述联盟链集合中删除所述有效期到达所述预设期限的所述目标数据对应的所述联盟链。
进一步的,所述通过所述目标数据处理所述业务请求的步骤包括:
验证所述目标数据是否有效,得到第一验证结果;
当所述第一验证结果满足预设条件时,则通过所述目标数据处理所述业务请求;
当所述第一验证结果不满足所述预设条件时,则重新确定所述请求链的新出块节点,将所述新出块节点替换所述出块节点后,重新通过所述出块节点向所述目标节点发送所述数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据后重新进行验证,直到重新验证的第一验证结果满足预设条件时为止。
进一步的,所述当所述第一验证结果不满足所述预设条件时,则重新确定所述请求链的新出块节点的步骤包括:
验证所述目标数据是否合法,得到第二验证结果;
当所述第二验证结果为合法时,则重新确定所述请求链的新出块节点;
当所述第二验证结果为不合法时,则重新确定联盟链的新目标节点,将所述新目标节点替换所述目标节点,重新通过所述出块节点向所述目标节点发送所述数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据后重新进行验证,直到重新验证的第一验证结果满足预设条件时为止。
进一步的,所述重新确定联盟链的新目标节点的步骤包括:
向所述请求链中所有具有投票权限的节点发起取消目标节点的投票;
获取所述具有投票权限的节点针对所述取消目标节点的投票信息,并统计所有所述投票信息的投票值,得到统计值;
当所述统计值满足预设阈值时,则删除所述联盟链的所述目标节点,并从所述联盟链的剩余节点中,随机选用单个或多个节点作为所述联盟链的所述新目标节点;
当所述统计值不满足预设阈值时,则从所述联盟链中除前一次选用的目标节点外的剩余节点中,随机选用单个或多个节点作为所述联盟链的所述新目标节点。
进一步的,所述目标数据为零知识证明数据;所述通过所述目标数据处理所述业务请求的步骤包括:
通过所述零知识证明数据处理所述业务请求。
为了解决上述技术问题,本申请实施例还提供一种基于联盟链的智能合约数据处理装置,采用了如下所述的技术方案:
合约调用模块,用于获取业务请求,并从请求链中调用与所述业务请求对应的智能合约;
节点确定模块,用于根据所述业务请求确定所述请求链的出块节点和联盟链的目标节点;
数据接收模块,用于通过所述出块节点向所述目标节点发送与所述业务请求对应的数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据,其中所述目标数据由所述联盟链响应所述数据获取请求调用得到;及
业务处理模块,用于执行所述智能合约,通过所述目标数据处理所述业务请求。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上述中任一项所述的基于联盟链的智能合约数据处理方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上述中任一项所述的基于联盟链的智能合约数据处理方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:本申请通过获取业务请求,并从请求链中调用与所述业务请求对应的智能合约;根据所述业务请求确定所述请求链的出块节点和联盟链的目标节点;通过所述出块节点向所述目标节点发送与所述业务请求对应的数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据,其中所述目标数据由所述联盟链响应所述数据获取请求调用得到;执行所述智能合约,通过所述目标数据处理所述业务请求。通过联盟链存储目标数据,保证了目标数据安全可追溯,当请求链的智能合约处理业务请求时,可主动向联盟链调用目标数据,并通过目标数据处理业务请求,实现了主动调用联盟链目标数据的同时,也避免造成请求链因存储过多的目标数据导致存储空间拥挤的问题,保证请求链中智能合约的业务处理速度。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的基于联盟链的智能合约数据方法的一个实施例的流程图;
图3是根据本申请的基于联盟链的智能合约数据装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的基于联盟链的智能合约数据处理方法一般由服务器/终端设备执行,相应地,基于联盟链的智能合约数据处理装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的基于联盟链的智能合约数据处理的方法的一个实施例的流程图。所述的基于联盟链的智能合约数据处理方法,包括以下步骤:
步骤S201,获取业务请求,并从请求链中调用与所述业务请求对应的智能合约。
具体的,业务请求由外部调用或请求链的定时任务触发生成,当业务请求由外部调用生成时,如通过获取气象数据用于保险理赔,其中气象数据为下述中从联盟链中获取的目标数据,而保险理赔用于供业务请求匹配对应的智能合约;当业务请求由请求链的定时任务触发生成时,如获取存款利率用于月度存款结算,其中存款利率为下述中从联盟链中获取的目标数据,而月度存款结算用于供业务请求匹配对应的智能合约。
步骤S202,根据所述业务请求确定所述请求链的出块节点和联盟链的目标节点。
具体地,联盟链的所有节点、数据访问路径、数据获取接口以及数据内容格式均作为数据配置存储在请求链中,即在实际应用中通过请求链确定请求链的出块节点和联盟链的目标节点。
步骤S203,通过所述出块节点向所述目标节点发送与所述业务请求对应的数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据,其中所述目标数据由所述联盟链响应所述数据获取请求调用得到。
具体地,而出块节点和目标节点用于实现请求链和联盟链之间的交互;上述中数据获取请求用于获取联盟链的目标数据,以通过目标数据处理业务请求,如数据获取请求为需获取气象数据,当联盟链响应该数据获取请求时,则会调用存储的与气象数据对应的目标数据,并通过目标节点向出块节点发送所述目标数据,其中目标数据如为某时间段(以周、月或年计算)的气象数据(如2021年9月15号为天晴,2021年9月16号为雨天等)。
进一步的,在每次联盟链成功调用与数据获取请求对应的目标数据后,则目标数据被调用次数加一,如当前目标数据的被调用次数为1,再次调用目标数据后,其被调用次数为2,如此类推;同时若联盟链中目标数据被更新时(此更新方式在下文中进行赘述),目标数据的版本号会同步更新,如当前目标数据的版本号为2.0,对目标数据进行更新后,其版本号为2.1或3.0,以此类推。
步骤S204,执行所述智能合约,通过所述目标数据处理所述业务请求。
具体地,当业务请求为获取气象数据用于保险理赔时,其中目标数据包括某时间段内的气象数据,在智能合约中包括用于执行保险理赔的业务规则,在实际应用中根据业务规则,通过目标数据处理业务请求,如在“2021年9月1日至9月3日”的时间段内,气象数据为由暴雨导致农田淹没,则根据业务规则,通过上述气象数据处理保险理赔的业务请求。
在本实施例的一些可选的实现方式中,上述步骤S201中,所述根据所述业务请求确定所述请求链的出块节点和联盟链的目标节点的步骤包括:
获取所述请求链中参与共识的所有节点,根据预设规则从参与共识的所有节点中确定共识节点,将所述共识节点作为所述出块节点;
从联盟链的所有节点中随机选用单个或多个节点作为所述目标节点。
具体地,上述预设规则为参与共识的所有节点中产生最新区块的节点,该产生最新区块的节点已得到请求链中参与共识的所有节点共识承认,以作为请求链的代表,向联盟链发生数据获取请求。
此外,上述预设规则也可为之前已经过共识承认的节点,将该之前已经共识承认的节点作为共识节点。
这样通过生产最新区块的共识节点作为目标节点,以避免请求链中的所有节点均向联盟链发送数据获取请求,避免造成部分节点的网络拥挤,减轻联盟链的负载。
而确定所述联盟链的随机访问节点的步骤中,通过请求链从联盟链的所有节点中随机选用多个或单个节点作为所述随机访问节点,其中单个节点与多个节点的区别在于:如仅需获取气象数据时,通过单个节点获取即可,如需获取气象数据、车辆信息、车辆保修情况等时,则可通过多个节点获取。这样选用随机访问节点而不是固定节点,以提高联盟链和请求链数据交互之间的安全性。
在本实施例的一些可选的实现方式中,在所述从联盟链的所有节点中随机选用单个或多个节点作为所述目标节点的步骤之前,还包括:
获取所述业务请求的数据获取类型;
从联盟链集合中确定与所述数据获取类型对应的联盟链,其中所述联盟链集合包括多个所述联盟链,每个所述联盟链存储的所述目标数据不同。
具体地,根据每个联盟链存储的目标数据不同,对每个联盟链进行分类标识,如其中一个联盟链的标识为气象数据,另一个联盟链的标识为存款利率,以减少联盟链上的数据存储负载,提升联盟链的响应速度;当请求链接收到业务请求时,根据业务请求的业务类型从联盟链集合中确定与所述业务请求对应的联盟链,如业务请求为“获取气象数据以处理保险理赔”,则业务请求的数据获取类型为气象数据,根据气象数据从联盟链集合中确定分类标识为气象数据的联盟链。
进一步的,如气象数据存储在一联盟链上,其中气象数据包括湿度、温度、地区信息、日期信息、天气情况等,将各类子项进行归类划分,得到分类数据信息,以分类数据信息为目标数据存储在联盟链上,以便于请求链调用联盟链的相关数据。
进一步的,联盟链的各节点可通过投票的方式进行增加或删除,如由请求链向各具有投票权限的节点发起投票请求,得到与每个具有投票权限的节点对应的投票信息(如为赞成票或反对票),后再统计各投票信息得到统计信息,当统计信息中赞成票占总票(赞成票加反对票)的比例大于设定值时,则可增加或删除联盟链的各节点,否则,不可通过增加或删除联盟链节点的投票请求。
在本实施例的一些可选的实现方式中,上述步骤S203中,在所述并通过所述出块节点接收由所述目标节点发送的目标数据的步骤之后,还包括:
获取所述目标数据的有效期;
当所述有效期到达预设期限时,从所述联盟链集合中删除所述有效期到达所述预设期限的所述目标数据对应的所述联盟链。
具体地,每个目标数据都设置有效期,也可为对于不需要长期存储的目标数据设置有效期,其中有效期以年、月、周或日为单位,当目标数据的有效期到达预设期限时,则从联盟链集合中删除与有效期到达预设期限的目标数据对应的联盟链,如农业保险业务根据气象数据判断是对农户进行赔偿,其保险合同为一年一保(即一年签订一次新的合同),因此气象数据只需在保险合同的赔付有效期之前保存即可,这样可为该气象数据单独部署一套联盟链,各利益相关方作为联盟链节点,而气象数据在有效期内实时进行更新,当保险合同中赔付的有效期到达预设期限后,即可删除该气象数据所处的联盟链,释放存储空间,相对于将所有数据上传到同一个联盟链中,可以节省存储成本。
在本实施例的一些可选的实现方式中,上述步骤S204中,所述通过所述目标数据处理所述业务请求的步骤包括:
验证所述目标数据是否有效,得到第一验证结果;
当所述第一验证结果满足预设条件时,则通过所述目标数据处理所述业务请求;
当所述第一验证结果不满足所述预设条件时,则重新确定所述请求链的新出块节点,将所述新出块节点替换所述出块节点后,重新通过所述出块节点向所述目标节点发送所述数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据后重新进行验证,直到重新验证的第一验证结果满足预设条件时为止。
具体的,预设条件包括第一预设子条件和第二预设子条件,目标数据包括签名标识和业务数据,上述验证所述目标数据是否有效中,先验证签名标识是否有效,由请求链中需获取目标数据的各子节点进行验证,联盟链以私钥方式对签名标识加密,联盟链将加密的签名标识和公钥发送给请求链的出块节点,再由请求链将发送加密的签名标识至需获取目标数据的各子节点,每个子节点均通过公钥对加密的签名标识进行解密,得到解密结果,将各子节点得到的“解密结果"数量作为第一验证结果,当满足第一预设子条件时,此第一预设子条件为当各子节点得到的“解密结果为成功"数量大于总子节点数量的预设数量值时(如三分之二),则判断签名标识有效;再验证业务数据的格式是否有效,对业务数据进行校验,如校验业务数据中是否有特殊字符、脚本等,当业务数据校验通过时作为第一验证结果,当满足第二预设子条件,此第二预设子条件为当第一验证结果为业务数据无错误时,则判断业务数据格式有效,通过目标数据处理业务请求。
上述中,当判断签名标识或业务数据格式无效时,则确定请求链的新出块节点,此新出块节点为当前的出块节点之外的节点,将新出块节点替换出块节点后,重复执行步骤S203,直到重新验证的第一验证结果满足预设条件时为止。
在本实施例的一些可选的实现方式中,上述所述当所述第一验证结果不满足所述预设条件时,则重新确定所述请求链的新出块节点的步骤包括:
验证所述目标数据是否合法,得到第二验证结果;
当所述第二验证结果为合法时,则重新确定所述请求链的新出块节点;
当所述第二验证结果为不合法时,则重新确定联盟链的新目标节点,将所述新目标节点替换所述目标节点,重新通过所述出块节点向所述目标节点发送所述数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据后重新进行验证,直到重新验证的第一验证结果满足预设条件时为止。
具体地,新目标节点为被删除的目标节点之外的节点,以保证请求链与联盟链数据交互的安全性;上述中验证所述目标数据是否合法,具体对目标数据中签名标识、业务数据进行合法性判断,如判断签名标识是否为伪造(通过将目标数据中签名标识与预存的签名标识进行比对,如比对字体格式、书写笔画等),判断业务数据是否被篡改(通过将获取的业务数据与实际数据进行比对,如获取的气象数据是2021年9月3日为天晴,但实际气象数据是2021年9月3日为雨天),当判断第二验证结果为不合法,如上述的业务数据格式验证中,若判断业务数据被纂改(如联盟链调用的目标数据为2021年9月3日至2021年9月6日为雨天,而请求链的得到的业务数据为2021年9月3日至2021年9月6日为晴天),则重新确定联盟链的新目标节点,将所述新目标节点替换所述目标节点后,重新执行步骤S203,直到重新验证的第一验证结果满足预设条件时为止。
在本实施例的一些可选的实现方式中,上述所述重新确定联盟链的新目标节点的步骤包括:
向所述请求链中所有具有投票权限的节点发起取消目标节点的投票;
获取所述具有投票权限的节点针对所述取消目标节点的投票信息,并统计所有所述投票信息的投票值,得到统计值;
当所述统计值满足预设阈值时,则删除所述联盟链的所述目标节点,并从所述联盟链的剩余节点中,随机选用单个或多个节点作为所述联盟链的所述新目标节点;
当所述统计值不满足预设阈值时,则从所述联盟链中除前一次选用的目标节点外的剩余节点中,随机选用单个或多个节点作为所述联盟链的所述新目标节点。
具体地,判断第二验证结果为不合法时,则由请求链向请求链中的所有具有投票权限的节点发起取消目标节点的投票,得到各具有投票权限的节点的投票值,再将得到的所有投票值进行统计,得到统计值,如其中投票值为赞成票时以“1”表示,反对票时以“0”表示,然后统计所有投票节点的投票值,得到统计值,其中统计值为赞成票与总票(总票为赞成票与反对票之和)的比值,若统计值为赞成票与总票的比值大于或等于预设阈值时,即统计值满足预设阈值时,则删除联盟链的目标节点,并从所述联盟链的剩余节点中,随机选用单个或多个节点作为所述联盟链的所述新目标节点,这样将存在问题的目标节点删除,重新确定新目标节点,以避免后续从不合法的目标节点中调用目标数据;反之,若统计值为赞成票与总票的比值小于预设阈值时,即统计值不满足预设阈值时,则从所述联盟链中除前一次选用的目标节点外的剩余节点中,随机选用单个或多个节点作为所述联盟链的所述新目标节点,这样在下次目标数据调用中,避开上次的目标节点,重新选用新目标节点,以避免造成下次目标数据调用仍不可使用的现象。
在本实施例的一些可选的实现方式中,所述目标数据为零知识证明数据;上述步骤S204中,所述通过所述目标数据处理所述业务请求的步骤包括:
通过所述零知识证明数据处理所述业务请求。
具体地,联盟链上的目标数据以零知识证明方式上传,以减少数据泄漏的风险;当通过气象数据进行保险理赔时,气象数据以零知识证明数据呈现,如气象数据为2021年9月份有大暴雨,但并未具体说明日期,但保险理赔时只需得知2021年9月份有大暴雨这一气象数据即可进行业务处理。
本申请通过联盟链存储目标数据,保证了目标数据安全可追溯,当请求链的智能合约处理业务请求时,可主动向联盟链调用目标数据,并通过目标数据处理业务请求,实现了主动调用联盟链目标数据的同时,也避免造成请求链因存储过多的目标数据导致存储空间拥挤的问题,保证请求链中智能合约的业务处理速度。
在本实施例中,基于联盟链的智能合约数据处理方法运行于其上的电子设备(例如图1所示的服务器/终端设备)可以通过有线连接方式或者无线连接方式获取业务请求。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、根据微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种基于联盟链的智能合约数据处理装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的基于联盟链的智能合约数据处理装置300包括:合约调用模块301、节点确定模块302、数据接收模块303以及业务处理模块304。其中:
合约调用模块301,用于获取业务请求,并从请求链中调用与所述业务请求对应的智能合约;
节点确定模块302,用于根据所述业务请求确定所述请求链的出块节点和联盟链的目标节点;
数据接收模块302,用于通过所述出块节点向所述目标节点发送与所述业务请求对应的数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据,其中所述目标数据由所述联盟链响应所述数据获取请求调用得到;
业务处理模块304,用于执行所述智能合约,通过所述目标数据处理所述业务请求。
上述基于联盟链的智能合约数据处理装置,通过联盟链存储目标数据,保证了目标数据安全可追溯,当请求链的智能合约处理业务请求时,可主动向联盟链调用目标数据,并通过目标数据处理业务请求,实现了主动调用联盟链目标数据的同时,也避免造成请求链因存储过多的目标数据导致存储空间拥挤的问题,保证请求链中智能合约的业务处理速度。
在本实施例的一些可选的实现方式中,上述数据接收模块303包括第一节点确定子模块以及第二节点确定子模块。其中,
第一节点确定子模块,用于获取所述请求链中参与共识的所有节点,根据预设规则从参与共识的所有节点中确定共识节点,将所述共识节点作为所述出块节点;
第二节点确定子模块,用于从联盟链的所有节点中随机选用单个或多个节点作为所述目标节点。
在本实施例的一些可选的实现方式中,还包括类型获取模块以及联盟链确定模块。其中,
类型获取模块,用于获取所述业务请求的数据获取类型;
联盟链确定模块,用于从联盟链集合中确定与所述数据获取类型对应的联盟链,其中所述联盟链集合包括多个所述联盟链,每个所述联盟链存储的所述目标数据不同。
在本实施例的一些可选的实现方式中,还包括有效期获取模块以及联盟链删除模块。其中:
有效期获取模块,用于获取所述目标数据的有效期;
联盟链删除模块,用于当所述有效期到达预设期限时,从所述联盟链集合中删除所述有效期到达所述预设期限的所述目标数据对应的所述联盟链。
在本实施例的一些可选的实现方式中,上述业务处理模块304包括验证子模块以及重新验证子模块。其中:
验证子模块,用于验证所述目标数据是否有效,得到第一验证结果;
重新验证子模块,用于当所述第一验证结果不满足所述预设条件时,则重新确定所述请求链的新出块节点,将所述新出块节点替换所述出块节点后,重新通过所述出块节点向所述目标节点发送所述数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据后重新进行验证,直到重新验证的第一验证结果满足预设条件时为止。
在本实施例的一些可选的实现方式中,上述处理子模块包括验证单元、确定单元以及重新验证单元。其中:
验证单元,用于验证所述目标数据是否合法,得到第二验证结果;
确定单元,用于当所述第二验证结果为合法时,则重新确定所述请求链的新出块节点;
重新验证单元,用于当所述第二验证结果为不合法时,则重新确定联盟链的新目标节点,将所述新目标节点替换所述目标节点,重新通过所述出块节点向所述目标节点发送所述数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据后重新进行验证,直到重新验证的第一验证结果满足预设条件时为止。
在本实施例的一些可选的实现方式中,上述确定单元包括投票子单元、统计子单元、第一节点选用子单元以及第二节点选用子单元;其中,
投票子单元,用于向所述请求链中所有具有投票权限的节点发起取消目标节点的投票;
统计子单元,用于获取所述具有投票权限的节点针对所述取消目标节点的投票信息,并统计所有所述投票信息的投票值,得到统计值;
第一节点选用子单元,用于当所述统计值满足预设阈值时,则删除所述联盟链的所述目标节点,并从所述联盟链的剩余节点中,随机选用单个或多个节点作为所述联盟链的所述新目标节点;
第二节点选用子单元,用于当所述统计值不满足预设阈值时,则从所述联盟链中除前一次选用的目标节点外的剩余节点中,随机选用单个或多个节点作为所述联盟链的所述新目标节点
在本实施例的一些可选的实现方式中,上述业务处理模块304包括处理子模块。其中,
处理子模块,用于通过所述零知识证明数据处理所述业务请求。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如基于联盟链的智能合约数据处理方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述基于联盟链的智能合约数据处理方法的计算机可读指令。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本申请通过联盟链存储目标数据,保证了目标数据安全可追溯,当请求链的智能合约处理业务请求时,可主动向联盟链调用目标数据,并通过目标数据处理业务请求,实现了主动调用联盟链目标数据的同时,也避免造成请求链因存储过多的目标数据导致存储空间拥挤的问题,保证请求链中智能合约的业务处理速度。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于联盟链的智能合约数据处理方法的步骤。
本申请通过联盟链存储目标数据,保证了目标数据安全可追溯,当请求链的智能合约处理业务请求时,可主动向联盟链调用目标数据,并通过目标数据处理业务请求,实现了主动调用联盟链目标数据的同时,也避免造成请求链因存储过多的目标数据导致存储空间拥挤的问题,保证请求链中智能合约的业务处理速度。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。根据这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (11)
1.一种基于联盟链的智能合约数据处理方法,其特征在于,包括下述步骤:
获取业务请求,并从请求链中调用与所述业务请求对应的智能合约;
根据所述业务请求确定所述请求链的出块节点和联盟链的目标节点;
通过所述出块节点向所述目标节点发送与所述业务请求对应的数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据,其中所述目标数据由所述联盟链响应所述数据获取请求调用得到;
执行所述智能合约,通过所述目标数据处理所述业务请求。
2.根据权利要求1所述的基于联盟链的智能合约数据处理方法,其特征在于,所述根据所述业务请求确定所述请求链的出块节点和联盟链的目标节点的步骤包括:
获取所述请求链中参与共识的所有节点,根据预设规则从参与共识的所有节点中确定共识节点,将所述共识节点作为所述出块节点;
从联盟链的所有节点中随机选用单个或多个节点作为所述目标节点。
3.根据权利要求2所述的基于联盟链的智能合约数据处理方法,其特征在于,在所述从联盟链的所有节点中随机选用单个或多个节点作为所述目标节点的步骤之前,还包括:
获取所述业务请求的数据获取类型;
从联盟链集合中确定与所述数据获取类型对应的联盟链,其中所述联盟链集合包括多个所述联盟链,每个所述联盟链存储的所述目标数据不同。
4.根据权利要求1所述的基于联盟链的智能合约数据处理方法,其特征在于,在所述并通过所述出块节点接收由所述目标节点发送的目标数据的步骤之后,还包括:
获取所述目标数据的有效期;
当所述有效期到达预设期限时,从所述联盟链集合中删除所述有效期到达所述预设期限的所述目标数据对应的所述联盟链。
5.根据权利要求1至4中任一项所述的基于联盟链的智能合约数据处理方法,其特征在于,所述通过所述目标数据处理所述业务请求的步骤包括:
验证所述目标数据是否有效,得到第一验证结果;
当所述第一验证结果满足预设条件时,则通过所述目标数据处理所述业务请求;
当所述第一验证结果不满足所述预设条件时,则重新确定所述请求链的新出块节点,将所述新出块节点替换所述出块节点后,重新通过所述出块节点向所述目标节点发送所述数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据后重新进行验证,直到重新验证的第一验证结果满足预设条件时为止。
6.根据权利要求5所述的基于联盟链的智能合约数据处理方法,其特征在于,所述当所述第一验证结果不满足所述预设条件时,则重新确定所述请求链的新出块节点的步骤包括:
验证所述目标数据是否合法,得到第二验证结果;
当所述第二验证结果为合法时,则重新确定所述请求链的新出块节点;
当所述第二验证结果为不合法时,则重新确定联盟链的新目标节点,将所述新目标节点替换所述目标节点,重新通过所述出块节点向所述目标节点发送所述数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据后重新进行验证,直到重新验证的第一验证结果满足预设条件时为止。
7.根据权利要求6所述的基于联盟链的智能合约数据处理方法,其特征在于,所述重新确定联盟链的新目标节点的步骤包括:
向所述请求链中所有具有投票权限的节点发起取消目标节点的投票;
获取所述具有投票权限的节点针对所述取消目标节点的投票信息,并统计所有所述投票信息的投票值,得到统计值;
当所述统计值满足预设阈值时,则删除所述联盟链的所述目标节点,并从所述联盟链的剩余节点中,随机选用单个或多个节点作为所述联盟链的所述新目标节点;
当所述统计值不满足预设阈值时,则从所述联盟链中除前一次选用的目标节点外的剩余节点中,随机选用单个或多个节点作为所述联盟链的所述新目标节点。
8.根据权利要求1至4中任一项所述的基于联盟链的智能合约数据处理方法,其特征在于,所述目标数据为零知识证明数据;所述通过所述目标数据处理所述业务请求的步骤包括:
通过所述零知识证明数据处理所述业务请求。
9.一种基于联盟链的智能合约数据处理装置,其特征在于,包括:
合约调用模块,用于获取业务请求,并从请求链中调用与所述业务请求对应的智能合约;
节点确定模块,用于根据所述业务请求确定所述请求链的出块节点和联盟链的目标节点;
数据接收模块,用于通过所述出块节点向所述目标节点发送与所述业务请求对应的数据获取请求,并通过所述出块节点接收由所述目标节点发送的目标数据,其中所述目标数据由所述联盟链响应所述数据获取请求调用得到;及
业务处理模块,用于执行所述智能合约,通过所述目标数据处理所述业务请求。
10.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至8中任一项所述的基于联盟链的智能合约数据处理方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至8中任一项所述的基于联盟链的智能合约数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111393972.8A CN114090689A (zh) | 2021-11-23 | 2021-11-23 | 基于联盟链的智能合约数据处理方法、及其相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111393972.8A CN114090689A (zh) | 2021-11-23 | 2021-11-23 | 基于联盟链的智能合约数据处理方法、及其相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090689A true CN114090689A (zh) | 2022-02-25 |
Family
ID=80303192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111393972.8A Pending CN114090689A (zh) | 2021-11-23 | 2021-11-23 | 基于联盟链的智能合约数据处理方法、及其相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090689A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314503A (zh) * | 2022-06-30 | 2022-11-08 | 青岛海尔科技有限公司 | 数据发送方法及装置、存储介质及电子装置 |
-
2021
- 2021-11-23 CN CN202111393972.8A patent/CN114090689A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314503A (zh) * | 2022-06-30 | 2022-11-08 | 青岛海尔科技有限公司 | 数据发送方法及装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2748781B1 (en) | Multi-factor identity fingerprinting with user behavior | |
CN108416485B (zh) | 用户身份识别方法、电子装置及计算机可读存储介质 | |
CN109145590B (zh) | 一种函数hook检测方法、检测设备及计算机可读介质 | |
CN107634947A (zh) | 限制恶意登录或注册的方法和装置 | |
US20200058031A1 (en) | Injecting user control for card-on-file merchant data and recurring payment transaction parameters between acquirer processors and issuer processors over data communication networks | |
CN109410027B (zh) | 一种基于特征识别的金融信息处理方法、智能终端及介质 | |
CN112468409A (zh) | 访问控制方法、装置、计算机设备及存储介质 | |
CN113158169A (zh) | 一种基于Hadoop集群的验证方法、装置、存储介质及电子设备 | |
US10931790B2 (en) | Systems and methods for securely transferring selective datasets between terminals with multi-applications support | |
CN111476640A (zh) | 认证方法、系统、存储介质及大数据认证平台 | |
CN109542945B (zh) | 区块链数据统计分析方法、装置及存储介质 | |
CN114826946A (zh) | 未授权访问接口的检测方法、装置、设备及存储介质 | |
CN114090689A (zh) | 基于联盟链的智能合约数据处理方法、及其相关设备 | |
US20190147450A1 (en) | Real-time enrichment of raw merchant data from iso transactions on data communication networks for preventing false declines in fraud prevention systems | |
CN112860662A (zh) | 数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN112181794A (zh) | 页面监听方法、装置、计算机设备及存储介质 | |
CN111224865A (zh) | 基于付费会话的用户识别方法、电子装置及存储介质 | |
CN107679871B (zh) | 名单管理方法、装置、系统以及计算机可读存储介质 | |
CN115545753A (zh) | 一种基于贝叶斯算法的合作伙伴预测方法及相关设备 | |
CN112085469B (zh) | 基于向量机模型的数据审批方法、装置、设备及存储介质 | |
CN113283759A (zh) | 账户风险画像更新方法、装置、设备及存储介质 | |
CN110471966B (zh) | 信息数据校验方法、装置、计算机设备及存储介质 | |
CN114374737A (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
CN114090407A (zh) | 基于线性回归模型的接口性能预警方法及其相关设备 | |
CN113190562A (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 |