食品溯源有多难?手把手教你写一个区块链+物联网的溯源系统!

  • 时间:
  • 浏览:0
  • 来源:幸运快3_快3公式_幸运快3公式

声明:本文来自于微信公众号 区块链大本营(blockchain_camp),授权站长之家转载发布。

来源 | 《基于区块链的物联网项目开发》

作者 | 马克西米利亚诺·桑托斯、埃尼奥·莫拉

用那些来证明区块链有多火呢?

要花费是,区块链被搬上“两会”桌面上讨论、相关职位需求一年内增长500%、某上市公司在公司名称中加入“区块链”后股价暴涨5000%累似 的表现吧。

区块链(blockchain)和物联网(Internet of Things,IoT)已被证明是当下最受欢迎的技术,着实其使用也才事先刚结速。目前,区块链和物联网的整合已是这个大公司的优先事项之一,且少数公司已刚结速在这个项目中使用它来实施计划、制定防止方案。

就在这个“人人皆链”的事先,朋友可不不能认真思考哪多少严肃的大问题:除了数字货币之外,区块链技术对于实体经济有那些有价值的场景?在技术嫁接实践中怎么遵循行业规律和需求?区块链怎么与物联网、云计算、大数据结合达到真正理想的效果?

本文将针对如今的食品安全运输大问题,为朋友深度图介绍怎么设计防止方案架构,即怎么使用区块链支持分布式账本网络和物联网设备需求,并实现过程跟踪等内容。

你要知道食物进入你的胃事先,都经历了那些?话太久说,看干货吧。

设计防止方案架构

在本章中,朋友将回顾基于物联网和区块链的食品链防止方案架构,并重点探讨以下主题:

  • 业务方面:将回顾业务组件构成和主要参与者,以及生产和消费者之间的交易过程

  • 技术方面:将展示朋友技术防止方案的架构

  • 软件方面:将展示防止方案细节

1. 食品产业

现代食品链大而复杂性,参与者们直接或间接地影响着食品的生产和运输。

朋友首先了解一下现代食品生产过程,现代食品链面临那些挑战,并提出某种基于区块链和物联网技术的防止方案:

上图是现代食品链业务流程的复杂性版,实际链条要比上图庞大得多。累似 ,这个这个超市都是 它们另一方的销售中心,这个这个这里也如此蕴藏累似 港口和海关等这个参与者。

对于朋友的应用案例,朋友将设法从产品交付给生产商时起对其进行说明。产品任选,这里以鸡腿为例。

假设朋友管理的资产是另一个 多装满鸡腿的盒子,原本资产是另一个 多装满装着鸡腿的盒子的搬运托盘。在食品链中,朋友将关注以下参与者流程:生产商、配送中心和零售商。

如前所述,现代食品链蕴藏这个参与者,但朋友遵循的是另一个 多更简单的流程,而不一定是现实生活中所遵循的实际流程,目标是了解物联网和区块链怎么帮助食品链中的各方防止实际大问题。

a) 食品生态系统的挑战

朋友选择关注的食品链蕴藏这个挑战,在这里简单列示如下:

农民面临的挑战:确保有关原材料关键信息的安全可靠,包括产品说明、检查日期、库存信息等。

生产商面临的挑战:确保产品来源安全;产品不能安全交付和接收;尽量用电子装置包装产品,减少人工参与;使用条形码和二维码为监管者和消费者提供信息标签。

零售商面临的挑战:检查包装的完整版性,保证产品运输过程的可视化,对产品生产日期、仓库检验和质量控制等方面进行管理。

消费者面临的挑战:对产品的原产地等包装中的信息充分信任,可好快了 了 识别产品,且必要时不能排除可疑产品。

b) 食品加工环节

下面从朋友的目标刚结速。案例中,产品原料到达工厂后,被切割、打包、装盒、储存,在交货前将盒子贴到 搬运托盘上。

搬运托盘是用于运输货物的木制、金属或塑料平台,朋友在下图中还可不不能看多:

产品在加工环节可不不能进行登记的重要数据包括:

  • 库存量单位(Stock Keeping Unit,SKU)

  • 动物来源

  • 生产厂家名称

  • 动物信息

  • 质量控制

  • 减排日期

  • 是否是 冷藏

  • 技术主管信息

  • 发货日期

  • 温度和物流信息

在登记盒子或搬运托盘时记录下列完整版信息:

  • 库存量单位

  • 日期

  • 厂家地址

  • 冷藏温度

  • 质量记录

  • 搬运托盘代码

朋友来看下另一个 多环节:

c) 食品配送环节

经过切割、包装和运输后,产品到达配送中心,那里负责接收货物并检查产品储存情况表。根据实际运输需求,产品机会会被贴到 另一个 多更大的搬运托盘中,以便更适合火车或卡车运输。

为了防止产品老出任何大问题,配送中心会检查工厂发送的数据。机会有任何额外变化,如搬运托盘转移,都可不不能在产品信息包中加进去去相应信息。

对于产品来讲,要记录如下信息:

  • 收货日期

  • 搬运托盘号

  • 收货温度

  • 储存温度

  • 运输公司名称

  • 填料密封情况表

对于搬运托盘来讲,要记录如下信息:

  • 目的地代码

  • 搬运托盘代码

  • 日期

  • 分销环节温度

  • 运输公司名称

经过检验,产品被送到零售商身旁。

d) 食品零售环节

商店收到产品后可不不能查货物是否是 符合要求,拆开搬运托盘,打开盒子,产品检查过程刚结速:

在零售环节,一定要记录如下信息:

  • 收货日期

  • 搬运托盘号

  • 收货温度

  • 储存温度

  • 运输公司名称

  • 填料密封情况表

现在,商店还可不不能在产品上贴上标签了,产品将直接或过一段时间被摆在货架上出售。

6.2 技术方案

现在朋友机会了解了食品链的整个过程以及每个环节的潜在大问题,下面朋友来看看区块链和物联网技术在此怎么发挥作用。下图为标准的区块链Hyperledger Fabric架构图示:

上图向朋友展示了区块链的三层架构,包括前端应用(左侧)、API/SDK (上边)、Hyperledger Fabric 和物联网平台(右侧)。

下面对每层架构进行解读:

a) 前端应用

该层负责数据输入,还可不不能是另一个 多数据包,比如来自SAP、Salesforce或Siebel的数据包,机会是自定义的应用。它还还可不不能与物联网设备交互,分类分类整理数据并在区块链账号中注册。开发前端应用由以下哪多少方面组成:

好吧,我知道每层架构都是 这个这个工具,这里只用了我比较熟悉的工具。

这个前端架构使得朋友还可不不能将服务从单个接口中分离出来,原本朋友就还可不不能将用户体验(User eXperience,UX)扩展到这个平台,而不不重新构建服务内容。

b) 基于物联网的资产跟踪技术

物联网在食品链中起着重要作用。物联网设备还可不不能跟踪资产,因此有这个这个型号可供选择。有测量温度的传感器,进行位置跟踪的GPS、信标、SigFox、Wi-Fi、4G和Sub1Ghz。那些设备和网络还可不不能广泛应用于农场、工厂、运输公司、配送中心和零售网点,适用范围蕴藏食品链中的所有参与者。

食品链的主要挑战来自运输环节。这个食品的运输可不不能特定环境,机会这个食品易腐烂,而温度控制对于预防食品污染和腐烂至关重要。

下面看一下怎么使用物联网设备来防止这个大问题。粒子电子资产跟踪器(The Particle Electron Asset Tracker,如下图所示)可用于分类分类整理温度和环境数据,识别GPS定位,并进行蜂窝三角测量等:

这个跟踪器允许朋友连接u-blox M8 GNSS GPS接收器和Adafruit LIS3DH三轴加速器。朋友也还可不不能将Grove传感器与其连接。

下面我你要要来看一下这个物联网平台的架构:

上图向朋友展示了防止方案的重要组件,包括:

消息队列遥测传输(Message Queuing Telemetry Transport,MQTT):这是指另一个 多基于TCP的可发布–订阅消息的传递协议;专门用于远程连接,可不不能极少量代码占用,机会对网络下行强度 有要求;发布–订阅消息传递模式可不不能消息代理。

Node-RED:这是另一个 多编程工具,利用还可不不能创建JavaScript函数的流编辑器将硬件设备、API和在线服务以某种简单的土办法连接起来。

IBM Cloud:这是一组云计算服务。

Bosch IoT Rollouts:这是博世物联网套件中的一项云服务,使用户不能管理边缘设备、控制器和网关的软件更新。

如此,那些组件是怎么结合在一块儿来帮助食品链运转的呢?

  • Node-RED控制面板仪表盘使朋友不能选择另一个 多资产跟踪器,并检查位置、数据、设备情况表和这个信息

  • 资产跟踪器还可不不能在移动网络上激活或更新

  • 地理位置数据还可不不能定期传输,通过Node-RED仪表盘进行跟踪

  • 资产跟踪器设备查询温度数据,因此查询位置或下行强度 数据

  • Node-Red还可不不能将温度、位置和下行强度 数据写入Hyperledger Fabric

  • Node-Red仪表盘查询Hyperledger特征中的各种任务信息,累似 交易历史记录、日期和时间数据以及地理传感器数据

c) API/SDK

API/SDK是区块链网络中连接的集成层,通常使用Node.js开发,在调用智能合约中起着重要的作用。今天,朋友还可不不能找到使用Go和Java的API/SDK文档,以及 Python文档。

有关怎么使用API/SDK将应用进程与区块链网络集成,还可不不能参考此链接:

https:/hyperledger-fabric.readthedocs.io/en/release-1.3/fabric-sdks.html

下图展示了另一个 多与API/SDK集成且与Hyperledger Fabric交互的应用:

Composer Java Script SDK是从Node.js派生的,它允许开发人员将应用进程与朋友的业务网络集成起来。包括另一个 多npm模块:

Composer-client:此模块通常作为应用进程的本地必安装项。它提供API,用来将业务应用进程连接到业务网络,目的是访问资产和参与者并提交交易。对于生产商来讲,这是应用进程唯一可不不能加进去去的模块。

Composer-admin:此模块通常作为管理应用的本地必安装项。这个API允许创建和定义业务网络。

现在让朋友继续讨论防止方案中的最后一层。

d) Hyperledger Composer—高级概述

Hyperledger Composer是某种创建区块链网络的简单土办法,它集成了另一个 多全栈工作防止方案,就像Hyperledger Composer架构站点提供的那样。

在较高级别上,Hyperledger Composer由以下组件组成:

  • 执行runtime

  • JavaScript SDK

  • 命令行接口(CLI)

  • REST服务器

  • 环回连接器

  • Playground 网络用户界面

  • Yeoman代码生成器

  • VS Code和Atom编辑器插件

完整版介绍那些插件如此本书的内容范围之内。让人访问这个链接,简要地了解那些组件:https:// hyperledger. github. io/composer/latest/introduction/solution- architecture

6.3 软件组件

现在,朋友将从架构师的深度图来看看防止方案的软件组件。这是熟悉所有组件并更好地理解它们是怎么集成的另一个 多好土办法。

首先,朋友探究最重要的组件之一:身份验证过程。

怎么保证食品链中的每个成员在前端应用中都是 正确的访问权限?在回答了这个大问题事先,朋友将深入研究Hyperledger Composer最重要的组件:建模语言和交易防止器功能。

a) Composer REST服务器

要验证客户端,朋友可不不能设置另一个 多REST服务器。有了这个选项,在允许客户端在REST API中进行调用事先,应该对其进行身份验证。

REST服务器使用另一个 多名为PASSPORT的开源软件,它是Node.js的身份验证上边件。它灵活且模块化,支持通过用户名和密码、Facebook、Twitter、Google和轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP)等进行身份验证。在第 7 章中,朋友将就此进行完整版说明。现在,让朋友回顾一下组件将怎么工作。

下图中,朋友还可不不能看多使用Composer REST服务器的高级身份验证架构:

下面的组件机会在图中进行了描述:前端应用、Composer REST服务器、LDAP和云(Cloudant,NoSQL数据库)。

 机会正在进行测试,机会可不不能快速创建身份证明,建议使用Facebook、Google或Twitter进行身份验证,这将比这个土办法更容易、变快。

要使用前面的土办法,并利用Composer REST服务器,朋友可不不能进行这个定制,这可不不能执行下列步骤:

1) 下面一行是composer-rest-server安装时,可不不能在行事先执行的命令:

    apk del make gcc g++ python git

    在使用此土办法事先,请确保你另一个 多多干净的环境,清除所有事先的安装。

    2) 若要自定义Composer REST服务器Dockerfile,请在Run话语中加进去去以下命令:

      su -c "npm install -g passport-ldapauth" - composer && \

      3) 创建以下环境变量:

      4) 机会正在检查API调用并接收到404,这意味着分析如此登录:

      5) 检查钱包中是否是 有API:

      为了更好地理解身份验证流程,朋友看一下这个执行流程:

      身份验证要求composer-rest-server的每个API调用都可不不能包括access_token。想了解更多相关内容,请访问:

      https://hyperledger.github.io/composer/v0.16/integrating/enabling-rest-authentication

      使用curl的这个示例包括:

      又累似 :

      6) 这是设置composer-rest-server的最后一步:使用Cloudant创建名片。

      利用接下来的哪多少属性创建成员卡片:

      上传附件,如下所示:

      在第 7 章中,朋友将对此进行部署。

      b) Hyperledger Composer模型

      识别区块链应用案例的土办法有这个这个,让朋友记住第 3 章中讲到的这个好的应用案例的重要指标。

      • 是否是 涉及业务网络?

      • 机会是,是否是 存在可不不能验证且可审计的事务?

      • 数据透明度以及数据更改是否是 重要?

      在选择了那些大问题的答案事先,头脑风暴会议是比较好的沟通土办法,会议可完整版说明防止方案、选择最佳防止方案平台(如IBM Food Security)或刚结速创建自定义应用案例。

      使用Hyperledger Composer建模语言还可不不能很容易地定义资源特征,该特征将作为交易防止,并记录在账本上。

      CTO文件使用另一个 多主要元素为业务网络定义创建域模型:

      • 蕴藏文件中所有资源声明的单个命名空间

      • 蕴藏资产、事务、参与者和事件的一组资源定义

      • 从这个命名空间导入资源的可选导入声明

      在本书第 7 章,创建区块链和物联网防止方案时,朋友创建了另一个 多业务网络。让朋友更完整版地研究朋友使用的代码:名称空间是资产、事件、参与者和事务的基本定义,如下所示。

      资源和枚举类型的声明显示在以下代码中:

      交易过程函数在使用业务网络连接API提交交易时由运行库自动调用;

      有关Hyperledger Composer建模语言的更多信息,请访问以下链接:

      • https://hyperledger.github.io/composer/v0.16/reference/cto_language.html

      • https://hyperledger.github.io/composer/v0.16/reference/js_scripts.html

      c) Hyperledger Composer访问控制语言

      Hyperledger Composer另一个 多多访问控制文件(.acl),还可不不能用它来对业务访问控制和网络访问控制进行编程。业务访问控制用于业务网络中的资源,而网络访问控制是指对管理网络更改的控制。

      下面是授予网络访问控制的另一个 多示例:

      又累似 :

      通过访问以下链接,还可不不能获得有关Hyperledger Composer访问控制语言的更多信息:

      https://hyperledger.github.io/composer/v0.16/reference/acl_language.html。

      d) Hyperledger Composer交易防止函数

      Hyperledger Composer业务网络定义由一组模型文件和一组脚本组成。脚本还可不不能蕴藏执行交易过程的交易防止函数,那些交易是在业务网络的模板文件中定义的。

      下面是另一个 多交易执行脚本文件的样例:

      如朋友所见,在使用BusinessNetworkConnection API提交交易时,交易防止器函数由runtime自动调用。文档中的Decorators用于注释runtime防止所需的元数据函数,因此每个交易类型都另一个 多多用于存储交易的关联注册表。

      小结

      本章描述的架构涉及这个组件,实现起来有点硬复杂性。到目前为止,朋友机会选择,物联网和区块链的结合还可不不能缓解哪多少大问题,改变现代食品链的运作土办法。

      累似 :增加成员之间信息透明度,使它们不能更有效地控制数据;提高数据安全性;使流程更加自动化;尽量减少上边环节;使链条整体更加复杂性。

      朋友还看多物联网设备、传感器功能的扩展,它们不能在可不不能要花费人工或如此人工的情况表下实现机器间的交互。那些技术组件带来了前所未有的自动化,既降低供应成本,也节约能源。

      区块链与物联网的集成将使边缘设备(如传感器、条形码和二维码扫描事件)和基于视频识别的资产之间的数据交加进去为机会。与传感器连接的资产将不能记录敏感信息,如特定仓库的位置和温度,因此还可不不能在区块链上自动记录或更新那些信息。

      随着对架构及其技术组件的更好理解,朋友将不能为现代食品链充分实现另一个 多使用物联网和区块链的防止方案。

      在下一章中,朋友将学习怎么用物联网创建另一方的区块链。

      彩蛋

      区块链技术理论上还可不不能应用到各行各业大展拳脚,但理论怎么与相应的应用场景结合起来, 又怎么与一块儿代的这个技术相结合,迸发出绚丽耀眼的火花?这才是朋友要思考的大问题。

      而以上内容所述的区块链+物联网+食物链的一系列防止方案架构,这个这个区块链场景应用的其中一部分。