CN110222053A - 一种基于区块链的溯源数据的获取方法及相关设备 - Google Patents
一种基于区块链的溯源数据的获取方法及相关设备 Download PDFInfo
- Publication number
- CN110222053A CN110222053A CN201910426589.4A CN201910426589A CN110222053A CN 110222053 A CN110222053 A CN 110222053A CN 201910426589 A CN201910426589 A CN 201910426589A CN 110222053 A CN110222053 A CN 110222053A
- Authority
- CN
- China
- Prior art keywords
- source
- tracing
- data
- tables
- trace
- 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.)
- Granted
Links
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例适用区块存储系统中的区块的存储,公开了一种基于区块链的溯源数据的获取方法及相关设备,所述方法包括:接收溯源请求;根据溯源对象的溯源标识获取溯源对象在中心溯源数据表中的溯源数据;获取溯源对象在第一分支溯源数据表中的溯源数据;分别获取中心溯源事务区块的区块哈希值和分支溯源事务区块的区块哈希值;根据中心溯源事务区块的区块哈希值对溯源对象在所述中心溯源数据表中的溯源数据进行验证,并根据分支溯源事务区块的区块哈希值对溯源对象在第一分支溯源数据表中的溯源数据进行验证;在验证均通过的情况下返回溯源对象的溯源数据。通过本发明可以节约区块链系统存储溯源对象的溯源数据的存储空间,进而提高区块链系统的存储性能。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种基于区块链的溯源数据的获取方法及相关设备。
背景技术
近年来,假货问题、食品安全问题被频频爆出,如何保证食品安全,以及避免买到假货一直是人们无法彻底解决的大问题。为了解决该问题,出现了多种商品溯源平台,通常在商品从商品供应商到商品最末端的代理这一流转的过程中,经手目标商品的各个流转方自行将自己的对商品进行流转产生的溯源数据上传至溯源平台,在消费者对商品进行溯源时,溯源平台将商品的溯源数据返回给消费者。这一过程中,流转方将溯源数据上传至溯源平台后,溯源平台对溯源数据进行中心化的存储,容易造成溯源数据的泄露、造假以及篡改,降低了消费者对溯源信任度的降低。
针对溯源场景的区块链系统可以很好的解决溯源数据可信度的问题,流转方将商品的溯源数据上传至区块链,以区块的形式存储在区块链系统的多个记账节点中,由于区块链系统中存储数据的不可篡改特性,保证了溯源数据的可信度。而区块链系统的各个记账节点在存储商品的溯源数据的区块时,通常存储在非关系型数据库中,为了保证用户在输入商品的溯源标识时记账节点可以获取与溯源标识对应的商品的溯源数据,记账节点需要建立溯源标识与每一个溯源数据的区块的对应关系。而在实际应用中,每个商品对应的流转方有多个,因此每个商品对应的溯源数据的区块有多个,进而溯源标识与溯源数据的区块的对应关系就有多个,这就会造成针对记账节点在针对众多商品的溯源数据进行记账时,不仅要记录大量的溯源数据,还要记录大量的溯源标识与溯源数据的区块的对应关系,随着商品的增多,导致区块链系统中各个记账节点的内存的严重消耗。
发明内容
本申请提供一种基于区块链的溯源数据的获取方法及相关设备,通过本发明可以节约区块链系统存储溯源对象的溯源数据的存储空间,进而提高区块链系统的存储性能。
本发明实施例第一方面提供了一种基于区块链的溯源数据的获取方法,包括:
接收溯源请求,所述溯源请求携带溯源对象的溯源标识;
根据所述溯源对象的溯源标识获取所述溯源对象在中心溯源数据表中的溯源数据,所述溯源对象在所述中心溯源数据表中的溯源数据为预先从接收到的中心溯源事务区块中提取并存储在所述中心溯源数据表中的,所述中心溯源数据表包含第一外键栏目;
根据所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据,获取所述溯源对象在将所述第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据,所述溯源对象在所述第一分支溯源数据表中的溯源数据为预先从接收到的分支溯源事务区块中提取并存储在所述第一分支溯源数据表中的;
分别获取所述中心溯源事务区块的区块哈希值和所述分支溯源事务区块的区块哈希值;
根据所述中心溯源事务区块的区块哈希值对所述溯源对象在所述中心溯源数据表中的溯源数据进行验证,并根据所述分支溯源事务区块的区块哈希值对所述溯源对象在所述第一分支溯源数据表中的溯源数据进行验证;
在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据,所述溯源对象的溯源数据包含在所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据。
结合第一方面,在第一种可能的实现方式中,所述第一分支溯源数据表包含多行的溯源数据,其中不同行的溯源数据对应不同的商品;
所述根据所述中心溯源数据表中所述第一外键栏目对应的溯源数据,获取所述溯源对象在将所述第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据包括:
确定所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据在所述第一分支溯源数据表的主键栏目中所处于的目标行数;
获取所述第一分支溯源数据表中所述目标行数对应的全部的溯源数据。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一外键栏目包含多个外键子栏目;
所述确定所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据在所述第一分支溯源数据表的主键栏目中所处于的目标行数包括:
将所述溯源对象在所述中心溯源数据表中所述多个外键子栏目各自对应的溯源数据出现在所述分支溯源数据表中同一行的行数确定为所述目标行数。
结合第一方面,在第三种可能的实现方式中,所述第一分支溯源数据表包含第二外键栏目;
所述方法还包括:
根据所述溯源对象在所述第一分支溯源数据表中所述第二外键栏目对应的溯源数据,获取所述溯源对象在将所述第二外键栏目作为主键栏目的第二分支溯源数据表中的溯源数据;
所述响应所述溯源请求返回的所述溯源对象的溯源数据中包含所述溯源对象在所述第二分支溯源数据表中的溯源数据。
结合第一方面,在第四种可能的实现方式中,所述方法还包括:
接收溯源区块链系统中的命令节点发送的所述溯源对象的溯源事务区块,所述溯源事务区块中包含对所述溯源对象进行流转产生溯源数据的溯源对象流转方的流转方标识,以及所述溯源对象流转方产生的溯源数据;
根据所述溯源对象流转方的流转方标识,从所述中心溯源数据表和所述第一分支溯源数据表中确定所述溯源对象流转方对应的溯源数据表;
将所述溯源事务区块包含的所述溯源对象流转方产生的溯源数据存储在所述溯源对象流转方对应的溯源数据表中。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
向所述溯源区块链系统中存储有所述溯源对象的溯源事务区块的至少两个记账节点发送携带所述溯源对象的溯源标识的溯源数据获取请求;
接收所述至少两个记账节点响应所述溯源数据获取请求返回的所述溯源对象的溯源数据,所述记账节点返回的所述溯源对象的溯源数据为所述记账节点根据所述溯源对象的溯源标识从存储的所述溯源对象的溯源事务区块中提取的;
所述在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据包括:
根据接收到至少两个记账节点返回的所述溯源对象的溯源数据,以及所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据,确定所述溯源对象的可靠溯源数据;
在验证均通过的情况下返回所述可靠溯源数据。
结合第一方面,在第六种可能的实现方式中,所述溯源请求为客户端发送的,所述溯源请求中携带所述客户端的客户端标识;
所述在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据包括:
根据所述客户端标识获取所述客户端对应的业务预处理单模板;
根据所述业务预处理单模板,生成包含所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据的业务预处理单;
在验证均通过的情况下将所述业务预处理单返回给所述客户端。
本发明实施例第二方面提供了一种基于区块链的溯源数据的获取装置,包括:
请求接收单元,用于接收溯源请求,所述溯源请求携带溯源对象的溯源标识;
溯源数据获取单元,用于根据所述溯源对象的溯源标识获取所述溯源对象在中心溯源数据表中的溯源数据,所述溯源对象在所述中心溯源数据表中的溯源数据为预先从接收到的中心溯源事务区块中提取并存储在所述中心溯源数据表中的,所述中心溯源数据表包含第一外键栏目;
所述溯源数据获取单元,还用于根据所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据,获取所述溯源对象在将所述第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据,所述溯源对象在所述第一分支溯源数据表中的溯源数据为预先从接收到的分支溯源事务区块中提取并存储在所述第一分支溯源数据表中的;
哈希获取单元,用于分别获取所述中心溯源事务区块的区块哈希值和所述分支溯源事务区块的区块哈希值;
验证单元,用于根据所述中心溯源事务区块的区块哈希值对所述溯源对象在所述中心溯源数据表中的溯源数据进行验证,并根据所述分支溯源事务区块的区块哈希值对所述溯源对象在所述第一分支溯源数据表中的溯源数据进行验证;
请求响应单元,用于在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据,所述溯源对象的溯源数据包含在所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据。
本发明实施例第三方面提供了一种基于区块链的溯源数据的获取装置,包括处理器、存储器以及通信接口,所述处理器、存储器和通信接口相互连接,其中,所述通信接口用于接收和发送数据,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,所述程序代码当被计算机执行时使所述计算机执行上述第一方面和第一方面各个可能的实现方式中的任意一种方法。
本发明实施例第四方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行上述第一方面和第一方面各个可能的实现方式。
本发明实施例中,在接收到溯源请求后,根据溯源请求中携带的溯源标识从中心溯源数据表中获取溯源对象在中心溯源数据表中的溯源数据,进而根据溯源对象在中心溯源数据表中的第一外键栏目对应的溯源数据,获取溯源对象在将第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据,再根据中心溯源事务区块的区块哈希值对溯源对象在中心溯源数据表中的溯源数据的验证,以及根据分支溯源事务区块的区块哈希值对溯源对象在第一分支溯源数据表中的溯源数据的验证均通过的情况下,返回获取到的溯源对象的溯源数据。本方案中针对溯源对象的存储在不同溯源数据表中的溯源数据,通过针对各个溯源数据表预设的主键栏目和外键栏目进行关联获取,无需建立溯源对象的溯源标识与各个溯源数据表中的溯源数据的对应关系,节约了区块链系统存储溯源对象的溯源数据的存储空间,进而提高区块链系统的存储性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于区块链的溯源数据的获取方法的流程示意图;
图2为本发明实施例提供的一种获取溯源对象的溯源数据的示意图;
图3为本发明实施例提供的一种中心溯源事务区块的区块体的一种形式;
图4为本发明实施例提供的另一种基于区块链的溯源数据的获取方法的流程示意图;
图5为本发明实施例提供的另一种获取溯源对象的溯源数据的示意图;
图6为本发明实施例提供的一种基于区块链的溯源数据的获取装置的结构示意图;
图7为本发明实施例提供的另一种基于区块链的溯源数据的获取装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中基于区块链的溯源数据的获取方法主要为针对基于数据市场预设的多个溯源数据表中存储的溯源对象的溯源数据的获取方法,每个溯源数据表包含至少一个主键,不同的溯源数据表之间通过外键相关联。其中,溯源数据表中可以唯一确定溯源数据表中的一行数据的字段可以作为该数据表的主键;数据表A中包含的字段为数据表B的主键,则该字段可以作为数据表A的外键,数据表A和数据表B通过该外键相关联。其中主键和外键都可以是单个字段,也可以是不同字段的组合。可以理解的是一个数据表的主键也可以同时作为该数据表的外键。
本发明实施例中基于区块链的溯源数据的获取方法可以应用在消费者通过溯源客户端对溯源对象上贴附的溯源标识进行溯源时,溯源客户端向区块链系统中的记账节点请求溯源对象的溯源数据的场景。也可以应用在溯源对象的下游流转方在根据溯源对象的上游流转方上传的溯源对象的溯源数据生成业务预处理单时,通过下游业务节点或业务客户端向区块链系统中的记账节点请求溯源对象的溯源数据的场景,本发明实施例中基于区块链的溯源数据的获取方法可以但不仅限于应用在溯源区块链的任一记账节点上。
参见图1,图1为本发明实施例提供的一种基于区块链的溯源数据的获取方法的流程示意图,如图所示,所述方法可以包括:
S101,记账节点接收溯源请求。
具体的,所述溯源请求携带溯源对象的溯源标识,所述溯源标识可以溯源对象的一个身份标识,也可以是溯源对象的身份标识组合。若所述溯源请求为溯源客户端发送的,所述溯源标识可以以二维编码的形式附着在溯源对象上,溯源客户端在扫描所述二位编码后,解码所述溯源标识,进而发送携带所述溯源标识的溯源请求,所述溯源标识的二维编码可以为所述溯源对象在流转过程中,被指定的商品流转方贴附在溯源对象上的,如可以将中检集团针对溯源对象的防伪标识码作为溯源对象的溯源标识,经过二维编码后贴附在溯源对象上。若所述溯源请求为溯源对象的下游流转方通过客户端发送的,所述溯源对象的溯源标识可以为下游流转方输入提交的溯源对象的商品名称和提单编号的组合等。
S102,记账节点根据所述溯源对象的溯源标识获取所述溯源对象在中心溯源数据表中的溯源数据。
这里,所述溯源对象在所述中心溯源数据表中的溯源数据为预先从接收到的中心溯源事务区块中提取并存储在所述中心溯源数据表中的。具体的,所述溯源区块链系统中的背书节点接收事务节点发送的溯源数据事务,所述溯源数据事务包含溯源对象流转方对所述溯源对象进行商品流转产生的溯源数据,以及所述溯源对象流转方的流转方标识;背书节点根据预设的溯源数据背书智能合约对所述溯源数据事务进行背书,并将生成的背书结果返回给所述事务节点;所述事务节点在根据所述背书结果确定对所述溯源数据事务的背书满足预设的溯源数据背书策略时,将所述溯源数据事务发送给区块链系统中的命令节点;命令节点对所述溯源数据事务进行排序后生成包含所述溯源数据事务的溯源事务区块,并将所述溯源事务区块发送给溯源系统中的记账节点。
所述溯源事务区块包含区块头和区块体,溯源对象流转方对所述溯源对象进行商品流转产生的溯源数据,以及所述溯源对象流转方的流转方标识包含在所述溯源事务区块体中,所述溯源事务区块的区块头中包含所述溯源事务区块的区块号、生成时间、版本、父区块哈希值、本区块的区块哈希值等数据。
记账节点在接收到所述溯源事务区块后,可以提取所述溯源事务区块的区块体中包含的流转方标识,在根据所述商品流转方标识确定所述中心溯源数据表为所述溯源对象流转方对应的溯源数据表时,将所述溯源事务区块的区块体中包含的溯源数据存储在所述中心溯源数据表中。
此外,所述记账节点可以将所述溯源事务区块的区块头存储在预设的键-值(key-value)数据库中,可以使记账节点在需要重新构造所述溯源事务区块的场景中,如区块链系统中的其他节点在向该记账节点备份区块链上的溯源数据时,根据在中心溯源数据表中存储的溯源数据,以及键-值数据库中存储的所述溯源事务区块的区块头重新构造所述溯源事务区块。
所述中心溯源数据表中包含多个溯源栏目,溯源标识为其中的一个溯源栏目,且溯源标识为所述中心溯源数据表中的主键栏目,记账节点根据步骤S101中接收到的所述溯源对象的溯源标识,从所述中心溯源数据表中定位所述溯源对象在所述中心溯源数据表中的溯源数据的存储位置,进而获取所述溯源对象在所述中心溯源数据表中的溯源数据。
所述中心溯源数据表的多个溯源栏目还包含至少一个外键栏目,第一外键栏目为其中的一个。
S103,记账节点根据所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据,获取所述溯源对象在将所述第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据。
这里,所述溯源对象在所述第一分支溯源数据表中的溯源数据为预先从接收到的分支溯源事务区块中提取并存储在所述第一分支溯源数据表中的,所述分支溯源事务区块的生成方式及存储方式可以参阅步骤S102中中心溯源事务区块的生成方式及存储方式,此处不再赘述。
所述第一分支溯源数据表包含多行的溯源数据,其中不同行的溯源数据对应不同的商品;所述记账节点确定所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据在所述第一分支溯源数据表的主键栏目中所处于的目标行数,进而获取所述第一分支溯源数据表中所述目标行数对应的全部的溯源数据。可选的,在所述第一外键栏目包含多个外键子栏目时,将所述溯源对象在所述中心溯源数据表中所述多个外键子栏目各自对应的溯源数据出现在所述分支溯源数据表中同一行的行数确定为所述目标行数,进而获取所述第一分支溯源数据表中所述目标行数对应的全部的溯源数据。
参阅图2,图2为本发明实施例提供的一种获取溯源对象的溯源数据的示意图,如图2中所示的例子,溯源标识为溯源对象的防伪标识码,记账节点中预设的中心溯源数据表为生产商溯源数据表,代理商溯源数据表、中检集团溯源数据表和物流公司溯源数据表分别为三个第一分支溯源数据表。其中防伪标识码为生产商溯源数据表中的主键栏目,商品名称和生产批号的组合为代理商溯源数据表的组合主键栏目,防伪标识码为中检集团溯源数据表的主键栏目,运单号为物流公司溯源数据表的主键栏目。商品名称和生产批号的组合为生产商溯源数据表的一个组合第一外键栏目,商品名称和生产批号为该组合外键栏目的外键子栏目,运单号为生产商溯源数据表的另一个第一外键栏目,防伪标识码为生产商溯源数据表的又一个第一外键栏目。
溯源客户端获取溯源对象的携带防伪标识码的二维编码,经过解码后得到溯源对象的防伪标识码为“25498763”,向记账节点发送携带,防伪标识码“25498763”的溯源请求,记账节点根据防伪标识码“25498763”确定溯源对象在生产商溯源数据表中的溯源数据存储在图2中生产商溯源数据表的阴影标识的第三行,进而获取到溯源对象在生产商溯源数据表中的溯源数据包括:商品名称S、生产批号256478、生产日期04-05、防伪码标识25498763、运单号8479311等。
溯源对象在生产商溯源数据表中的溯源数据获取后,记账节点确定溯源对象在生产商溯源数据表中各个第一外键栏目对应的溯源数据,包括:组合第一外键栏目商品名称和生产批号分别为S和256478,第一外键栏目防伪标识码为25498763,第一外键栏目运单号为8479311。进而根据溯源对象在生产商溯源数据表中的第一外键栏目的溯源数据,确定溯源对象在各个第一分支溯源数据表中的溯源数据:在代理商溯源数据表中,外键子栏目商品名称S和生产批号256478出现在同一行的行数为图2中代理商溯源数据表中有阴影标识的第三行,将代理商溯源数据表中的第三行确定为目标行数,进而获取代理商溯源数据表中第三行的全部的溯源数据,作为溯源对象在代理商溯源数据表中的溯源数据。同理,获取溯源对象在中检集团溯源数据表中的溯源数据:防伪标识码25498763、检验时间04-10、检验对象名称S、检验结果等级一级等,以及获取溯源对象在物流公司溯源数据表中的溯源数据:商品名称S、运单号8479311、物流节点地点4、节点到达时间05-12 08:32等。
S104,记账节点分别获取所述中心溯源事务区块的区块哈希值和所述分支溯源事务区块的区块哈希值。
具体的,步骤S102中记账节点接收到的命令节点发送的所述中心溯源事务区块的区块体中,可以仅包含所述事务节点的溯源数据事务,也可以包含命令节点打包所述中心溯源事务区块之前接收到的还未打包成区块的其他事务。如图3所示,为所述中心溯源事务区块的区块体的一种形式,以图3中所述中心溯源事务区块的区块体包含的事务为例,其中,事务1、事务2和事务3分别为命令节点打包进所述中心溯源事务区块的其他事务。
命令节点在打包所述中心溯源事务区块时,计算所述中心溯源事务区块的区块哈希值并打包进所述中心溯源事务区块。若所述命令节点打包所述中心溯源事务区块时,还未被打包的事务仅包含所述溯源数据事务,则所述中心溯源事务区块的区块哈希值为所述溯源数据事务的哈希。若所述命令节点打包所述中心溯源事务区块时,还未打包的事务包含溯源数据事务以及其他事务,则建立各个事务哈希值的默克尔树(Merkle Tree),将默克尔树的默克尔根确定为所述中心溯源事务区块的区块哈希值。以图3所示为例,分别计算所述溯源数据事务、事务1、事务2和事务3各自的哈希值,然后进一步生成如图3所示的各个事务的哈希值的默克尔树,其中默克尔根Hash{Hash[Hash(溯源数据事务),Hash(事务1)],Hash[Hash(事务2),Hash(事务3)]}为所述中心溯源事务区块的区块哈希值。
记账节点接收到所述中心溯源事务区块后,将所述中心溯源事务区块的区块体中的溯源数据事务包含的所述溯源对象在所述中心溯源数据表中的溯源数据提取出来,存储在所述中心溯源数据表中,在一种实施方式中,所述中心溯源数据表中还可以包含存储所述中心溯源事务区块的区块号的区块号栏目,将所述中心溯源事务区块的区块号存储在对应的区块号栏目中,并将所述中心溯源事务区块的区块体中的默克尔树,以及所述中心溯源事务区块的区块号存储在预设的默克尔树数据库中。存储区块头的键-值数据库、默克尔树数据库以及所述中心溯源数据表可以通过所述中心溯源事务区块的区块号唯一确定所述中心溯源事务区块的区块头、默克尔树以及溯源数据事务包含的溯源对象的溯源数据。
步骤S104中,记账节点可以根据所述溯源对象在所述中心溯源数据表中溯源数据对应的区块号,获取所述中心溯源事务区块在所述区块哈希值中存储的所述中心溯源事务区块的区块头中包含的所述区块哈希值。
命令节点生成分支溯源事务区块的方式、记账节点对分支溯源事务区块的存储、以及记账节点获取分支溯源事务区块的区块哈希值的方式可以分别参阅命令节点生成中心溯源事务区块的方式、记账节点对中心溯源事务区块的方式以及记账节点获取中心溯源事务区块的区块哈希值的方式,此处不再赘述。
S105,记账节点根据所述中心溯源事务区块的区块哈希值对所述溯源对象在所述中心溯源数据表中的溯源数据进行验证,并根据所述分支溯源事务区块的区块哈希值对所述溯源对象在所述第一分支溯源数据表中的溯源数据进行验证。
这里,记账节点根据中心溯源事务区块的区块号从键-值数据库中获取所述中心溯源事务区块的区块头中包含的区块哈希值,进而对所述中心溯源数据表总的溯源数据进行验证。具体的,记账节点根据中心溯源事务区块的区块号从默克尔树数据库中获取所述中心溯源事务区块的默克尔树中所述溯源数据事务各层的相邻事务的哈希值,并根据所述溯源对象在所述中心溯源数据表中的溯源数据、所述中心溯源数据表中的各个溯源栏目以及所述中心溯源数据表对应的商品流转方的流转方标识重新构造所述中心溯源事务,进而根据所述重新构造的中心溯源事务以及所述相邻事务的哈希值计算中心溯源事务区块的默克尔根,并验证计算得到的默克尔根,与所述中心溯源事务区块的区块头中的区块哈希值是否一致,在一致的情况下,确认对所述溯源对象在所述第一分支溯源数据表中的溯源数据的验证通过。基于图3中所示的例子,记账节点根据所述溯源对象在中心溯源数据表中的溯源数据确定溯源数据事务的哈希值Hash’(溯源数据事务),然后根据获取到的Hash(事务1),计算得到Hash[Hash’(溯源数据事务),Hash(事务1)],进而根据获取到的Hash[Hash(事务2),Hash(事务3)],计算得到Hash{Hash[Hash’(溯源数据事务),Hash(事务1)],Hash[Hash(事务2),Hash(事务3)]},在确定从键-值数据库中获取到的区块头中包含的区块哈希值Hash{Hash[Hash(溯源数据事务),Hash(事务1)],Hash[Hash(事务2),Hash(事务3)]}与计算得到的Hash{Hash[Hash’(溯源数据事务),Hash(事务1)],Hash[Hash(事务2),Hash(事务3)]}一致时,确认对所述溯源对象在所述第一分支溯源数据表中的溯源数据的验证通过。
记账节点根据所述分支溯源事务区块的区块哈希值对所述溯源对象在所述第一分支溯源数据表中的溯源数据进行验证的实现方式,可参阅上述对所述溯源对象在所述中心溯源数据表中的溯源数据进行验证的实现方式。
将中心溯源事务区块的区块头和区块体分开存储,以及所述分支溯源事务区块的区块头和区块体的分开存储,可以通过区块头中包含的区块哈希值验证区块体中包含的溯源数据是否被篡改,提高溯源数据的可靠性。
S106,记账节点在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据。
这里,所述溯源对象的溯源数据包含在所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据。
一种实现的方式中,所述溯源请求为下游流转方在请求根据上游流转方生成的溯源对象的溯源数据生成业务预处理单时,通过客户端发送的,所述溯源请求中携带所述客户端的客户端标识,不同的商品流转方对应的客户端标识不同,记账节点可以根据所述客户端标识获取所述客户端对应的业务预处理单模板,然后根据所述业务预处理单模板,生成包含所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据的业务预处理单;进而在步骤S105中验证均通过的情况下将所述业务预处理单返回给所述客户端。
另一种可选的实现方式中,记账节点可以向所述溯源区块链系统中其他的存储有所述溯源对象的溯源事务区块的至少两个记账节点发送携带所述溯源对象的溯源标识的溯源数据获取请求;所述其他的至少两个记账节点响应所述溯源数据获取请求,根据所述溯源对象的溯源标识从存储的所述溯源对象的溯源事务区块中提取所述溯源对象的溯源数据;记账节点可以判断从所述中心溯源数据表中和第一分支溯源数据表中获取的溯源数据,与从所述其他的至少两个记账节点返回的所述溯源对象的溯源数据是否均一致,若一致,则该一致的溯源数据为所述溯源对象的可靠溯源数据;或者若存在版本不一致的所述溯源对象的溯源数据,将从所述中心溯源数据表中和第一分支溯源数据表中获取的溯源数据以及从所述其他的至少两个记账节点返回的所述溯源对象的溯源数据的各个版本的溯源数据最多的版本的溯源数据确定为可靠溯源数据。进而在步骤S105中验证通过的情况下,返回所述可靠溯源数据。
本发明实施例中,在接收到溯源请求后,根据溯源请求中携带的溯源标识从中心溯源数据表中获取溯源对象在中心溯源数据表中的溯源数据,进而根据溯源对象在中心溯源数据表中的第一外键栏目对应的溯源数据,获取溯源对象在将第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据,在根据中心溯源事务区块的区块哈希值对溯源对象在中心溯源数据表中的溯源数据的验证,以及根据分支溯源事务区块的区块哈希值对溯源对象在第一分支溯源数据表中的溯源数据的验证均通过的情况下,返回获取到的溯源对象的溯源数据。本方案中针对溯源对象的存储在不同溯源数据表中的溯源数据,通过针对各个溯源数据表预设的主键栏目和外键栏目进行关联获取,无需建立溯源对象的溯源标识与各个溯源数据表中的溯源数据的对应关系,节约了区块链系统存储溯源对象的溯源数据的存储空间,进而提高区块链系统的存储性能。
参见图4,图4为本发明实施例提供的另一种基于区块链的溯源数据的获取方法的流程示意图,所述基于区块链的溯源数据的获取方法可以使用在各个溯源数据表按照雪花形部署的方案中,即所述第一分支溯源数据表以中心数据表的第一外键栏目为主键栏目,溯源数据表按照雪花形部署方案中还存在以第一分支溯源数据表中的第二外键栏目为主键栏目的第二分支溯源数据表,还可以进一步存在以第二分支溯源数据表中的第三外键栏目作为主键栏目的第三分支溯源数据表,依次类推可以在记账节点中预设多层分支溯源数据表,本实施例中以获取溯源对象在第二分支溯源数据表中的溯源数据为例描述该方法使用在各个溯源数据表按照雪花形部署的方案。如图所示,记账节点存储所述溯源对象在所述中心溯源数据表和在所述第一分支溯源数据表中的溯源数据之后,所述方法还可以包括:
S201,接收溯源区块链系统中的命令节点发送的所述溯源对象的溯源事务区块。
所述溯源事务区块中包含对所述溯源对象进行流转产生溯源数据的第一商品流转方的流转方标识,以及所述第一商品流转方产生的溯源数据。
S202,根据所述第一商品流转方的流转方标识,确定所述第一商品流转方对应的第二分支溯源数据表。
这里,所述第二分支溯源数据表的主键栏目为所述第一分支溯源数据表中的第二外键栏目。参见图5,图5为本发明实施例提供的另一种获取溯源对象的溯源数据的示意图,如图所示,生产商溯源数据表为预设的中心溯源数据表,代理商溯源数据表、中检集团溯源数据表和物流公司溯源数据表分别为第一分支溯源数据表,电商平台溯源数据表为第二分支溯源数据表。代理商溯源数据表中包含第二外键栏目订单号,电商品台溯源数据表以订单号为主键栏目。
S203,将所述溯源事务区块包含的所述第一商品流转方产生的溯源数据存储在所述第二分支溯源数据表中。
S204,接收溯源请求。
所述溯源请求携带溯源对象的溯源标识。
S205,根据所述溯源对象的溯源标识获取所述溯源对象在中心溯源数据表中的溯源数据。
所述溯源对象在所述第一分支溯源数据表中的溯源数据为预先从接收到的分支溯源事务区块中提取并存储在所述第一分支溯源数据表中的。
本步骤具体实现方式参阅图1对应的实施例中步骤S102的具体实现方式,此处不再赘述,基于图5的例子,本步骤中获取到的溯源对象在生产商溯源数据表中的溯源数据包括:商品名称S、生产批号256478、生产日期04-05、防伪标识码25798763、运单号8479311等。
S206,根据所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据,获取所述溯源对象在将所述第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据。
所述溯源对象在所述第一分支溯源数据表中的溯源数据为预先从接收到的第一分支溯源事务区块中提取并存储在所述第一分支溯源数据表中的。
本步骤具体实现方式参阅图1对应的实施例中步骤S103的具体实现方式,此处不再赘述,基于图5的例子,本步骤中获取到的溯源对象在中检集团溯源数据表中的溯源数据包括:防伪标识码25798763、检验时间04-10、检验对象名称S、检验结果等级一级等;获取到的溯源对象在物流公司溯源数据表中的溯源数据包括:商品名称S、运单号8479311、物流节点地点4、节点到达时间05-1208:32等;获取到的溯源对象在代理商溯源数据表中的溯源数据包括:商品名称S、生产批号256478、运单号8479311、商品接收时间05-14 08:11、订单号58992等。
S207,根据所述溯源对象在所述第一分支溯源数据表中所述第二外键栏目对应的溯源数据,获取所述溯源对象在所述第二分支溯源数据表中的溯源数据。
所述溯源对象在所述第二分支溯源数据表中的溯源数据为预先从接收到的第二分支溯源事务区块中提取并存储在所述第二分支溯源数据表中的。
具体的,所述第二分支溯源数据表包含多行的溯源数据,其中不同行的溯源数据对应不同的商品,确定所述溯源对象在所述第一分支溯源数据表中所述第二外键栏目对应的溯源数据在所述第二分支溯源数据表中的主键中所处于的第一目标行数,获取所述第二分支溯源数据表中所述第一目标行数对应的全部的溯源数据。基于图5的例子,溯源对象在代理商溯源数据表的第二外键栏目订单号为58992,确定到在电商品台溯源数据表的主键栏目订单号中,订单号58992位于有阴影标识的第四行,获取第四行中全部溯源数据:商品名称S、订单号58992、购买账号HEUG、购买时间06-12 08:32等。
S208,分别获取所述中心溯源事务区块的区块哈希值、所述第一分支溯源事务区块的区块哈希值以及所述第二分支溯源事务区块的区块哈希值。
S209,根据所述中心溯源事务区块的区块哈希值对所述溯源对象在所述中心溯源数据表中的溯源数据进行验证,并根据所述第一分支溯源事务区块的区块哈希值对所述溯源对象在所述第一分支溯源数据表中的溯源数据进行验证,并根据所述第二分支溯源事务区块的区块哈希值对所述溯源对象在所述第二分支溯源数据表中的溯源数据进行验证。
本步骤的具体实现方式可参阅图1对应的实施例中步骤S105的具体实现方式,此处不再赘述。
S210,在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据。
所述溯源对象的溯源数据包含在所述溯源对象在所述中心溯源数据表中的溯源数据、在所述第一分支溯源数据表中的溯源数据以及在所述第二分支溯源数据表中的溯源数据。
本发明实施例中,将溯源对象的溯源数据分别存储在中心溯源数据表、以中心溯源数据表的第一外键栏目为主键栏目的第一分支溯源数据表以及以第一分支溯源数据表的第二外键栏目为主键栏目的第二分支溯源数据表中,并在接收到针对溯源对象的溯源请求时,从上述各个溯源数据表中获取溯源对象的溯源数据。实现了通过按照雪花形部署的各个溯源数据表预设的主键栏目和外键栏目关联获取溯源对象的溯源数据,无需建立溯源对象的溯源标识与各个溯源数据表中的溯源数据的对应关系,节约了区块链系统存储溯源对象的溯源数据的存储空间,进而提高区块链系统的存储性能。
参见图6,图6为本发明实施例提供的一种基于区块链的溯源数据的获取装置的结构示意图,如图所示,所述基于区块链的溯源数据的获取装置60至少包括请求接收单元601、溯源数据获取单元602、哈希获取单元603、验证单元604以及请求响应单元605,其中:
请求接收单元601,用于接收溯源请求,所述溯源请求携带溯源对象的溯源标识。
溯源数据获取单元602,用于根据所述溯源对象的溯源标识获取所述溯源对象在中心溯源数据表中的溯源数据,所述溯源对象在所述中心溯源数据表中的溯源数据为预先从接收到的中心溯源事务区块中提取并存储在所述中心溯源数据表中的,所述中心溯源数据表包含第一外键栏目。
所述溯源数据获取单元602,还用于根据所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据,获取所述溯源对象在将所述第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据,所述溯源对象在所述第一分支溯源数据表中的溯源数据为预先从接收到的分支溯源事务区块中提取并存储在所述第一分支溯源数据表中的。
哈希获取单元603,用于分别获取所述中心溯源事务区块的区块哈希值和所述分支溯源事务区块的区块哈希值。
验证单元604,用于根据所述中心溯源事务区块的区块哈希值对所述溯源对象在所述中心溯源数据表中的溯源数据进行验证,并根据所述分支溯源事务区块的区块哈希值对所述溯源对象在所述第一分支溯源数据表中的溯源数据进行验证。
请求响应单元605,用于在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据,所述溯源对象的溯源数据包含在所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据。
具体实现中,所述基于区块链的溯源数据的获取装置可以通过其内置的各个功能模块执行如图1-图5的基于区块链的溯源数据的获取方法中的各个步骤,具体实施细节可参阅图1-图5对应的实施例中各个步骤的实现细节,此处不再赘述。
本发明实施例中,在请求接收单元接收到溯源请求后,溯源数据获取单元根据溯源请求中携带的溯源标识从中心溯源数据表中获取溯源对象在中心溯源数据表中的溯源数据,并根据溯源对象在中心溯源数据表中的第一外键栏目对应的溯源数据,获取溯源对象在将第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据,在验证单元根据哈希获取单元获取的中心溯源事务区块的区块哈希值对溯源对象在中心溯源数据表中的溯源数据的验证,以及根据哈希获取单元获取的分支溯源事务区块的区块哈希值对溯源对象在第一分支溯源数据表中的溯源数据的验证均通过的情况下,请求响应单元返回获取到的溯源对象的溯源数据。本方案中针对溯源对象的存储在不同溯源数据表中的溯源数据,通过针对各个溯源数据表预设的主键栏目和外键栏目进行关联获取,无需建立溯源对象的溯源标识与各个溯源数据表中的溯源数据的对应关系,节约了区块链系统存储溯源对象的溯源数据的存储空间,进而提高区块链系统的存储性能。
参见图7,图7为本发明实施例提供的另一种基于区块链的溯源数据的获取装置的结构示意图,如图所示,所述业务数据的转移装置70包括处理器701、存储器702以及通信接口703。处理器701连接到存储器702和通信接口703,例如处理器701可以通过总线连接到存储器702和通信接口703。
处理器701被配置为支持所述基于区块链的溯源数据的获取装置执行图1-图5所述的业务数据的转移方法中相应的功能。该处理器701可以是中央处理器(CentralProcessing Unit,CPU),网络处理器(Network Processor,NP),硬件芯片或者其任意组合。上述硬件芯片可以是专用集成电路(Application-Specific Integrated Circuit,ASIC),可编程逻辑器件(Programmable Logic Device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD),现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA),通用阵列逻辑(Generic Array Logic,GAL)或其任意组合。
存储器702用于存储程序代码等。存储器702包括内部存储器,内部存储器可以包括以下至少一项:易失性存储器(例如动态随机存取存储器(DRAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)等)和非易失性存储器(例如一次性可编程只读存储器(OTPROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)。存储器702还可以包括外部存储器,外部存储器可以包括以下至少一项:硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)、闪驱,例如高密度闪存(CF)、安全数字(SD)、微型SD、迷你型SD、极限数字(xD)、存储棒等。
所述通信接口703用于接收或发送数据。
处理器701可以调用所述程序代码以执行以下操作:
接收溯源请求,所述溯源请求携带溯源对象的溯源标识;
根据所述溯源对象的溯源标识获取所述溯源对象在中心溯源数据表中的溯源数据,所述溯源对象在所述中心溯源数据表中的溯源数据为预先从接收到的中心溯源事务区块中提取并存储在所述中心溯源数据表中的,所述中心溯源数据表包含第一外键栏目;
根据所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据,获取所述溯源对象在将所述第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据,所述溯源对象在所述第一分支溯源数据表中的溯源数据为预先从接收到的分支溯源事务区块中提取并存储在所述第一分支溯源数据表中的;
分别获取所述中心溯源事务区块的区块哈希值和所述分支溯源事务区块的区块哈希值;
根据所述中心溯源事务区块的区块哈希值对所述溯源对象在所述中心溯源数据表中的溯源数据进行验证,并根据所述分支溯源事务区块的区块哈希值对所述溯源对象在所述第一分支溯源数据表中的溯源数据进行验证;
在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据,所述溯源对象的溯源数据包含在所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据。
需要说明的是,各个操作的实现还可以对应参照图1-图5所示的方法实施例的相应描述;所述处理器701还可以用于执行上述方法实施例中的其他操作。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行如前述实施例所述的方法,所述计算机可以为上述提到的基于区块链的溯源数据的获取装置的一部分。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种基于区块链的溯源数据的获取方法,其特征在于,包括:
接收溯源请求,所述溯源请求携带溯源对象的溯源标识;
根据所述溯源对象的溯源标识获取所述溯源对象在中心溯源数据表中的溯源数据,所述溯源对象在所述中心溯源数据表中的溯源数据为预先从接收到的中心溯源事务区块中提取并存储在所述中心溯源数据表中的,所述中心溯源数据表包含第一外键栏目;
根据所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据,获取所述溯源对象在将所述第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据,所述溯源对象在所述第一分支溯源数据表中的溯源数据为预先从接收到的分支溯源事务区块中提取并存储在所述第一分支溯源数据表中的;
分别获取所述中心溯源事务区块的区块哈希值和所述分支溯源事务区块的区块哈希值;
根据所述中心溯源事务区块的区块哈希值对所述溯源对象在所述中心溯源数据表中的溯源数据进行验证,并根据所述分支溯源事务区块的区块哈希值对所述溯源对象在所述第一分支溯源数据表中的溯源数据进行验证;
在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据,所述溯源对象的溯源数据包含在所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据。
2.如权利要求1所述的方法,其特征在于,所述第一分支溯源数据表包含多行的溯源数据,其中不同行的溯源数据对应不同的商品;
所述根据所述中心溯源数据表中所述第一外键栏目对应的溯源数据,获取所述溯源对象在将所述第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据包括:
确定所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据在所述第一分支溯源数据表的主键栏目中所处于的目标行数;
获取所述第一分支溯源数据表中所述目标行数对应的全部的溯源数据。
3.如权利要求2所述的方法,其特征在于,所述第一外键栏目包含多个外键子栏目;
所述确定所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据在所述第一分支溯源数据表的主键栏目中所处于的目标行数包括:
将所述溯源对象在所述中心溯源数据表中所述多个外键子栏目各自对应的溯源数据出现在所述分支溯源数据表中同一行的行数确定为所述目标行数。
4.如权利要求1所述的方法,其特征在于,所述第一分支溯源数据表包含第二外键栏目;
所述方法还包括:
根据所述溯源对象在所述第一分支溯源数据表中所述第二外键栏目对应的溯源数据,获取所述溯源对象在将所述第二外键栏目作为主键栏目的第二分支溯源数据表中的溯源数据;
所述响应所述溯源请求返回的所述溯源对象的溯源数据中包含所述溯源对象在所述第二分支溯源数据表中的溯源数据。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收溯源区块链系统中的命令节点发送的所述溯源对象的溯源事务区块,所述溯源事务区块中包含对所述溯源对象进行流转产生溯源数据的溯源对象流转方的流转方标识,以及所述溯源对象流转方产生的溯源数据;
根据所述溯源对象流转方的流转方标识,从所述中心溯源数据表和所述第一分支溯源数据表中确定所述溯源对象流转方对应的溯源数据表;
将所述溯源事务区块包含的所述溯源对象流转方产生的溯源数据存储在所述溯源对象流转方对应的溯源数据表中。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
向所述溯源区块链系统中存储有所述溯源对象的溯源事务区块的至少两个记账节点发送携带所述溯源对象的溯源标识的溯源数据获取请求;
接收所述至少两个记账节点响应所述溯源数据获取请求返回的所述溯源对象的溯源数据,所述记账节点返回的所述溯源对象的溯源数据为所述记账节点根据所述溯源对象的溯源标识从存储的所述溯源对象的溯源事务区块中提取的;
所述在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据包括:
根据接收到至少两个记账节点返回的所述溯源对象的溯源数据,以及所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据,确定所述溯源对象的可靠溯源数据;
在验证均通过的情况下返回所述可靠溯源数据。
7.如权利要求1所述的方法,其特征在于,所述溯源请求为客户端发送的,所述溯源请求中携带所述客户端的客户端标识;
所述在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据包括:
根据所述客户端标识获取所述客户端对应的业务预处理单模板;
根据所述业务预处理单模板,生成包含所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据的业务预处理单;
在验证均通过的情况下将所述业务预处理单返回给所述客户端。
8.一种基于区块链的溯源数据的获取装置,其特征在于,包括:
请求接收单元,用于接收溯源请求,所述溯源请求携带溯源对象的溯源标识;
溯源数据获取单元,用于根据所述溯源对象的溯源标识获取所述溯源对象在中心溯源数据表中的溯源数据,所述溯源对象在所述中心溯源数据表中的溯源数据为预先从接收到的中心溯源事务区块中提取并存储在所述中心溯源数据表中的,所述中心溯源数据表包含第一外键栏目;
所述溯源数据获取单元,还用于根据所述溯源对象在所述中心溯源数据表中所述第一外键栏目对应的溯源数据,获取所述溯源对象在将所述第一外键栏目作为主键栏目的第一分支溯源数据表中的溯源数据,所述溯源对象在所述第一分支溯源数据表中的溯源数据为预先从接收到的分支溯源事务区块中提取并存储在所述第一分支溯源数据表中的;
哈希获取单元,用于分别获取所述中心溯源事务区块的区块哈希值和所述分支溯源事务区块的区块哈希值;
验证单元,用于根据所述中心溯源事务区块的区块哈希值对所述溯源对象在所述中心溯源数据表中的溯源数据进行验证,并根据所述分支溯源事务区块的区块哈希值对所述溯源对象在所述第一分支溯源数据表中的溯源数据进行验证;
请求响应单元,用于在验证均通过的情况下响应所述溯源请求返回所述溯源对象的溯源数据,所述溯源对象的溯源数据包含在所述溯源对象在所述中心溯源数据表中的溯源数据和在所述第一分支溯源数据表中的溯源数据。
9.一种基于区块链的溯源数据的获取装置,其特征在于,包括处理器、存储器以及通信接口,所述处理器、存储器和通信接口相互连接,其中,所述通信接口用于接收和发送数据,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行如权利要求1-7任一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910426589.4A CN110222053B (zh) | 2019-05-21 | 2019-05-21 | 一种基于区块链的溯源数据的获取方法及相关设备 |
PCT/CN2020/086175 WO2020233325A1 (zh) | 2019-05-21 | 2020-04-22 | 一种基于区块链的溯源数据的获取方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910426589.4A CN110222053B (zh) | 2019-05-21 | 2019-05-21 | 一种基于区块链的溯源数据的获取方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110222053A true CN110222053A (zh) | 2019-09-10 |
CN110222053B CN110222053B (zh) | 2023-03-21 |
Family
ID=67821718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910426589.4A Active CN110222053B (zh) | 2019-05-21 | 2019-05-21 | 一种基于区块链的溯源数据的获取方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110222053B (zh) |
WO (1) | WO2020233325A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475530A (zh) * | 2020-04-08 | 2020-07-31 | 珠海复旦创新研究院 | 基于区块链的溯源信息验证查询方法、装置及设备 |
WO2020233325A1 (zh) * | 2019-05-21 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 一种基于区块链的溯源数据的获取方法及相关设备 |
CN114079567A (zh) * | 2020-08-21 | 2022-02-22 | 东北大学秦皇岛分校 | 一种基于区块链的通用性ip溯源系统及方法 |
CN114449003A (zh) * | 2022-01-28 | 2022-05-06 | 浪潮云信息技术股份公司 | 一种联盟链数据处理方法及联盟链 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113657914A (zh) * | 2021-08-26 | 2021-11-16 | 卓尔智联(武汉)研究院有限公司 | 基于区块链的商品溯源方法、计算机装置及存储介质 |
CN116595499B (zh) * | 2023-07-18 | 2023-11-21 | 江苏网进科技股份有限公司 | 一种多部门协同事务数据共享溯源方法 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150245084A1 (en) * | 2014-02-27 | 2015-08-27 | Cinsay, Inc. | Apparatus and method for gathering analytics |
CN105608146A (zh) * | 2015-12-17 | 2016-05-25 | 布比(北京)网络技术有限公司 | 一种区块链溯源追踪方法 |
CN107341676A (zh) * | 2017-07-17 | 2017-11-10 | 深圳天净喔溯源科技有限公司 | 防伪溯源标识和方法 |
CN107391735A (zh) * | 2017-08-04 | 2017-11-24 | 北京明朝万达科技股份有限公司 | 基于区块链的业务数据溯源方法、装置、系统和存储设备 |
CN107423945A (zh) * | 2017-04-13 | 2017-12-01 | 葛武 | 基于区块链技术的智能能源交易管理系统及方法 |
US20170364552A1 (en) * | 2016-06-16 | 2017-12-21 | The Bank Of New York Mellon | Ensuring Data Integrity of Executed Transactions |
CN107679877A (zh) * | 2017-10-18 | 2018-02-09 | 上海唯链信息科技有限公司 | 一种基于区块链技术的化妆品防伪和追溯系统 |
CN107787490A (zh) * | 2015-05-11 | 2018-03-09 | 甲骨文国际公司 | 分布式数据库网格中的直接连接功能 |
CN107909372A (zh) * | 2017-10-25 | 2018-04-13 | 复旦大学 | 一种基于区块链技术的农产品溯源方法 |
CN108470266A (zh) * | 2018-04-01 | 2018-08-31 | 南京交通职业技术学院 | 基于区块链的产品追踪系统 |
US20180314539A1 (en) * | 2017-04-26 | 2018-11-01 | Red Hat, Inc. | Cooperative cloud infrastructure using blockchains for hardware ownership and access |
CN108805585A (zh) * | 2018-05-28 | 2018-11-13 | 广州中国科学院软件应用技术研究所 | 基于区块链的分布式商品数据存储系统、流通及溯源方法 |
US20180343175A1 (en) * | 2017-05-24 | 2018-11-29 | International Business Machines Corporation | Decentralized change management based on peer devices using a blockchain |
US20190018867A1 (en) * | 2017-07-13 | 2019-01-17 | International Business Machines Corporation | Rule based data processing |
US20190034465A1 (en) * | 2017-07-28 | 2019-01-31 | Hitachi, Ltd. | Blockchain logging of data from multiple systems |
CN109388643A (zh) * | 2018-10-26 | 2019-02-26 | 陕西医链区块链集团有限公司 | 一种基于区块链的快速数据检索系统及方法 |
CN109408753A (zh) * | 2018-10-28 | 2019-03-01 | 北京工业大学 | 一种基于区块链溯源系统的农场数据展示平台 |
CN109636038A (zh) * | 2018-12-12 | 2019-04-16 | 国网黑龙江省电力有限公司双鸭山供电公司 | 基于区块链的用电高峰监测方法 |
US20190140822A1 (en) * | 2016-12-30 | 2019-05-09 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Block chain permission control method, device, and node apparatus |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140075026A1 (en) * | 2012-09-13 | 2014-03-13 | Lung Cheng Technology Ltd. | Cloud database management method |
CN104090897B (zh) * | 2013-12-19 | 2016-05-04 | 深圳市腾讯计算机系统有限公司 | 访问元数据的方法、服务器及系统 |
CN110222053B (zh) * | 2019-05-21 | 2023-03-21 | 深圳壹账通智能科技有限公司 | 一种基于区块链的溯源数据的获取方法及相关设备 |
-
2019
- 2019-05-21 CN CN201910426589.4A patent/CN110222053B/zh active Active
-
2020
- 2020-04-22 WO PCT/CN2020/086175 patent/WO2020233325A1/zh active Application Filing
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150245084A1 (en) * | 2014-02-27 | 2015-08-27 | Cinsay, Inc. | Apparatus and method for gathering analytics |
CN107787490A (zh) * | 2015-05-11 | 2018-03-09 | 甲骨文国际公司 | 分布式数据库网格中的直接连接功能 |
CN105608146A (zh) * | 2015-12-17 | 2016-05-25 | 布比(北京)网络技术有限公司 | 一种区块链溯源追踪方法 |
US20170364552A1 (en) * | 2016-06-16 | 2017-12-21 | The Bank Of New York Mellon | Ensuring Data Integrity of Executed Transactions |
US20190140822A1 (en) * | 2016-12-30 | 2019-05-09 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Block chain permission control method, device, and node apparatus |
CN107423945A (zh) * | 2017-04-13 | 2017-12-01 | 葛武 | 基于区块链技术的智能能源交易管理系统及方法 |
US20180314539A1 (en) * | 2017-04-26 | 2018-11-01 | Red Hat, Inc. | Cooperative cloud infrastructure using blockchains for hardware ownership and access |
US20180343175A1 (en) * | 2017-05-24 | 2018-11-29 | International Business Machines Corporation | Decentralized change management based on peer devices using a blockchain |
US20190018867A1 (en) * | 2017-07-13 | 2019-01-17 | International Business Machines Corporation | Rule based data processing |
CN107341676A (zh) * | 2017-07-17 | 2017-11-10 | 深圳天净喔溯源科技有限公司 | 防伪溯源标识和方法 |
US20190034465A1 (en) * | 2017-07-28 | 2019-01-31 | Hitachi, Ltd. | Blockchain logging of data from multiple systems |
CN107391735A (zh) * | 2017-08-04 | 2017-11-24 | 北京明朝万达科技股份有限公司 | 基于区块链的业务数据溯源方法、装置、系统和存储设备 |
CN107679877A (zh) * | 2017-10-18 | 2018-02-09 | 上海唯链信息科技有限公司 | 一种基于区块链技术的化妆品防伪和追溯系统 |
CN107909372A (zh) * | 2017-10-25 | 2018-04-13 | 复旦大学 | 一种基于区块链技术的农产品溯源方法 |
CN108470266A (zh) * | 2018-04-01 | 2018-08-31 | 南京交通职业技术学院 | 基于区块链的产品追踪系统 |
CN108805585A (zh) * | 2018-05-28 | 2018-11-13 | 广州中国科学院软件应用技术研究所 | 基于区块链的分布式商品数据存储系统、流通及溯源方法 |
CN109388643A (zh) * | 2018-10-26 | 2019-02-26 | 陕西医链区块链集团有限公司 | 一种基于区块链的快速数据检索系统及方法 |
CN109408753A (zh) * | 2018-10-28 | 2019-03-01 | 北京工业大学 | 一种基于区块链溯源系统的农场数据展示平台 |
CN109636038A (zh) * | 2018-12-12 | 2019-04-16 | 国网黑龙江省电力有限公司双鸭山供电公司 | 基于区块链的用电高峰监测方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020233325A1 (zh) * | 2019-05-21 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 一种基于区块链的溯源数据的获取方法及相关设备 |
CN111475530A (zh) * | 2020-04-08 | 2020-07-31 | 珠海复旦创新研究院 | 基于区块链的溯源信息验证查询方法、装置及设备 |
CN114079567A (zh) * | 2020-08-21 | 2022-02-22 | 东北大学秦皇岛分校 | 一种基于区块链的通用性ip溯源系统及方法 |
CN114079567B (zh) * | 2020-08-21 | 2024-02-06 | 东北大学秦皇岛分校 | 一种基于区块链的通用性ip溯源系统及方法 |
CN114449003A (zh) * | 2022-01-28 | 2022-05-06 | 浪潮云信息技术股份公司 | 一种联盟链数据处理方法及联盟链 |
Also Published As
Publication number | Publication date |
---|---|
CN110222053B (zh) | 2023-03-21 |
WO2020233325A1 (zh) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222053A (zh) | 一种基于区块链的溯源数据的获取方法及相关设备 | |
CN109067541B (zh) | 基于区块链的数据验证方法及装置、电子设备 | |
CN110232576A (zh) | 一种基于区块链的溯源数据处理方法及相关装置 | |
CN111507709B (zh) | 一种数据溯源系统 | |
CN109829726B (zh) | 一种基于区块链的药品信息管理方法及系统 | |
CN110427774A (zh) | 基于区块链的数据存证方法、数据校验方法及相关装置 | |
CN109345388A (zh) | 区块链智能合约验证方法、装置及存储介质 | |
CN110134584A (zh) | 一种接口测试用例的生成方法、装置、存储介质和服务器 | |
CN102460404A (zh) | 生成混淆数据 | |
CN108717466A (zh) | 征信数据存储方法、装置、计算机设备及存储介质 | |
CN109284073A (zh) | 数据存储方法、装置、系统、服务器、控制节点及介质 | |
CN112017745B (zh) | 决策信息推荐、药物信息推荐方法、装置、设备及介质 | |
CN104731953A (zh) | 一种基于r的数据预处理系统的构建方法 | |
CN109189859A (zh) | 区块链网络中的节点初始化方法和装置 | |
WO2022206439A1 (zh) | 提供跨链消息的方法和装置 | |
CN103870571B (zh) | 多维联机分析处理系统中的立方体重构方法和装置 | |
CN106156356A (zh) | 基于xml的oais信息封装方法及系统 | |
CN107025212A (zh) | 编码方法、编码装置、解码方法和解码装置 | |
CN117709981A (zh) | 一种烟草产品的监测方法、装置和管理系统 | |
JP5186959B2 (ja) | 社会ネットワーク構造モデルを導出する電子計算機及びプログラム | |
CN113194143A (zh) | 一种区块链账户的创建方法、装置及电子设备 | |
CN109144766A (zh) | 一种数据存储、重构方法和装置、及电子设备 | |
Vidya et al. | Web mining-concepts and application | |
CN110389991B (zh) | 地图路段的报错处理方法、装置和存储介质 | |
CN115907803A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |