本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種基于區(qū)塊鏈平臺的數(shù)據(jù)處理方法。
背景技術(shù):
隨著越來越多的電商企業(yè)與平臺的崛起,網(wǎng)購已成為人們不可缺少的一種在線購物方式。而不同類型的網(wǎng)絡(luò)購物網(wǎng)站急劇膨脹的同時,給很多制假販假的大小作坊帶來了巨大商機,尤其是在奢侈品與輕奢侈品電商行業(yè),售假給消費者帶來巨大的經(jīng)濟損失。有必要提供一個能夠使數(shù)據(jù)公開、透明、不可篡改的數(shù)據(jù)平臺,提供公信力為企業(yè)的良好運營做好誠信基礎(chǔ)。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種基于區(qū)塊鏈平臺的數(shù)據(jù)處理方法,建立了一個高安全性、高穩(wěn)定性、高效率的區(qū)塊鏈平臺。
為解決上述問題,本發(fā)明所采用的技術(shù)方案如下:
基于區(qū)塊鏈平臺的數(shù)據(jù)處理方法,包括數(shù)據(jù)寫入步驟,
數(shù)據(jù)寫入步驟包括:
A1、調(diào)用寫入接口接收數(shù)據(jù)寫入請求;
A2、對數(shù)據(jù)寫入請求中的參數(shù)進行參數(shù)校驗,若校驗不通過,則結(jié)束流程;
A4、判斷數(shù)據(jù)寫入請求中的主體數(shù)據(jù)是否為結(jié)構(gòu)化數(shù)據(jù),若是,則執(zhí)行步驟A5,若否,則直接將數(shù)據(jù)寫入請求中的全部數(shù)據(jù)記為待轉(zhuǎn)換數(shù)據(jù);
A5、根據(jù)數(shù)據(jù)寫入請求中的參數(shù)判斷是否需要加密,若是,則對數(shù)據(jù)寫入請求中的主體數(shù)據(jù)進行加密處理得到加密數(shù)據(jù),將加密數(shù)據(jù)和數(shù)據(jù)寫入請求中的其他數(shù)據(jù)記為待轉(zhuǎn)換數(shù)據(jù);若否,則直接將數(shù)據(jù)寫入請求中的全部數(shù)據(jù)記為待轉(zhuǎn)換數(shù)據(jù);
A6、將待轉(zhuǎn)換數(shù)據(jù)按照相應(yīng)的預(yù)設(shè)轉(zhuǎn)換規(guī)則進行轉(zhuǎn)換并寫入數(shù)據(jù)庫中。
優(yōu)選的,所述參數(shù)校驗包括:判斷數(shù)據(jù)寫入請求中的參數(shù)中是否有key值,若有,則校驗通過,若沒有,則校驗不通過;所述key值為數(shù)據(jù)加解密的關(guān)鍵信息,其由發(fā)起數(shù)據(jù)寫入請求的調(diào)用者自定義。
優(yōu)選的,所述數(shù)據(jù)加密處理包括:根據(jù)AES算法利用key值對數(shù)據(jù)寫入請求中的主體數(shù)據(jù)進行加密。
優(yōu)選的,在步驟A2和A4之間還包括:
A3、判斷數(shù)據(jù)寫入請求中是否有數(shù)據(jù),若是,則執(zhí)行步驟A31,若否,則結(jié)束流程;
A31、對數(shù)據(jù)寫入請求中的數(shù)據(jù)進行數(shù)據(jù)補全處理,在數(shù)據(jù)補全處理中所增加的數(shù)據(jù)均為補全數(shù)據(jù),所述數(shù)據(jù)補全處理包括:
在數(shù)據(jù)寫入請求中的數(shù)據(jù)中增加緩存索引數(shù)據(jù),所述緩存索引數(shù)據(jù)為描述數(shù)據(jù)寫入請求中的數(shù)據(jù)的數(shù)據(jù);
若數(shù)據(jù)寫入請求中的主體數(shù)據(jù)為結(jié)構(gòu)化數(shù)據(jù),則判斷數(shù)據(jù)寫入請求中的數(shù)據(jù)是否包含唯一標(biāo)識,若是,則在數(shù)據(jù)寫入請求中的數(shù)據(jù)中增加版本號,若否,則在數(shù)據(jù)寫入請求中的數(shù)據(jù)中增加唯一標(biāo)識;
若數(shù)據(jù)寫入請求中的主體數(shù)據(jù)為非結(jié)構(gòu)化數(shù)據(jù),則在數(shù)據(jù)寫入請求中的數(shù)據(jù)中增加唯一標(biāo)識,以及增加數(shù)據(jù)存取路徑。
優(yōu)選的,在步驟A6之后還包括:
A7、向MQ消息隊列發(fā)送同步消息;
A8、當(dāng)輪詢MQ消息隊列至該同步消息時,將對應(yīng)于該同步消息的數(shù)據(jù)庫中的數(shù)據(jù)同步至緩存中。
優(yōu)選的,還包括定時任務(wù)執(zhí)行步驟:
當(dāng)觸發(fā)數(shù)據(jù)異常檢測任務(wù)時,檢測緩存中的數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)是否一致,若不一致,則從數(shù)據(jù)庫中將不一致的數(shù)據(jù)重新同步至緩存中;
當(dāng)觸發(fā)第三方區(qū)塊鏈數(shù)據(jù)同步任務(wù)時,將數(shù)據(jù)庫中的數(shù)據(jù)同步至第三方區(qū)塊鏈。
優(yōu)選的,還包括數(shù)據(jù)讀取步驟,數(shù)據(jù)讀取步驟包括:
B1、調(diào)用讀取接口接收數(shù)據(jù)讀取請求;
B2、對數(shù)據(jù)讀取請求中的參數(shù)進行參數(shù)校驗,若校驗不通過,則結(jié)束流程;
B3、根據(jù)數(shù)據(jù)讀取請求中的參數(shù)判斷是否需要解密,若是,則執(zhí)行步驟B4,若否,則執(zhí)行步驟B5;
B4、判斷數(shù)據(jù)讀取請求所請求的數(shù)據(jù)是否為結(jié)構(gòu)化數(shù)據(jù),若是,則將該數(shù)據(jù)讀取請求標(biāo)記為待解密數(shù)據(jù)讀取請求,用于當(dāng)返回目標(biāo)數(shù)據(jù)時進行數(shù)據(jù)解密處理;若否,則執(zhí)行步驟B5;
B5、根據(jù)數(shù)據(jù)讀取請求在緩存中檢索是否有目標(biāo)數(shù)據(jù),若是,則返回目標(biāo)數(shù)據(jù),若否,則執(zhí)行步驟B6;
B6、根據(jù)數(shù)據(jù)讀取請求在數(shù)據(jù)庫中檢索是否有目標(biāo)數(shù)據(jù),若是,則返回目標(biāo)數(shù)據(jù),若否,則結(jié)束流程。
優(yōu)選的,所述緩存為分布式緩存。
優(yōu)選的,所述數(shù)據(jù)庫為分布式數(shù)據(jù)庫。
相比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:
基于本發(fā)明數(shù)據(jù)處理方法的區(qū)塊鏈平臺,其具有高安全性、高穩(wěn)定性、高效率和高共享性,其中的公開、透明、不可篡改的分布式數(shù)據(jù)存取、及數(shù)據(jù)加解密等獨有的特性可做為與其它企事業(yè)單位合作的良好信用基礎(chǔ)。還可以衍生各種新的生機,如:提供存儲在行業(yè)區(qū)塊鏈平臺上的用戶消費數(shù)據(jù)給金融銀行機構(gòu)做消費與信用評估、通過提供存儲在公用區(qū)塊鏈平臺上的產(chǎn)品溯源數(shù)據(jù)給消費者提供正品品質(zhì)保證、通過提供存儲在公用區(qū)塊鏈平臺上的資產(chǎn)管理數(shù)據(jù)給銀行/社會金融機構(gòu)實現(xiàn)貸款/融資、提供存儲在私有區(qū)塊鏈平臺上的行為記錄給第三方專業(yè)的數(shù)據(jù)分析/挖掘單位進行大數(shù)據(jù)分析/挖掘。
附圖說明
圖1為本發(fā)明基于區(qū)塊鏈平臺的數(shù)據(jù)處理方法的數(shù)據(jù)寫入步驟的流程圖;
圖2為本發(fā)明基于區(qū)塊鏈平臺的數(shù)據(jù)處理方法的數(shù)據(jù)讀取步驟的流程圖。
具體實施方式
下面,結(jié)合附圖以及具體實施方式,對本發(fā)明做進一步描述:
參考圖1和圖2,一種基于區(qū)塊鏈平臺的數(shù)據(jù)處理方法,包括數(shù)據(jù)寫入步驟和數(shù)據(jù)讀取步驟,其中,數(shù)據(jù)寫入步驟包括:
A1、調(diào)用寫入接口接收數(shù)據(jù)寫入請求。
A2、對數(shù)據(jù)寫入請求中的參數(shù)進行參數(shù)校驗,若校驗不通過,則結(jié)束流程。
A3、判斷數(shù)據(jù)寫入請求中是否有數(shù)據(jù),若是,則執(zhí)行步驟A31,若否,則結(jié)束流程。
A31、對數(shù)據(jù)寫入請求中的數(shù)據(jù)進行數(shù)據(jù)補全處理,在數(shù)據(jù)補全處理中所增加的數(shù)據(jù)均為補全數(shù)據(jù),所述數(shù)據(jù)補全處理包括:
在數(shù)據(jù)寫入請求中的數(shù)據(jù)中增加緩存索引數(shù)據(jù),所述緩存索引數(shù)據(jù)為描述數(shù)據(jù)寫入請求中的數(shù)據(jù)的數(shù)據(jù),即相當(dāng)于元數(shù)據(jù);
若數(shù)據(jù)寫入請求中的主體數(shù)據(jù)為結(jié)構(gòu)化數(shù)據(jù),則判斷數(shù)據(jù)寫入請求中的數(shù)據(jù)是否包含唯一標(biāo)識,若是,則在數(shù)據(jù)寫入請求中的數(shù)據(jù)中增加版本號,若否,則在數(shù)據(jù)寫入請求中的數(shù)據(jù)中增加唯一標(biāo)識;
若數(shù)據(jù)寫入請求中的主體數(shù)據(jù)為非結(jié)構(gòu)化數(shù)據(jù),則在數(shù)據(jù)寫入請求中的數(shù)據(jù)中增加唯一標(biāo)識,以及增加數(shù)據(jù)存取路徑。
補全數(shù)據(jù)是由存儲結(jié)構(gòu)規(guī)則所決定的規(guī)范性數(shù)據(jù),其并不是寫入數(shù)據(jù)的主體內(nèi)容,不進行加密處理。
A4、判斷數(shù)據(jù)寫入請求中的主體數(shù)據(jù)是否為結(jié)構(gòu)化數(shù)據(jù),若是,則執(zhí)行步驟A5,若否,則直接將數(shù)據(jù)寫入請求中的全部數(shù)據(jù)記為待轉(zhuǎn)換數(shù)據(jù)。
A5、根據(jù)數(shù)據(jù)寫入請求中的參數(shù)判斷是否需要加密,若是,則對數(shù)據(jù)寫入請求中的主體數(shù)據(jù)進行加密處理得到加密數(shù)據(jù),將加密數(shù)據(jù)和數(shù)據(jù)寫入請求中的其他數(shù)據(jù)記為待轉(zhuǎn)換數(shù)據(jù);若否,則直接將數(shù)據(jù)寫入請求中的全部數(shù)據(jù)記為待轉(zhuǎn)換數(shù)據(jù)。
A6、將待轉(zhuǎn)換數(shù)據(jù)按照相應(yīng)的預(yù)設(shè)轉(zhuǎn)換規(guī)則進行轉(zhuǎn)換并寫入數(shù)據(jù)庫中。轉(zhuǎn)換時根據(jù)數(shù)據(jù)是結(jié)構(gòu)化數(shù)據(jù)還是非結(jié)構(gòu)化數(shù)據(jù)而對應(yīng)有不同的轉(zhuǎn)換規(guī)則,經(jīng)過規(guī)則轉(zhuǎn)換后的數(shù)據(jù)則符合數(shù)據(jù)庫中的存儲結(jié)構(gòu)規(guī)則。其中,數(shù)據(jù)庫為分布式數(shù)據(jù)庫,具有多個數(shù)據(jù)節(jié)點,可以適應(yīng)大并發(fā)的數(shù)據(jù)存取。
A7、向MQ消息隊列發(fā)送同步消息。每當(dāng)有一個寫入請求中的數(shù)據(jù)寫入數(shù)據(jù)庫后,都會向MQ消息隊列發(fā)送一條同步消息,通過MQ消息隊列能夠有效地適應(yīng)高并發(fā)的數(shù)據(jù)寫入。
A8、當(dāng)輪詢MQ消息隊列至該同步消息時,將對應(yīng)于該同步消息的數(shù)據(jù)庫中的數(shù)據(jù)同步至緩存中。其中,緩存為分布式緩存,緩存采用索引緩存,由solr ntr來支撐,能夠支持高并發(fā)量的數(shù)據(jù)檢索,大大減輕數(shù)據(jù)庫的壓力。
其中,在步驟A2中,參數(shù)校驗包括:判斷數(shù)據(jù)寫入請求中的參數(shù)中是否有key值,若有,則校驗通過,若沒有,則校驗不通過;所述key值為數(shù)據(jù)加解密的關(guān)鍵信息,其由發(fā)起數(shù)據(jù)寫入請求的調(diào)用者自定義。key值由調(diào)用者自定義的好處是具有更高的安全性,因為由調(diào)用者自己定義的key值即使泄露,也僅是影響與調(diào)用者相關(guān)的數(shù)據(jù),不會影響區(qū)塊鏈平臺中的其他數(shù)據(jù),如果由區(qū)塊鏈平臺存儲key值,一旦泄露,將會使區(qū)塊鏈平臺內(nèi)的數(shù)據(jù)失去安全性。另外,參數(shù)校驗還可以包括校驗預(yù)先設(shè)定好的其他必要參數(shù),由區(qū)塊鏈平臺的開發(fā)者預(yù)先設(shè)定好。
數(shù)據(jù)加密處理包括:根據(jù)AES算法利用key值對數(shù)據(jù)寫入請求中的主體數(shù)據(jù)進行加密。在進行數(shù)據(jù)加密處理后還在數(shù)據(jù)寫入請求中增加一個validate數(shù)據(jù),該validate數(shù)據(jù)的值為對加密數(shù)據(jù)進行md5加密后得到的字符串,validate數(shù)據(jù)可以用于后面的數(shù)據(jù)異常檢測時的標(biāo)識。
數(shù)據(jù)讀取步驟包括:
B1、調(diào)用讀取接口接收數(shù)據(jù)讀取請求。
B2、對數(shù)據(jù)讀取請求中的參數(shù)進行參數(shù)校驗,若校驗不通過,則結(jié)束流程。參數(shù)校驗為:判斷數(shù)據(jù)讀取請求中的參數(shù)中是否有key值,若有,則校驗通過,若沒有,則校驗不通過;該key值為數(shù)據(jù)加解密的關(guān)鍵信息,其由發(fā)起數(shù)據(jù)讀取請求的調(diào)用者自定義。
B3、根據(jù)數(shù)據(jù)讀取請求中的參數(shù)判斷是否需要解密,若是,則執(zhí)行步驟B4,若否,則執(zhí)行步驟B5。
B4、判斷數(shù)據(jù)讀取請求所請求的數(shù)據(jù)是否為結(jié)構(gòu)化數(shù)據(jù),若是,則將該數(shù)據(jù)讀取請求標(biāo)記為待解密數(shù)據(jù)讀取請求,用于當(dāng)返回目標(biāo)數(shù)據(jù)時進行數(shù)據(jù)解密處理;若否,則執(zhí)行步驟B5。
B5、根據(jù)數(shù)據(jù)讀取請求在緩存中檢索是否有目標(biāo)數(shù)據(jù),若是,則返回目標(biāo)數(shù)據(jù),若否,則執(zhí)行步驟B6。
B6、根據(jù)數(shù)據(jù)讀取請求在數(shù)據(jù)庫中檢索是否有目標(biāo)數(shù)據(jù),若是,則返回目標(biāo)數(shù)據(jù),若否,則結(jié)束流程。
在返回目標(biāo)數(shù)據(jù)時,如果為待解密數(shù)據(jù)讀取請求,則根據(jù)key值對目標(biāo)數(shù)據(jù)進行解密處理后再返回。
基于區(qū)塊鏈平臺的數(shù)據(jù)處理方法還包括定時任務(wù)執(zhí)行步驟:
當(dāng)觸發(fā)數(shù)據(jù)異常檢測任務(wù)時,檢測緩存中的數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)是否一致,若不一致,則從數(shù)據(jù)庫中將不一致的數(shù)據(jù)重新同步至緩存中;
當(dāng)觸發(fā)第三方區(qū)塊鏈數(shù)據(jù)同步任務(wù)時,將數(shù)據(jù)庫中的數(shù)據(jù)同步至第三方區(qū)塊鏈平臺,供第三方區(qū)塊鏈平臺使用。第三方區(qū)塊鏈平臺可以是公用區(qū)塊鏈平臺,各個行業(yè)的區(qū)塊鏈平臺,私有區(qū)塊鏈平臺等。
基于本發(fā)明數(shù)據(jù)處理方法的區(qū)塊鏈平臺,其具有高安全性、高穩(wěn)定性、高效率和高共享性,其中的公開、透明、不可篡改的分布式數(shù)據(jù)存取、及數(shù)據(jù)加解密等獨有的特性可做為與其它企事業(yè)單位合作的良好信用基礎(chǔ)。還可以衍生各種新的生機,如:提供存儲在行業(yè)區(qū)塊鏈平臺上的用戶消費數(shù)據(jù)給金融銀行機構(gòu)做消費與信用評估、通過提供存儲在公用區(qū)塊鏈平臺上的產(chǎn)品溯源數(shù)據(jù)給消費者提供正品品質(zhì)保證、通過提供存儲在公用區(qū)塊鏈平臺上的資產(chǎn)管理數(shù)據(jù)給銀行/社會金融機構(gòu)實現(xiàn)貸款/融資、提供存儲在私有區(qū)塊鏈平臺上的行為記錄給第三方專業(yè)的數(shù)據(jù)分析/挖掘單位進行大數(shù)據(jù)分析/挖掘。
對本領(lǐng)域的技術(shù)人員來說,可根據(jù)以上描述的技術(shù)方案以及構(gòu)思,做出其它各種相應(yīng)的改變以及形變,而所有的這些改變以及形變都應(yīng)該屬于本發(fā)明權(quán)利要求的保護范圍之內(nèi)。