暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

基于区块链技术的食品追溯

273

食品安全一直是各国政府都十分关心的民生问题。食品追溯应用其实是一种比较传统的应用,每年都会有很多新的应用上线。本人在10多年前就参与实施了2008北京奥运食品的安全追溯系统。在食品追溯系统中,一般会关心下面几个问题:

  1. 原产地溯源,防止假冒伪劣,典型的如高档白酒,进口葡萄酒等。

  2. 发现问题食品,可以及时快速召回。

  3. 供应链可视化,通过共享数据,可随时知道当前处于供应链的哪个环节,提升效率。

最近两年,随着区块链技术的火热,因为区块链防篡改和数据实时共享的特点,采用区块链技术实现食品追溯受到重视。如2017年7月,沃尔玛、京东、IBM和清华大学已经组成区块链联盟,以提高中国食品供应链的可追溯性和透明度。在之前沃尔玛公司和IBM公布了去年在美国和中国推出的食品溯源区块链项目的最新消息。该试点项目由沃尔玛、IBM和学术合作伙伴共同开发,旨在利用区块链技术、对供应链中的产品如美国的芒果和中国的猪肉进行跟踪。

据沃尔玛透露,到目前为止,该试点项目的成果令人满意。美国和中国的早期试验表明,区块链技术可以成功地对食品从供应商到零售商、以及最终消费者之间的流通过程进行追踪。产品的地产、批号、生产厂家和处理数据、到期日期和运输细节等详细信息都将可以在区块链网络上进行查询。沃尔玛的测试表明,通过应用区块链技术,追溯一袋芒果从农场到门店的过程从以往的几天甚至几星期缩短到了2秒。

采用区块链与采用传统技术实现食品追溯的区别

前端没什么区别,都是数据采集。主要的区别在后端,区块链从业务层面的本质是去中心化,那么在技术层面的本质是去数据库化。如下图所示:

传统的三层架构应用一般就是实现UI的客户端,实现业务逻辑的业务层,和存储数据的数据库层。并不断演进,如客户端从字符终端到GUI图形界面到Web浏览器到如今的移动终端。业务逻辑的实现也从最开始的Tuxedo服务,J2EE的EJB,Servlet到Web service,Java Bean,REST等,但后端的数据库一直没有变化。最近几年,随着并发访问的增大和改善用户体验的需要,对响应时间要求越来越高。增加了缓存层(采用memcache,Redis,Coherence等)。

区块链应用同传统应用不一样的地方是它把数据保存在账本中。通过智能合约(智能合约听起来很高大上,但其实就是一段代码,它实现的功能类似传统应用中的EJB,Servlet,Web service, Java Bean等,也就是实现业务逻辑)对账本进行读写操作。而账本是一个Key-value的状态库加区块链,区块链对应的是文件,以追加的方式写入,不可更改。如下图为Hyperledger Fabric中的账本逻辑示意图:

如上图所示,账本Ledger主要包含两块:blockchain和state。blockchain就是一系列连在一起的block,用来记录历史交易。state对应账本的当前最新状态,它是一个key-value数据库,Fabric默认采用Level DB, 可以替换成其他的Key-value数据库,如Couch DB。举个例子。我们采用区块链实现一个弹珠交易的系统。我们开发了一个智能合约, 每个弹珠有以下几个属性:Name, owner, color, size.  可以定义一个JSON对象,用name做KEY, JSON对象做Value,存储在Level DB或者Couch DB中。所以区块链应用一般采用JSON数据格式,并直接存储在key-value数据库和区块链中。这样就省去了传统应用做O/R Mapping的工作。

从部署架构看区块链和传统应用的区别,如下图,传统应用的应用服务器层很容易扩展,但在数据层比较难。而区块链是把应用(智能合约)和数据(账本)分布式部署在每个节点上。

那么这种情况下,如何保证数据的原子操作和一致性。我们知道数据库通过行级锁,事务等机制保证数据的原子操作和一致性。区块链是通过共识机制来保证数据的一致性。

一个基于区块链技术的食品追溯DEMO

我们在Oracle的区块链云服务BCS上面做了一个采用区块链技术追溯食品的DEMO.下面做下介绍:

业务场景

如下图所示,通过区块链技术,农牧场的出栏信息,食品厂的出厂信息,商品信息,超市的上架信息,监管部门的检测检验信息可以在这不同的组织之间共享,消费者也可以实时查询到上面这些信息,进行溯源。当然原产地认证信息,有机食品认证,生产许可证等信息等也可以放到区块链网络中,利用区块链不可篡改的特点。保证查询到信息是真实的。

具体实现

如下图所示,我们在后端采用Oracle的区块链云服务BCS,前端采用Oracle的开源框架JET实现了一个区块链食品追溯的DEMO。前端JET中通过REST调用后端部署在BCS上面的智能合约。智能合约采用Go语言开发,部署在BCS上面。

优势总结

基于区块链技术实现食品追溯有以下几点优势:

总之,利用区块链的数据不可篡改和数据可以实时同步的特点,很适合用于各种追溯类的应用。如上面介绍的食品追溯,其他的如汽车零部件追溯,贵重物品如珠宝,钻石的追溯,药品追溯等等。

DEMO客户端下载

我们把前端做成一个手机APP,感兴趣的可以下载感受一下。

 Android手机APP:扫描或长按下面的二维码下载

 

苹果手机APP:扫描或长按下面的二维码下载


作者简介

徐春金,甲骨文云平台PaaS资深咨询顾问,专注于甲骨文PaaS相关产品及解决方案。具有17+年的中间件技术,产品,方案和项目实施经验。熟悉电信,电商行业。您可以通过chun.jin.xu@oracle.com与他联系。


了解更多,敬请关注甲骨文开发者社区......


文章转载自甲骨文开发者社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论