用什么來證明區塊鏈有多火呢?
大概是,區塊鏈被搬上“兩會”桌面上討論、相關職位需求一年內增長400%、某上市公司在公司名稱中加入“區塊鏈”后股價暴漲500%之類的表現吧。
區塊鏈和物聯網已被證明是當下最受歡迎的技術,雖然其使用也才剛剛開始。目前,區塊鏈和物聯網的整合已是一些大公司的優先事項之一,且少數公司已開始在一些項目中使用它來實施計劃、制定解決方案。
就在這個“人人皆鏈”的時候,我們需要認真思考幾個嚴肅的問題:除了數字貨幣之外,區塊鏈技術對于實體經濟有哪些有價值的場景?在技術嫁接實踐中如何遵循行業規律和需求?區塊鏈如何與物聯網、云計算、大數據結合達到真正理想的效果?
本文將針對如今的食品安全運輸難題,為大家深度介紹如何設計解決方案架構,即如何使用區塊鏈支持分布式賬本網絡和物聯網設備需求,并實現過程跟蹤等內容。
想要知道食物進入你的胃之前,都經歷了什么?話不多說,看干貨吧。
設計解決方案架構
在本章中,我們將回顧基于物聯網和區塊鏈的食品鏈解決方案架構,并重點探討以下主題:
業務方面:將回顧業務組件構成和主要參與者,以及生產和消費者之間的交易過程
技術方面:將展示我們技術解決方案的架構
軟件方面:將展示解決方案細節
1.食品產業
現代食品鏈大而復雜,參與者們直接或間接地影響著食品的生產和運輸。
我們首先了解一下現代食品生產過程,現代食品鏈面臨哪些挑戰,并提出一種基于區塊鏈和物聯網技術的解決方案:
上圖是現代食品鏈業務流程的簡化版,實際鏈條要比上圖龐大得多。例如,很多超市都有它們自己的銷售中心,所以這里也沒有涵蓋例如港口和海關等其他參與者。
對于我們的應用案例,我們將設法從產品交付給生產商時起對其進行說明。產品任選,這里以雞腿為例。
假設我們管理的資產是一個裝滿雞腿的盒子,另一個資產是一個裝滿裝著雞腿的盒子的搬運托盤。在食品鏈中,我們將關注以下參與者流程:生產商、配送中心和零售商。
如前所述,現代食品鏈中有許多參與者,但我們遵循的是一個更簡單的流程,而不一定是現實生活中所遵循的實際流程,目標是了解物聯網和區塊鏈如何幫助食品鏈中的各方解決實際問題。
a)食品生態系統的挑戰
我們選擇關注的食品鏈中有許多挑戰,在這里簡單列示如下:
農民面臨的挑戰:確保有關原材料關鍵信息的安全可靠,包括產品說明、檢查日期、庫存信息等。
生產商面臨的挑戰:確保產品來源安全;產品能夠安全交付和接收;盡量用電子裝置包裝產品,減少人工參與;使用條形碼和二維碼為監管者和消費者提供信息標簽。
浙江規定進口冷鏈食品需加貼基于區塊鏈的冷鏈食品溯源碼:為防止新冠肺炎病可能通過冷鏈運輸的畜禽肉、水產品及其外包裝等物品傳播蔓延,浙江近日規定,2020年5月1日后進口的增量冷鏈食品,必須在產品外包裝上加貼“冷鏈食品溯源碼” 。賦碼、掃碼的背后依靠區塊鏈技術,在發生食品安全事故時,基于區塊鏈的溯源體系可以追蹤到每一環節,市場監管部門更容易掌握食品流向。(武漢晚報)[2020/9/25]
零售商面臨的挑戰:檢查包裝的完整性,保證產品運輸過程的可視化,對產品生產日期、倉庫檢驗和質量控制等方面進行管理。
消費者面臨的挑戰:對產品的原產地等包裝中的信息充分信任,可迅速識別產品,且必要時能夠排除可疑產品。
b)食品加工環節
下面從我們的目標開始。案例中,產品原料到達工廠后,被切割、打包、裝盒、儲存,在交貨前將盒子放在搬運托盤上。
搬運托盤是用于運輸貨物的木制、金屬或塑料平臺,我們在下圖中可以看到:
產品在加工環節必須進行登記的重要數據包括:
庫存量單位
動物來源
生產廠家名稱
動物信息
質量控制
減排日期
是否冷藏
技術主管信息
發貨日期
溫度和物流信息
在登記盒子或搬運托盤時記錄下列詳細信息:
庫存量單位
日期
廠家地址
冷藏溫度
質量記錄
搬運托盤代碼
我們來看下一個環節:
c)食品配送環節
經過切割、包裝和運輸后,產品到達配送中心,那里負責接收貨物并檢查產品儲存情況。根據實際運輸需求,產品可能會被放在一個更大的搬運托盤中,以便更適合火車或卡車運輸。
為了避免產品出現任何問題,配送中心會檢查工廠發送的數據。如果有任何額外變化,如搬運托盤轉移,都需要在產品信息包中添加相應信息。
對于產品來講,要記錄如下信息:
收貨日期
搬運托盤號
收貨溫度
儲存溫度
運輸公司名稱
密封情況
對于搬運托盤來講,要記錄如下信息:
目的地代碼
搬運托盤代碼
日期
分銷環節溫度
運輸公司名稱
經過檢驗,產品被送到零售商手中。
廣州市全力推進區塊鏈+AI+食品溯源智能監管:3月24日消息,廣州市市場監督管理局近年來將食品安全監管與互聯網技術深度融合,國內首創打造以區塊鏈、AI(人工智能)技術、大數據、云計算為核心技術的廣州市食用農產品溯源平臺,開啟智能監管模式,全面實現“源頭嚴控、入穗嚴查、終端嚴管”,為全國建立食品安全現代化治理體系貢獻“廣州智慧”、提供“廣州方案”。截至目前,廣州通過食品農產品溯源平臺覆蓋90家市場8018個經營主體,實現對全市90家農貿市場(含食品專業批發市場)的線上巡檢,農產品流通追溯憑證達465.7萬單,日均商戶上報率達95%、日均排查異常票證占總票證的5%,極大地提高日常追溯數據上報質量,全市未發現系統性、區域性食品安全風險。(中國質量新聞網)[2020/3/24]
d)食品零售環節
商店收到產品后需要查貨物是否符合要求,拆開搬運托盤,打開盒子,產品檢查過程結束:
在零售環節,一定要記錄如下信息:
收貨日期
搬運托盤號
收貨溫度
儲存溫度
運輸公司名稱
密封情況
現在,商店可以在產品上貼上標簽了,產品將直接或過一段時間被擺在貨架上出售。
6.2 技術方案
現在我們已經了解了食品鏈的整個過程以及每個環節的潛在問題,下面我們來看看區塊鏈和物聯網技術在此如何發揮作用。下圖為標準的區塊鏈HyperledgerFabric架構圖示:
上圖向我們展示了區塊鏈的三層架構,包括前端應用、API/SDK、HyperledgerFabric和物聯網平臺。
下面對每層架構進行解讀:
a)前端應用
該層負責數據輸入,可以是一個數據包,比如來自SAP、Salesforce或Siebel的數據包,或者是自定義的應用。它還可以與物聯網設備交互,收集數據并在區塊鏈賬號中注冊。開發前端應用由以下幾個方面組成:
好吧,我知道每層架構都有很多工具,這里只用了我比較熟悉的工具。
這種前端架構使得我們可以將服務從單個接口中分離出來,這樣我們就可以將用戶體驗擴展到其他平臺,而不用重新構建服務內容。
b)基于物聯網的資產跟蹤技術
物聯網在食品鏈中起著重要作用。物聯網設備可以跟蹤資產,而且有很多型號可供選擇。有測量溫度的傳感器,進行位置跟蹤的GPS、信標、SigFox、Wi-Fi、4G和Sub1Ghz。這些設備和網絡可以廣泛應用于農場、工廠、運輸公司、配送中心和零售網點,適用范圍涵蓋食品鏈中的所有參與者。
聲音 | 荷蘭皇家菲仕蘭中國董事長:利用區塊鏈等科技實現食品溯源:據中國新聞網消息,4月18日,在“2019 國際食品安全與健康大會”上,荷蘭皇家菲仕蘭中國董事長高瑞宏(Rahul Colaco)表示,菲仕蘭利用科技創新促進食品安全。通過在產品上增加QR二維碼、運用區塊鏈技術等科技手段,實現食品安全的全程追溯。[2019/4/18]
食品鏈的主要挑戰來自運輸環節。許多食品的運輸需要特定環境,因為一些食品易腐爛,而溫度控制對于預防食品污染和腐爛至關重要。
下面看一下如何使用物聯網設備來解決這個問題。粒子電子資產跟蹤器可用于收集溫度和環境數據,識別GPS定位,并進行蜂窩三角測量等:
這個跟蹤器允許我們連接u-bloxM8GNSSGPS接收器和AdafruitLIS3DH三軸加速器。我們也可以將Grove傳感器與其連接。
下面讓我來看一下這種物聯網平臺的架構:
上圖向我們展示了解決方案的重要組件,包括:
消息隊列遙測傳輸:這是指一個基于TCP的可發布–訂閱消息的傳遞協議;專門用于遠程連接,需要少量代碼占用,或者對網絡帶寬有要求;發布–訂閱消息傳遞模式需要消息代理。
Node-RED:這是一個編程工具,利用可以創建JavaScript函數的流編輯器將硬件設備、API和在線服務以一種簡單的方式連接起來。
IBMCloud:這是一組云計算服務。
BoschIoTRollouts:這是博世物聯網套件中的一項云服務,使用戶能夠管理邊緣設備、控制器和網關的軟件更新。
那么,這些組件是如何結合在一起來幫助食品鏈運轉的呢?
Node-RED控制面板儀表盤使我們能夠選擇一個資產跟蹤器,并檢查位置、數據、設備狀態和其他信息
資產跟蹤器可以在移動網絡上激活或更新
地理位置數據可以定期傳輸,通過Node-RED儀表盤進行跟蹤
資產跟蹤器設備查詢溫度數據,然后查詢位置或速度數據
Node-Red可以將溫度、位置和速度數據寫入HyperledgerFabric中
Node-Red儀表盤查詢Hyperledger結構中的各種任務信息,例如交易歷史記錄、日期和時間數據以及地理傳感器數據
c)API/SDK
API/SDK是區塊鏈網絡中連接的集成層,通常使用Node.js開發,在調用智能合約中起著重要的作用。今天,我們可以找到使用Go和Java的API/SDK文檔,以及Python文檔。
動態 | 馬世韜透露IBM做食品溯源項目的兩個方法:據火訊財經消息,IBM區塊鏈中國區業務總監馬世韜接受談時表示,IBM在做食品溯源的項目當中,有兩個方向可以考慮:第一,事先預防:拉長整個鏈條,并結合物聯網大數據的能力,增加造假的成本。第二,事后處理:參與方在鏈上形成的數據無法篡改,若存在造假行為,事后可以被識別追溯,并且將來會把這樣的造假企業逐出整個生態鏈。[2018/10/27]
有關如何使用API/SDK將應用程序與區塊鏈網絡集成,可以參考此鏈接:
https:/hyperledger-fabric.readthedocs.io/en/release-1.3/fabric-sdks.html
下圖展示了一個與API/SDK集成且與HyperledgerFabric交互的應用:
ComposerJavaScriptSDK是從Node.js派生的,它允許開發人員將應用程序與他們的業務網絡集成起來。包括兩個npm模塊:
Composer-client:此模塊通常作為應用程序的本地必安裝項。它提供API,用來將業務應用程序連接到業務網絡,目的是訪問資產和參與者并提交交易。對于生產商來講,這是應用程序唯一需要添加的模塊。
Composer-admin:此模塊通常作為管理應用的本地必安裝項。這個API允許創建和定義業務網絡。
現在讓我們繼續討論解決方案中的最后一層。
d)HyperledgerComposer—高級概述
HyperledgerComposer是一種創建區塊鏈網絡的簡單方法,它集成了一個全棧工作解決方案,就像HyperledgerComposer架構站點提供的那樣。
在較高級別上,HyperledgerComposer由以下組件組成:
執行runtime
JavaScriptSDK
命令行接口
REST服務器
環回連接器
Playground網絡用戶界面
Yeoman代碼生成器
VSCode和Atom編輯器插件
詳細介紹這些插件不在本書的內容范圍之內。你可以訪問這個鏈接,簡要地了解這些組件:https://hyperledger.github.io/composer/latest/introduction/solution-architecture
6.3 軟件組件
現在,我們將從架構師的角度來看看解決方案的軟件組件。這是熟悉所有組件并更好地理解它們是如何集成的一個好方法。
施耐德電氣將區塊鏈技術用于食品溯源:在本周舉行的漢諾威工業博覽會上,施耐德電氣將微軟先進的區塊鏈技術與行業需求相互結合,推出其面向食品和飲料行業最新發布的追蹤工具,以應對食品跟蹤溯源的復雜需求。[2018/4/26]
首先,我們探究最重要的組件之一:身份驗證過程。
如何保證食品鏈中的每個成員在前端應用中都有正確的訪問權限?在回答了這個問題之后,我們將深入研究HyperledgerComposer最重要的組件:建模語言和交易處理器功能。
a)ComposerREST服務器
要驗證客戶端,我們需要設置一個REST服務器。有了這個選項,在允許客戶端在RESTAPI中進行調用之前,應該對其進行身份驗證。
REST服務器使用一個名為PASSPORT的開源軟件,它是Node.js的身份驗證中間件。它靈活且模塊化,支持通過用戶名和密碼、Facebook、Twitter、Google和輕量級目錄訪問協議等進行身份驗證。在第7章中,我們將就此進行詳細說明。現在,讓我們回顧一下組件將如何工作。
下圖中,我們可以看到使用ComposerREST服務器的高級身份驗證架構:
下面的組件已經在圖中進行了描述:前端應用、ComposerREST服務器、LDAP和云。
如果正在進行測試,或者需要快速創建身份證明,建議使用Facebook、Google或Twitter進行身份驗證,這將比其他方法更容易、更快。
要使用前面的方法,并利用ComposerREST服務器,我們需要進行一些定制,這需要執行下列步驟:
1)?下面一行是composer-rest-server安裝時,需要在行之前執行的命令:
apk?delmakegccg++pythongit
在使用此方法之前,請確保你有一個干凈的環境,清除所有以前的安裝。
2)?若要自定義ComposerREST服務器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)HyperledgerComposer模型
識別區塊鏈應用案例的方法有很多,讓我們記住第3章中講到的一些好的應用案例的重要指標。
是否涉及業務網絡?
如果是,是否存在需要驗證且可審計的事務?
數據透明度以及數據更改是否重要?
在確定了這些問題的答案之后,頭腦風暴會議是比較好的溝通方式,會議可詳細說明解決方案、確定最佳解決方案平臺或開始創建自定義應用案例。
使用HyperledgerComposer建模語言可以很容易地定義資源結構,該結構將作為交易處理,并記錄在賬本上。
CTO文件使用三個主要元素為業務網絡定義創建域模型:
包含文件中所有資源聲明的單個命名空間
包含資產、事務、參與者和事件的一組資源定義
從其他命名空間導入資源的可選導入聲明
在本書第7章,創建區塊鏈和物聯網解決方案時,我們創建了一個業務網絡。讓我們更詳細地研究我們使用的代碼:
名稱空間是資產、事件、參與者和事務的基本定義,如下所示。
資源和枚舉類型的聲明顯示在以下代碼中:
交易過程函數在使用業務網絡連接API提交交易時由運行庫自動調用;
有關HyperledgerComposer建模語言的更多信息,請訪問以下鏈接:
https://hyperledger.github.io/composer/v0.16/reference/cto_language.html
https://hyperledger.github.io/composer/v0.16/reference/js_scripts.html
c)HyperledgerComposer訪問控制語言
HyperledgerComposer有一個訪問控制文件,可以用它來對業務訪問控制和網絡訪問控制進行編程。業務訪問控制用于業務網絡中的資源,而網絡訪問控制是指對管理網絡更改的控制。
下面是授予網絡訪問控制的一個示例:
又例如:
通過訪問以下鏈接,可以獲得有關HyperledgerComposer訪問控制語言的更多信息:
https://hyperledger.github.io/composer/v0.16/reference/acl_language.html。
d)HyperledgerComposer交易處理函數
HyperledgerComposer業務網絡定義由一組模型文件和一組腳本組成。腳本可以包含執行交易過程的交易處理函數,這些交易是在業務網絡的模板文件中定義的。
下面是一個交易執行腳本文件的樣例:
如我們所見,在使用BusinessNetworkConnectionAPI提交交易時,交易處理器函數由runtime自動調用。文檔中的Decorators用于注釋runtime處理所需的元數據函數,并且每個交易類型都有一個用于存儲交易的關聯注冊表。
小結
本章描述的架構涉及許多組件,實現起來有點復雜。到目前為止,我們已經確定,物聯網和區塊鏈的結合可以緩解幾個問題,改變現代食品鏈的運作方式。
例如:增加成員之間信息透明度,使它們能夠更有效地控制數據;提高數據安全性;使流程更加自動化;盡量減少中間環節;使鏈條整體更加簡化。
我們還看到物聯網設備、傳感器功能的擴展,它們能夠在需要最少人工或不需要人工的情況下實現機器間的交互。這些技術組件帶來了前所未有的自動化,既降低供應成本,也節約能源。
區塊鏈與物聯網的集成將使邊緣設備和基于視頻識別的資產之間的數據交換成為可能。與傳感器連接的資產將能夠記錄敏感信息,如特定倉庫的位置和溫度,并且可以在區塊鏈上自動記錄或更新這些信息。
隨著對架構及其技術組件的更好理解,我們將能夠為現代食品鏈充分實現一個使用物聯網和區塊鏈的解決方案。
在下一章中,我們將學習如何用物聯網創建自己的區塊鏈。
來源|《基于區塊鏈的物聯網項目開發》
作者|?馬克西米利亞諾·桑托斯、埃尼奧·莫拉
責編|Carol
出品|區塊鏈大本營
Overview概述 美國眾議院金融服務委員會于7月17日聽取了Libra項目的負責人DavidMarcus的證詞.
1900/1/1 0:00:0001 LedgerX推出首個實物交割比特幣期貨合約據Coindesk報道,LedgerX已在美國正式推出首批實物交割的比特幣期貨合約.
1900/1/1 0:00:00美國證券交易委員會周一宣布推遲就三項比特幣交易所交易基金提案作出決定。今年早些時候,資產管理公司Bitwise、VanEck/SolidX和WilshirePhoenix分別向SEC提出了基于比.
1900/1/1 0:00:00在比特幣這一輪的上漲周期里,主流機構和投資人進場經常被提起,它一定程度上反應了目前主流比特幣投資人希望被主流投資人認可的心態.
1900/1/1 0:00:00據Coindesk8月7日報道,渣打銀行宣布成功在石油行業區塊鏈平臺Voltron上,完成首筆國際信用證交易.
1900/1/1 0:00:00在多方協作的過程中,涉及到隱私的問題已被關注已久。如何解決呢?密碼學界提出了不少解決方案,例如全同態加密,多方計算。這些技術都是通用的,放在任何一個需要的地方都可以.
1900/1/1 0:00:00