本發(fā)明屬于單片機(jī)區(qū)塊鏈部署控制,涉及一種自定義指令集控制單片機(jī)實(shí)現(xiàn)區(qū)塊鏈實(shí)驗(yàn)的裝置和方法。
背景技術(shù):
1、區(qū)塊鏈技術(shù)作為一種新興的信息技術(shù),其核心優(yōu)勢(shì)在于去中心化、數(shù)據(jù)不可篡改以及高效的共識(shí)機(jī)制。這一技術(shù)體系不僅融合了分布式系統(tǒng)、高級(jí)加密算法、p2p網(wǎng)絡(luò)通訊以及精密的共識(shí)算法等多個(gè)高科技領(lǐng)域的知識(shí),還要求在設(shè)計(jì)與實(shí)施過(guò)程中充分考慮系統(tǒng)的安全性、穩(wěn)定性和可擴(kuò)展性。因此,構(gòu)建一個(gè)既穩(wěn)定可靠又高效運(yùn)行的區(qū)塊鏈環(huán)境,對(duì)于技術(shù)人員的專(zhuān)業(yè)素養(yǎng)和技術(shù)能力提出了極高的要求,這對(duì)于那些缺乏相關(guān)技術(shù)背景的人員來(lái)說(shuō),無(wú)疑是一項(xiàng)艱巨的挑戰(zhàn)。
2、中國(guó)專(zhuān)利cn111324599a公開(kāi)了一種區(qū)塊鏈實(shí)驗(yàn)系統(tǒng)及管理方法,cn114708773a公開(kāi)了一種區(qū)塊鏈教學(xué)系統(tǒng),上述專(zhuān)利均采用常規(guī)服務(wù)器和實(shí)驗(yàn)pc機(jī)進(jìn)行實(shí)驗(yàn)。高校實(shí)驗(yàn)室現(xiàn)有的實(shí)驗(yàn)pc機(jī)通常已經(jīng)安裝了多種實(shí)驗(yàn)環(huán)境,用于支持不同課程的教學(xué)需求。若在這些pc上再增設(shè)區(qū)塊鏈環(huán)境,不僅可能會(huì)因?yàn)橘Y源爭(zhēng)奪而導(dǎo)致系統(tǒng)性能下降,還極易對(duì)現(xiàn)有實(shí)驗(yàn)環(huán)境造成破壞,影響其他課程的實(shí)驗(yàn)教學(xué),還會(huì)給實(shí)驗(yàn)室的管理和維護(hù)帶來(lái)額外的負(fù)擔(dān)。
3、現(xiàn)有試驗(yàn)環(huán)境不太適合區(qū)塊鏈試驗(yàn),缺乏高效更新管理機(jī)制,無(wú)法快速升級(jí)更新區(qū)塊鏈。教師在教學(xué)過(guò)程中需要在各個(gè)區(qū)塊鏈技術(shù)中切換,現(xiàn)有實(shí)驗(yàn)室管理系統(tǒng)很難同時(shí)支持多種不同技術(shù)的區(qū)塊鏈體系。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提供一種自定義指令集控制單片機(jī)實(shí)現(xiàn)區(qū)塊鏈實(shí)驗(yàn)的裝置和方法。
2、為達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案:
3、一方面,本發(fā)明提供一種自定義指令集控制單片機(jī)實(shí)現(xiàn)區(qū)塊鏈實(shí)驗(yàn)的裝置,包括:
4、分布式管理終端:搭載有區(qū)塊鏈實(shí)驗(yàn)管理平臺(tái)服務(wù)端,利用自定義指令集實(shí)現(xiàn):進(jìn)行socket監(jiān)聽(tīng),接收來(lái)自單片機(jī)的指令;對(duì)單片機(jī)進(jìn)行注冊(cè);將經(jīng)過(guò)arm編譯好的區(qū)塊鏈安裝文件從待安裝目錄中提取并壓縮生成安裝包;將安裝包通過(guò)多個(gè)線(xiàn)程組同時(shí)推送到多個(gè)單片機(jī);對(duì)注冊(cè)的單片機(jī)進(jìn)行群發(fā)指令;更新各個(gè)單片機(jī)的區(qū)塊鏈環(huán)境;發(fā)送指令控制單片機(jī)上的區(qū)塊鏈操作;監(jiān)控各個(gè)單片機(jī)及區(qū)塊鏈的狀態(tài);瀏覽區(qū)塊鏈信息;
5、單片機(jī):搭載有區(qū)塊鏈實(shí)驗(yàn)管理平臺(tái)客戶(hù)端,作為區(qū)塊鏈的節(jié)點(diǎn),用于與分布式管理終端建立socket連接;向服務(wù)端申請(qǐng)注冊(cè);接收服務(wù)端推送的安裝包;訂閱服務(wù)端的安裝包更新消息;拉取更新包并安裝;上報(bào)更新情況;接收并執(zhí)行服務(wù)端的群發(fā)指令;上報(bào)區(qū)塊鏈節(jié)點(diǎn)運(yùn)行狀態(tài)。
6、進(jìn)一步,分布式管理終端由上位機(jī)、內(nèi)網(wǎng)鏡像服務(wù)器和多個(gè)推送服務(wù)器組成;
7、區(qū)塊鏈實(shí)驗(yàn)管理平臺(tái)服務(wù)端包括注冊(cè)中心模塊、掃描服務(wù)模塊、文件推送模塊、安裝包管理模塊、權(quán)限管理模塊、監(jiān)控服務(wù)模塊、監(jiān)聽(tīng)管理服務(wù)模塊、消息推送模塊、消息隊(duì)列模塊和區(qū)塊瀏覽模塊;
8、注冊(cè)中心模塊用于對(duì)新啟動(dòng)的單片機(jī)客戶(hù)端進(jìn)行注冊(cè);
9、掃描服務(wù)模塊用于對(duì)待安裝目錄進(jìn)行掃描,發(fā)現(xiàn)其中的區(qū)塊鏈安裝文件,并將其壓縮生成區(qū)塊鏈安裝包;
10、文件推送模塊通過(guò)運(yùn)行在一個(gè)或多個(gè)推送服務(wù)器中的多個(gè)線(xiàn)程組,將區(qū)塊鏈安裝包并行推送到所有已注冊(cè)的單片機(jī)中;
11、安裝包管理模塊運(yùn)行在內(nèi)網(wǎng)鏡像服務(wù)器中,用于對(duì)安裝包進(jìn)行管理;
12、權(quán)限管理模塊用于對(duì)系統(tǒng)用戶(hù)權(quán)限進(jìn)行管理;
13、監(jiān)控服務(wù)模塊用于監(jiān)控已注冊(cè)單片機(jī)的狀態(tài);
14、監(jiān)聽(tīng)管理服務(wù)模塊用于啟動(dòng)socket監(jiān)聽(tīng),接收來(lái)自已注冊(cè)單片機(jī)的指令;
15、消息推送模塊用于將消息隊(duì)列中的消息推送給已注冊(cè)的單片機(jī);
16、消息隊(duì)列模塊用于存儲(chǔ)區(qū)塊鏈更新包,等待單片機(jī)主動(dòng)拉??;
17、區(qū)塊瀏覽模塊用于瀏覽區(qū)塊鏈信息。
18、進(jìn)一步,內(nèi)網(wǎng)鏡像服務(wù)器基于分布式對(duì)象存儲(chǔ)minio構(gòu)建,minio采用糾刪碼機(jī)制保證高可靠性,采用位衰減保護(hù)保證數(shù)據(jù)完整性;文件對(duì)象上傳到minio,以bucket名稱(chēng)作為目錄,文件名稱(chēng)為下一級(jí)目錄。
19、進(jìn)一步,自定義指令集至少包括注冊(cè)指令lab_reg,切換指令lab_set,重置指令lab_reset,接收校驗(yàn)碼指令lab_chkm,訂閱更新指令lab_sub,hyperledger?fabric通道創(chuàng)建指令hf_peer_ch_create,hyperledger?fabric創(chuàng)建并加入通道指令hf_peer_ch_create_join,hyperledger?fabric節(jié)點(diǎn)信息上報(bào)指令hf_peer_getinfo,peer節(jié)點(diǎn)加入通道查看指令hf_peer_ch_list_all,peer節(jié)點(diǎn)鏈代碼獲取指令hf_peer_cc_list,ethereum初始化創(chuàng)世塊指令eth__init,ethereum新賬戶(hù)創(chuàng)建指令eth_account_new。
20、進(jìn)一步,自定義指令集中的指令作為服務(wù)端和客戶(hù)端的通信協(xié)議,在發(fā)送前首先對(duì)指令集進(jìn)行解析,將指令集解析成與接收端同等數(shù)量的指令,然后再將指令發(fā)送給所有接收端;接收端收到指令后首先對(duì)指令進(jìn)行解析和轉(zhuǎn)換,然后再執(zhí)行指令。
21、另一方面,本發(fā)明提供一種自定義指令集控制單片機(jī)實(shí)現(xiàn)區(qū)塊鏈實(shí)驗(yàn)的方法,包括以下步驟:
22、上位機(jī)將arm架構(gòu)的區(qū)塊鏈實(shí)驗(yàn)源碼進(jìn)行編譯和調(diào)整,得到適用于單片機(jī)的區(qū)塊鏈安裝文件,存放到待安裝目錄中;
23、上位機(jī)掃描待安裝目錄,將區(qū)塊鏈安裝文件進(jìn)行壓縮,針對(duì)不同區(qū)塊鏈類(lèi)型生成不同的安裝包及對(duì)應(yīng)的安裝文件校驗(yàn)碼;
24、上位機(jī)將安裝包推送到內(nèi)網(wǎng)鏡像服務(wù)器中進(jìn)行存儲(chǔ);
25、上位機(jī)將安裝包推送給各個(gè)在線(xiàn)的單片機(jī);
26、上位機(jī)將各安裝包對(duì)應(yīng)的安裝文件校驗(yàn)碼推送給對(duì)應(yīng)單片機(jī);
27、單片機(jī)利用安裝包文件校驗(yàn)碼校驗(yàn)接收到的安裝包完整性;
28、教師和學(xué)生利用單片機(jī)進(jìn)行區(qū)塊鏈教學(xué)實(shí)驗(yàn)。
29、進(jìn)一步,上位機(jī)在推送安裝包時(shí)啟動(dòng)多個(gè)線(xiàn)程組進(jìn)行推送,每個(gè)線(xiàn)程組獨(dú)占一臺(tái)推送服務(wù)器,每個(gè)線(xiàn)程組默認(rèn)啟動(dòng)50個(gè)推送線(xiàn)程,每個(gè)單片機(jī)默認(rèn)由5個(gè)推送線(xiàn)程進(jìn)行推送,上位機(jī)自動(dòng)判斷推送服務(wù)器資源狀況,根據(jù)推送服務(wù)器資源自動(dòng)調(diào)整線(xiàn)程數(shù)。
30、進(jìn)一步,單片機(jī)啟動(dòng)后,與上位機(jī)建立socket連接,向上位機(jī)進(jìn)行注冊(cè);socket禁用nagle算法,并使用零拷貝技術(shù)。
31、進(jìn)一步,上位機(jī)根據(jù)線(xiàn)程數(shù)將安裝文件平均分為多段,每個(gè)線(xiàn)程傳送安裝文件的其中一段;單片機(jī)接收成功后,將所有分段合并成一個(gè)文件,然后生成文件校驗(yàn)碼,與接收到的安裝文件校驗(yàn)碼進(jìn)行對(duì)比,校驗(yàn)接收文件的完整性。
32、進(jìn)一步,當(dāng)區(qū)塊鏈需要更新時(shí),上位機(jī)將更新包推送到內(nèi)網(wǎng)鏡像服務(wù)器中,并通過(guò)消息隊(duì)列將區(qū)塊鏈可更新的消息發(fā)送給各單片機(jī),各單片機(jī)接收到消息后,驗(yàn)證本機(jī)是否正在拉取或已經(jīng)接收了更新包,如果不是,則從內(nèi)網(wǎng)鏡像服務(wù)器中拉取最新版本的更新包進(jìn)行安裝。
33、本發(fā)明的有益效果在于:本發(fā)明利用純內(nèi)網(wǎng)搭建區(qū)塊鏈網(wǎng)絡(luò),保證了實(shí)驗(yàn)環(huán)境的安全可靠;為了方便管理試驗(yàn)環(huán)境,通過(guò)區(qū)塊鏈試驗(yàn)管理平臺(tái)實(shí)現(xiàn)實(shí)驗(yàn)環(huán)境快速部署,快速重置,實(shí)驗(yàn)環(huán)境搭建簡(jiǎn)單;區(qū)塊鏈實(shí)驗(yàn)管理平臺(tái)實(shí)現(xiàn)多線(xiàn)程推送文件,同時(shí)推送安裝包到不同的單片機(jī),并支持?jǐn)帱c(diǎn)續(xù)傳,保證文件接收完成;通過(guò)消息隊(duì)列通知各單片機(jī),保證消息傳遞不丟失;使用單片機(jī)而不是服務(wù)器作為區(qū)塊鏈節(jié)點(diǎn),成本低;單片機(jī)基于arm架構(gòu),能耗低,部署方便,快速成鏈。
34、本發(fā)明的其他優(yōu)點(diǎn)、目標(biāo)和特征在某種程度上將在隨后的說(shuō)明書(shū)中進(jìn)行闡述,并且在某種程度上,基于對(duì)下文的考察研究對(duì)本領(lǐng)域技術(shù)人員而言將是顯而易見(jiàn)的,或者可以從本發(fā)明的實(shí)踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其他優(yōu)點(diǎn)可以通過(guò)下面的說(shuō)明書(shū)來(lái)實(shí)現(xiàn)和獲得。