本發(fā)明涉及區(qū)塊鏈領(lǐng)域,尤其涉及一種數(shù)據(jù)上鏈方法、系統(tǒng)、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
背景技術(shù):
1、在生產(chǎn)養(yǎng)殖階段,設(shè)備采集的傳感器數(shù)據(jù)很重要,對(duì)日后的產(chǎn)品溯源和產(chǎn)品問(wèn)題分析起到至關(guān)重要的作用。但是,現(xiàn)有技術(shù)中設(shè)備端采集的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,存在被人為篡改的可能性,這種可能降低了數(shù)據(jù)的可信度,阻礙數(shù)據(jù)的流通。
2、針對(duì)現(xiàn)有技術(shù)中設(shè)備端采集的數(shù)據(jù)易篡改造成數(shù)據(jù)不可信的問(wèn)題,目前還沒(méi)有一個(gè)有效的解決方法。
技術(shù)實(shí)現(xiàn)思路
1、為解決上述問(wèn)題,本發(fā)明提供一種數(shù)據(jù)上鏈方法,通過(guò)連接設(shè)備端與服務(wù)端,使服務(wù)端保存設(shè)備端采集的原始數(shù)據(jù),并將原始數(shù)據(jù)對(duì)應(yīng)的合約交易上鏈,可通過(guò)對(duì)比原始數(shù)據(jù)的哈希與合約交易中的哈希完成正確性驗(yàn)證,從而判斷數(shù)據(jù)是否被篡改,以解決現(xiàn)有技術(shù)中數(shù)據(jù)被篡改后不可信的問(wèn)題。
2、為達(dá)到上述目的,本發(fā)明提供了一種數(shù)據(jù)上鏈方法,包括:接收設(shè)備端發(fā)送的原始數(shù)據(jù)及原始數(shù)據(jù)對(duì)應(yīng)的合約交易;其中,設(shè)備端根據(jù)原始數(shù)據(jù)的數(shù)據(jù)哈希、設(shè)備端私鑰及區(qū)塊高度打包得到所述合約交易;將所述合約交易發(fā)送至區(qū)塊鏈節(jié)點(diǎn)進(jìn)行上鏈,上鏈完成后記錄交易哈希并存儲(chǔ)所述原始數(shù)據(jù);當(dāng)需驗(yàn)證所述原始數(shù)據(jù)的正確性時(shí),根據(jù)所述服務(wù)端的交易哈希、原始數(shù)據(jù)及上鏈后的所述合約交易判斷所述原始數(shù)據(jù)的正確性。
3、進(jìn)一步可選的,所述根據(jù)所述服務(wù)端的交易哈希、原始數(shù)據(jù)及上鏈后的合約交易判斷所述原始數(shù)據(jù)的正確性,包括:計(jì)算原始數(shù)據(jù)的哈希,作為待驗(yàn)證哈希;根據(jù)所述交易哈希訪問(wèn)區(qū)塊鏈節(jié)點(diǎn),得到所述合約交易;將所述待驗(yàn)證哈希與所述合約交易中的數(shù)據(jù)哈希進(jìn)行對(duì)比,若對(duì)比結(jié)果一致,則所述原始數(shù)據(jù)為未篡改數(shù)據(jù)。
4、進(jìn)一步可選的,所述接收設(shè)備端發(fā)送的原始數(shù)據(jù)及原始數(shù)據(jù)對(duì)應(yīng)的合約交易之前,包括:通過(guò)mqtt協(xié)議與所述設(shè)備端連接;實(shí)時(shí)監(jiān)測(cè)區(qū)塊鏈高度,并將所述區(qū)塊鏈高度廣播至所述設(shè)備端。
5、進(jìn)一步可選的,設(shè)備端根據(jù)原始數(shù)據(jù)的數(shù)據(jù)哈希、設(shè)備端私鑰及區(qū)塊高度打包得到所述合約交易,包括:設(shè)備端計(jì)算所述原始數(shù)據(jù)的數(shù)據(jù)哈希;根據(jù)設(shè)備端私鑰及最新接收的區(qū)塊鏈高度對(duì)所述數(shù)據(jù)哈希進(jìn)行簽名打包,得到所述合約交易;其中,所述設(shè)備端私鑰由設(shè)備端預(yù)先生成。
6、另一方面,本發(fā)明還提供了一種數(shù)據(jù)上鏈系統(tǒng),包括:數(shù)據(jù)接收模塊,用于接收設(shè)備端發(fā)送的原始數(shù)據(jù)及原始數(shù)據(jù)對(duì)應(yīng)的合約交易;其中,設(shè)備端根據(jù)原始數(shù)據(jù)的數(shù)據(jù)哈希、設(shè)備端私鑰及區(qū)塊高度打包得到所述合約交易;數(shù)據(jù)上鏈模塊,用于將所述合約交易發(fā)送至區(qū)塊鏈節(jié)點(diǎn)進(jìn)行上鏈,上鏈完成后記錄交易哈希并存儲(chǔ)所述原始數(shù)據(jù);驗(yàn)證模塊,用于當(dāng)需驗(yàn)證所述原始數(shù)據(jù)的正確性時(shí),根據(jù)所述服務(wù)端的交易哈希、原始數(shù)據(jù)及上鏈后的合約交易判斷所述原始數(shù)據(jù)的正確性。
7、進(jìn)一步可選的,所述驗(yàn)證模塊包括:待驗(yàn)證哈希計(jì)算子模塊,用于計(jì)算原始數(shù)據(jù)的哈希,作為待驗(yàn)證哈希;交易提取子模塊,用于根據(jù)所述交易哈希訪問(wèn)區(qū)塊鏈節(jié)點(diǎn),得到所述合約交易;對(duì)比子模塊,用于將所述待驗(yàn)證哈希與所述合約交易中的數(shù)據(jù)哈希進(jìn)行對(duì)比,若對(duì)比結(jié)果一致,則所述原始數(shù)據(jù)為未篡改數(shù)據(jù)。
8、進(jìn)一步可選的,該系統(tǒng)還包括:連接模塊,用于通過(guò)mqtt協(xié)議與所述設(shè)備端連接;廣播模塊,用于實(shí)時(shí)監(jiān)測(cè)區(qū)塊鏈高度,并將所述區(qū)塊鏈高度廣播至所述設(shè)備端。
9、進(jìn)一步可選的,該系統(tǒng)還包括:數(shù)據(jù)哈希計(jì)算模塊,用于設(shè)備端計(jì)算所述原始數(shù)據(jù)的數(shù)據(jù)哈希;打包模塊,用于根據(jù)設(shè)備端私鑰及最新接收的區(qū)塊鏈高度對(duì)所述數(shù)據(jù)哈希進(jìn)行簽名打包,得到所述合約交易;其中,所述設(shè)備端私鑰由設(shè)備端預(yù)先生成。
10、另一方面,本發(fā)明還提供了一種數(shù)據(jù)上鏈裝置,包括上述的數(shù)據(jù)上鏈系統(tǒng)。
11、另一方面,本發(fā)明還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的數(shù)據(jù)上鏈方法。
12、上述技術(shù)方案具有如下有益效果:通過(guò)將設(shè)備端采集的原始數(shù)據(jù)存儲(chǔ)在服務(wù)端,將原始數(shù)據(jù)的存證哈希上鏈,在校驗(yàn)時(shí),通過(guò)計(jì)算得到服務(wù)端原始數(shù)據(jù)的待驗(yàn)證哈希,并與存證哈希對(duì)比,以實(shí)現(xiàn)數(shù)據(jù)正確性校驗(yàn),區(qū)塊鏈中數(shù)據(jù)不可篡改且可追溯,從而提高數(shù)據(jù)存儲(chǔ)的可信性;在設(shè)備端通過(guò)本地私鑰進(jìn)行簽名打包,保證數(shù)據(jù)傳輸?shù)陌踩浴?/p>
技術(shù)特征:
1.一種數(shù)據(jù)上鏈方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)上鏈方法,其特征在于,所述根據(jù)所述服務(wù)端的交易哈希、原始數(shù)據(jù)及上鏈后的所述合約交易判斷所述原始數(shù)據(jù)的正確性,包括:
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)上鏈方法,其特征在于,所述接收設(shè)備端發(fā)送的原始數(shù)據(jù)及原始數(shù)據(jù)對(duì)應(yīng)的合約交易之前,包括:
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)上鏈方法,其特征在于,所述設(shè)備端根據(jù)原始數(shù)據(jù)的數(shù)據(jù)哈希、設(shè)備端私鑰及區(qū)塊高度打包得到所述合約交易,包括:
5.一種數(shù)據(jù)上鏈系統(tǒng),其特征在于,包括:
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)上鏈系統(tǒng),其特征在于,所述驗(yàn)證模塊包括:
7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)上鏈系統(tǒng),其特征在于,還包括:
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)上鏈系統(tǒng),其特征在于,還包括:
9.一種數(shù)據(jù)上鏈裝置,其特征在于,包括如權(quán)利要求5-8任一項(xiàng)所述的數(shù)據(jù)上鏈系統(tǒng)。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-4任一項(xiàng)所述的數(shù)據(jù)上鏈方法。