发明内容
针对上述问题,本公开提供了一种基于区块链的食品供应链追溯系统,包括:
用户层,应用层,控制层,数据层,其中,
所述用户层包括供应商、生产商、物流商、经销商、监管者、数据供应商的角色及其配置;
所述应用层包括面向用户层中各种角色的应用;
所述数据层包括数据库和知识库,所述数据库和知识库均基于区块链的存储结构,用于用户层的各种角色通过应用层、控制层向数据层写入数据或读取数据,其中:所述知识库用于存储:生产商对于食品安全生产、安全储存、安全食用的知识;物流商对于食品安全运输的知识;所述数据库用于存储除知识库中所述知识之外的数据;
所述控制层用于控制所述写入数据或读取数据的过程,包括:写入数据时,待写入的数据先缓存至控制层,然后控制层将所述待写入的数据发送至数据层中基于区块链的存储结构中的各个节点处,并通过各个节点处的数据与所述待写入的数据进行比对:
若每个节点处的数据与所述待写入的数据达不到50%的一致性,则拒绝写入到数据层;
若每个节点处的数据与所述待写入的数据达到50%的一致性,则:
对所述待写入的数据进行判断,判断其类型是属于知识库的知识或是属于数据库的数据;
若判断为知识库的知识,则将所述待写入的数据写入知识库且置为可修改状态,并添加到各个节点处的已有的基于区块链的存储结构且置为可修改状态;
若判断为数据库的数据,则将所述待写入的数据写入数据库且置为不可修改状态,并添加到各个节点处的已有的基于区块链的存储结构且置为不可修改状态。
本公开能够通过控制层来控制是否要写入所述待写入的数据,当比对不通过时,能够杜绝无效信息的录入。
具体实施方式
为了使本领域技术人员理解本公开所披露的技术方案,下面将结合实施例及有关附图,对各个实施例的技术方案进行描述,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。本公开所采用的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,“包括”和“具有”以及它们的任何变形,意图在于覆盖且不排他的包含。例如包含了一系列步骤或单元的过程、或方法、或系统、或产品或设备没有限定于已列出的步骤或单元,而是可选的还包括没有列出的步骤或单元,或可选的还包括对于这些过程、方法、系统、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本公开的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员可以理解的是,本文所描述的实施例可以与其他实施例相结合。
参见图1,在一个实施例中,本公开揭示了一种基于区块链的食品供应链追溯系统,包括:
用户层,应用层,控制层,数据层,其中,
所述用户层包括供应商、生产商、物流商、经销商、监管者、数据供应商的角色及其配置;
所述应用层包括面向用户层中各种角色的应用;
所述数据层包括数据库和知识库,所述数据库和知识库均基于区块链的存储结构,用于用户层的各种角色通过应用层、控制层向数据层写入数据或读取数据,其中:所述知识库用于存储:生产商对于食品安全生产、安全储存、安全食用的知识;物流商对于食品安全运输的知识;所述数据库用于存储除知识库中所述知识之外的数据;
所述控制层用于控制所述写入数据或读取数据的过程,包括:写入数据时,待写入的数据先缓存至控制层,然后控制层将所述待写入的数据发送至数据层中基于区块链的存储结构中的各个节点处,并通过各个节点处的数据与所述待写入的数据进行比对:
若每个节点处的数据与所述待写入的数据达不到50%的一致性,则拒绝写入到数据层;
若每个节点处的数据与所述待写入的数据达到50%的一致性,则:
对所述待写入的数据进行判断,判断其类型是属于知识库的知识或是属于数据库的数据;
若判断为知识库的知识,则将所述待写入的数据写入知识库且置为可修改状态,并添加到各个节点处的已有的基于区块链的存储结构且置为可修改状态;
若判断为数据库的数据,则将所述待写入的数据写入数据库且置为不可修改状态,并添加到各个节点处的已有的基于区块链的存储结构且置为不可修改状态。
就上述实施例而言,对于其中的区块链的存储结构,本领域技术人员均知晓其属于现有技术,此处不对本领域有关区块链及其存储结构的现有技术做赘述。
将上述实施例与图1结合来看,能够理解,用户层,应用层,控制层,数据层构成所述食品供应链追溯系统,其中:数据层基于区块链,因此数据层可以视为一个确保信息安全性、可信性、去中心化的层。
能够理解,上述实施例通过控制层来控制是否要写入所述待写入的数据,当比对不通过时,能够杜绝无效信息的录入;当比对通过时,则进一步判断待写入的数据的类型,存储到相应的知识库或数据库。特别的,对写入知识库的置为可修改状态,以便后期更正知识库的错误,供各方维护和利用相关知识;对写入数据库的则置为不可修改状态,防止篡改食品供应链的信息。显而易见的,除了前述食品有关的知识信息之外,写入数据库的更多的是食品供应链的信息:例如食品生产的过程信息、食品物流运输的过程信息、食品储存的过程信息、食品经销的过程信息等等。
此外,用户层的各方需要接入所述系统时,可以通过各自客户端接入用户层即可。此时,这些客户端可以视为所述系统的硬件层。客户端可以是计算机、智能手机、平板电脑等。
另外,关于上述实施例的比对手段,可以通过各种校验的方式。50%这个阈值,也可以是其他高于50%的值,越高则意味着比对越严格,开销越大;该阈值意味着在比对的效率和存储的开销,50%是较佳的实施方式而已,可以认为50%是基于妥协原则的取值。例如,每次写入新数据时,为了符合比对要求,待写入的数据的总容量中:必须携带前次已写入的内容的50%,写入的新数据则占据其余的容量。那么,与各节点的历次数据比对时,最近一次的历史数据显然符合情形,因为本次新数据的50%的内容被记录在了最近一次的各节点的数据中。能够理解,降低这个阈值,则存储的开销会降低,但系统遭到入侵的可能性则提高。
此外,除效率和开销之外,该阈值由于涉及区块链的存储结构,自然的,与其他技术领域的阈值不同的是,该阈值可以用于判断区块是否符合身份、权限:以50%为例,如果待写入的数据与每个节点处的数据只有不到50%的一致性,那么在某些情形下,例如审核权限、身份的情形下,可以认为该待写入的数据可能是非法侵入,不满足身份、权限。
进一步的,在另一个实施例中,50%这个阈值可以进一步与区块链的共识机制关联,甚至更为严格的情况下:
若每个节点处的数据的随机选取的一部分数据与所述待写入的数据达不到50%的一致性,则拒绝写入到数据层;
若每个节点处的数据的随机选取的一部分数据与所述待写入的数据达到50%的一致性,则执行上述后续动作。
由于是随机选取每个节点处的数据的一部分内容用于比对,显然,该比对实施例比前一实施例更为严格,其适于安全性要求高的追溯场景,其必然导致存储上的开销大幅提高,因为其存储的同样内容更多,冗余更多,存储开销更高,效率也更低。
在另一个实施例中,除了知识库中储存的知识之外,数据层所储存的数据主要包括两类:食品的本体信息,和食品的流通信息。食品的本体信息,包括该食品的名称信息、图像信息、属性(产地、生产商等)以及其他对于食品的描述等。食品的流通信息,则包括食品在生产和运输当中经过了什么气候条件,经过了哪些地方、哪些人、哪些公司、哪些仓库等等。
在另一个实施例中,当控制层判断后执行所述待写入的数据的写操作时,还包括:
将用户层的各种角色信息、食品的本体信息、食品的流通信息三者打包成一个区块,写入数据层。
在另一个实施例中:
所述系统还包括数据感知接入层;
所述数据感知接入层包括:网关、RFID接入单元、二维码或条形码扫描接入单元、传感器单元,其中,所述RFID接入单元、或二维码或条形码扫描接入单元、或传感器单元,被配置成自动扫描或感知的状态,以自动获取食品供应链各环节的数据,所述网关用于将获取的所述食品供应链各环节的数据自动推送至数据层中基于区块链的存储结构中的各个节点;
所述用户层中的各种角色则通过所述自动推送的数据进行食品供应链的追溯。
如上所述,所述系统通过数据感知接入层实现自动感知能力,这相当于一种智能的感知能力,并自动的推送相关信息到。
在另一个实施例中,
所述系统还包括智能层;
所述智能层利用人工智能对数据层中数据进行处理。
就该实施例而言,其意味着系统具备人工智能处理能力。事实上,智能层不仅仅着眼于AI,即人工智能引擎,也可以示例性而非限定性的包括:机器学习(ML)引擎、数据挖掘(DM)引擎、模式识别(PR)引擎。
在另一个实施例中,
所述基础层还包括适应区块链的软件开发工具包(SDK),以便所述用户层的各种角色于应用层创建新的应用。
能够理解,该实施例扩展了基础层的功能,特别是二次开发的功能,使得应用层中可以创建新的应用,满足用户层中各种角色的深层次需求,保障所述系统的可扩展性。
在另一个实施例中,
所述应用层的应用包括:针对生产商的制造管理的应用、针对物流商的流通管理的应用、针对经销商的销售管理的应用、针对监管者的监管的应用、针对数据供应商的第三方数据的应用。
在另一个实施例中,
所述应用层还包括撮合应用,用于撮合食品供应链中有潜在需求的各方。
对于该实施例,撮合应用的目的在于尽可能高效的促成有潜在需求的各方。显然,此举有助于改善食品的流通效率。能够理解,撮合应用可以由具有潜在需求的各方之外的第三方来实施,第三方可以是系统运营商,也可以是系统上的资深用户;此外,撮合应用可以进一步包括基于区块链的即时通信单元,以便各方充分的沟通和交流。
在另一个实施例中,
所述对所述待写入的数据进行判断,判断其类型是属于知识库的知识或是属于数据库的数据,具体包括:
通过语义分析判断所述待写入的数据的类型。
能够理解,本实施例通过语义分析自动对数据属于知识还是食品流通信息等数据库中的数据进行归类,以便按相应类别存储到相应的知识库或数据库。语义分析的手段,相对于传统的、以分词为代表的手段。
在另一个实施例中,
所述智能层还用于对所述待写入的数据进行判断,判断其类型是属于知识库的知识或是属于数据库的数据。
相比前者,本实施例则是通过智能层、利用人工智能等技术进行判断。人工智能技术,则是相对于传统的非智能化的手段。
需要说明的是,上述各个实施例所述作为分离部件说明的各个层可以是,或者也可以不是物理上分开的,可以位于一个地方,或者也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本公开提供的系统的模块或单元之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本公开可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本公开而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例对应的方法。
本说明书中每个实施例采用递进的方式描述,重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本公开所提供的系统进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。