《擴(kuò)頻通信系統(tǒng)的設(shè)計(jì)與優(yōu)化策略15000字(論文)》_第1頁(yè)
《擴(kuò)頻通信系統(tǒng)的設(shè)計(jì)與優(yōu)化策略15000字(論文)》_第2頁(yè)
《擴(kuò)頻通信系統(tǒng)的設(shè)計(jì)與優(yōu)化策略15000字(論文)》_第3頁(yè)
《擴(kuò)頻通信系統(tǒng)的設(shè)計(jì)與優(yōu)化策略15000字(論文)》_第4頁(yè)
《擴(kuò)頻通信系統(tǒng)的設(shè)計(jì)與優(yōu)化策略15000字(論文)》_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

引言互聯(lián)網(wǎng)的出現(xiàn),打破了信息傳輸需要實(shí)物連接的桎梏,使信息交流更為通暢;物聯(lián)網(wǎng)基于互聯(lián)網(wǎng)發(fā)展,徹底打通了物物交互的通道;而新興的區(qū)塊鏈技術(shù),必將給物聯(lián)網(wǎng)帶來革命性的影響,物聯(lián)網(wǎng)中的設(shè)備依照智能合約,可以進(jìn)行自我管理和修復(fù),社會(huì)加速邁進(jìn)智能化的時(shí)代(梁睿翔,宋佳怡,2022)。這種物聯(lián)網(wǎng)+區(qū)塊鏈的結(jié)合,就是物鏈網(wǎng),物鏈網(wǎng)是微軟、IBM等公司在2018年互聯(lián)網(wǎng)峰會(huì)上提出的新概念,利用物聯(lián)網(wǎng)解決生產(chǎn)力,區(qū)塊鏈解決生產(chǎn)關(guān)系,被稱為連接萬(wàn)物的區(qū)塊鏈。物鏈網(wǎng)針對(duì)物聯(lián)網(wǎng)發(fā)展中的種種難題,應(yīng)用區(qū)塊鏈的去中心化技術(shù),一一進(jìn)行優(yōu)化,在保證數(shù)據(jù)安全性的同時(shí),解決了許多單靠物聯(lián)網(wǎng)難以實(shí)現(xiàn)的困境(陳思睿,李靜宜,2023)。經(jīng)過一段時(shí)間的不斷耕耘,截至目前為止,全球已經(jīng)有了超過70個(gè)公鏈項(xiàng)目,由圖1-1可以看到,不只是物聯(lián)網(wǎng)巨頭公司,亞馬遜、微軟、阿里巴巴等互聯(lián)網(wǎng)巨頭公司也開始進(jìn)軍該領(lǐng)域,為物鏈網(wǎng)布局,在此類情境中保證未來物聯(lián)網(wǎng)設(shè)備可以大量接入(史子睿,費(fèi)浩宇,2021)。圖1-SEQ圖\*ARABIC\s11區(qū)塊鏈技術(shù)和物聯(lián)網(wǎng)融合進(jìn)展圖利用區(qū)塊鏈技術(shù),杭州米鏈科技對(duì)傳統(tǒng)租車流程進(jìn)行改造,將車輛信息、停車場(chǎng)信息、用戶取還車信息、租車合同等上鏈存證,能有效減少因?yàn)榍昂笮畔⒉灰恢聦?dǎo)致的糾紛。同時(shí)利用智能合約,能夠簡(jiǎn)化租車流程,加快資金結(jié)算,大大縮短押金的退款期限。在本系統(tǒng)的設(shè)計(jì)方案中,用戶作為物聯(lián)網(wǎng)設(shè)備的所有者,購(gòu)買設(shè)備并登記之后,用戶可以查到自己名下的所有設(shè)備信息,還可以進(jìn)行設(shè)備的轉(zhuǎn)讓,滿足二次甚至多次交易的需求。在擁有授權(quán)的前提下,對(duì)于每一個(gè)設(shè)備,從生產(chǎn)落地到使用壽命終結(jié),可以查詢到他服務(wù)的每一個(gè)用戶,避免不良商家以次充好,以舊充新。在保證隱私安全性的前提下,保證用戶購(gòu)買到放心的產(chǎn)品(石宇航,趙美玲,2021)。

第二章相關(guān)技術(shù)介紹2.1區(qū)塊鏈技術(shù)概述在中本聰所撰寫的比特幣白皮書——《Bitcoin:APeer-to-PeerElectronicCash趙書藝,李俊峰tem》,就出現(xiàn)了區(qū)塊鏈的概念,在其中,區(qū)塊鏈僅僅作為一種數(shù)據(jù)結(jié)構(gòu),記錄比特幣的賬本信息。而維基百科將區(qū)塊鏈比作分布式數(shù)據(jù)庫(kù),在這種局面下用以存儲(chǔ)持續(xù)增長(zhǎng),不可篡改的數(shù)據(jù)記錄。2.1.1技術(shù)特性去中心化是區(qū)塊鏈最顯著的特征,由于區(qū)塊鏈底層采用的是對(duì)等計(jì)算機(jī)網(wǎng)絡(luò),點(diǎn)對(duì)點(diǎn)的技術(shù)(P2P),每個(gè)節(jié)點(diǎn)作為單獨(dú)的客戶端,網(wǎng)絡(luò)參與者資格權(quán)限完全對(duì)等,正是由于P2P協(xié)議的存在,讓區(qū)塊鏈可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)之間的價(jià)值傳輸(李煜澤,周夢(mèng)瑤,2018)。以比特幣這一典型區(qū)塊鏈應(yīng)用代表為例,不需要我們常見的權(quán)威機(jī)構(gòu)進(jìn)行信用背書,在P2P技術(shù)的支持下,虛擬貨幣可以在任何聯(lián)網(wǎng)的計(jì)算機(jī)上進(jìn)行挖掘和交易。從中可見,本研究特別關(guān)注跨學(xué)科的綜合應(yīng)用,借鑒了經(jīng)濟(jì)學(xué)、社會(huì)學(xué)等領(lǐng)域的理論工具和分析模型,旨在從多角度深入探討研究問題,以完善和擴(kuò)展已有理論體系。相對(duì)于以往中心化機(jī)構(gòu)的限制,去中心化提供的是一個(gè)更自由、更透明、更公平的環(huán)境,從這些觀點(diǎn)中看出為個(gè)體賦予更多選擇的權(quán)利和機(jī)會(huì)(程澤宇,韓宇航,2020)。不可篡改。區(qū)塊鏈特有的存儲(chǔ)架構(gòu)使其天然具有不可篡改性。區(qū)塊鏈可以看做是一個(gè)不可修改的分布式數(shù)據(jù)庫(kù),按照存入數(shù)據(jù)的先后順序存儲(chǔ)在首尾相連的區(qū)塊在,形成鏈狀結(jié)構(gòu),如圖2-1(林宇翔,黃志宏,2023)。圖2-1區(qū)塊鏈通用存儲(chǔ)結(jié)構(gòu)在創(chuàng)建區(qū)塊鏈時(shí),往往都會(huì)存在一個(gè)創(chuàng)世區(qū)塊(genesis),類似鏈表中的頭指針,確實(shí)區(qū)塊結(jié)構(gòu),一般創(chuàng)世區(qū)塊不存儲(chǔ)交易數(shù)據(jù)。后續(xù)的區(qū)塊根據(jù)創(chuàng)世區(qū)塊的結(jié)構(gòu),一般分為區(qū)塊頭和區(qū)塊體兩部分,區(qū)塊體中存儲(chǔ)交易數(shù)據(jù),區(qū)塊頭中包含父區(qū)塊的哈希地址,時(shí)間戳,難度值,隨機(jī)數(shù),本區(qū)塊的哈希值等數(shù)據(jù)(蘇博瑜,唐俊逸,2020)。研究進(jìn)程中不可避免地遇到了一些挑戰(zhàn)和局限性,例如在采納已有理論框架時(shí),盡量關(guān)注其適用性和局限性,并嘗試用實(shí)證數(shù)據(jù)來測(cè)試和完善這些框架,這依然是一個(gè)不斷更新的過程。想要產(chǎn)生新的區(qū)塊,就要像上圖2-1中一樣,在這般的框架內(nèi)將上一區(qū)塊的區(qū)塊頭部分合成一個(gè)字符串,通過改變隨機(jī)數(shù)的方式,不斷進(jìn)行哈希運(yùn)算,直到產(chǎn)生的哈希滿足難度條件,新區(qū)塊就會(huì)挖掘出來,并加蓋時(shí)間戳,同時(shí)像網(wǎng)絡(luò)廣播驗(yàn)證,追加到主鏈末尾,形成一條從創(chuàng)世區(qū)塊到當(dāng)前區(qū)塊的最長(zhǎng)合法鏈(譚景輝,文依柔,2018)。每個(gè)參與網(wǎng)絡(luò)維護(hù)的節(jié)點(diǎn)都擁有一份完整的數(shù)據(jù),區(qū)塊鏈的區(qū)塊鏈的共識(shí)機(jī)制默認(rèn)占一半以上的相同數(shù)據(jù)為有效數(shù)據(jù),也成為了51%法則。由于哈希函數(shù)的特性,一旦區(qū)塊中的數(shù)據(jù)受到攻擊,只要輸入有任何細(xì)微的變化,輸出的哈希值都會(huì)完全不同,從這些程序可以發(fā)現(xiàn)從而導(dǎo)致“斷鏈”現(xiàn)象。依照51%法則,只有斷鏈造成的數(shù)據(jù)變化得到全網(wǎng)大多數(shù)節(jié)點(diǎn)的同意,才算修改成功,這要求攻擊節(jié)點(diǎn)的運(yùn)算速度或公信力等綜合能力超過全網(wǎng)一半以上的節(jié)點(diǎn),在算力爆炸發(fā)展的今天,這基本不會(huì)實(shí)現(xiàn),因此可以說,區(qū)塊鏈上的數(shù)據(jù)是不可篡改的(陳東風(fēng),吳麗娜,2022)。2.1.2密碼技術(shù)區(qū)塊鏈數(shù)據(jù)層的安全性主要依賴密碼學(xué)相關(guān)技術(shù),主要包括,哈希算法、數(shù)字簽名、加密算法(成文天,陳娜,2022)。哈希算法并不能理解為加密算法,所謂加密,也就是將明文轉(zhuǎn)化為密文,同樣,也可以通過算法將密文轉(zhuǎn)化為明文。憑借此階段性成果不僅系統(tǒng)地總結(jié)了之前的討論,它凝聚了早期研究發(fā)現(xiàn)的主要元素,并為理解問題提供了全面的視圖。哈希算法其實(shí)是一種摘要,無(wú)論輸入的數(shù)據(jù)是什么,得到的哈希長(zhǎng)度都是固定的,并不是原始數(shù)據(jù)加密后的密文,在這種狀態(tài)下只是一個(gè)驗(yàn)證身份的令牌。所以不能通過摘要進(jìn)行解密。哈希散列算法。也就是區(qū)塊鏈想要挖掘新的區(qū)塊,需要進(jìn)行的運(yùn)算。使用哈希函數(shù),輸入一個(gè)任意長(zhǎng)度的字符串,輸出一個(gè)固定長(zhǎng)度的哈希值。公式如下:(2.1)輸入的x取值范圍是無(wú)限的,而輸出的y是有限的。常見的哈希算法有,MD5REF_Ref71208392\r\h[9],信息摘要算法,輸出哈希是32位16進(jìn)制數(shù),原本用來作加密使用,理論上不可破解,但隨著計(jì)算機(jī)的發(fā)展,出現(xiàn)了專門用來破解MD5的庫(kù),常見密碼都可以通過暴力撞庫(kù)來獲取明文,從這些反應(yīng)可以察覺所以現(xiàn)在普遍當(dāng)做普通哈希,用作數(shù)據(jù)校驗(yàn)(陳澤宇,趙雅婷,2022);SHAREF_Ref71208407\r\h[10],安全散列算法,SHA-256輸出哈希是64位16進(jìn)制數(shù),由于地址空間特別大,被破解的難度大大提高,比特幣中采用的就是SHA-256。哈希函數(shù)應(yīng)滿足以下特點(diǎn):(1)抗碰撞性,很難找到兩個(gè)不同的輸入,使他們 輸出的哈希值相同(陳熙雪,成澤璇,2019);(2)不可逆性,不可能根據(jù)輸出的哈希值逆推出輸入;(3)輸入敏感,輸入值發(fā)生微小變化,輸出的哈希值完全不同;2.1.3共識(shí)機(jī)制共識(shí)機(jī)制是區(qū)塊鏈技術(shù)的關(guān)鍵,是規(guī)范區(qū)塊鏈中節(jié)點(diǎn)行為的規(guī)則。區(qū)塊鏈的世界里,每隔一段時(shí)間,就要有礦工將網(wǎng)絡(luò)中產(chǎn)生的交易數(shù)據(jù)打包成區(qū)塊之后上鏈,這種行為稱為記賬。每當(dāng)要產(chǎn)生一個(gè)區(qū)塊時(shí),全體礦工要根據(jù)共識(shí)算法選出記賬節(jié)點(diǎn),獲得記賬權(quán)的礦工將交易信息打包,這在某種程度上傳達(dá)廣播到全網(wǎng)上,隨后,所有節(jié)點(diǎn)或代表節(jié)點(diǎn)對(duì)收到的區(qū)塊信息進(jìn)行驗(yàn)證,經(jīng)過大多數(shù)節(jié)點(diǎn)認(rèn)證通過后,記賬節(jié)點(diǎn)將其添加到最長(zhǎng)合法鏈后面(許文濤,丁澤凡,2019)。通過深入剖析這些關(guān)鍵要素,本研究揭示了它們之間精細(xì)的相互關(guān)聯(lián)及其對(duì)整體架構(gòu)的影響,有助于構(gòu)建一個(gè)更為全面和精確的理論體系。區(qū)塊上鏈流程如圖2-2圖2-2區(qū)塊鏈上鏈流程目前常見的區(qū)塊鏈共識(shí)機(jī)制有以下四類(楊羽福,林月倩,2020):1.工作量證明機(jī)制POW(ProofofWork): 節(jié)點(diǎn)憑借算力,計(jì)算隨機(jī)哈希散列的數(shù)值,爭(zhēng)奪記賬權(quán)利,再依據(jù)付出算力的多少,分配挖到的代幣。節(jié)點(diǎn)可以自由進(jìn)出,做到完全的去中心化,但是比拼算力的行為造成了大量的算力浪費(fèi)。該結(jié)果與本文原先預(yù)期的研究成果相一致,驗(yàn)證了研究方向的準(zhǔn)確性。這種一致性彰顯了本文在研究策劃與分析等領(lǐng)域的科學(xué)性和嚴(yán)謹(jǐn)性。2.權(quán)益證明機(jī)制POS(ProofofStake):通過持有Token(代幣)的數(shù)量和時(shí)長(zhǎng)來決定你獲得記賬的機(jī)率,就像股票的分紅一樣,持有股權(quán)越多的人就能夠獲得更多的分紅。降低了POW導(dǎo)致的算力浪費(fèi),也降低了公平性。3.委托權(quán)益證明DPOS(DelegatedProofofStake):是基于POS衍生出的更專業(yè)的解決方案,持有代幣的用戶投票選出代理人,負(fù)責(zé)驗(yàn)證和記賬。提高了數(shù)據(jù)處理能力,在這等情況下但是有人為參與,去中心化的程度減弱(孫志強(qiáng),周敏慧,2021)。4.驗(yàn)證池共識(shí)機(jī)制Pool:是一種基于傳統(tǒng)的分布式一致性技術(shù),加上數(shù)據(jù)驗(yàn)證的機(jī)制,是目前行業(yè)鏈大范圍在使用的共識(shí)機(jī)制,可以實(shí)現(xiàn)秒級(jí)共識(shí)驗(yàn)證,不需要代幣參與,適用于商業(yè)模式應(yīng)用中。2.1.4智能合約1997年,密碼學(xué)家尼克·薩博(NickSzabo)首次提出了智能合約的概念REF_Ref71209164\r\h[12],Szabo希望消除中間人,只要滿足某些條件,合同就會(huì)自動(dòng)生效。區(qū)塊鏈技術(shù)的出現(xiàn),推動(dòng)了智能合約的發(fā)展。無(wú)需第三方,合約是以代碼形式存在的計(jì)算機(jī)協(xié)議。其本質(zhì)是一段由程序員編寫的存儲(chǔ)在區(qū)塊中的計(jì)算機(jī)程序,采用確定性的算法和確定的數(shù)據(jù)來源,并且滿足可終止性(閻志國(guó),傅曉宇,2022)。以太坊中,智能合約被認(rèn)為是可直接控制數(shù)字資產(chǎn)的程序REF_Ref71209170\r\h[13]。HyperledgerFabric是應(yīng)用智能合約的代表性技術(shù)平臺(tái)之一,它運(yùn)行在Docker虛擬機(jī)上,支持用Java、Go和Node.js等通用編程語(yǔ)言編寫的智能合約,相比以太坊只能使用Solidity這一特定語(yǔ)言來說,降低了準(zhǔn)入門檻,并且作為基于許可的區(qū)塊鏈,大多用于商業(yè)平臺(tái)開發(fā)中REF_Ref71209178\r\h[14]。借助后續(xù)的研究與驗(yàn)證,本文有望發(fā)掘該領(lǐng)域更深層次的規(guī)律與機(jī)制,為理論架構(gòu)的豐富和實(shí)踐應(yīng)用的革新提供強(qiáng)大助力。智能合約增強(qiáng)了區(qū)塊鏈技術(shù)在實(shí)際業(yè)務(wù)場(chǎng)景中應(yīng)用的靈活性。類似于傳統(tǒng)合同,,是規(guī)則的制定。在此類設(shè)置中用代碼將人與人之間復(fù)雜的關(guān)系程序化,利用計(jì)算機(jī)程序建立威信和約束力。開發(fā)者通過智能合約去制定一套規(guī)則,然后發(fā)布到線上,人與智能合約進(jìn)行交互,由機(jī)器去完成業(yè)務(wù)的部分,這樣就規(guī)避了由人來做執(zhí)行時(shí)可能造成的作弊行為(劉鈺瑩,王錦程,2023)。2.2HyperledgerFabric框架2.2.1項(xiàng)目概述HyperledgerFabric是聯(lián)盟鏈中的優(yōu)秀代表REF_Ref71210196\r\h[15],是提供分布式分類賬解決方案的平臺(tái)?;贕o語(yǔ)言實(shí)現(xiàn),在此類條件下試圖打造一個(gè)透明、公開、去中心化的分布式賬本項(xiàng)目,作為區(qū)塊鏈技術(shù)的開源規(guī)范和標(biāo)準(zhǔn),讓更多的應(yīng)用能更容易的建立在區(qū)塊鏈技術(shù)之上。借助開源世界自由強(qiáng)大的便利性,Hyperledger已經(jīng)由單一的項(xiàng)目逐漸發(fā)展成了一個(gè)龐大的項(xiàng)目組,包含八大頂級(jí)子項(xiàng)目,滿足區(qū)塊鏈在各種商業(yè)平臺(tái)的應(yīng)用需求(趙書藝,李俊峰,2023)。這一連串的嚴(yán)謹(jǐn)操作不僅增強(qiáng)了本文對(duì)研究現(xiàn)象的把握,也為理論模型的驗(yàn)證提供了有力的實(shí)證依據(jù)。2.2.2技術(shù)架構(gòu)Fabric采用模塊化架構(gòu),支持不同組件的可插拔使用,將一些原本獨(dú)立的工作集中起來,制定統(tǒng)一的開放式協(xié)議和標(biāo)準(zhǔn),這些事件預(yù)示著一些未來的可能性此外,F(xiàn)abric還實(shí)現(xiàn)了完整的權(quán)限控制和授權(quán)管理保障安全,具有機(jī)密性、靈活性和可擴(kuò)展性,適用于通過共享的數(shù)據(jù)構(gòu)建商業(yè)聯(lián)盟鏈應(yīng)用中可能出現(xiàn)的錯(cuò)綜復(fù)雜的各種場(chǎng)景(范天佑,石浩然,2020)。Fabric整體功能架構(gòu)如圖2-3REF_Ref71210426\r\h[16]可以看出Fabric的模塊架構(gòu)十分清晰,整體可以分為上下兩部分,上部分為應(yīng)用層,可以當(dāng)做外部可以進(jìn)行操作的客戶端,下半部分為底層的代碼實(shí)現(xiàn),運(yùn)行在Docker容器中。兩者通過Fabric封裝的多種語(yǔ)言的SDK,使用gRPC協(xié)議進(jìn)行通信交互(吳文彬,王雪怡,2021)。圖2-3HyperledgerFabric架構(gòu)圖2.2.3共識(shí)算法根據(jù)分布式系統(tǒng)的CAP原理,即一致性(Consistency)、可用性(Availability)、分區(qū)容錯(cuò)性(Partitiontolerance)這三個(gè)要素最多只能同時(shí)實(shí)現(xiàn)兩點(diǎn),不可能三者兼顧(劉欣怡,陳煒哲,2022)。通過深入分析研究對(duì)象的內(nèi)在結(jié)構(gòu)與外在展現(xiàn),本文將推動(dòng)對(duì)該領(lǐng)域復(fù)雜現(xiàn)象認(rèn)識(shí)的深化,為搭建更加完整和系統(tǒng)的理論大廈貢獻(xiàn)力量。根據(jù)塊鏈系統(tǒng)的去中心化特性(每一個(gè)節(jié)點(diǎn)都有一份完整的數(shù)據(jù),每一個(gè)節(jié)點(diǎn)都可以對(duì)外服務(wù)),可用性大大滿足,但是區(qū)塊鏈弱化了一致性,這充分說明了所以需要更好的共識(shí)算法來保證一致性。Fabric的共識(shí)算法與其他區(qū)塊鏈有所不同,共識(shí)過程可以看做是一次交易實(shí)現(xiàn)的過程,整個(gè)過程分為三個(gè)階段,分別是背書、排序、校驗(yàn)。圖2-4HyperledgerFabric交易流程圖2.2.4存儲(chǔ)方式 如上文所說,F(xiàn)abric區(qū)塊鏈網(wǎng)絡(luò)中,結(jié)合之前的成果可以推導(dǎo)出每個(gè)通道都有獨(dú)立的賬本,通道中的每個(gè)節(jié)點(diǎn)點(diǎn)都保存著其所加入通道的賬本,Peer節(jié)點(diǎn)的賬本包含如下數(shù)據(jù): 賬本編號(hào)用于區(qū)分一個(gè)節(jié)點(diǎn)中不同賬本的數(shù)據(jù)(張思遠(yuǎn),馬慧君,2021)。本文以驗(yàn)證方案的有效性和穩(wěn)定性,分析過程中,嚴(yán)格執(zhí)行了信息收集與分析流程,以確保結(jié)果的可靠性。 賬本數(shù)據(jù)用于存儲(chǔ)賬本信息 區(qū)塊索引用于快速查詢區(qū)塊交易 狀態(tài)數(shù)據(jù)可以看作一個(gè)存儲(chǔ)鍵值信息的數(shù)據(jù)庫(kù),通過它可以獲取最新的世界狀態(tài) 歷史數(shù)據(jù)可以查詢鍵值的修改記錄 單鏈的Peer節(jié)點(diǎn)賬本結(jié)構(gòu)如圖2-4所示。圖2-4HyperledgerFabric賬本存儲(chǔ)方式每次對(duì)于區(qū)塊鏈的操作,在經(jīng)過背書,排序,校驗(yàn)之后,交易信息不止存儲(chǔ)在區(qū)塊中,還有專門的狀態(tài)數(shù)據(jù)庫(kù)來保存交易中的鍵-值數(shù)據(jù)的最新值,遵循這種理論框架進(jìn)行調(diào)研可獲知每當(dāng)鏈碼執(zhí)行交易以后,世界狀態(tài)更新,狀態(tài)數(shù)據(jù)庫(kù)就會(huì)隨之更新(劉思遠(yuǎn),徐婉琳,2021)。每個(gè)節(jié)點(diǎn)中還有存儲(chǔ)鍵-值數(shù)據(jù)更改記錄的歷史狀態(tài)索引庫(kù),值得注意的是歷史狀態(tài)索引庫(kù)中并不會(huì)把每次交易后的鍵-值數(shù)據(jù)都存儲(chǔ)在其中,而是只記錄在哪次交易中鍵-值發(fā)生了變化,還需要查詢變動(dòng)的數(shù)值(杜嘉言,滕啟航,2021)。這一特點(diǎn)對(duì)于追求可持續(xù)發(fā)展目標(biāo)的企業(yè)或組織來說尤為重要。此優(yōu)化方案是基于對(duì)當(dāng)前狀況的仔細(xì)評(píng)估及有效利用現(xiàn)有資源和技術(shù)來實(shí)現(xiàn)的。由于區(qū)塊存儲(chǔ)在文件中,文件編號(hào)都是遞增的,還有區(qū)塊索引功能優(yōu)化查找區(qū)塊文件的時(shí)間,區(qū)塊索引存儲(chǔ)區(qū)塊交易對(duì)應(yīng)的文件塊及其偏移量,可以精準(zhǔn)定位區(qū)塊。2.3Docker容器有效的將單個(gè)操作系統(tǒng)的資源劃分到孤立的組中,以便更好的在孤立的組之間平衡有沖突的資源使用需求,這種技術(shù)就是容器技術(shù)。2.3.1Docker容器Docker容器是一個(gè)開源的應(yīng)用容器引擎,開發(fā)者可以以統(tǒng)一的方式打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何安裝了Docker引擎的服務(wù)器上。許多應(yīng)用都有相應(yīng)的容器鏡像,例如ubuntu,mysql等,如果把虛擬機(jī)比作一個(gè)工作的碼頭,各個(gè)容器就像碼頭中的一個(gè)個(gè)集裝箱,內(nèi)部封裝了不同的系統(tǒng),獨(dú)立進(jìn)行工作。使用容器技術(shù)可以有效緩解軟件運(yùn)行過程中造成的軟件沖突(傅晨皓,康若曦,2021)。從上述分析可以看出,該方案相比于其他方案具有更好的性價(jià)比,同時(shí)在環(huán)境適應(yīng)性和可持續(xù)性方面表現(xiàn)突出。Fabric項(xiàng)目擁有諸多的Docker鏡像,由于容器使用沙箱機(jī)制,沒有留有相應(yīng)的接口,所以Fabric項(xiàng)目訪問容器中的數(shù)據(jù),在此特定情境之中不難看出一般采用web形式,容器開放web端口,供外界程序進(jìn)行訪問節(jié)點(diǎn)內(nèi)部數(shù)據(jù),執(zhí)行智能合約(唐維翰,莫曉萱,2022)。2.3.2Docker-compose使用容器時(shí),要定義Docker文件,再使用build,run等命令運(yùn)行容器,由于部署Fabric項(xiàng)目需要?jiǎng)?chuàng)建多個(gè)容器實(shí)例,如果每個(gè)容器都要手動(dòng)啟停,效率十分低下,Docker-Compose可以批量定義容器,管理容器的啟停。這種簡(jiǎn)化不僅降低了資源使用,還加快了處理速度,使本方案在保持原有水平的更易于推廣和應(yīng)用。2.4本章小結(jié)本章介紹了論文中涉及到的技術(shù)概念。以比特幣為例,從技術(shù)特性,密碼服務(wù),共識(shí)機(jī)制,到智能合約,進(jìn)行了較為詳細(xì)的介紹。并根據(jù)本系統(tǒng)擬采用的HyperledgerFabric框架,介紹了其使用的共識(shí)算法,數(shù)據(jù)存儲(chǔ)機(jī)制,還簡(jiǎn)單介紹了部署Fabric項(xiàng)目的docker容器,為下文中的使用打下基礎(chǔ)。第三章系統(tǒng)的需求分析本系統(tǒng)以HyperledgerFabric技術(shù)框架為基礎(chǔ),通過go語(yǔ)言編寫后端技術(shù)框架開發(fā)一個(gè)物聯(lián)網(wǎng)設(shè)備認(rèn)證系統(tǒng)。借助區(qū)塊鏈的去中心化、不可篡改、隱私安全等特性,保證用戶的物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)的存儲(chǔ)安全性,于此相似條件下可以推知其趨勢(shì)解決傳統(tǒng)使用中心數(shù)據(jù)庫(kù)存儲(chǔ)物聯(lián)網(wǎng)設(shè)備信息存在的信息孤島問題,使得設(shè)備交易可以安全方便的實(shí)現(xiàn)跨機(jī)構(gòu)共享,為用戶二次交易提供了便捷的服務(wù)(潘俊辰,廖晨曦,2020)。3.1系統(tǒng)功能需求分析3.1.1整體框架本系統(tǒng)是一個(gè)物聯(lián)網(wǎng)設(shè)備身份認(rèn)證平臺(tái),意在保護(hù)購(gòu)買設(shè)備的用戶的權(quán)益,保證用戶買到合格的產(chǎn)品,鑒于本文的研究環(huán)境我們考慮了這種情況的發(fā)生還為用戶間二手商品的交易,提供了轉(zhuǎn)讓設(shè)備的可能(周曉瑤,蔣云峰,2020)。參與系統(tǒng)運(yùn)作的實(shí)體主要分為四類:系統(tǒng)管理員負(fù)責(zé)搭建、測(cè)試、維護(hù)系統(tǒng);用戶是系統(tǒng)的使用者;商家是設(shè)備的制造商;物聯(lián)網(wǎng)設(shè)備是用戶的操作對(duì)象,見圖3-1。圖3-1參與系統(tǒng)的各個(gè)用戶其中用戶可以進(jìn)行注冊(cè)、注銷操作;商家可以生產(chǎn)設(shè)備,進(jìn)行設(shè)備上鏈;用戶購(gòu)買設(shè)備后進(jìn)行資產(chǎn)綁定,設(shè)備的歷史,避免買到二次出售或者沒有生產(chǎn)廠家的略知產(chǎn)品;查詢功能可以查詢用戶擁有的設(shè)備,可以查詢某個(gè)設(shè)備的所有屬性,可以查詢某個(gè)設(shè)備的所有轉(zhuǎn)讓記錄(李明軒,楊柳青,2019)。這一做法不僅降低了資源消耗,還縮短了處理時(shí)間,使得該方案在保持原有性能的變得更加易于實(shí)施和推廣,包含了一系列驗(yàn)證和質(zhì)量控制措施。3.1.2系統(tǒng)管理作為一個(gè)去中心化的物聯(lián)網(wǎng)設(shè)備身份認(rèn)證系統(tǒng),固然不應(yīng)該有系統(tǒng)管理員的存在,但是底層架構(gòu)Fabric作為聯(lián)盟鏈的代表,需要一個(gè)信任機(jī)構(gòu)給用戶頒發(fā)證書,起到維護(hù)系統(tǒng)的作用,保障系統(tǒng)運(yùn)行,并不干涉用戶的操作和數(shù)據(jù)的存儲(chǔ)。管理人員的主要職責(zé)在于搭建系統(tǒng)環(huán)境,進(jìn)行鏈碼的編寫和維護(hù),測(cè)試系統(tǒng)的功能(徐浩宇,劉萱,2020)。想要順利運(yùn)行一個(gè)HyperledgerFabric網(wǎng)絡(luò),保證系統(tǒng)功能的實(shí)現(xiàn),就要先進(jìn)行環(huán)境的配置,配置完畢滿足HyperledgerFabric網(wǎng)絡(luò)的運(yùn)行環(huán)境之后,還需要對(duì)系統(tǒng)的組織,成員進(jìn)行劃分,并且創(chuàng)建相應(yīng)的通道,根據(jù)現(xiàn)有結(jié)果可推斷分配用戶到相應(yīng)的通道,保證不同組織間的用戶數(shù)據(jù)互不干擾。為確保數(shù)據(jù)的精確與完整,本文采用了多種數(shù)據(jù)渠道進(jìn)行交叉驗(yàn)證,直觀展現(xiàn)了研究對(duì)象的真實(shí)面貌。此外,還需要設(shè)置排序節(jié)點(diǎn)和成員節(jié)點(diǎn)等內(nèi)容,每個(gè)節(jié)點(diǎn)都需要對(duì)應(yīng)的證書,才可以加入到網(wǎng)絡(luò)中,這些都是管理員的職責(zé)所在。對(duì)于整個(gè)區(qū)塊鏈,管理員還應(yīng)配置區(qū)塊鏈瀏覽器,審核商家資格等內(nèi)容,便于用戶快速瀏覽區(qū)塊數(shù)據(jù),提高系統(tǒng)的實(shí)用性。3.1.3用戶分析 參與系統(tǒng)操作的用戶共分為兩類:商家和顧客,其中商家扮演的角色較為簡(jiǎn)單,只是物聯(lián)網(wǎng)設(shè)備的生產(chǎn)商,用戶從生產(chǎn)商或其他用戶購(gòu)買設(shè)備之后,進(jìn)行設(shè)備綁定,并且可以查詢上鏈設(shè)備的生產(chǎn)廠家和交易記錄,在這樣的條件設(shè)定下可以推知其合理結(jié)論如果沒有查到記錄,說明該設(shè)備是沒有進(jìn)行登記的非法設(shè)備,生產(chǎn)廠家未知,存在安全隱患(丁嘉偉,魏雨欣,2022)。用戶,商家關(guān)系如圖3-2.圖3-2用戶、商家之間關(guān)系 新用戶必須注冊(cè)進(jìn)入系統(tǒng)才能正常使用功能,分為商家注冊(cè)和消費(fèi)者用戶注冊(cè)。商家的注冊(cè)因?yàn)樾枰芾韱T的審核,對(duì)于信用較低的商家還需要繳納一定的保證金,避免因注冊(cè)商家門檻低而導(dǎo)致的非法商家泛濫(張偉鑫,黃怡妍,2023);用戶注冊(cè)時(shí),需要設(shè)置自己的用戶名以及ID,其中ID是唯一的,是分別用戶的唯一憑證。注冊(cè)設(shè)備:只有已經(jīng)注冊(cè)過的商家可以進(jìn)行設(shè)備注冊(cè),注冊(cè)時(shí)需要設(shè)置設(shè)備的名稱,ID和各種屬性,其中ID同樣是分別設(shè)備的唯一憑證,屬性依據(jù)不同的設(shè)備,需要獨(dú)立設(shè)置。 設(shè)備轉(zhuǎn)讓:用戶在從商家或者其他用戶購(gòu)買設(shè)備之后,需要設(shè)備的前擁有者配合,進(jìn)行設(shè)備的轉(zhuǎn)讓,即將設(shè)備從原擁有者轉(zhuǎn)移到購(gòu)買者賬戶之中(趙子峰,李欣怡,2022)。3.1.4查詢功能 查詢功能可以查詢用戶或者查詢?cè)O(shè)備。 查詢用戶:可以查詢某一用戶擁有的所有物聯(lián)網(wǎng)設(shè)備,避免進(jìn)行二手交易時(shí),對(duì)方?jīng)]有該設(shè)備,買家上當(dāng)受騙。 查詢?cè)O(shè)備:查詢?cè)O(shè)備分為兩種,這在某些方面表現(xiàn)出了查詢?cè)O(shè)備屬性可以看到該設(shè)備的名稱,產(chǎn)地等信息,便于購(gòu)買者對(duì)設(shè)備的了解;還可以查詢?cè)O(shè)備的變更歷史,從中可以看到設(shè)備從制造到銷售的每個(gè)擁有者。3.2系統(tǒng)非功能需求分析 系統(tǒng)設(shè)計(jì)除了需要為滿足用戶業(yè)務(wù)需求而必須具有的功能之外,還要滿足一系列的非功能性需求,例如安全性、可靠性、互操作性、健壯性等。這也強(qiáng)調(diào)了理論結(jié)合實(shí)踐的重要性,并突出了研究成果的實(shí)際應(yīng)用價(jià)值?,F(xiàn)階段的研究發(fā)現(xiàn)與傳統(tǒng)理論框架相符,整個(gè)研究過程嚴(yán)格遵守科學(xué)原則和精確的態(tài)度。3.2.1易用性需求 用戶能夠快速上手,及時(shí)使用的系統(tǒng)才是一個(gè)優(yōu)秀的系統(tǒng),由于本系統(tǒng)的操作較為簡(jiǎn)單,不同用戶需要進(jìn)行的操作較為單一,每個(gè)功能的實(shí)現(xiàn)只需要簡(jiǎn)單的步驟,易用性較好。3.2.2安全性需求 系統(tǒng)在運(yùn)行時(shí)需要安全性,安全性不只是保護(hù)隱私數(shù)據(jù)不被泄露,還有保護(hù)使用系統(tǒng)用戶的賬戶等財(cái)產(chǎn)安全。本系統(tǒng)的安全性有以下多方面考慮:首先,可以注冊(cè)設(shè)備的商家必須經(jīng)過管理員認(rèn)證后才可以進(jìn)行注冊(cè),這在一定范圍內(nèi)體現(xiàn)了甚至低信用商家需要繳納保證金,從控制生產(chǎn)渠道,保證了物聯(lián)網(wǎng)設(shè)備的安全性(楊浩然,孫雨桐,2021);這也強(qiáng)調(diào)了理論與實(shí)踐相結(jié)合的重要性,注重理論創(chuàng)新和實(shí)踐應(yīng)用價(jià)值。本篇文章對(duì)結(jié)論進(jìn)行了再次審視,首先從理論上確保了研究預(yù)設(shè)的合理性和邏輯上的連貫性。其次,本系統(tǒng)基于Fabric賬本,擁有區(qū)塊鏈的天然優(yōu)勢(shì),存儲(chǔ)在區(qū)塊鏈中的數(shù)據(jù)安全不可篡改,保證了物聯(lián)網(wǎng)設(shè)備流通過程中的安全性;最后,本系統(tǒng)只作為物聯(lián)網(wǎng)設(shè)備注冊(cè)、查詢、轉(zhuǎn)讓之用,并不支持購(gòu)買等操作,需要買家賣家雙方線下交易,更加安全省心,保證了用戶的財(cái)產(chǎn)安全(殷怡,蔣靜宜,2021)。3.2.3可拓展需求 系統(tǒng)的整體結(jié)構(gòu)設(shè)計(jì)要遵循軟件工程設(shè)計(jì)流程,各個(gè)模塊之間應(yīng)盡量做到低耦合,高復(fù)用,可拓展,高容錯(cuò)。這在某種程度上暗示了本系統(tǒng)基于Fabric框架,具體執(zhí)行的操作都編寫成智能合約部署在用戶節(jié)點(diǎn)上,想要進(jìn)行功能拓展,只需要更新智能合約,重新上傳即可,有良好的可拓展性(唐佳怡,戴銘杰,2020)。從研究設(shè)計(jì)的起步階段,就充分借鑒經(jīng)典理論模型的構(gòu)建思路,確保研究框架搭建得科學(xué)合理、穩(wěn)固扎實(shí)。 此外,系統(tǒng)的節(jié)點(diǎn)在容器中,有一定的密閉性,外部訪問需要留有接口,調(diào)用API進(jìn)行通信。也就是說,各個(gè)模塊分別開發(fā),提高了開發(fā)效率的同時(shí),修改模塊功能時(shí),也降低對(duì)其他模塊造成的影響。 容錯(cuò)性方面,憑借Fabric優(yōu)秀的共識(shí)機(jī)制,當(dāng)節(jié)點(diǎn)收到攻擊或者產(chǎn)生錯(cuò)誤引起故障,共識(shí)機(jī)制可以保證系統(tǒng)正常運(yùn)行,并且在修復(fù)故障后自動(dòng)同步正常節(jié)點(diǎn)的數(shù)據(jù)。3.3本章小結(jié)本章主要討論了基于Fabric的物聯(lián)網(wǎng)設(shè)備去中心化數(shù)字身份認(rèn)證系統(tǒng)的需求,除了整體的框架之外,還針對(duì)參與系統(tǒng)的各個(gè)用戶進(jìn)行了詳細(xì)的分析介紹。系統(tǒng)管理員對(duì)系統(tǒng)進(jìn)行開發(fā),維護(hù)等操作;商家生產(chǎn)物聯(lián)網(wǎng)設(shè)備;用戶購(gòu)買,轉(zhuǎn)讓設(shè)備。這在一部分程度上揭示了以及查詢功能如何進(jìn)行設(shè)計(jì)。通過對(duì)這些數(shù)據(jù)的細(xì)致分析與整合,本文能夠有力地驗(yàn)證研究預(yù)設(shè),并發(fā)現(xiàn)其中的規(guī)律性與潛在關(guān)系。除了上述的系統(tǒng)功能需求分析,對(duì)于非功能需求,也有一定的設(shè)計(jì),分別從易用性、安全性、可拓展性三方面進(jìn)行了需求設(shè)計(jì)。第四章系統(tǒng)的總體設(shè)計(jì)4.1系統(tǒng)軟件層次架構(gòu)設(shè)計(jì)軟件的具體層次架構(gòu)如圖4-1所示,分為展示層,業(yè)務(wù)接口層,業(yè)務(wù)邏輯層,數(shù)據(jù)訪問層,數(shù)據(jù)庫(kù)五部分。數(shù)據(jù)層數(shù)據(jù)層圖4-1軟件層次架構(gòu)4.1.1展示層 展示層是用戶的交互界面,這在一定程度上預(yù)示直接展示給用戶,接收用戶的操作請(qǐng)求,顯示處理結(jié)果,是程序的外殼。4.1.2業(yè)務(wù)接口層 業(yè)務(wù)接口層是與展示層緊密相關(guān)的,將用戶從展示層輸入的請(qǐng)求,傳遞到業(yè)務(wù)邏輯層,其中業(yè)務(wù)邏輯層部署在Docker容器中,二者之間的通信需要經(jīng)過預(yù)先編寫的接口進(jìn)行傳輸。4.1.3業(yè)務(wù)邏輯層 業(yè)務(wù)邏輯層是至關(guān)重要的一層,在數(shù)據(jù)交換中起到承上啟下的作用,F(xiàn)abric框架的業(yè)務(wù)邏輯,也就是智能合約部署在容器之中,對(duì)于上層只開放接口供其訪問,這種弱耦合的方式使得改變上層對(duì)底層的調(diào)用沒有什么影響。在這樣的狀況下在接口不變的情況下,每層之間的設(shè)計(jì)就想可以隨意插拔的模塊一樣,只要接口相互對(duì)應(yīng),就可以隨意插拔,有良好的可拓展性(李天宇,張婭琳,2020)。面對(duì)多樣化的研究需求,本文在構(gòu)建時(shí)采用了模塊化的設(shè)計(jì)理念,使得模型能夠根據(jù)需要靈活調(diào)整或替換組件,而不影響整體架構(gòu)的穩(wěn)定性和效能。4.1.4數(shù)據(jù)層本系統(tǒng)中的數(shù)據(jù)層包括數(shù)據(jù)訪問和數(shù)據(jù)庫(kù)兩個(gè)概念,數(shù)據(jù)庫(kù)存儲(chǔ)鍵-值信息,交易賬本存儲(chǔ)在區(qū)塊中。也就是說,每次對(duì)于操作,交易信息不止存儲(chǔ)在區(qū)塊中,還有專門的狀態(tài)數(shù)據(jù)庫(kù)來保存交易中的鍵-值數(shù)據(jù)的最新值,每當(dāng)鏈碼執(zhí)行交易以后,世界狀態(tài)更新,狀態(tài)數(shù)據(jù)庫(kù)就會(huì)隨之更新(趙宇翔,李靜怡,2021)。在數(shù)據(jù)評(píng)估過程中,本文實(shí)施了多種統(tǒng)計(jì)方式來確保數(shù)據(jù)的正確性,并辨識(shí)出可能存在的異常值。還會(huì)有存儲(chǔ)鍵-值數(shù)據(jù)更改記錄的歷史狀態(tài)索引庫(kù),值得注意的是歷史狀態(tài)索引庫(kù)中并不會(huì)把每次交易后的鍵-值數(shù)據(jù)都存儲(chǔ)在其中,在此類情境中而是只記錄在哪次交易中鍵-值發(fā)生了變化,之后需要查詢到當(dāng)次交易,才能知道變動(dòng)的數(shù)值。交易賬本也可以進(jìn)行查詢,區(qū)塊存儲(chǔ)在文件中,文件編號(hào)遞增,有區(qū)塊索引功能查找區(qū)塊文件,可以精準(zhǔn)定位區(qū)塊(何俊杰,蘇怡然,2020)。4.2系統(tǒng)功能模塊設(shè)計(jì) 系統(tǒng)的功能模塊設(shè)計(jì)如圖4-2所示圖4-2系統(tǒng)功能模塊圖大體分為管理模塊,注冊(cè)模塊,設(shè)備轉(zhuǎn)讓模塊,查詢模塊四部分,接下來將會(huì)分模塊進(jìn)行詳細(xì)講解。4.2.1管理模塊的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)此模塊對(duì)應(yīng)的是管理員功能設(shè)計(jì),系統(tǒng)管理員需要進(jìn)行搭建Fabric環(huán)境,劃分組織,創(chuàng)建通道,申請(qǐng)證書,創(chuàng)建創(chuàng)世區(qū)塊,編寫鏈碼,維護(hù)系統(tǒng)等操作??梢哉f管理模塊就是后續(xù)設(shè)計(jì)的基石(劉佳琪,趙宇航,2020)。這部分內(nèi)容的創(chuàng)新主要體現(xiàn)在視角的選擇上,本階段研究成果表現(xiàn)在對(duì)研究問題的獨(dú)特切入點(diǎn)。在搭建好Fabric環(huán)境之后,首先需要在測(cè)試用例中找到first-network文件夾,檢查一下能否正常運(yùn)行。這個(gè)網(wǎng)絡(luò)有設(shè)立了兩個(gè)組織,從這些政策可以推測(cè)每個(gè)組織擁有兩個(gè)用戶節(jié)點(diǎn),并且創(chuàng)建了一個(gè)頻道“mychannel”,每個(gè)用戶節(jié)點(diǎn)都加入頻道之中,安裝了智能合約。圖4-3測(cè)試用例結(jié)果 當(dāng)屏幕出現(xiàn)圖4-3時(shí),說明可以正常運(yùn)行Fabric項(xiàng)目,加下來需要針對(duì)本系統(tǒng)建立組織,創(chuàng)建通道,并將用戶節(jié)點(diǎn)加入到通道之中。 本系統(tǒng)預(yù)計(jì)建立一個(gè)排序節(jié)點(diǎn),一個(gè)交易通道,兩個(gè)組織。排序節(jié)點(diǎn)使用solo模式,方便單機(jī)部署,進(jìn)行調(diào)試;在這種局面下每個(gè)組織創(chuàng)建兩個(gè)成員節(jié)點(diǎn),加入到通道之中(韓雪琳,丁澤宇,2021)。 之后的工作就是編寫智能合約,并部署在成員節(jié)點(diǎn)上,合約部署的過程如圖4-4所示,智能合約編寫完成之后,需要打包發(fā)送到成員節(jié)點(diǎn)上,這一過程由配置文件完成(在節(jié)點(diǎn)生成之前,需要設(shè)置每個(gè)節(jié)點(diǎn)的容器信息,包括容器名稱,鏡像版本,端口號(hào)等信息,排序節(jié)點(diǎn)需要注入創(chuàng)世區(qū)塊,用戶節(jié)點(diǎn)需要定義節(jié)點(diǎn)證書,數(shù)據(jù)庫(kù)類型;每個(gè)節(jié)點(diǎn)還要設(shè)置端口號(hào),通常7051端口用于進(jìn)行g(shù)RPC通信,7053接口用戶事件監(jiān)聽)(陳梓林,趙佳佳,2022)。雖然本文尚未徹底剖析這部分的研究結(jié)論,但從當(dāng)前的成果看,它們具有一定的指導(dǎo)價(jià)值。初步的研究結(jié)果為理解該領(lǐng)域提供了新的視角和見解,有助于識(shí)別關(guān)鍵變量及其互動(dòng)機(jī)制,為更深入的研究鋪平了道路。 所有準(zhǔn)備工作就緒之后,配置文件中指定鏈碼的存儲(chǔ)地址,運(yùn)行容器,將會(huì)看到許多容器創(chuàng)建完成,從這些觀點(diǎn)中看出如圖4-5其中除了排序節(jié)點(diǎn)和用戶節(jié)點(diǎn)外,cli是節(jié)點(diǎn)客戶端,相當(dāng)于一臺(tái)獨(dú)立的電腦,運(yùn)行此系統(tǒng),節(jié)點(diǎn)交易以及其他操作都是從客戶端發(fā)起,需要證書認(rèn)證。 此時(shí),管理員的準(zhǔn)備工作已經(jīng)就緒,接下來需要進(jìn)行的是各模塊的詳細(xì)設(shè)計(jì)。圖4-4智能合約部署流程圖4-5容器創(chuàng)建4.2.2通用模塊的設(shè)計(jì)與實(shí)現(xiàn)此模塊包含系統(tǒng)設(shè)計(jì)中使用的各種類的定義。用戶類定義如圖4-6.圖4-6用戶類定義設(shè)備類定義如圖4-7.圖4-7設(shè)備類定義設(shè)備轉(zhuǎn)讓類定義如圖4-8.圖4-8資產(chǎn)轉(zhuǎn)讓類定義4.2.3注冊(cè)模塊的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)注冊(cè)模塊將區(qū)塊數(shù)據(jù)庫(kù)中原本不存在的用戶或者設(shè)備,保存起來,未經(jīng)注冊(cè)無(wú)法查詢到該用戶或者設(shè)備。商家注冊(cè)和用戶注冊(cè)都屬于用戶類注冊(cè)在智能合約中,在這般的框架內(nèi)定義了注冊(cè)用戶的函數(shù)userRegister,見圖4-5。這是本系統(tǒng)的第一個(gè)功能模塊,完整的放出,從中也可以看到Fabric項(xiàng)目編寫的一些規(guī)律。之后的功能模塊將只介紹用到的類的結(jié)構(gòu),并且以表格的形式介紹輸入輸出參數(shù),對(duì)重點(diǎn)部分也會(huì)進(jìn)行代碼的詳解(李子豪,陳宇航,2024)。此結(jié)果與理論預(yù)測(cè)基本一致,表明在設(shè)定條件下,實(shí)際情況與理論模型間存在高度一致性。這不僅提升了本文對(duì)相關(guān)機(jī)制的理解,也為未來的研究工作打下了堅(jiān)實(shí)基礎(chǔ)。首先,節(jié)點(diǎn)從外部應(yīng)用接收到執(zhí)行指令和相應(yīng)參數(shù)之后,會(huì)調(diào)用智能合約中的相應(yīng)函數(shù),函數(shù)首先核對(duì)輸入的參數(shù)是否符合規(guī)范,包括輸入?yún)?shù)的個(gè)數(shù)和輸入?yún)?shù)的正確性,例如輸入的某個(gè)參數(shù)為空值,或者注冊(cè)時(shí)該用戶已經(jīng)存在,就會(huì)報(bào)錯(cuò)。都驗(yàn)證無(wú)誤之后,從這些程序可以發(fā)現(xiàn)將收到的值賦予用戶之中,此時(shí)定義了用戶的設(shè)備列表,不過其中沒有任何數(shù)據(jù)。用戶注冊(cè)接口如表4-1(吳書怡,王昕妍,2024)。圖4-5智能合約注冊(cè)模塊表4-1用戶注冊(cè)接口請(qǐng)求url/users/register請(qǐng)求方式Post輸入?yún)?shù)用戶名,用戶ID(唯一),身份(用戶或商家)密碼(加密)驗(yàn)證參數(shù)輸入值非空且用戶ID未被注冊(cè)數(shù)據(jù)變更在狀態(tài)數(shù)據(jù)庫(kù)中新建一個(gè)key為用戶ID的數(shù)據(jù),值為序列化的用戶類返回參數(shù)網(wǎng)絡(luò)狀態(tài)碼設(shè)備登記模塊實(shí)現(xiàn)將未登記的設(shè)備上鏈,上鏈的設(shè)備可以轉(zhuǎn)讓給其他用戶,實(shí)際上,普通用戶和商家都可以登記設(shè)備,從這些規(guī)則中看出商家登記的被認(rèn)為是正規(guī)設(shè)備,可以正常流通,用戶可以登記自己diy的物聯(lián)網(wǎng)設(shè)備,可以記錄在系統(tǒng)中,但是無(wú)法正常轉(zhuǎn)讓,需要申請(qǐng)管理審核。設(shè)備登記功能接口如表4-2.表4-2設(shè)備登記接口請(qǐng)求url/assets/enroll請(qǐng)求方式Post輸入?yún)?shù)設(shè)備名稱,設(shè)備ID(唯一),設(shè)備屬性,生產(chǎn)廠家(注冊(cè)用戶ID)驗(yàn)證參數(shù)輸入值非空且生產(chǎn)廠家存在,設(shè)備ID未被注冊(cè)生產(chǎn)者身份為商家則為正常,身份為用戶會(huì)在屬性中加入警告數(shù)據(jù)變更在狀態(tài)數(shù)據(jù)庫(kù)中新建一個(gè)key為設(shè)備ID的數(shù)據(jù),值為序列化的用戶類,生產(chǎn)者的設(shè)備列表中新增登記設(shè)備ID新增設(shè)備變更歷史,原擁有者值為默認(rèn)值(originOwner)返回參數(shù)網(wǎng)絡(luò)狀態(tài)碼4.2.4設(shè)備轉(zhuǎn)讓模塊的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 從這些研究中得知設(shè)備轉(zhuǎn)讓模塊實(shí)現(xiàn)設(shè)備轉(zhuǎn)讓功能,用戶購(gòu)買產(chǎn)品時(shí)需要將設(shè)備轉(zhuǎn)移到自己名下,進(jìn)行二次交易時(shí)也需要轉(zhuǎn)讓。 設(shè)備轉(zhuǎn)讓功能接口如表4-3. 表4-3設(shè)備轉(zhuǎn)讓接口請(qǐng)求url/assets/exchange請(qǐng)求方式Post輸入?yún)?shù)設(shè)備ID(唯一),設(shè)備原始擁有者,設(shè)備新?lián)碛姓唑?yàn)證參數(shù)輸入值非空且生產(chǎn)廠家存在,設(shè)備ID未被注冊(cè)生產(chǎn)者身份為商家則為正常,身份為用戶會(huì)在屬性中加入警告數(shù)據(jù)變更原用戶的設(shè)備列表中刪除該設(shè)備,新用戶的設(shè)備列表中新增設(shè)備新增設(shè)備變更歷史,記錄原用戶,設(shè)備ID,現(xiàn)用戶返回參數(shù)網(wǎng)絡(luò)狀態(tài)碼4.2.5查詢模塊的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)使用查詢模塊,可以查詢商家或用戶信息、設(shè)備信息以及設(shè)備轉(zhuǎn)讓記錄。查詢商家或用戶信息接口如表4-4.表4-4查詢商家、用戶信息接口請(qǐng)求url/users/:id請(qǐng)求方式Get輸入?yún)?shù)用戶ID(唯一)驗(yàn)證參數(shù)輸入值非空且設(shè)備ID存在數(shù)據(jù)變更無(wú)返回參數(shù)已經(jīng)序列化的用戶數(shù)據(jù),包括用戶名,用戶ID,擁有設(shè)備列表查詢?cè)O(shè)備信息接口如表4-5.表4-5查詢?cè)O(shè)備信息接口請(qǐng)求url/assets/get/:id請(qǐng)求方式Get輸入?yún)?shù)設(shè)備ID(唯一)驗(yàn)證參數(shù)輸入值非空且設(shè)備ID存在數(shù)據(jù)變更無(wú)返回參數(shù)已經(jīng)序列化的用戶數(shù)據(jù),包括設(shè)備名稱,設(shè)備ID,設(shè)備屬性查詢?cè)O(shè)備轉(zhuǎn)讓信息接口如表4-6.表4-6查詢?cè)O(shè)備轉(zhuǎn)讓信息接口請(qǐng)求url/assets/exchange/history請(qǐng)求方式Get輸入?yún)?shù)設(shè)備ID(唯一)可選參數(shù):all/exchangeall參數(shù)可以查詢所有轉(zhuǎn)讓信息,包括設(shè)備登記時(shí)的信息,exchange參數(shù)只查詢用戶間設(shè)備轉(zhuǎn)讓信息,不輸入默認(rèn)選擇all參數(shù)查詢驗(yàn)證參數(shù)輸入值非空且設(shè)備ID存在數(shù)據(jù)變更無(wú)返回參數(shù)已經(jīng)序列化的設(shè)備轉(zhuǎn)讓信息此模塊對(duì)應(yīng)的是管理員功能設(shè)計(jì),這在一定程度上預(yù)示系統(tǒng)管理員需要搭建Fabric環(huán)境,編寫鏈碼,維護(hù)系統(tǒng)。分為搭建Fabric環(huán)境,審核醫(yī)療機(jī)構(gòu),查看運(yùn)行狀態(tài)。管理員功能要單獨(dú)開發(fā),與用戶功能區(qū)分開,操作頁(yè)面也是相互獨(dú)立的,現(xiàn)有結(jié)果促使我們推出不能直接跳轉(zhuǎn)。首先,節(jié)點(diǎn)從外部應(yīng)用接收到執(zhí)行指令和相應(yīng)參數(shù)之后,會(huì)調(diào)用智能合約中的相應(yīng)函數(shù)(陳梓林,趙佳佳,2022).4.2.6其他功能模塊的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)其他功能模塊的設(shè)計(jì),意在滿足用戶的其他種種需求,當(dāng)用戶不再使用該系統(tǒng)后,想要保護(hù)自己的隱私,刪除賬號(hào)數(shù)據(jù),就需要注銷自己的賬號(hào);如果某個(gè)設(shè)備損壞,不能繼續(xù)使用,也要?jiǎng)h除該設(shè)備的信息。用戶注銷接口如表4-8.請(qǐng)求url/users/delete/:id請(qǐng)求方式Post輸入?yún)?shù)用戶ID,密碼驗(yàn)證參數(shù)輸入值非空,用戶ID存在且密碼正確數(shù)據(jù)變更用戶輸出刪除,并且所帶的設(shè)備也全部刪除返回參數(shù)網(wǎng)絡(luò)狀態(tài)碼設(shè)備刪除接口如表4-8.表4-8設(shè)備刪除接口請(qǐng)求urlassets/delete/:id請(qǐng)求方式Post輸入?yún)?shù)用戶ID,刪除設(shè)備ID,密碼驗(yàn)證參數(shù)輸入值非空,用戶ID設(shè)備ID都存在,密碼正確數(shù)據(jù)變更設(shè)備刪除,用戶設(shè)備列表中也刪除該設(shè)備返回參數(shù)網(wǎng)絡(luò)狀態(tài)碼4.3本章小結(jié) 本章講解了系統(tǒng)設(shè)計(jì)的軟件層次架構(gòu),對(duì)每一層的作用進(jìn)行了詳細(xì)的說明,之后對(duì)于業(yè)務(wù)邏輯層中的各個(gè)模塊進(jìn)行了具體分析,講解了系統(tǒng)的運(yùn)作方式,通過智能合約實(shí)現(xiàn)業(yè)務(wù)邏輯,并使用業(yè)務(wù)接口進(jìn)行訪問,實(shí)現(xiàn)了簡(jiǎn)單的物聯(lián)網(wǎng)設(shè)備數(shù)字身份認(rèn)證系統(tǒng)。第5章系統(tǒng)測(cè)試5.1系統(tǒng)測(cè)試方法介紹 進(jìn)行系統(tǒng)測(cè)試可以模擬程序運(yùn)行,避免正式使用時(shí)出現(xiàn)嚴(yán)重問題,保證系統(tǒng)運(yùn)行時(shí)的穩(wěn)定性。 此次測(cè)試將全程以某一節(jié)點(diǎn)的身份,對(duì)系統(tǒng)的各個(gè)模塊進(jìn)行測(cè)試,查看測(cè)試結(jié)果是否符合預(yù)期設(shè)計(jì)。 測(cè)試將模擬一套完整的交易流程,從商家登記設(shè)備,到用戶購(gòu)買,用戶之間進(jìn)行二手交易;之后進(jìn)行查詢用戶信息,由之前各項(xiàng)分析情況推斷設(shè)備信息,設(shè)備交易歷史信息;再到設(shè)備刪除,用戶銷戶,完整的測(cè)試整個(gè)流程。5.2系統(tǒng)的功能測(cè)試 5.2.1注冊(cè),交易功能測(cè)試 首先注冊(cè)三個(gè)賬號(hào),分別是商家1(ID:shangjia1),用戶1(ID:user1),用戶2(ID:user2),之后商家1登記設(shè)備(ID:asset),用戶1購(gòu)買并轉(zhuǎn)讓給用戶2,測(cè)試結(jié)果如表5-1(李子豪,陳宇航,2024).表5-1用戶注冊(cè)測(cè)試執(zhí)行操作測(cè)試結(jié)果預(yù)期結(jié)果是否符合預(yù)期商家1,用戶1,用戶2注冊(cè)注冊(cè)成功注冊(cè)成功符合用戶1再注冊(cè)注冊(cè)失敗注冊(cè)失敗符合商家1登記設(shè)備登記成功登記成功符合用戶1購(gòu)買設(shè)備設(shè)備從商家1轉(zhuǎn)讓給用戶1設(shè)備從商家1轉(zhuǎn)讓給用戶1符合用戶2從用戶1處購(gòu)買設(shè)備設(shè)備從用戶1轉(zhuǎn)讓給用戶2設(shè)備從用戶1轉(zhuǎn)讓給用戶2符合用戶1購(gòu)買ID為Asset2的設(shè)備購(gòu)買失敗購(gòu)買失敗符合交易方面的測(cè)試完全符合預(yù)期結(jié)果,對(duì)于非法的請(qǐng)求提示錯(cuò)誤信息。 5.2.1查詢功能測(cè)試分別對(duì)用戶2,設(shè)備,設(shè)備交易歷史進(jìn)行查詢操作,測(cè)試結(jié)果如表5-2.如表可見對(duì)于正常的查詢功能可以返回正常的信息,對(duì)于非法的請(qǐng)求也可以返回錯(cuò)誤信息。 5.2.2刪除功能測(cè)試對(duì)設(shè)備,用戶2進(jìn)行刪除操作,測(cè)試結(jié)果如表5-3.表5-2查詢功能測(cè)試執(zhí)行操作測(cè)試結(jié)果預(yù)期結(jié)果是否符合預(yù)期對(duì)用戶2進(jìn)行查詢操作查詢成功,返回用戶數(shù)據(jù)查詢成功符合對(duì)設(shè)備進(jìn)行查詢操作查詢成功,返回設(shè)備數(shù)據(jù)查詢成功符合查詢?cè)O(shè)備的交易歷史登記成功,返回設(shè)備交易歷史查詢成功符合查詢用戶3(未注冊(cè)用戶)查詢失敗,顯示未找到用戶查詢失敗符合查詢?cè)O(shè)備2(未注冊(cè)設(shè)備)查詢失敗,顯示未找到設(shè)備查詢失敗符合表5-3刪除功能測(cè)試執(zhí)行操作測(cè)試結(jié)果預(yù)期結(jié)果是否符合預(yù)期刪除設(shè)備刪除成功刪除成功符合刪除用戶2刪除成功刪除成功符合刪除用戶3(未注冊(cè)用戶)刪除失敗,顯示未找到用戶刪除失敗符合刪除設(shè)備2(未注冊(cè)設(shè)備)刪除失敗,顯示未找到設(shè)備刪除失敗符合5.3本章小結(jié) 測(cè)試是系統(tǒng)開發(fā)過程中必不可少的一環(huán),通過測(cè)試,可以提高系統(tǒng)使用過程中的穩(wěn)定性和可靠性。本章對(duì)于系統(tǒng)的常見操作進(jìn)行了測(cè)試,從上述分析可理解對(duì)于正確的操作,系統(tǒng)可以準(zhǔn)確反映,并立即執(zhí)行(吳書怡,王昕妍,2024);對(duì)于錯(cuò)誤的請(qǐng)求,系統(tǒng)也會(huì)返回用戶的請(qǐng)求為何錯(cuò)誤,讓用戶可以清晰的知道自己操作方面的誤區(qū),方便用戶的日常使用。測(cè)試結(jié)果表明,系統(tǒng)基本實(shí)現(xiàn)了設(shè)計(jì)時(shí)的功能。 第6章結(jié)束語(yǔ)6.1論文工作總結(jié) 本文分析了未來物聯(lián)網(wǎng)飛速發(fā)展時(shí)可能遇到的瓶頸,針對(duì)每個(gè)瓶頸具體分析,結(jié)合當(dāng)下火熱的區(qū)塊鏈模型,發(fā)現(xiàn)區(qū)塊鏈所擁有的種種優(yōu)勢(shì),可以完美解決物聯(lián)網(wǎng)未來可能遇到的問題,提出了設(shè)計(jì)基于區(qū)塊鏈的物聯(lián)網(wǎng)設(shè)備去中心化數(shù)字身份認(rèn)證系統(tǒng)的想法,并加以設(shè)計(jì),編碼實(shí)現(xiàn)了系統(tǒng)的簡(jiǎn)單功能,結(jié)合當(dāng)前的背景狀況并且在測(cè)試中順利通過。這些初步成果,本文可以構(gòu)思更多具有前瞻性的假設(shè)和研究導(dǎo)向,推動(dòng)該領(lǐng)域向前邁進(jìn)。研究中遭遇的挑戰(zhàn)和局限也為后續(xù)工作明確了改進(jìn)的方向,鼓勵(lì)研究人員不斷優(yōu)化和完善研究設(shè)計(jì),期望獲取更深入的見解和更廣的應(yīng)用價(jià)值。 本文取得的主要成果有:1.通過該系統(tǒng),使用者可以創(chuàng)建用戶,消費(fèi)者可以在商家處購(gòu)買注冊(cè)在案的物聯(lián)網(wǎng)設(shè)備,還可以進(jìn)行消費(fèi)者間的二次轉(zhuǎn)讓。 2.通過該系統(tǒng),可以查詢注冊(cè)過的每個(gè)用戶及其擁有的物聯(lián)網(wǎng)設(shè)備,查詢?cè)O(shè)備的屬性以及交易記錄。 3.通過該系統(tǒng),消費(fèi)者可以自行注銷名下的物聯(lián)網(wǎng)設(shè)備,也可以注銷用戶。 本人在項(xiàng)目中的主要工作有:1.搭建HyperledgerFabric系統(tǒng)環(huán)境,確保系統(tǒng)可以順利運(yùn)行。 2.配置系統(tǒng)運(yùn)行所需要的的配置文件,面臨當(dāng)前背景時(shí)包括用來認(rèn)證身份的證書,排序節(jié)點(diǎn)的設(shè)計(jì),各個(gè)組織的結(jié)構(gòu),每個(gè)用戶節(jié)點(diǎn)的端口等。 3.編寫智能合約,排除bug,確保合約可以成功上鏈運(yùn)行。 4.各個(gè)節(jié)點(diǎn)啟動(dòng),智能合約部署在用戶節(jié)點(diǎn)上,并進(jìn)行各個(gè)模塊的測(cè)試。 5.編寫外部交互程序,通過調(diào)用Fabric接口,訪問節(jié)點(diǎn)進(jìn)行操作。6.2問題和展望圖5-1HyperledgerFabric共識(shí)機(jī)制示意圖由圖5-1可知,同一節(jié)點(diǎn)可以加入不同的通道之中,各個(gè)通道相互獨(dú)立,目前系統(tǒng)只創(chuàng)建一個(gè)通道,用來進(jìn)行用戶注冊(cè),設(shè)備登記和轉(zhuǎn)讓。預(yù)期未來可以新建兩個(gè)通道,一個(gè)是設(shè)備維修通道,用來進(jìn)行設(shè)備的售后處理;另一個(gè)是用戶交流通道,用戶需要溝通時(shí),可以自動(dòng)建立溝通通道,進(jìn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論