CN115630118A - 一种区块链溯源应用中降低节点存储量占用的方法 - Google Patents
一种区块链溯源应用中降低节点存储量占用的方法 Download PDFInfo
- Publication number
- CN115630118A CN115630118A CN202210994886.0A CN202210994886A CN115630118A CN 115630118 A CN115630118 A CN 115630118A CN 202210994886 A CN202210994886 A CN 202210994886A CN 115630118 A CN115630118 A CN 115630118A
- Authority
- CN
- China
- Prior art keywords
- cluster
- data
- product
- tracing
- client
- 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
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/018—Certifying business or products
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Entrepreneurship & Innovation (AREA)
- Computing Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Finance (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种区块链溯源应用中降低节点存储量占用的方法,包括:获取产品生产数据并对其进行数据预处理得到样本集;对样本集进行k‑mens聚类以获得k个簇;获取产品对应的识别码以将其与对应簇建立映射关系,将每个簇映射的产品进行物理聚类以形成k个与簇对应的物理簇;获取持续批次的单个产品生产数据并将其作为待分类样本输入至KNN模型中以计算出其所属簇;获产品对应的识别码以将对应产品添加至物理簇;将一级采购方与一物理簇之间建立定向采购机制;将建立机制的物理簇对应簇所包含的任意一产品生产数据作为簇数据部署至区块链中;根据任一溯源请求查找其所属簇并将部署在区块链中的所属簇对应的产品生产簇数据作为产品生产数据的溯源结果进行反馈。
Description
技术领域
本发明涉及区块链溯源技术领域,特别涉及一种区块链溯源应用中降低节点存储量占用的方法。
背景技术
区块链具有数据透明、防篡改、多方可验证等优点,这些优点使其具有广阔的应用前景。例如应用在商品溯源的场景中,特别是涉及跨境的商品溯源。
区块链溯源是指利用区块链技术,通过其独特的不可纂改的分布式账本记录特性,对商品实现从源头的信息采集记录、原料来源追溯、生产过程、加工环节、仓储信息、检验批次、物流周转到第三方质检、海关出入境、防伪鉴证等的全程可追溯。
溯源的本质是信息传递,而区块链本身也是信息传递,数据做成区块,然后按照相关的算法生成私钥、防止篡改,再用时间戳等方式形成链,而这恰恰符合了商品市场流程化生产模式,商品流通本身就是流程化的,原料从源产地经过一道道工序生产出来,信息也是从源产地的信息到一道道加工的信息出来的,从原材料到加工到流通最后到销售,是一个以时间为顺序的流程化的过程,区块链内信息同样也是按时间顺序排序并且可实时追溯的,两者刚好完美契合。
区块链技术特有的去中心化存储,不依赖于某个组织和个人,利用可信的技术手段将所有信息公开记录在“公共账本”上,链上的数据具有时间戳且不可篡改,一旦不可篡改的信息被建立了,相当于确定了现实世界的商品在互联网世界的唯一身份,相应的信息也会永久记录在链上,而且实现了基于这个身份流转的所有的追踪和记录。当前的区块链防伪溯源的落地应用项目大多是基于公链或者联盟链来建立的。
因为链上信息不能随意篡改,每个商品从生产到运输再到最后销售,每一个环节的信息都要被记录在区块链上,可以确保商品的唯一性,所以假货信息就无法进入到区块链系统中。除非链上某个厂商(节点)故意用假货替换正版商品,即使这样,被替换的正版商品也将无法被销售,这样做反而会产生负收益。
例如图 1示出了一种现有技术中常见的区快速溯源结构;一种区快速溯源的实现方式例如,产品生产时,生产企业通过区块链分配的密钥为每件产品产生唯一的识别码,产品从生产到流通的每个环节上,通过扫描识别码来生成一条专属操作记录并上传到区块链上进行记录,从而记录下产品的整个轨迹,消费者可以通过识别码查询区块链中的原始轨迹。
区块链技术主要是解决了信息的真实性和可追溯性,但是在实施过程中,商品溯源中仍然会存在很多其他问题,例如上链数据过多造成的存储量占用的问题。
具体表现为:由于一物一码溯源原则的限制,随着区块链的不断运行,产生的数据越来越多,占用的存储也就越来越多。区块链技术的部署和实施需要由多个节点共同参与,对于带宽、存储空间的消耗会造成较大的成本,但现在区块链节点设备的存储和计算能力普遍受限,联网能力也较弱。在这一点上,对于任何区块链项目都是一样的。在传统的中心化项目里,可以通过删除历史数据而降低对存储占用,保证在业务稳定的情况下,对存储的占用是稳定的, 对于区块链而言,历史数据是对新数据可信的证明,是不能随意删除的,这也就意味着存储占用只能是不断的增加,所以存储问题将是所有区块链项目面临的一个重大问题,尤其针对区块链溯源项目。
发明内容
为了克服背景技术中指出的缺点,本发明实施例提供了一种区块链溯源应用中降低节点存储量占用的方法,能够有效解决上述背景技术中涉及的问题。
为实现上述目的,本发明一个或多个实施例提供技术方案如下:
一种区块链溯源应用中降低节点存储量占用的方法,包括:在产品生产数据库中获取初始批次的所有产品生产数据并对其进行数据预处理得到样本集;其中产品生产数据包括赋予的用于表示产品唯一性的识别码以及与所述识别码对应的多个产品特征数据;对所述样本集进行k-mens聚类以获得k个簇;获取每个初始批次的产品对应的识别码以将其与对应的簇建立映射关系,并将每个簇映射的产品进行物理聚类以在存储区中形成k个与簇对应的物理簇;将聚类后的样本集作为KNN模型的训练样本集,在所述产品生产数据库中获取持续批次的单个产品生产数据并将其作为待分类样本输入至KNN模型中以计算出其所属簇;获取持续批次的每个产品对应的识别码以将对应产品添加至所处的物理簇;在产品流通数据库中查找一级流通数据并将与所述一级流通数据对应的采购方确认为一级采购方,在所述一级采购方与其中一物理簇之间建立定向采购机制;将建立定向采购机制的物理簇对应簇所包含的任意一产品生产数据或所有产品生产数据的均值数据作为产品生产簇数据并通过相应节点部署至区块链中;根据任意一针对所述产品的客户端溯源请求中携带的识别码查找其所属簇并将部署在所述区块链中的所属簇对应的产品生产簇数据作为产品生产数据的溯源结果进行反馈。
进一步的,所述方法还包括:根据所述一级采购方的采购订单为其从对应物理簇中分配对应数量的产品以形成第一分簇;追踪所述第一分簇的物流数据并将其通过指定节点部署至区块链中;根据任意一针对所述产品的客户端溯源请求中携带的识别码查找其所属的第一分簇并将部署在所述区块链中的所属第一分簇对应的物流数据作为针对所述产品的第一物流溯源结果进行反馈。
进一步的,所述方法还包括:在产品流通数据库中查找次级流通数据并将与所述次级流通数据对应的采购方确认为次级采购方;根据所述次级采购方的采购订单为其从所述第一分簇中分配对应数量的产品以形成第二分簇;追踪所述第二分簇的物流数据并将其通过指定节点部署至区块链中;根据任意一针对所述产品的客户端溯源请求中携带的识别码查找其所属的第二分簇并将部署在所述区块链中的所属第二分簇对应的物流数据作为针对所述产品的第二物流溯源结果进行反馈。
进一步的,所述方法还包括:在向针对所述产品的初始溯源请求对应的客户端反馈产品生产数据溯源结果的同时将其所属簇对应的产品生产簇数据分发至预先构建的各CDN边缘节点中进行缓存;根据任意一针对所述产品的客户端接续溯源请求中携带的IP地址查找其附近的CDN边缘节点,并根据客户端接续溯源请求中携带的识别码查找其所属簇并将缓存在所述CDN边缘节点中的所属簇对应的产品生产簇数据作为产品生产数据进行溯源反馈。
进一步的,所述方法还包括:在向针对所述产品的初始溯源请求对应的客户端反馈物流数据溯源结果的同时将其所属第一分簇和/或第二分簇对应的物流数据分发至预先构建的各CDN边缘节点中进行缓存;根据任意一针对所述产品的客户端接续溯源请求中携带的IP地址查找其附近的CDN边缘节点,根据客户端接续溯源请求中携带的识别码查找其所属的第一分簇和/或第二分簇并将缓存在所述CDN边缘节点中的所属第一分簇和/或第二分簇对应的物流数据作为针对所述产品的第一物流溯源结果和/或第二物流溯源结果进行反馈。
进一步的,所述方法还包括:根据共识机制选出至少一个所述区块链的节点作为验证节点,每间隔预设时间通过所述验证节点对各CDN边缘节点中的缓存数据的一致性进行验证。
进一步的,所述方法还包括:在将缓存在所述CDN边缘节点中的所属簇对应的产品生产簇数据作为产品生产数据进行溯源反馈,和/或将缓存在所述CDN边缘节点中的所属第一分簇和/或第二分簇对应的物流数据作为针对所述产品的第一物流溯源结果和/或第二物流溯源结果进行反馈时,将溯源结果缓存在初始溯源请求对应的所述客户端中,并获取所述客户端反馈用户信息;其中用户信息包括用户账号信息以及与所述用户账号信息匹配的通讯录信息;根据任意一针对所述产品的客户端接续溯源请求中携带的用户信息查找其是否与初始溯源请求对应的所述客户端为好友关系,若是则将缓存在初始溯源请求对应的所述客户端中的溯源结果进行反馈。
进一步的,所述方法还包括:获取送检样品所属簇,将与所述送检样品对应的质检报告数据添加至对应的产品生产簇数据中。
进一步的,对所述样本集进行k-mens聚类以获得k个簇,包括:(1)任选k个初始簇中心;(2)将样本集 的每个样本按最小距离原则分配给k个簇中心:采用欧式距离计算每个样本与簇中心之间的距离,并将其分配给距离最近的簇中心所对应的簇;所述样本集中的多维样本集,其中,任意两个样本 与样本 之间的欧式距离为:
(3)更新簇中心;其中每个簇中心更新为所属簇所有样本的平均值;(4)反复迭代步骤(2)、(3),直至收敛以完成对样本集的k个聚类。
进一步的,将聚类后的样本集作为KNN模型的训练样本集,在所述产品生产数据库中获取持续批次的单个产品生产数据并将其作为待分类样本输入至KNN模型中以计算出其所属簇,包括:(1)初始化距离值为最大值,便于在搜索过程中迭代掉;(2)计算待分类样本和每个训练样本的距离dist;其中每个训练样本所属簇为该训练样本的标签; (3)得到目前k个最邻近样本中的最大距离maxdist;(4)如果dist小于maxdist,则将该训练样本作为k最邻近样本;(5)重复步骤(2)、(3)、(4),直到待分类样本和所有训练样本的距离都算完;(6)统计k邻近样本中每个样本所属簇出现的次数;(7)选择出现频率最大的簇作为待分类样本的所属簇。
基于上述一个或多个实施例提供的技术方案实现以下主要有益效果:通过本发明上述技术方案的实施,只需将建立定向采购机制的物理簇对应簇所包含的任意一产品生产数据或所有产品生产数据的均值数据作为产品生产簇数据并通过相应节点部署至区块链中,从而能够大幅度减少溯源产品上链数据量以降低节点存储量的占用;在维持了一物一溯源的基础上剔除了一物一上链,使得在维持用户在溯源使用体验的基础上依旧可以进行一物一溯源,同样维持了溯源结果的准确性,以实现在既能减少上链数据的基础上又能够使区块链溯源被正常应用的目的。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出的是一种现有技术中常见的区快速溯源结构;
图2示出的是本发明提供的区块链溯源应用中降低节点存储量占用的方法应用架构1;
图3示出的是本发明提供的区块链溯源应用中降低节点存储量占用的方法应用架构2;
图4示出的是本发明提供的区块链溯源应用中降低节点存储量占用的方法应用架构3;
图5示出的是本发明提供的区块链溯源应用中降低节点存储量占用的方法流程1;
图6示出的是本发明提供的区块链溯源应用中降低节点存储量占用的方法流程2;
图7示出的是本发明提供的区块链溯源应用中降低节点存储量占用的方法流程3;
图8示出的是本发明提供的区块链溯源应用中降低节点存储量占用的方法流程4;
图9示出的是本发明提供的区块链溯源应用中降低节点存储量占用的方法流程5;
图10示出的是本发明提供的区块链溯源应用中降低节点存储量占用的方法流程6;
图11示出的是本发明提供的计算机设备结构。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
区块链溯源是指利用区块链技术,通过其独特的、不可篡改的分布式账本记录特性与物联网等技术相结合,对商品实现从源头的信息采集记录、原料来源追溯、生产过程、加工环节、仓储信息、检验批次、物流周转,到第三方质检、海关出入境、防伪鉴证的全程可追溯。
区块链利用时间戳、共识机制等技术手段实现了数据的不可篡改和追本溯源等功能,给跨机构溯源体系的建立提供了技术支撑。同时把第三方监督机构与消费者纳入监督体系中,打破了信息孤岛,提供了信息支持,在一定程度上实现了生产流程透明。根据区块链类型的不同,区块链溯源可分为公有链溯源、联盟链溯源、私有链溯源。
公有链(Public Blockchain)是指全世界任何人都可读取、发送交易,且交易能获得有效确认的、也可以参与其中共识过程的区块链。公有链溯源过程中,产品质量受到各个节点的监督。供应链的相关参与方把所有的商品信息记录到公有链上。所有节点通过共识机制进行信息确认,并获得数字货币奖励。联盟链(Consortium Blockchain)是指由某个特定群体的成员和有限的第三方参与区块生成及节点验证的区块链。其内部指定多个预选节点为记账人,每个块的生成由预选节点共同决定,具有弱中心化的特征。采用联盟链进行区块链溯源是一种应用比较多的技术手段。它通过供应链的各个重要节点的交叉验证来保证信息的真实性,从而实现商品信息的可追溯、可查询、可验伪。私有链(PrivateBlockchain)是指区块链的写入权限仅掌握在某个人或某个组织手中,数据的访问以及编写等有着十分严格的权限。私有链进行商品溯源的模式是指可以由第三方监督机构掌握信息验证的权力,从而保证信息的真实性。由于企业与顾客都缺乏上链动力,目前没有关于私有链溯源的应用。它们的本质区别在于访问编写的权限,以及去中心化的程度。越接近公链一端,去中心化程度越高,拥有访问编写权限的机构/个人越多;反之则越低和越少。
本实施例中所提及的区块链可以是上述任意一种类型的区块链,但优选为联盟链。
正如上述背景技术中所描述的,由于一物一码溯源原则的限制,随着区块链的不断运行,产生的数据越来越多,占用的存储也就越来越多。区块链技术的部署和实施需要由多个节点共同参与,对于带宽、存储空间的消耗会造成较大的成本,但现在区块链节点设备的存储和计算能力普遍受限,联网能力也较弱。在这一点上,对于任何区块链项目都是一样的。在传统的中心化项目里,可以通过删除历史数据而降低对存储占用,保证在业务稳定的情况下,对存储的占用是稳定的, 对于区块链而言,历史数据是对新数据可信的证明,是不能随意删除的,这也就意味着存储占用只能是不断的增加,所以存储问题将是所有区块链项目面临的一个重大问题,尤其针对区块链溯源项目。
为了解决这一技术问题,本实施例提供了一种区块链溯源应用中降低节点存储量占用的方法,其同时也是一种区块链溯源方法,由于其解决的主要问题是减少区块链中数据存储的占用,并且实现在既能减少上链数据的基础上又能够使区块链溯源被正常应用,故将名称限定为一种区块链溯源应用中降低节点存储量占用的方法。
一种实施方式中,所述方法的全部或部分由预先搭建的服务器执行;此处描述的服务器不限制其具体的类型,但为了便于描述将其优选设置为云服务器(Elastic ComputeService, ECS);云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。
一种实施例中,参考图2、图5所示,区块链溯源应用中降低节点存储量占用的方法包括S11~S18等步骤。
S11、在产品生产数据库中获取初始批次的所有产品生产数据并对其进行数据预处理得到样本集;其中所述产品生产数据包括赋予的用于表示产品唯一性的识别码以及与所述识别码对应的多个产品特征数据。
其中产品生产数据库102所存储的数据是产品在产品生产阶段所产生的相关数据,包括原料来源信息、生产加工过程中的关键数据以及生产结束后的仓储数据等;这些数据例如是原本需要在产品的生产环节进行上链的数据,更宽泛的例如是包含需要上链的数据的总数据,即包含需要在产品生产环节上链的数据也包含在产品生产环节所产生的其它数据。产品生产数据库102所存储的数据包括使用设备进行人工录入以及通过物联网设备自动获取等方式进行上传存储;而这里所描述的人工录入设备以及物联网设备(统称为产品生产数据上传设备)与作为区块链10其中一个节点的生产企业节点也建立通信;一种实施方式中,产品生产数据库102独立于服务器101之外,与服务器101建立通信;另一种实施方式中,产品生产数据库102作为服务器101的一部分,例如将其布置在服务器101的一个存储器内,本实施例优选为后者。
一种服务器101与产品生产数据上传设备的通信方式,产品生产数据上传设备发送数据时为其数据分配一公钥到服务器101,产品生产数据上传设备有对应的私钥;产品生产数据上传设备与服务器101进行通信的时候,使用私钥将数据进行加密传输,服务器101使用公钥进行解密后获得内容,而服务器101发送数据到产品生产数据上传设备的时候会使用公钥将内容进行加密,产品生产数据上传设备接收后使用私钥解密获得内容。
为了便于实施,本实施例中所描述的产品特指同属性(优选同型号)的产品,针对不同属性的产品可以分开执行本实施例中的方法,当然并未限定本发明方法无法执行不同属性产品的应用,其也可以作为本发明方法的一种执行范围。
这里所描述的初始批次,例如是生产者依照产品标准确定的第一批次的产品,但本实施例更倾向于将初始批次包含的产品量大于依照产品标准确定的第一批次的产品,即针对初始批次的定量权交由产生企业决定,最佳的实现方式中数量越多即样本集中的数据越多本发明方法所实现的效果越好。需要强调的是,这里所描述的初始批次并非是产品第一次生成的批次;而是在实施本发明方法时开始确定的批次。
其中服务器101在产品生产数据库102中获取初始批次的所有产品生产数据后对其进行数据预处理得到样本集104。数据预处理的过程包括数据的选取、清理、集成、变换以及规约等步骤。其中数据的选取即选择能够赋予属性名和属性值明确含义的属性数据;数据清理即通过填补缺失值、光滑噪声数据,平滑或删除离群点,并解决数据的不一致性来“清理“数据;数据集成就是将多个数据源中的数据合并在一起形成数据仓库/数据库的技术和过程;数据的变换即将数据经过归一化处理后使之限定在一定的范围内;比如通常限制在区间[0, 1];例如对于每个属性,设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x',其公式为:新数据=(原数据- 最小值)/(最大值 - 最小值);数据的归约通常用维归约、数值归约方法实现。维归约指通过减少属性的方式压缩数据量,通过移除不相关的属性,可以提高模型效率。常见的维归约方法有:通过分类树、随机森林判断不同属性特征对分类效果的影响,从而进行筛选;通过小波变换、主成分分析把原数据变换或投影到较小的空间,从而实现降维。
本实施例中所描述的识别码,即生产企业通过区块链10分配的密钥为每件产品产生的具有唯一性的溯源码,即每个溯源码具有唯一的编号;溯源码一般都是以“二维码”的身份形式展现,可以直接印刷在产品包装上,实现包材一体化,也可以通过标签的形式贴在产品原有包装上;每个溯源码代表一件产品,每件产品对应多个产品特征数据。
其中,不同的产品所对应的产品特征数据不同,这主要取决于产品本身的特性以及产生过程的区别;但不同的产品之间也会存在一部分相同特征的交集。
一种示例,例如当产品为奶粉时其对应的产品特征数据至少包括:原产奶牛的饲养数据(饲料的营养指标、周期内奶牛的吃食次数、吃食频率、排便次数、体温、生病次数、病重程度、产奶重量等);原产牧场数据(周期内牧场或原产奶牛活动区域内的卫生指标、天气例如晴好天的次数、周期内牧场的温度例如0℃以下的次数或者周期内牧场的平均温度);生产数据(生产日期、鲜奶的存放时间、鲜奶的质量程度、鲜奶的含菌数、以及生产工艺中的其它关键数据)等。
在一个数值区间内用不同的数值来表示每个特征数据的差异,针对非量化数据例如针对饲料的营养指标,假设区间为[0,10],则0代表营养程度最低,10代表营养程度最高;例如针对奶牛的病重程度,假设区间为[0,10],则0代表无病,10代表病重程度最高;其它的非量化数据同理;在对数据归一化之后,产品特征数据被限定在了[0,1]区间。
本实施例中初始批次中产品特征数据的数量即初始批次中产品的数量。
该示例所描述的产品特征数据仅为了便于理解,实际应用中并不将该产品(奶粉)的特征数据限定在了示出的上述内容中,相关人员能够根据实际需要选择采用哪些数据作为产品的特征数据,这取决于产品的属性。例如,应用在农产品中,假设产品为养殖鸡,其包含的特征数据中可能还包括生长周期内养殖鸡的计步次数;可以理解的是能够表示出产品质量差异性的数据均可被作为产品特征数据;这里所指的产品质量差异,并非指合格与不合格的差异,而是均在合格可销售的前提下不同产品之间存在的细微化质量差异;这些差异对用户使用体验而言并不一定具有明显区别,但是针对溯源结果的一致性而言具有重要的作用;可以理解而为,其在产品特征数据上的差异越小,所对应针对产品生产数据的溯源结果就越接近,甚至于相同。
S12、对所述样本集进行k-mens聚类以获得k个簇。
k-means(也成为k均值)算法是很典型的基于距离的动态聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法使用误差平方和准则作为聚类准则,寻求的是使误差平方和准则函数最小化的聚类结果。k-means算法快速、简单;对大数据集有较高的效率并且是可伸缩性的;时间复杂度近于线性,而且适合挖掘大规模数据集。
由于k-mens聚类算法是已知的机器学习算法,因此本实施例对其详细计算过程不进行描述,仅对其聚类步骤进行概括性描述,即对所述样本集进行k-mens聚类以获得k个簇,采用以下4个步骤。
(1)任选k个初始簇中心,其中k>1;
(3)更新簇中心;其中每个簇中心更新为所属簇所有样本的平均值;
(4)反复迭代步骤(2)、(3),直至收敛以完成对样本集104的k个聚类。
一种便于理解的示例,经过数据预处理后的样本集104(省略部分)表示为:
样本序号 | 特征y<sup>(1)</sup> | 特征y<sup>(2)</sup> | 特征y<sup>(3)</sup> | 特征y<sup>(4)</sup> | 特征y<sup>(5)</sup> | 特征y<sup>(6)</sup> | 特征y<sup>(7)</sup> | 特征y<sup>(8)</sup> | 特征y<sup>(9)</sup> | … | 特征y<sup>(m)</sup> |
x<sup>(1)</sup> | 0 | 0.1 | 0.9 | 0 | 0.5 | 0.35 | 0.8 | 0.7 | 0 | … | 0 |
x<sup>(2)</sup> | 0 | 0.1 | 0.9 | 0.5 | 0.4 | 0.3 | 0.78 | 0.7 | 0.2 | … | 0.1 |
x<sup>(3)</sup> | 0.5 | 0.24 | 0.9 | 0.4 | 0 | 1 | 0 | 0.3 | 0.45 | … | 0.3 |
x<sup>(4)</sup> | 0.49 | 0.22 | 0.5 | 0.8 | 0.3 | 1 | 1 | 0.98 | 0.59 | … | 0.4 |
… | … | … | … | … | … | … | … | … | … | … | … |
x<sup>(m)</sup> | 0.6 | 0.9 | 0.3 | 0.4 | 1 | 0.73 | 0.4 | 0.11 | 0 | … | 0 |
S13、获取每个初始批次的产品对应的识别码以将其与对应的簇建立映射关系,并将每个簇映射的产品进行物理聚类以在存储区中形成k个与簇对应的物理簇。
服务器101在完成对样本集104的k个聚类后,在产品生产数据库102中获取初始批次的所有产品对应的识别码,并依据每个产品生产数据也即每个样本的所属簇将获取到的识别码分别与聚类后的k个簇建立映射关系。图2中示出了分别与簇105、106、107建立映射关系的识别码125、126、127;其中示出的识别码125、126、127是与分别所属簇105、106、107其中一个产品对应的,实际应用中所属簇105、106、107的所有产品识别码均与簇105、106、107建立映射关系。而后服务器101将每个簇映射的产品进行物理聚类以在存储区中形成k个与簇对应的物理簇。
这里所描述的物理聚类指的是将生产完成的产品在线下进行分区打包与存储。一种实现方式中,在初始批次的产品出厂后,通过扫描设备读取产品携带的识别码以识别该产品的所属簇,再通过运输装置将该产品运输至指定地点进行存放;或者将扫描设备集成在运输装置上以完成自动化扫描与运输;存放地点依据k的个数设置对应的存储区,每个存储区仅存放一个簇内的产品,进而在存储区中形成k个与簇对应的物理簇。一种实施方式中,扫描设备为相机,运输装置为AGV。图2示出了在存储区中形成的物理簇108、109、110,其中物理簇108、109、110分别与簇105、106、107对应,即簇108、109、110内的产品在出厂后被分别移动至物理簇108、109、110中;在物理簇中存放的产品,例如以包装箱的方式,即一个包装箱内放置多个产品;也可以单独存放,即将其中一个产品独立存放或者独立包装存放。
S14、将聚类后的样本集作为KNN模型的训练样本集,在所述产品生产数据库中获取持续批次的单个产品生产数据并将其作为待分类样本输入至KNN模型中以计算出其所属簇。
这里所描述的持续批次指的是在初始批次之后的任意一批次;持续批次的单个产品生产数据可以理解为在初始批次之后生产的任意一个产品所对应的产品生产数据。
KNN,也称K近邻(k-Nearest Neighbor, KNN),是一个比较成熟的分类算法。该算法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。由于KNN算法是已知的分类算法,因此本实施例对其详细计算过程不进行描述,仅对其分类步骤进行概括性描述,即利用KNN模型将获取的持续批次的单个产品生产数据分类至所属簇的过程,采用以下7个步骤。
(1)初始化距离值为最大值,便于在搜索过程中迭代掉;
(2)计算待分类样本和每个训练样本的距离dist;其中每个训练样本所属簇为该训练样本的标签;
(3)得到目前k个最邻近样本中的最大距离maxdist;
(4)如果dist小于maxdist,则将该训练样本作为k最邻近样本;
(5)重复步骤(2)、(3)、(4),直到待分类样本和所有训练样本的距离都算完;
(6)统计k邻近样本中每个样本所属簇出现的次数;
(7)选择出现频率最大的簇作为待分类样本的所属簇。
其中本实施例KNN分类计算过程中的距离也采用欧式距离。
S15、获取持续批次的每个产品对应的识别码以将对应产品添加至所处的物理簇。
服务器101在完成对待分类样本也即持续批次的每个产品的簇分类后,获取持续批次的每个产品对应的识别码,从而将对应产品添加至所处的物理簇中。
图2示出了待分类样本111、128、129,在完成对应产品的簇分类后,将样本111划分至簇105中、样本128划分至簇106中,样本129划分至107中;样本111、128、129同样作为持续批次的3个产品,在获取到对应的识别码后能够得到其分别所属簇105、106、107,由于簇106、107分别与物理簇108、109、110对应,故此将产品111、128、129分别添加至对应的物理簇108、109、110中。
在现实中的添加实现方式中,在持续批次的产品出厂后,通过扫描设备读取产品携带的识别码以识别该产品的所属簇;将对应产品添加至所处的物理簇中,即通过运输装置将该产品运输至所处的物理簇对应的存储区进行存放以融合至所处的物理簇中。
S16、在产品流通数据库中查找一级流通数据并将与所述一级流通数据对应的采购方确认为一级采购方,在所述一级采购方与其中一物理簇之间建立定向采购机制。
一种实施方式中,产品流通数据库103独立于服务器101之外,与服务器101建立通信;另一种实施方式中,产品流通数据库103作为服务器101的一部分,例如将其布置在服务器101的一个存储器内,本实施例优选为后者。
其中产品流通数据库103中存储的数据是产品从生产企业离开后的历史走向数据,至少由物流数据以及销售数据构成;该数据例如是由流通过程中的其它节点、节点管理人员、物联网设备(例如设置在运输工具、仓储区内的)录入并上传至服务器101以存储在产品流通数据库103。其中一级流通数据是指产品从生产企业离开后至第一个采购方之间的流通数据,该采购方即被确认为一级采购方;如果产品从一级采购方离开后被销售到下一个采购方处,则将下一个采购方确认为次级采购方;在一级采购方之后的采购方均被确认为次级采购方;其中,一级采购方在从生产企业采购产品后,也可以直接将其销售给用户,例如一级采购方在现实应用中为一电商采购平台。图2中示出了产品从生产企业离开后的历史走向数据,其中一个走向示例中,产品从生产企业离开后流向的第一个采购方是112,因此将112确认为一级采购方,从一级采购方112离开后流向的第二个采购方和第三个采购方分别是113和114,因此将113和114确认为次级采购方,以此类推。
服务器101在产品流通数据库103中获取到一级采购方之后将其与其中一物理簇之间建立定向采购机制,可以理解为在建立定向采购机制后,发往一级采购方的产品均从与其建立机制的其中一物理簇中获取。一种实施方式中,其中一个物理簇可以对应多个一级采购方。
S17、将建立定向采购机制的物理簇对应簇所包含的任意一产品生产数据或所有产品生产数据的均值数据作为产品生产簇数据并通过相应节点部署至区块链中。
以图2所示为例,其中一个一级采购方112与物理簇110建立了定向采购机制,则之后发往一级采购方112的产品从物理簇110中获取;服务器101获取与物理簇110对应的簇107中的任意一产品生产数据或簇107内所有产品生产数据的均值,将其作为簇107的产品生产簇数据发送至生产企业节点,由生产企业节点对该数据进行上链,通过共识机制部署在区块链10中。
其中共识机制是区块链的各节点就区块数据达成全链一致共识的机制,可以保证最新区块被准确添加至区块链中。当前主流的共识机制包括工作量证明(Proof ofWork,POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)、实用拜占庭容错(Pra ctica l Byza ntine Fa ult Tolera nce,PBFT)算法,HoneyBadgerBFT算法等。
S18、根据任意一针对所述产品的客户端溯源请求中携带的识别码查找其所属簇并将部署在所述区块链中的所属簇对应的产品生产簇数据作为产品生产数据的溯源结果进行反馈。
其中用户在购买到产品需要查询产品溯源信息时通过扫描产品携带的识别码以产生客户端溯源请求;一种实施方式中,客户端产生的溯源请求发送至服务器101上,服务器101在接收到溯源请求后获取对应的识别码,根据该识别码查询其所属簇,在查询到该产品所属簇后向区块链10中的至少一节点(优选为主节点)发送针对该簇的溯源查询请求,该节点根据接收到的该簇的溯源查询请求在区块中调取该簇对应的产品生产簇数据并将其反馈给服务器101,再通过服务器101反馈给客户端用户。另一种实施方式中,客户端产生的溯源请求发送至区块链10中的主节点上,该节点在接收到溯源请求后获取对应的识别码,然后将识别码发送给服务器101以获取该识别码对应产品的所属簇,在获取到该产品所属簇后在区块中调取该簇对应的产品生产簇数据并将其反馈给客户端用户。
区别于传统的一物一码溯源原则下的物物上链,通过本发明上述S11~S18的实施,只需将建立定向采购机制的物理簇对应簇所包含的任意一产品生产数据或所有产品生产数据的均值数据作为产品生产簇数据并通过相应节点部署至区块链中,从而能够大幅度减少溯源产品上链数据量以降低节点存储量的占用;在维持了一物一溯源的基础上剔除了一物一上链,使得在维持用户在溯源使用体验的基础上依旧可以进行一物一溯源,同样维持了溯源结果的准确性,以实现在既能减少上链数据的基础上又能够使区块链溯源被正常应用的目的。
一种实施例中,参考图2、3、6所示,区块链溯源应用中降低节点存储量占用的方法还包括S21~S23等步骤。
S21、根据所述一级采购方的采购订单为其从对应物理簇中分配对应数量的产品以形成第一分簇。
其中,一级采购方112通过服务器101向生产企业发送采购订单118,服务器101根据一级采购方112发送的采购订单118确认对应产品数量,根据确认的产品数量从物理簇110中分配相应数量的产品,所分配的相应数量的产品即第一分簇115;图3中示出的第一分簇115即是从图2中示出的物理簇110中获取的。
S22、追踪所述第一分簇的物流数据并将其通过指定节点部署至区块链中。
其中,第一分簇115的物流数据由承接的物流商(运输车辆、物流站点)上传,至少包括货物状态、司机状态、货运车辆状态、运输路线等关键的物流信息;服务器101在追踪到第一分簇115的物流数据后将其发送至相应的物流节点,由相应的物流节点对该物流数据进行上链,通过共识机制部署在区块链10中。
S23、根据任意一针对所述产品的客户端溯源请求中携带的识别码查找其所属的第一分簇并将部署在所述区块链中的所属第一分簇对应的物流数据作为针对所述产品的第一物流溯源结果进行反馈。
其中用户在购买到产品需要查询产品溯源信息时通过扫描产品携带的识别码以产生客户端溯源请求;一种实施方式中,客户端产生的溯源请求发送至服务器101上,服务器101在接收到溯源请求后获取对应的识别码,根据该识别码查询其所属第一分簇115,在查询到该产品所属第一分簇115后向区块链10中的至少一节点(优选为主节点)发送针对该第一分簇115的溯源查询请求,该节点根据接收到的该第一分簇115的溯源查询请求在区块中调取该第一分簇115对应的物流数据并将其反馈给服务器101,再通过服务器101反馈给客户端用户。另一种实施方式中,客户端产生的溯源请求发送至区块链10中的主节点上,该节点在接收到溯源请求后获取对应的识别码,然后将识别码发送给服务器101以获取该识别码对应产品的所属第一分簇115,在获取到该产品所属第一分簇115后在区块中调取该第一分簇115对应的物流数据并将其作为针对所述产品的第一物流溯源结果反馈给客户端用户。
一种实施例中,参考图2、3、7所示,区块链溯源应用中降低节点存储量占用的方法还包括S31~S34等步骤。
S31、在产品流通数据库中查找次级流通数据并将与所述次级流通数据对应的采购方确认为次级采购方。
如先前所描述的,产品从一级采购方离开后被销售到下一个采购方处,则将下一个采购方确认为次级采购方;在一级采购方之后的采购方均被确认为次级采购方。图3中示出了产品从生产企业离开后的其中一个走向示例,产品从生产企业离开后流向的第一个采购方是112,因此将112确认为一级采购方,从一级采购方112离开后流向的第二个采购方和第三个采购方分别是113和114,因此将113和114确认为次级采购方。
S32、根据所述次级采购方的采购订单为其从所述第一分簇中分配对应数量的产品以形成第二分簇。
其中,次级采购方113通过服务器101向一级采购方112发送采购订单119,服务器101根据次级采购方113发送的采购订单119确认对应产品数量,根据确认的产品数量从第一分簇115中分配相应数量的产品,所分配的相应数量的产品即第二分簇116;图3中示出的第二分簇116即是从第一分簇117中获取的。而次级采购方114通过服务器101向次级采购方113发送采购订单120,服务器101根据次级采购方114发送的采购订单120确认对应产品数量,根据确认的产品数量从第二分簇116中分配相应数量的产品,所分配的相应数量的产品即第二分簇117;图3中示出的第二分簇117即是从第二分簇116中获取的。
S33、追踪所述第二分簇的物流数据并将其通过指定节点部署至区块链中。
其中,第二分簇116的物流数据是指从第一分簇115延伸出第二分簇116后位于第二分簇116内产品的物流数据,也可以理解为从次级采购方113接收以后相应产品的物流数据;同理第二分簇117的物流数据是指从第二分簇116延伸出第二分簇117后位于第二分簇117内产品的物流数据,也可以理解为从次级采购方114接收以后相应产品的物流数据。另一种理解,如果不存在第二分簇116、117,则第一分簇115的物流数据就整个产品流通环节的物流数据,在存在第二分簇116、117的基础上,第一分簇115与第二分簇116、117构成了整个产品流通环节的物流数据。服务器101在追踪到第二分簇116、117的物流数据后将其发送至相应的物流节点,由相应的物流节点对该物流数据进行上链,通过共识机制部署在区块链10中。
S34、根据任意一针对所述产品的客户端溯源请求中携带的识别码查找其所属的第二分簇并将部署在所述区块链中的所属第二分簇对应的物流数据作为针对所述产品的第二物流溯源结果进行反馈。
其中用户在购买到产品需要查询产品溯源信息时通过扫描产品携带的识别码以产生客户端溯源请求;一种实施方式中,客户端产生的溯源请求发送至服务器101上,服务器101在接收到溯源请求后获取对应的识别码,根据该识别码查询其所属第二分簇116、117,在查询到该产品所属第二分簇116、117后向区块链10中的至少一节点(优选为主节点)发送针对该第二分簇116、117的溯源查询请求,该节点根据接收到的该第二分簇116、117的溯源查询请求在区块中调取该第二分簇116、117对应的物流数据并将其反馈给服务器101,再通过服务器101反馈给客户端用户。另一种实施方式中,客户端产生的溯源请求发送至区块链10中的主节点上,该节点在接收到溯源请求后获取对应的识别码,然后将识别码发送给服务器101以获取该识别码对应产品的所属第二分簇116、117,在获取到该产品所属第二分簇115、116后在区块中调取该第二分簇116、117对应的物流数据并将其作为针对所述产品的第二物流溯源结果反馈给客户端用户。
一种实施例中,参考图4、8所示,区块链溯源应用中降低节点存储量占用的方法还包括S41、S42等步骤。
S41、在向针对所述产品的初始溯源请求对应的客户端反馈产品生产数据溯源结果的同时将其所属簇对应的产品生产簇数据分发至预先构建的各CDN边缘节点中进行缓存。
每个CDN边缘节点对应构建至少一边缘缓存服务器;也可以将边缘缓存服务器理解为CDN边缘节点,布放在用户访问相对集中的地区或网络中。当用户访问数据时,利用全局负载技术,将用户的访问指向距离最近的边缘缓存服务器上,由边缘缓存服务器响应用户请求。
针对所述产品的初始溯源请求,指的是从任意一物理簇中销售的产品中,第一个被客户端121发起溯源验证的溯源请求;根据上面所描述的产品生产簇数据溯源结果反馈方式向针对所述产品的初始溯源请求对应的客户端121所反馈产品生产数据溯源结果的同时,服务器101将反馈的产品所属簇对应的产品生产簇数据分发至预先构建的各CDN边缘节点中进行缓存。
S42、根据任意一针对所述产品的客户端接续溯源请求中携带的IP地址查找其附近的CDN边缘节点,并根据客户端接续溯源请求中携带的识别码查找其所属簇并将缓存在所述CDN边缘节点中的所属簇对应的产品生产簇数据作为产品生产数据进行溯源反馈。
其中针对所述产品的客户端接续溯源请求,指的是从任意一物理簇中销售的产品中,从第二个开始陆续被客户端发起溯源验证的溯源请求。以图4所示为例,一种实施方式中,客户端122向服务器101发起针对所述产品的接续溯源请求,该溯源请求中携带该客户端122的IP地址,服务器101将客户端122发起的接续溯源请求转发至负载均衡器123,负载均衡器123根据IP地址以及识别码所对应的所属簇,选择一台用户所属区域的边缘缓存服务器例如124,其响应接续溯源请求,将用户所需内容即缓存在124中的所属簇对应的产品生产簇数据作为产品生产数据反馈给客户端122。
有鉴于此,针对客户端发起的产品溯源请求,区块链10仅需进行一次的溯源结果查询与反馈,而后的溯源结果查询与反馈由CDN边缘节点代替完成,进而能够减少区块链10的并发数,提升区块链10的吞吐性能。
为了保障CDN边缘节点中缓存数据的安全性,一种实施方式中,根据共识机制选出至少一个所述区块链的节点作为验证节点,每间隔预设时间通过所述验证节点对各CDN边缘节点中的缓存数据的一致性进行验证。如果对各CDN边缘节点中的缓存数据验证不一致,则将出现异常的CDN边缘节点剔除。
一种实施例中,参考图3、4、9所示,区块链溯源应用中降低节点存储量占用的方法还包括S51、S52等步骤。
S51、在向针对所述产品的初始溯源请求对应的客户端反馈物流数据溯源结果的同时将其所属第一分簇和/或第二分簇对应的物流数据分发至预先构建的各CDN边缘节点中进行缓存。
根据上面所描述的物流溯源结果反馈方式向针对所述产品的初始溯源请求对应的客户端121所反馈所属第一分簇和/或第二分簇对应的物流数据溯源结果的同时,服务器101将反馈的产品所属第一分簇和/或第二分簇对应的物流数据分发至预先构建的各CDN边缘节点中进行缓存。
S52、根据任意一针对所述产品的客户端接续溯源请求中携带的IP地址查找其附近的CDN边缘节点,根据客户端接续溯源请求中携带的识别码查找其所属的第一分簇和/或第二分簇并将缓存在所述CDN边缘节点中的所属第一分簇和/或第二分簇对应的物流数据作为针对所述产品的第一物流溯源结果和/或第二物流溯源结果进行反馈。
以图4所示为例,一种实施方式中,客户端122向服务器101发起针对所述产品的接续溯源请求,该溯源请求中携带该客户端122的IP地址,服务器101将客户端122发起的接续溯源请求转发至负载均衡器123,负载均衡器123根据IP地址以及识别码所对应的第一分簇115和/或第二分簇116、117,选择一台用户所属区域的边缘缓存服务器例如124,其响应接续溯源请求,将用户所需内容即缓存在124中的所属第一分簇115和/或第二分簇116、117对应的物流数据作为针对所述产品的第一物流溯源结果和/或第二物流溯源结果反馈给客户端122。
一种实施例中,参考图3、4、10所示,区块链溯源应用中降低节点存储量占用的方法还包括S61、S62等步骤。
S61、在将缓存在所述CDN边缘节点中的所属簇对应的产品生产簇数据作为产品生产数据进行溯源反馈,和/或将缓存在所述CDN边缘节点中的所属第一分簇和/或第二分簇对应的物流数据作为针对所述产品的第一物流溯源结果和/或第二物流溯源结果进行反馈时,将溯源结果缓存在初始溯源请求对应的所述客户端中,并获取所述客户端反馈用户信息;其中用户信息包括用户账号信息以及与所述用户账号信息匹配的通讯录信息。
S62、根据任意一针对所述产品的客户端接续溯源请求中携带的用户信息查找其是否与初始溯源请求对应的所述客户端为好友关系,若是则将缓存在初始溯源请求对应的所述客户端中的溯源结果进行反馈。
一种实施方式,在将缓存在CDN边缘节点中的所属簇对应的产品生产簇数据作为产品生产数据进行溯源反馈,和/或将缓存在所述CDN边缘节点中的所属第一分簇和/或第二分簇对应的物流数据作为针对所述产品的第一物流溯源结果和/或第二物流溯源结果进行反馈时,通过与客户端122建立响应机制的CDN边缘节点124将溯源结果缓存在初始溯源请求对应的所述客户端121中,并获取所述客户端121反馈的用户账号信息以及与所述用户账号信息匹配的通讯录信息,将其进行存储在服务器101中。
以图4所示为例,一种实施方式中,客户端122向服务器101发起针对所述产品的接续溯源请求,该溯源请求中携带用户账号信息以及与所述用户账号信息匹配的通讯录信息;服务器101根据客户端122发起的接续溯源请求中携带的用户账号信息以及与所述用户账号信息匹配的通讯录信息与存储在服务器101中的客户端121反馈的用户账号信息以及与所述用户账号信息匹配的通讯录信息进行好友匹配,匹配成功则确认两者即客户端121用户与客户端122用户之间为好友关系,则服务器101向客户端121发送转发指令,客户端121基于预设转发规则,在接收到服务器101的转发指令时,将缓存在自身内部的溯源结果(产品生产簇数据和/或物流数据)直接反馈至客户端122;反馈的媒介即两者的通信账号,即互为好友关系的通信账号,包括短信、通信软件等。
有鉴于此,能够在通过将接续的溯源结果查询与反馈由互为好友关系的客户端代替完成,进而能够减少区块链10的并发数,提升区块链10的吞吐性能的基础上,进一步拓展了新的溯源方式,提升用户的溯源体验。
一种实施方式中,区块链溯源应用中降低节点存储量占用的方法还包括获取送检样品所属簇,将与所述送检样品对应的质检报告数据添加至对应的产品生产簇数据中。
在存储区中形成k个与簇对应的物理簇,送检产品分别从对应的物理簇中获取,即确定送检样品所属的物理簇,进而确定所属簇,基于此服务器101将该送检样品对应的质检报告数据作为产品生产簇数据的其中一种并通过相应节点部署至区块链中。基于此在将部署在所述区块链中的所属簇对应的产品生产簇数据作为产品生产数据的溯源结果进行反馈的时候,将产品生产簇数据所包含的送检样品对应的质检报告数据一并反馈至客户端。
根据本申请的另一方面,还提供了一种计算机设备20,包括存储器201、处理器202及存储在存储器201上并可在处理器202上运行的计算机程序,所述处理器202执行所述计算机程序时实现上述区块链溯源应用中降低节点存储量占用的方法中的步骤。
一种实施方式中,处理器202可以是任何常规的处理器202,诸如商业可获得的中央处理单元(Central Processing Unit,CPU)。替选地,该处理器202可以是诸如专用集成电路(Application Specific Integrated Circuit,ASIC)或其它基于硬件的处理器的专用设备。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。
存储器201可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器201可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器201可选包括相对于处理器202远程设置的存储器201,这些远程存储器201可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个单元存储在所述存储器201中,当被所述处理器202执行时,执行上述实施例中的方法。
在一些实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,执行上述方法实施例中的方法。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(FlashMemory)、硬盘(HardDiskDrive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种区块链溯源应用中降低节点存储量占用的方法,其特征在于,所述方法包括:
在产品生产数据库中获取初始批次的所有产品生产数据并对其进行数据预处理得到样本集;其中所述产品生产数据包括赋予的用于表示产品唯一性的识别码以及与所述识别码对应的多个产品特征数据;
对所述样本集进行k-mens聚类以获得k个簇;
获取每个初始批次的产品对应的识别码以将其与对应的簇建立映射关系,并将每个簇映射的产品进行物理聚类以在存储区中形成k个与簇对应的物理簇;
将聚类后的样本集作为KNN模型的训练样本集,在所述产品生产数据库中获取持续批次的单个产品生产数据并将其作为待分类样本输入至KNN模型中以计算出其所属簇;
获取持续批次的每个产品对应的识别码以将对应产品添加至所处的物理簇;
在产品流通数据库中查找一级流通数据并将与所述一级流通数据对应的采购方确认为一级采购方,在所述一级采购方与其中一物理簇之间建立定向采购机制;
将建立定向采购机制的物理簇对应簇所包含的任意一产品生产数据或所有产品生产数据的均值数据作为产品生产簇数据并通过相应节点部署至区块链中;
根据任意一针对所述产品的客户端溯源请求中携带的识别码查找其所属簇并将部署在所述区块链中的所属簇对应的产品生产簇数据作为产品生产数据的溯源结果进行反馈。
2.根据权利要求1所述的一种区块链溯源应用中降低节点存储量占用的方法,其特征在于,所述方法还包括:
根据所述一级采购方的采购订单为其从对应物理簇中分配对应数量的产品以形成第一分簇;
追踪所述第一分簇的物流数据并将其通过指定节点部署至区块链中;
根据任意一针对所述产品的客户端溯源请求中携带的识别码查找其所属的第一分簇并将部署在所述区块链中的所属第一分簇对应的物流数据作为针对所述产品的第一物流溯源结果进行反馈。
3.根据权利要求2所述的一种区块链溯源应用中降低节点存储量占用的方法,其特征在于,所述方法还包括:
在产品流通数据库中查找次级流通数据并将与所述次级流通数据对应的采购方确认为次级采购方;
根据所述次级采购方的采购订单为其从所述第一分簇中分配对应数量的产品以形成第二分簇;
追踪所述第二分簇的物流数据并将其通过指定节点部署至区块链中;
根据任意一针对所述产品的客户端溯源请求中携带的识别码查找其所属的第二分簇并将部署在所述区块链中的所属第二分簇对应的物流数据作为针对所述产品的第二物流溯源结果进行反馈。
4.根据权利要求1所述的一种区块链溯源应用中降低节点存储量占用的方法,其特征在于,所述方法还包括:
在向针对所述产品的初始溯源请求对应的客户端反馈产品生产数据溯源结果的同时将其所属簇对应的产品生产簇数据分发至预先构建的各CDN边缘节点中进行缓存;
根据任意一针对所述产品的客户端接续溯源请求中携带的IP地址查找其附近的CDN边缘节点,并根据客户端接续溯源请求中携带的识别码查找其所属簇并将缓存在所述CDN边缘节点中的所属簇对应的产品生产簇数据作为产品生产数据进行溯源反馈。
5.根据权利要求3所述的一种区块链溯源应用中降低节点存储量占用的方法,其特征在于,所述方法还包括:
在向针对所述产品的初始溯源请求对应的客户端反馈物流数据溯源结果的同时将其所属第一分簇和/或第二分簇对应的物流数据分发至预先构建的各CDN边缘节点中进行缓存;
根据任意一针对所述产品的客户端接续溯源请求中携带的IP地址查找其附近的CDN边缘节点,根据客户端接续溯源请求中携带的识别码查找其所属的第一分簇和/或第二分簇并将缓存在所述CDN边缘节点中的所属第一分簇和/或第二分簇对应的物流数据作为针对所述产品的第一物流溯源结果和/或第二物流溯源结果进行反馈。
6.根据权利要求4或5所述的一种区块链溯源应用中降低节点存储量占用的方法,其特征在于,所述方法还包括:
根据共识机制选出至少一个所述区块链的节点作为验证节点,每间隔预设时间通过所述验证节点对各CDN边缘节点中的缓存数据的一致性进行验证。
7.根据权利要求4或5所述的一种区块链溯源应用中降低节点存储量占用的方法,其特征在于,所述方法还包括:
在将缓存在所述CDN边缘节点中的所属簇对应的产品生产簇数据作为产品生产数据进行溯源反馈,和/或将缓存在所述CDN边缘节点中的所属第一分簇和/或第二分簇对应的物流数据作为针对所述产品的第一物流溯源结果和/或第二物流溯源结果进行反馈时,将溯源结果缓存在初始溯源请求对应的所述客户端中,并获取所述客户端反馈用户信息;其中用户信息包括用户账号信息以及与所述用户账号信息匹配的通讯录信息;
根据任意一针对所述产品的客户端接续溯源请求中携带的用户信息查找其是否与初始溯源请求对应的所述客户端为好友关系,若是则将缓存在初始溯源请求对应的所述客户端中的溯源结果进行反馈。
8.根据权利要求1所述的一种区块链溯源应用中降低节点存储量占用的方法,其特征在于,所述方法还包括:
获取送检样品所属簇,将与所述送检样品对应的质检报告数据添加至对应的产品生产簇数据中。
10.根据权利要求1所述的一种区块链溯源应用中降低节点存储量占用的方法,其特征在于,将聚类后的样本集作为KNN模型的训练样本集,在所述产品生产数据库中获取持续批次的单个产品生产数据并将其作为待分类样本输入至KNN模型中以计算出其所属簇,包括:
(1)初始化距离值为最大值,便于在搜索过程中迭代掉;
(2)计算待分类样本和每个训练样本的距离dist;其中每个训练样本所属簇为该训练样本的标签;
(3)得到目前k个最邻近样本中的最大距离maxdist;
(4)如果dist小于maxdist,则将该训练样本作为k最邻近样本;
(5)重复步骤(2)、(3)、(4),直到待分类样本和所有训练样本的距离都算完;
(6)统计k邻近样本中每个样本所属簇出现的次数;
(7)选择出现频率最大的簇作为待分类样本的所属簇。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210994886.0A CN115630118A (zh) | 2022-08-18 | 2022-08-18 | 一种区块链溯源应用中降低节点存储量占用的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210994886.0A CN115630118A (zh) | 2022-08-18 | 2022-08-18 | 一种区块链溯源应用中降低节点存储量占用的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115630118A true CN115630118A (zh) | 2023-01-20 |
Family
ID=84902139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210994886.0A Pending CN115630118A (zh) | 2022-08-18 | 2022-08-18 | 一种区块链溯源应用中降低节点存储量占用的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115630118A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116976917A (zh) * | 2023-07-31 | 2023-10-31 | 金景(海南)科技发展有限公司 | 基于区块链技术的农业品牌存证体系建设方法 |
-
2022
- 2022-08-18 CN CN202210994886.0A patent/CN115630118A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116976917A (zh) * | 2023-07-31 | 2023-10-31 | 金景(海南)科技发展有限公司 | 基于区块链技术的农业品牌存证体系建设方法 |
CN116976917B (zh) * | 2023-07-31 | 2024-05-24 | 金景(海南)科技发展有限公司 | 基于区块链技术的农业品牌存证体系建设方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109978573B (zh) | 一种基于区块链的信息溯源系统 | |
CN109214750A (zh) | 一种基于物联网和区块链技术管理农产品的方法及系统 | |
Awan et al. | Role of internet of things (IoT) with blockchain technology for the development of smart farming | |
Khan et al. | ShrimpChain: A blockchain-based transparent and traceable framework to enhance the export potentiality of Bangladeshi shrimp | |
Kiruba et al. | Revolutionizing secure commercialization in agriculture using blockchain technology | |
Awan et al. | A combo smart model of blockchain with the Internet of Things (IoT) for the transformation of agriculture sector | |
US11481719B2 (en) | System and method for facilitating goods or service related activity | |
CN107391557A (zh) | 针对设置链外勘误表的区块链串行查询方法及系统 | |
CN115630118A (zh) | 一种区块链溯源应用中降低节点存储量占用的方法 | |
US20230132654A1 (en) | Integrated agriculture information and management system, and methods of using the same | |
US20230334609A1 (en) | Information management method and non-transitory, computer readable, tangible storage medium storing information management program | |
JP6137583B2 (ja) | 要請者のニーズを反映した文化芸術創作物の統合管理サービス提供システムの動作方法 | |
CN107463596A (zh) | 针对设置链外勘误表的区块链并行查询方法及系统 | |
Kakkar et al. | A blockchain technology solution to enhance operational efficiency of rice supply chain for food corporation of India | |
CN113706263A (zh) | 一种基于云平台的电子商务系统 | |
CN117391536A (zh) | 一种数据协同响应绩效评估方法、系统、设备及介质 | |
Malik et al. | Traceable, trustworthy and privacy preserving agri-food supply chains | |
Hasan et al. | Blockchain database and iot: a technology driven agri-food supply chain | |
WO2020184470A1 (ja) | 商品及び役務の評価システム及び評価方法 | |
CN113516487A (zh) | 一种基于区块链的农产品溯源系统 | |
Waheed et al. | BIoT-based smart agriculture: food and crops efficiency and improvement in supply chain cycle | |
US20190130505A1 (en) | Techniques for real-time transactional data analysis | |
KR102567996B1 (ko) | 통합 유통 판매 관리방법 및 시스템 | |
Kassarnig et al. | An approach to automatically extract predictive properties from nominal attributes in relational databases | |
Krishna et al. | Blockchain based Public Distribution System. |
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 |