本发明涉及区块链,具体地说是一种基于区块链的大规模制造全生命周期高效溯源方法。
背景技术:
1、大规模制造业供应链是一个复杂的系统,包括供应商、制造商、经销商和客户,它们合作生产和流通产品。对于供应链管理来说,产品全生命周期溯源至关重要,即检索问题产品从原料到销售的全生命周期数据。近年来,区块链作为一种有前景的全生命周期溯源技术出现了。它具有去中心化、透明性和不变性等理想特性,打破了信息孤岛,提高了供应链利益相关者之间的信息交换速度。每个阶段的产品数据作为交易存储在链上,并在溯源过程中检索。然而,在大规模制造业供应链中,产品数量庞大,每个产品经过的阶段较多,且每个阶段数据量较大,导致了总体交易的数据量大和巨大的存储压力;同时,产品全生命周期溯源需要对每个阶段的多个交易数据进行一一检索,加之全生命周期溯源的需求较大,导致数据检索请求的频次高和巨大的存检索压力。为了减轻存储和检索压力,提出了链上链下模式。因此,需要一种高效的全生命周期溯源中的链上链下数据检索方法。
2、中国专利“cn112950227a基于区块链的中欧陆海快线跨国供应链信息追溯系统及方法”提供了一种基于区块链的中欧陆海快线跨国供应链信息追溯系统及方法,包括产品追溯模块和查询模块,其中产品追溯模块包括供应链链上模块和供应链链下模块,从而实现了追溯信息的检索,另一方面提高了追溯信息的可靠性。但其所述的技术方案将完整的交易数据存储在链下,只将交易的hash值存储在链上进行验证。在溯源时,每个阶段的数据都是从链下不同地址的具有大量数据的数据表或文档中检索的,而不是直接在链上检索。高通信需求导致时间消耗较长、整体效率低下。
3、中国专利“cn113157733a一种面向多链数据关联性的高效溯源查询方法”提供了一种面向多链数据关联性的高效溯源查询方法,其特征包括:识别要溯源查询的目标交易、基于跨链交易数据关联性找到所有对应的目标链、并行发出查询请求、目标链根据所述目标交易的键值进行查询并返回查询结果,从而有效提升了溯源查询效率和整个系统的可扩展性。但其技术方案在链上存储每个交易的前序交易关联信息,在每个交易数据生成时,需要从所有具有大量数据的区块中,检索其相应的前序交易信息,其效率甚至低于上述只在链上存储交易hash值的方法。
4、中国专利“cn117194518a基于区块链的大规模制造全生命周期溯源的数据查询方法”提供了一种基于区块链的大规模制造全生命周期溯源的数据查询方法,其在交易结构中增加了当前阶段的索引和前一阶段的索引,从而可以在不检索所有交易的情况下,获取交易的关键信息,提高了溯源时检索交易的效率。但其技术方案缺少索引信息和链下数据之间的关联,不适用于链上链下模式。
技术实现思路
1、针对现有技术的不足,本发明的目的在于提出一种基于区块链的大规模制造全生命周期高效溯源方法,包括:
2、步骤1:针对制造全生命周期中的待溯源产品,获取所述待溯源产品的批次号,针对大规模制造全生命周期中的多个阶段,确定大规模制造全生命周期中的最后一个阶段;
3、步骤2:将大规模制造全生命周期中的最后一个阶段作为当前阶段,将所述批次号作为当前交易的索引;
4、步骤3:针对当前阶段的每一个当前交易的索引的hash值,在预先划分的区块链的多个节点组以及节点组的组号中,确定用于实现当前检索请求的区块链的目标组号,针对每一个当前交易,通过目标组号对应的区块链节点组中的节点,根据当前交易的索引的hash值,在预先构建的交易划分后的inmpt结构中,获取当前阶段的上一阶段的所有交易的索引的hash值,其中,所有目标组号对应的区块链节点组在获取当前阶段的上一阶段的所有交易的索引的hash值时是并行执行的;
5、其中,所述交易划分后的inmpt结构,即index merkle patricia trie结构,包括制造全生命周期中所有阶段的所有交易的索引信息,所述交易的索引信息包括key和value,所述key为该交易的索引的hash值,所述value包括该交易的完整信息的链下存储位置,以及该交易对应的上一阶段的所有交易的索引的hash值,所述交易划分后的inmpt结构采用mpt结构,所述交易划分后的inmpt结构包括根节点、阶段分支节点、扩展节点、分支节点和叶节点,所述根节点与所述阶段分支节点相连接,一个阶段分支对应于制造全生命周期中的一个阶段,阶段分支节点与包含相应阶段的所有交易的索引信息的多个节点中的扩展节点相连接,包含相应阶段的所有交易的索引信息的多个节点包括扩展节点、分支节点和叶节点;
6、步骤4:判断当前阶段是否为大规模制造全生命周期中的第一个阶段,若当前阶段的为大规模制造全生命周期中的第一个阶段,则流程结束;若当前阶段的不是大规模制造全生命周期中的第一个阶段,则执行步骤5;
7、步骤5:将当前阶段的上一阶段作为新的当前阶段,将上一阶段的每一个交易的索引的hash值作为一个当前交易的索引的hash值,返回执行步骤3。
8、可选的,所述交易划分后的inmpt结构通过以下步骤构建:
9、步骤a1:获取大规模制造全生命周期的所有阶段中所有交易的索引,针对每一个交易的索引,将索引通过hash算法进行计算,得到该交易的索引的hash值,即该交易的key,获取该交易的上一阶段的交易索引的hash值,以及该交易完整信息的链下存储位置,得到该交易的value,该交易的key和该交易的value组成该交易的索引信息,进而得到所有交易的索引信息;
10、步骤a2:根据mpt结构和所有交易的索引信息,构建初始inmpt结构,所述初始inmpt结构包含所有阶段的所有交易的索引信息,所述初始inmpt结构包括一个根节点、多个扩展节点、多个分支节点和多个叶节点,针对每一个交易,该交易的索引的key由该交易的扩展节点、该交易的分支节点和该交易的叶节点组成,该交易的value存储在该交易的叶节点中;
11、步骤a3:根据大规模制造全生命周期的各个阶段,在初始inmpt结构中根节点和扩展节点之间设置阶段分支节点,并根据阶段对初始inmpt结构中的交易索引信息进行划分,进而基于阶段分支节点对应的阶段,以及对初始inmpt结构中的交易索引信息划分后的该阶段对应的结构,整理得到交易划分后的inmpt结构。
12、可选的,步骤3具体包括:
13、步骤3.1:针对当前阶段的每一个当前交易的索引,通过hash算法计算,得到每一个当前索引的hash值,进而生成当前检索请求,并将当前检索请求发送至区块链,区块链在接收到当前检索请求后,在预先划分的区块链的多个节点组以及节点组的组号中,根据当前检索请求中交易的索引的hash值,计算区块链中用于实现当前检索请求的区块链节点组的目标组号;
14、步骤3.2:针对每一个当前交易,通过目标组号对应的区块链节点组中的节点,根据当前交易的索引的hash值,在预先构建的交易划分后的inmpt结构,查找当前交易的索引的hash值对应的叶节点,在当前交易的索引的hash值对应的叶节点的value中,获取当前阶段的上一阶段的所有交易的索引的hash值。
15、可选的,步骤3.1中根据当前检索请求中交易的索引的hash值,计算区块链中用于实现当前检索请求的区块链节点组的目标组号,具体通过以下方式实现:
16、将当前交易的索引的hash值除以区块链节点的总组数,再进行取模运算,得到当前交易的索引的hash值对应的用于实现当前检索请求的区块链节点组的目标组号,具体通过以下公式实现:
17、rj=ijmodm(1)
18、其中,ij表示当前检索请求j中当前交易的索引的hash值,m表示区块链节点的总组数,rj表示用于实现当前检索请求j的区块链节点组的目标组号。
19、可选的,所述区块链的多个节点组以及节点组的组号的预先划分通过以下步骤实现:
20、步骤b1:针对区块链的所有节点,确定分组的总组数;
21、步骤b2:根据总组数,对区块链中的所有节点进行划分,确定每个节点所属的组号,以得到区块链的多个节点组以及节点组的组号。
22、可选的,步骤b1具体包括:
23、建立总组数的公式,具体通过公式(2)表示:
24、
25、其中,m表示区块链节点的总组数;c表示每组区块链中节点与其他组区块链中节点的通信时间;o表示在区块链节点分组前,在inmpt结构中,响应当前数据检索请求所需时间;t是优化目标,t表示在总组数为m时,响应当前检索请求所需时间;s.t.为约束条件,n+为正整数,minm t在总组数为m时使t最小;
26、对公式(2)求导,得到:
27、dt/dm=c-o/m2(3)
28、令导数为0,得到
29、
30、由于m∈n+,公式(2)的最优解为:
31、
32、由此得到区块链节点组的总组数m的值为公式(5)。
33、可选的,步骤b2具体包括:
34、对区块链中节点的地址,通过hash算法,得到hash值,将hash值除以总组数,再进行取模运算,得到区块链中节点被分配到的组号,具体通过以下公式实现:
35、gi=hash(adi)(modm)(6)
36、其中,adi表示节点i的地址,m表示区块链节点的总组数,gi表示节点i的组号;
37、采用上述技术方案所产生的有益效果在于:
38、在本发明中,所述inmpt实现了通过当前交易对应的叶节点的value,即可直接检索到前阶段交易对应的叶节点,从而避免了在链下检索交易完整信息,以获取前一阶段交易的索引;所述交易划分实现了在所述inmpt的不同交易分支上的并行数据检索,从而将检索时间复杂度从o(log(n))降为o(log(n/k)),提高了大量交易数据时的检索效率;所述节点划分实现了不同节点组的并行数据检索,从而提高了检索请求频次高时的检索效率。本发明与传统只在链上存储交易hash值的链上链下方法相比,在全生命周期溯源中的数据检索效率方面提高了约1233%。
1.一种基于区块链的大规模制造全生命周期高效溯源方法,其特征在于,包括:
2.根据权利要求1所述的基于区块链的大规模制造全生命周期高效溯源方法,其特征在于,所述交易划分后的inmpt结构通过以下步骤构建:
3.根据权利要求1所述的基于区块链的大规模制造全生命周期高效溯源方法,其特征在于,步骤3具体包括:
4.根据权利要求3所述的基于区块链的大规模制造全生命周期高效溯源方法,其特征在于,步骤3.1中根据当前检索请求中交易的索引的hash值,计算区块链中用于实现当前检索请求的区块链节点组的目标组号,具体通过以下方式实现:
5.根据权利要求1所述的基于区块链的大规模制造全生命周期高效溯源方法,其特征在于,所述区块链的多个节点组以及节点组的组号的预先划分通过以下步骤实现:
6.根据权利要求5所述的基于区块链的大规模制造全生命周期溯源中的primpt方法,其特征在于,步骤b1具体包括:
7.根据权利要求5所述的基于区块链的大规模制造全生命周期溯源中的primpt方法,其特征在于,步骤b2具体包括: