本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種業(yè)務(wù)數(shù)據(jù)存儲(chǔ)方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)帶寬得到大幅優(yōu)化,網(wǎng)絡(luò)業(yè)務(wù)趨于多樣化,服務(wù)器能夠?yàn)橛脩籼峁┴S富的業(yè)務(wù)并快捷地為用戶處理所需業(yè)務(wù)。
在處理用戶的業(yè)務(wù)數(shù)據(jù)的過(guò)程中,為了備份本次業(yè)務(wù)處理過(guò)程,當(dāng)接收到用戶的業(yè)務(wù)數(shù)據(jù)時(shí),服務(wù)器可以將業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到一條區(qū)塊鏈中。
在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題:
由于區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)是按照時(shí)間順序相連的區(qū)塊,服務(wù)器需要串行地將業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到該區(qū)塊鏈中,導(dǎo)致服務(wù)器的運(yùn)行效率低。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明實(shí)施例提供了一種業(yè)務(wù)數(shù)據(jù)存儲(chǔ)方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備。采用多條區(qū)塊鏈存儲(chǔ)業(yè)務(wù)數(shù)據(jù)的方式,基于各個(gè)區(qū)塊鏈的區(qū)塊生成過(guò)程互不影響的特征,能夠并行地在各個(gè)區(qū)塊鏈上處理大量用戶的業(yè)務(wù)數(shù)據(jù),提高了服務(wù)器的運(yùn)行效率。所述技術(shù)方案如下:
第一方面,提供了一種業(yè)務(wù)數(shù)據(jù)存儲(chǔ)方法,所述方法包括:
接收用戶的業(yè)務(wù)數(shù)據(jù);
根據(jù)所述用戶的用戶屬性,從多條區(qū)塊鏈中確定與所述業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈;
基于所述業(yè)務(wù)數(shù)據(jù)以及所述目標(biāo)區(qū)塊鏈中第一區(qū)塊的區(qū)塊頭特征值,在所述目標(biāo)區(qū)塊鏈上生成第二區(qū)塊,所述第一區(qū)塊為所述第二區(qū)塊的上一個(gè)區(qū)塊,所述第二區(qū)塊用于記錄所述業(yè)務(wù)數(shù)據(jù)。
第二方面,提供了一種業(yè)務(wù)數(shù)據(jù)存儲(chǔ)裝置,所述裝置包括:
接收模塊,用于接收用戶的業(yè)務(wù)數(shù)據(jù);
確定模塊,用于根據(jù)所述用戶的用戶屬性,從多條區(qū)塊鏈中確定與所述業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈;
存儲(chǔ)模塊,用于基于所述業(yè)務(wù)數(shù)據(jù)以及所述目標(biāo)區(qū)塊鏈中第一區(qū)塊的區(qū)塊頭特征值,在所述目標(biāo)區(qū)塊鏈上生成第二區(qū)塊,所述第一區(qū)塊為所述第二區(qū)塊的上一個(gè)區(qū)塊,所述第二區(qū)塊用于記錄所述業(yè)務(wù)數(shù)據(jù)。
第三方面,提供了一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)中存儲(chǔ)有至少一條指令、至少一段程序、代碼集或指令集,所述至少一條指令、所述至少一段程序、所述代碼集或指令集由處理器加載并執(zhí)行以實(shí)現(xiàn)如上述第一方面中任一種可能實(shí)現(xiàn)方式的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)方法。
第四方面,提供了一種電子設(shè)備,所述電子設(shè)備包括處理器和存儲(chǔ)器,所述存儲(chǔ)器中存儲(chǔ)有至少一條指令、至少一段程序、代碼集或指令集,所述至少一條指令、所述至少一段程序、所述代碼集或指令集由所述處理器加載并執(zhí)行以實(shí)現(xiàn)如上述第一方面中任一種可能實(shí)現(xiàn)方式的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)方法。
本發(fā)明實(shí)施例通過(guò)在一個(gè)服務(wù)器或一個(gè)業(yè)務(wù)數(shù)據(jù)處理系統(tǒng)中配置多條區(qū)塊鏈,可以將相同用戶屬性的用戶的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到與一條區(qū)塊鏈中,進(jìn)而使得多條區(qū)塊鏈上可以分別存儲(chǔ)有不同用戶屬性的用戶的業(yè)務(wù)數(shù)據(jù),一方面,由于各個(gè)區(qū)塊鏈在生成區(qū)塊的過(guò)程互不影響,即使短期內(nèi)接收到大量用戶的業(yè)務(wù)數(shù)據(jù),也能按照用戶屬性將業(yè)務(wù)數(shù)據(jù)分流至各個(gè)區(qū)塊鏈中,進(jìn)而并行地在各個(gè)區(qū)塊鏈中存儲(chǔ)業(yè)務(wù)數(shù)據(jù),使得服務(wù)器的性能不再受限于區(qū)塊鏈的鏈?zhǔn)浇Y(jié)構(gòu),提高了服務(wù)器的運(yùn)行效率。另一方面,能夠針對(duì)性地分析一類用戶群的業(yè)務(wù)數(shù)據(jù),且相同用戶屬性的用戶往往在業(yè)務(wù)數(shù)據(jù)上具有相似性,因此依據(jù)用戶屬性也可以更方便地處理業(yè)務(wù)數(shù)據(jù)。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的一種業(yè)務(wù)數(shù)據(jù)處理系統(tǒng)的示意圖;
圖2是本發(fā)明實(shí)施例提供的一種業(yè)務(wù)數(shù)據(jù)存儲(chǔ)方法的流程圖;
圖3是本發(fā)明實(shí)施例提供的一種業(yè)務(wù)請(qǐng)求處理流程圖;
圖4是本發(fā)明實(shí)施例提供的一種業(yè)務(wù)數(shù)據(jù)存儲(chǔ)裝置的框圖;
圖5a是本發(fā)明實(shí)施例提供的一種業(yè)務(wù)數(shù)據(jù)存儲(chǔ)裝置的框圖;
圖5b是本發(fā)明實(shí)施例提供的一種業(yè)務(wù)數(shù)據(jù)存儲(chǔ)裝置的框圖;
圖6是本發(fā)明實(shí)施例提供的一種電子設(shè)備600的框圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
圖1是本發(fā)明實(shí)施例提供的一種業(yè)務(wù)數(shù)據(jù)處理系統(tǒng)的示意圖,如圖1所示,該業(yè)務(wù)數(shù)據(jù)處理系統(tǒng)可以由多個(gè)子系統(tǒng)構(gòu)成,每個(gè)子系統(tǒng)可以按照業(yè)用戶的用戶屬性配置有多條區(qū)塊鏈,任兩個(gè)子系統(tǒng)之間可以配置相同的一條區(qū)塊鏈,使得配置有同一區(qū)塊鏈的多個(gè)子系統(tǒng)可以針對(duì)該區(qū)塊鏈所存儲(chǔ)的業(yè)務(wù)數(shù)據(jù)達(dá)成共識(shí),并基于業(yè)務(wù)數(shù)據(jù)為用戶提供服務(wù)。
例如,該業(yè)務(wù)數(shù)據(jù)處理系統(tǒng)可以為支付業(yè)務(wù)數(shù)據(jù)處理系統(tǒng),該支付業(yè)務(wù)數(shù)據(jù)處理系統(tǒng)包括子系統(tǒng)101、子系統(tǒng)102、子系統(tǒng)103和子系統(tǒng)104。該子系統(tǒng)101可以包括網(wǎng)絡(luò)服務(wù)商部署的節(jié)點(diǎn)1011、節(jié)點(diǎn)1012和節(jié)點(diǎn)1013,這三個(gè)節(jié)點(diǎn)分別配置有區(qū)塊鏈a、區(qū)塊鏈b和區(qū)塊鏈c;該子系統(tǒng)102可以包括銀行x部署的節(jié)點(diǎn)1021、節(jié)點(diǎn)1022和節(jié)點(diǎn)1023,這三個(gè)節(jié)點(diǎn)分別配置有區(qū)塊鏈a、區(qū)塊鏈b和區(qū)塊鏈c;該子系統(tǒng)103可以包括銀行y部署的節(jié)點(diǎn)1031、節(jié)點(diǎn)1032和節(jié)點(diǎn)1033,這三個(gè)節(jié)點(diǎn)分別配置有區(qū)塊鏈a、區(qū)塊鏈b和區(qū)塊鏈c;該子系統(tǒng)104可以包括監(jiān)管機(jī)構(gòu)部署的節(jié)點(diǎn)1041、節(jié)點(diǎn)1042和節(jié)點(diǎn)1043,這三個(gè)節(jié)點(diǎn)分別配置有區(qū)塊鏈a、區(qū)塊鏈b和區(qū)塊鏈c。當(dāng)然,各個(gè)子系統(tǒng)也可以由同一個(gè)服務(wù)機(jī)構(gòu)部署,每個(gè)節(jié)點(diǎn)可以被提供為一個(gè)服務(wù)器。
其中,區(qū)塊鏈a、區(qū)塊鏈b和區(qū)塊鏈c所存儲(chǔ)的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的用戶屬性各不相同,如,區(qū)塊鏈a用于存儲(chǔ)用戶屬性為a1的用戶的業(yè)務(wù)數(shù)據(jù)和用戶屬性為a2的用戶的業(yè)務(wù)數(shù)據(jù),區(qū)塊鏈b用于存儲(chǔ)用戶屬性為b的用戶的業(yè)務(wù)數(shù)據(jù),區(qū)塊鏈c用于存儲(chǔ)用戶屬性為c的用戶的業(yè)務(wù)數(shù)據(jù)。本發(fā)明實(shí)施例可以采用多種用戶屬性來(lái)劃分各個(gè)區(qū)塊鏈,例如,當(dāng)前的用戶位置、用戶登錄的用戶設(shè)備或用戶等級(jí)等,以用戶位置劃分區(qū)塊鏈為例,a1可以為地區(qū)1,a2可以為地區(qū)2,b可以為地區(qū)3,c可以為地區(qū)4,也就是說(shuō),區(qū)塊鏈a可以存儲(chǔ)位于地區(qū)1和地區(qū)2的用戶的業(yè)務(wù)數(shù)據(jù),區(qū)塊鏈b可以存儲(chǔ)位于地區(qū)3的用戶的業(yè)務(wù)數(shù)據(jù),區(qū)塊鏈c可以存儲(chǔ)位于地區(qū)4的用戶的業(yè)務(wù)數(shù)據(jù)。事實(shí)上,為了便于多個(gè)服務(wù)機(jī)構(gòu)之間共享數(shù)據(jù),該多個(gè)子系統(tǒng)之間配置的多條區(qū)塊鏈中也可以包括一條共享區(qū)塊鏈,該共享區(qū)塊鏈用于存儲(chǔ)多個(gè)服務(wù)機(jī)構(gòu)之間共享的業(yè)務(wù)數(shù)據(jù),例如,該區(qū)塊鏈a為共享區(qū)塊鏈,除了可以存儲(chǔ)位于地區(qū)1的用戶的業(yè)務(wù)數(shù)據(jù),也可以存儲(chǔ)位于地區(qū)2的用戶的業(yè)務(wù)數(shù)據(jù),且對(duì)于不能確定具體位置的用戶的業(yè)務(wù)數(shù)據(jù),也可以存儲(chǔ)到該共享區(qū)塊鏈中。
本發(fā)明實(shí)施例中,該多條區(qū)塊鏈可以均為至少一個(gè)服務(wù)機(jī)構(gòu)提供數(shù)據(jù)服務(wù)。例如,區(qū)塊鏈a、區(qū)塊鏈b和區(qū)塊鏈c均為網(wǎng)絡(luò)服務(wù)商、銀行x、銀行y和監(jiān)管機(jī)構(gòu)提供數(shù)據(jù)服務(wù)?;蛘?,多條區(qū)塊鏈可以為至少一個(gè)第一服務(wù)機(jī)構(gòu)提供數(shù)據(jù)服務(wù),多條區(qū)塊鏈中的部分區(qū)塊鏈為至少一個(gè)第一服務(wù)機(jī)構(gòu)和至少一個(gè)第二服務(wù)機(jī)構(gòu)提供數(shù)據(jù)服務(wù),例如,銀行y未配置區(qū)塊鏈c,其他服務(wù)機(jī)構(gòu)的配置不變,則該至少一個(gè)第一服務(wù)機(jī)構(gòu)可以為網(wǎng)絡(luò)服務(wù)商、銀行x和監(jiān)管機(jī)構(gòu),區(qū)塊鏈a、區(qū)塊鏈b和區(qū)塊鏈c均可以為這三個(gè)服務(wù)機(jī)構(gòu)提供數(shù)據(jù)服務(wù);該至少一個(gè)第二服務(wù)機(jī)構(gòu)為銀行y,區(qū)塊鏈a和區(qū)塊鏈b均可以為網(wǎng)絡(luò)服務(wù)商、銀行x、監(jiān)管機(jī)構(gòu)和銀行y提供數(shù)據(jù)服務(wù)。也就是說(shuō),一個(gè)機(jī)構(gòu)部署的子系統(tǒng)上可以配置多條區(qū)塊鏈中的部分或者全部,進(jìn)而基于子系統(tǒng)上所配置的區(qū)塊鏈進(jìn)行數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢等操作。
在實(shí)際的應(yīng)用場(chǎng)景中,每個(gè)子系統(tǒng)還可以包括至少一個(gè)邏輯節(jié)點(diǎn),該邏輯點(diǎn)與其所在子系統(tǒng)中的各個(gè)節(jié)點(diǎn)之間設(shè)置有網(wǎng)絡(luò)連接,用于接收用戶的業(yè)務(wù)數(shù)據(jù),并按照該用戶的用戶屬性將該業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)發(fā)給該子系統(tǒng)中對(duì)應(yīng)的節(jié)點(diǎn)。該子系統(tǒng)中配置區(qū)塊鏈的節(jié)點(diǎn)用于將接收到的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至區(qū)塊鏈中,并基于該業(yè)務(wù)數(shù)據(jù)進(jìn)行響應(yīng)。本發(fā)明實(shí)施例中,每條區(qū)塊鏈對(duì)應(yīng)的多個(gè)節(jié)點(diǎn)可以獨(dú)立運(yùn)行,任兩條區(qū)塊鏈對(duì)應(yīng)的節(jié)點(diǎn)互不影響,如,在當(dāng)前時(shí)刻,節(jié)點(diǎn)1011為運(yùn)行于領(lǐng)導(dǎo)狀態(tài)的節(jié)點(diǎn),用于指示區(qū)塊鏈a對(duì)應(yīng)的運(yùn)行于跟隨狀態(tài)的節(jié)點(diǎn)如何工作;節(jié)點(diǎn)1022也為運(yùn)行于領(lǐng)導(dǎo)狀態(tài)的節(jié)點(diǎn),用于指示區(qū)塊鏈b對(duì)應(yīng)的運(yùn)行于跟隨狀態(tài)的節(jié)點(diǎn)。在區(qū)塊鏈a的選舉過(guò)程中,運(yùn)行于領(lǐng)導(dǎo)狀態(tài)的節(jié)點(diǎn)正在發(fā)生切換,但并不影響其他區(qū)塊鏈對(duì)應(yīng)的節(jié)點(diǎn)如何工作,如,此時(shí)區(qū)塊鏈b對(duì)應(yīng)的節(jié)點(diǎn)可能正在基于領(lǐng)導(dǎo)狀態(tài)的節(jié)點(diǎn)正常工作。
在業(yè)務(wù)數(shù)據(jù)處理過(guò)程中,以節(jié)點(diǎn)1011接收到用戶的業(yè)務(wù)數(shù)據(jù)為例,節(jié)點(diǎn)1011可以將該業(yè)務(wù)數(shù)據(jù)重定向至配置有區(qū)塊鏈a、且運(yùn)行于領(lǐng)導(dǎo)狀態(tài)的節(jié)點(diǎn)(假設(shè)為1021),由1021向配置有區(qū)塊鏈a的各個(gè)節(jié)點(diǎn)廣播業(yè)務(wù)數(shù)據(jù)存儲(chǔ)請(qǐng)求,該業(yè)務(wù)數(shù)據(jù)存儲(chǔ)請(qǐng)求用于請(qǐng)求將該業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至區(qū)塊鏈a中,如果節(jié)點(diǎn)1021可以接收到區(qū)塊鏈a對(duì)應(yīng)的所有節(jié)點(diǎn)中預(yù)設(shè)數(shù)量的節(jié)點(diǎn)對(duì)該業(yè)務(wù)數(shù)據(jù)存儲(chǔ)請(qǐng)求的確認(rèn)消息,則可以將該業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至自身的區(qū)塊鏈a中,基于該業(yè)務(wù)數(shù)據(jù)對(duì)用戶進(jìn)行響應(yīng),并向該各個(gè)節(jié)點(diǎn)廣播業(yè)務(wù)數(shù)據(jù)存儲(chǔ)指令,使得區(qū)塊鏈a對(duì)應(yīng)的各個(gè)節(jié)點(diǎn)將該業(yè)務(wù)數(shù)據(jù)也存儲(chǔ)至自身的區(qū)塊鏈a中。其中,預(yù)設(shè)數(shù)量是指已配置的達(dá)成共識(shí)所要求的節(jié)點(diǎn)數(shù)量,本發(fā)明實(shí)施例不限定該預(yù)設(shè)數(shù)量的具體值,例如,以區(qū)塊鏈基于pbft(practicalbyzantinefaulttolerancealgorithm,拜占庭容錯(cuò)共識(shí)算法)為例,一條區(qū)塊鏈對(duì)應(yīng)的全部節(jié)點(diǎn)數(shù)量為3f+1,則預(yù)設(shè)數(shù)量可以為大于等于2f+1小于等于3f+1的數(shù)值,f為任意正整數(shù)。
需要說(shuō)明的是,上述子系統(tǒng)也可以為一個(gè)節(jié)點(diǎn),也即是,可以在該一個(gè)節(jié)點(diǎn)上配置有多條區(qū)塊鏈,并執(zhí)行一個(gè)子系統(tǒng)所執(zhí)行的功能。
圖2是本發(fā)明實(shí)施例提供的一種業(yè)務(wù)數(shù)據(jù)存儲(chǔ)方法的流程圖,該方法可以應(yīng)用于圖1所示的業(yè)務(wù)數(shù)據(jù)處理系統(tǒng)中的任一子系統(tǒng),以該子系統(tǒng)為服務(wù)器為例,包括以下步驟:
201、服務(wù)器接收用戶的業(yè)務(wù)數(shù)據(jù)。
該業(yè)務(wù)數(shù)據(jù)是指基于用戶所需業(yè)務(wù)生成的數(shù)據(jù)。在實(shí)際的應(yīng)用場(chǎng)景中,該業(yè)務(wù)數(shù)據(jù)可以有多種形式,如,該業(yè)務(wù)數(shù)據(jù)可以為用戶對(duì)某一業(yè)務(wù)的發(fā)起請(qǐng)求、用戶對(duì)該業(yè)務(wù)的確認(rèn)請(qǐng)求、用戶需要上傳至服務(wù)器的本地?cái)?shù)據(jù)或用戶輸入數(shù)據(jù)等。以支付業(yè)務(wù)的應(yīng)用場(chǎng)景為例,用戶a向用戶b轉(zhuǎn)賬時(shí),該業(yè)務(wù)數(shù)據(jù)可以是用戶a發(fā)起的轉(zhuǎn)賬請(qǐng)求、用戶b的確認(rèn)轉(zhuǎn)賬請(qǐng)求,也可以是用戶a上傳的用于支付轉(zhuǎn)賬金額的支付密碼。
為了進(jìn)一步提高業(yè)務(wù)數(shù)據(jù)處理過(guò)程的安全性,避免接收到惡意用戶偽裝成正常用戶發(fā)來(lái)的業(yè)務(wù)數(shù)據(jù),可以驗(yàn)證發(fā)送業(yè)務(wù)數(shù)據(jù)的用戶身份。因此,該步驟也可以具體為:服務(wù)器接收業(yè)務(wù)數(shù)據(jù)包;從業(yè)務(wù)數(shù)據(jù)包中獲取業(yè)務(wù)數(shù)據(jù)和用戶對(duì)業(yè)務(wù)數(shù)據(jù)的簽名。該業(yè)務(wù)數(shù)據(jù)包是指用戶發(fā)送的完整數(shù)據(jù),該簽名可以是用戶所在設(shè)備基于用戶私鑰對(duì)業(yè)務(wù)數(shù)據(jù)的簽名,使得服務(wù)器能夠基于與該用戶私鑰配對(duì)的用戶公鑰對(duì)該簽名進(jìn)行驗(yàn)證,具體地,服務(wù)器可以采用該用戶公鑰解析簽名,得到摘要信息,并按照與用戶側(cè)約定的算法計(jì)算出業(yè)務(wù)數(shù)據(jù)的摘要信息,將兩個(gè)摘要信息進(jìn)行匹配,如果匹配成功,則確定該簽名驗(yàn)證通過(guò),進(jìn)行步驟202,如果匹配失敗,則確定該簽名驗(yàn)證失敗,說(shuō)明該業(yè)務(wù)數(shù)據(jù)很可能來(lái)自于惡意用戶或經(jīng)過(guò)了惡意用戶的篡改,則服務(wù)器可以忽略該業(yè)務(wù)數(shù)據(jù),或者將該業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至黑名單業(yè)務(wù)數(shù)據(jù)庫(kù),該黑名單業(yè)務(wù)數(shù)據(jù)庫(kù)用于存儲(chǔ)惡意用戶操作過(guò)的業(yè)務(wù)數(shù)據(jù)。
需要說(shuō)明的是,接收業(yè)務(wù)數(shù)據(jù)的設(shè)備也可以是圖1所示的邏輯節(jié)點(diǎn)。
202、服務(wù)器根據(jù)用戶的用戶屬性,從多條區(qū)塊鏈中確定與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈。
該步驟中,目標(biāo)區(qū)塊鏈?zhǔn)侵副敬斡糜诖鎯?chǔ)該業(yè)務(wù)數(shù)據(jù)的區(qū)塊鏈。由于用戶屬性可以表現(xiàn)用戶的特征,同一用戶屬性的多個(gè)用戶可以作為一類用戶群,為了針對(duì)性地分析一類用戶群的業(yè)務(wù)數(shù)據(jù),可以將同一用戶屬性的用戶的業(yè)務(wù)數(shù)據(jù)確定到一條區(qū)塊鏈上。而且,相同用戶屬性的用戶往往在業(yè)務(wù)數(shù)據(jù)上具有相似性,因此依據(jù)用戶屬性可以更方便地處理業(yè)務(wù)數(shù)據(jù)。例如,用戶a的用戶屬性值為x1,用戶b的用戶屬性為x2,用戶c的用戶屬性為x1,因此可以將相同屬性的用戶a和用戶c的業(yè)務(wù)數(shù)據(jù)確定到一條區(qū)塊鏈上,將用戶b的業(yè)務(wù)數(shù)據(jù)確定到另一條區(qū)塊鏈上。
具體地,服務(wù)器可以獲取用戶的用戶屬性,根據(jù)該用戶的用戶屬性查詢預(yù)設(shè)對(duì)應(yīng)關(guān)系,判斷預(yù)設(shè)對(duì)應(yīng)關(guān)系中是否存在與該用戶的用戶屬性匹配的區(qū)塊鏈,如果是,將與該用戶的用戶屬性匹配的區(qū)塊鏈確定為目標(biāo)區(qū)塊鏈,該預(yù)設(shè)對(duì)應(yīng)關(guān)系用于指示用戶屬性與區(qū)塊鏈的對(duì)應(yīng)關(guān)系,該預(yù)設(shè)對(duì)應(yīng)關(guān)系可以人工地預(yù)先配置在服務(wù)器上。本發(fā)明實(shí)施例對(duì)預(yù)設(shè)對(duì)應(yīng)關(guān)系不做具體限定。例如,參見(jiàn)表1所示的預(yù)設(shè)對(duì)應(yīng)關(guān)系:
表1
上述確定過(guò)程中,服務(wù)器可以根據(jù)用戶的用戶屬性,在預(yù)設(shè)對(duì)應(yīng)關(guān)系中查詢是否存在與該用戶的用戶屬性相同的用戶屬性,如果是,則獲取該相同的用戶屬性對(duì)應(yīng)的區(qū)塊鏈標(biāo)識(shí),確定出目標(biāo)區(qū)塊鏈。
事實(shí)上,為了減少服務(wù)器側(cè)的參數(shù)配置,提高服務(wù)器查詢預(yù)設(shè)對(duì)應(yīng)關(guān)系的效率并減少對(duì)存儲(chǔ)空間的占用,服務(wù)器所配置的預(yù)設(shè)對(duì)應(yīng)關(guān)系也可以不涵蓋用戶屬性的所有可能取值,而是根據(jù)服務(wù)需求配置幾個(gè)用戶屬性值與區(qū)塊鏈的對(duì)應(yīng)關(guān)系(如,用戶屬性取值范圍為國(guó)內(nèi)的各個(gè)地區(qū),但按照服務(wù)需求配置地區(qū)a和地區(qū)b分別對(duì)應(yīng)的區(qū)塊鏈即可),對(duì)于未配置對(duì)應(yīng)用戶屬性的區(qū)塊鏈,可以將用戶的業(yè)務(wù)數(shù)據(jù)默認(rèn)存儲(chǔ)至共享區(qū)塊鏈,也即是,如果不存在與該用戶的用戶屬性匹配的區(qū)塊鏈,服務(wù)器可以將多條區(qū)塊鏈中的共享區(qū)塊鏈確定為目標(biāo)區(qū)塊鏈?;蛘撸瑸榱藗浞菀呀邮盏降臉I(yè)務(wù)數(shù)據(jù),避免用戶抵賴或篡改業(yè)務(wù)處理流程,如果服務(wù)器獲取某一用戶的用戶屬性失敗,也可以將該業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至共享區(qū)塊鏈。
需要說(shuō)明的是,確定目標(biāo)區(qū)塊鏈的設(shè)備也可以是圖1所示的邏輯節(jié)點(diǎn),進(jìn)而由該邏輯節(jié)點(diǎn)將該業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)發(fā)至其所在子系統(tǒng)中存儲(chǔ)該目標(biāo)區(qū)塊鏈的節(jié)點(diǎn)。對(duì)于邏輯節(jié)點(diǎn)來(lái)說(shuō),可以由節(jié)點(diǎn)標(biāo)識(shí)來(lái)標(biāo)識(shí)一個(gè)區(qū)塊鏈,因此邏輯節(jié)點(diǎn)所配置的預(yù)設(shè)對(duì)應(yīng)關(guān)系的形式可以為數(shù)據(jù)類型和節(jié)點(diǎn)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
在獲取用戶屬性時(shí),服務(wù)器既可以從業(yè)務(wù)數(shù)據(jù)包中獲取用戶屬性,也可以根據(jù)用戶的用戶標(biāo)識(shí)查詢對(duì)應(yīng)的用戶屬性。進(jìn)而,可以根據(jù)獲取的用戶屬性確定目標(biāo)區(qū)塊鏈。本發(fā)明實(shí)施例對(duì)采用哪一種用戶屬性進(jìn)行確定不做具體限定,例如,具體確定方式可以參見(jiàn)以下確定方式1-確定方式4:
確定方式1、根據(jù)第一確定方式,服務(wù)器將匹配用戶的用戶位置的區(qū)塊鏈確定為與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈。
該確定方式中,用戶位置是指用戶所在的地理位置。服務(wù)器可以采用多種方法獲取用戶位置,例如,從業(yè)務(wù)數(shù)據(jù)包中提取出用戶的用戶位置;或者,根據(jù)業(yè)務(wù)數(shù)據(jù)包中的網(wǎng)絡(luò)地址,獲取該網(wǎng)絡(luò)地址對(duì)應(yīng)的用戶位置;或者,根據(jù)該用戶的用戶標(biāo)識(shí),獲取該用戶最近上報(bào)的用戶位置;或者根據(jù)該用戶的用戶標(biāo)識(shí),獲取該用戶的常用位置作為該用戶的用戶位置。進(jìn)而,服務(wù)器可以在預(yù)設(shè)對(duì)應(yīng)關(guān)系中查詢是否存在該用戶的用戶位置匹配的區(qū)塊鏈,如果是,則將配置的區(qū)塊鏈確定為與目標(biāo)區(qū)塊鏈。其中,服務(wù)器可以將用戶上報(bào)的用戶位置存儲(chǔ)到已配置的用戶數(shù)據(jù)庫(kù)中,使得服務(wù)器可以分析出已上報(bào)的用戶位置中數(shù)量最多的用戶位置作為用戶的常用位置。該用戶位置在存儲(chǔ)時(shí)可以附帶當(dāng)前的時(shí)間戳,以方便服務(wù)器按照時(shí)間戳獲取用戶最近上報(bào)的用戶位置。
在采用用戶位置這一用戶屬性時(shí),該預(yù)設(shè)對(duì)應(yīng)關(guān)系可以為地理位置與區(qū)塊鏈標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系,如,地區(qū)a對(duì)應(yīng)區(qū)塊鏈a,地區(qū)b對(duì)應(yīng)區(qū)塊鏈b。
通過(guò)將與用戶的用戶位置匹配的區(qū)塊鏈作為目標(biāo)區(qū)塊鏈,相同用戶位置的用戶的業(yè)務(wù)數(shù)據(jù)可以確定到同一區(qū)塊鏈中,進(jìn)而可以針對(duì)性地對(duì)同一地區(qū)的用戶的業(yè)務(wù)數(shù)據(jù)進(jìn)行分析,從而制定該地區(qū)的運(yùn)營(yíng)策略。當(dāng)然,為了盡可能縮短交互所需的路由距離,高效地為該地區(qū)的用戶提供服務(wù),同時(shí)減少不同區(qū)塊鏈對(duì)應(yīng)用戶之間的交互,使業(yè)務(wù)數(shù)據(jù)處理過(guò)程更簡(jiǎn)便,對(duì)于每條區(qū)塊鏈,可以將配置該區(qū)塊鏈的服務(wù)器部署在該區(qū)塊鏈對(duì)應(yīng)的地區(qū)。
確定方式2、根據(jù)第二確定方式,服務(wù)器將匹配用戶的用戶設(shè)備的區(qū)塊鏈確定為與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈。
該確定方式中,用戶設(shè)備是指用戶登錄的設(shè)備,如手機(jī)、平板電腦或臺(tái)式電腦等,進(jìn)一步地,還可以具體到哪個(gè)品牌的設(shè)備,如品牌a的手機(jī)、品牌b的手機(jī)。服務(wù)器可以從業(yè)務(wù)數(shù)據(jù)包中確定用戶登錄的用戶設(shè)備,進(jìn)而確定與該用戶設(shè)備匹配的目標(biāo)區(qū)塊鏈。在采用用戶設(shè)備這一用戶屬性時(shí),該預(yù)設(shè)對(duì)應(yīng)關(guān)系可以為用戶設(shè)備類型與區(qū)塊鏈標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系,如,品牌a的手機(jī)對(duì)應(yīng)區(qū)塊鏈a,品牌b的手機(jī)對(duì)應(yīng)區(qū)塊鏈b,臺(tái)式電腦對(duì)應(yīng)區(qū)塊鏈c。
通過(guò)將與用戶的用戶設(shè)備匹配的區(qū)塊鏈作為目標(biāo)區(qū)塊鏈,使用同類用戶設(shè)備的用戶的業(yè)務(wù)數(shù)據(jù)可以確定到同一區(qū)塊鏈中,進(jìn)而可以針對(duì)性地對(duì)使用同類設(shè)備的用戶的業(yè)務(wù)數(shù)據(jù)進(jìn)行分析,從而制定相應(yīng)手機(jī)用戶群、品牌用戶群或固定端臺(tái)式電腦用戶群的運(yùn)營(yíng)策略。
確定方式3、根據(jù)第三確定方式,服務(wù)器將匹配用戶的用戶等級(jí)的區(qū)塊鏈確定為與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈。
其中,該用戶等級(jí)可以為用戶征信等級(jí)、用戶會(huì)員等級(jí)或用戶經(jīng)驗(yàn)等級(jí)等,用戶征信等級(jí)用于指示用戶的信用高低,用戶會(huì)員等級(jí)用于指示用戶在應(yīng)用中的使用功能權(quán)限,用戶經(jīng)驗(yàn)等級(jí)用于指示用戶使用應(yīng)用的程度。服務(wù)器可以根據(jù)該用戶的用戶標(biāo)識(shí),從公安機(jī)關(guān)或金融機(jī)構(gòu)的征信數(shù)據(jù)庫(kù)獲取該用戶征信等級(jí);根據(jù)該用戶標(biāo)識(shí)從用戶數(shù)據(jù)庫(kù)中獲取用戶會(huì)員等級(jí)或用戶經(jīng)驗(yàn)等級(jí)。具體以哪一種用戶等級(jí)作為確定依據(jù)本發(fā)明實(shí)施例不做限定,可以視服務(wù)器的服務(wù)需求人工決策。例如,提供金融應(yīng)用或租賃應(yīng)用的服務(wù)器可以采用用戶征信等級(jí);提供社交應(yīng)用或多媒體資源應(yīng)用的服務(wù)器可以采用用戶會(huì)員等級(jí);提供社交應(yīng)用或游戲應(yīng)用的服務(wù)器可以采用用戶經(jīng)驗(yàn)等級(jí)。在采用用戶等級(jí)這一用戶屬性時(shí),該預(yù)設(shè)對(duì)應(yīng)關(guān)系可以為用戶等級(jí)值與區(qū)塊鏈標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系,如,用戶征信等級(jí)1對(duì)應(yīng)區(qū)塊鏈a,用戶征信等級(jí)2對(duì)應(yīng)區(qū)塊鏈b。
通過(guò)將與用戶的用戶等級(jí)匹配的區(qū)塊鏈作為目標(biāo)區(qū)塊鏈,同一用戶等級(jí)的用戶的業(yè)務(wù)數(shù)據(jù)可以確定到同一區(qū)塊鏈中,進(jìn)而可以針對(duì)性地對(duì)相同用戶等級(jí)的用戶的業(yè)務(wù)數(shù)據(jù)進(jìn)行分析,從而制定相應(yīng)每個(gè)用戶等級(jí)的用戶群的運(yùn)營(yíng)策略。
確定方式4、根據(jù)第四確定方式,服務(wù)器將匹配用戶的用戶賬號(hào)的區(qū)塊鏈確定為與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈。
考慮到合作的多個(gè)服務(wù)器之間可以采用合作賬號(hào)機(jī)制,也即是,即使用戶沒(méi)有在服務(wù)器a上注冊(cè)賬號(hào),但可以采用在已注冊(cè)的服務(wù)器b上的賬號(hào)登錄該服務(wù)器a,因此,服務(wù)器可以獲取業(yè)務(wù)數(shù)據(jù)包中的用戶賬號(hào),并確定該用戶的用戶賬號(hào)歸屬的服務(wù)器,如,依據(jù)每個(gè)服務(wù)器提供的賬號(hào)格式進(jìn)行確定,將與該歸屬的服務(wù)器對(duì)應(yīng)的區(qū)塊鏈確定為目標(biāo)區(qū)塊鏈。在采用用戶賬號(hào)這一用戶屬性時(shí),該預(yù)設(shè)對(duì)應(yīng)關(guān)系可以為服務(wù)器標(biāo)識(shí)與區(qū)塊鏈之間的對(duì)應(yīng)關(guān)系,如,該服務(wù)器1對(duì)應(yīng)區(qū)塊鏈a,該服務(wù)器的合作服務(wù)器2對(duì)應(yīng)區(qū)塊鏈b。
通過(guò)將與用戶的用戶賬號(hào)匹配的區(qū)塊鏈作為目標(biāo)區(qū)塊鏈,歸屬于同一服務(wù)器的用戶的業(yè)務(wù)數(shù)據(jù)可以確定到同一區(qū)塊鏈中,進(jìn)而可以針對(duì)性地對(duì)某一服務(wù)器所服務(wù)用戶的業(yè)務(wù)數(shù)據(jù)進(jìn)行分析,從而制定相應(yīng)該服務(wù)器的用戶群的運(yùn)營(yíng)策略。
需要說(shuō)明的是,對(duì)于需要用戶上報(bào)的用戶屬性或者服務(wù)器查詢的用戶屬性,為了便于后續(xù)高效地為該用戶確定目標(biāo)區(qū)塊鏈,服務(wù)器也可以在確定該用戶的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈之后,存儲(chǔ)該用戶與該目標(biāo)區(qū)塊鏈的對(duì)應(yīng)關(guān)系,使得再次接收到該用戶的業(yè)務(wù)數(shù)據(jù)時(shí),可以直接根據(jù)該用戶的用戶標(biāo)識(shí),從已存儲(chǔ)的對(duì)應(yīng)關(guān)系中查詢到目標(biāo)區(qū)塊鏈,而無(wú)需用戶上報(bào)或服務(wù)器查詢用戶屬性后再次查詢預(yù)設(shè)對(duì)應(yīng)關(guān)系。
203、服務(wù)器基于業(yè)務(wù)數(shù)據(jù)以及目標(biāo)區(qū)塊鏈中第一區(qū)塊的區(qū)塊頭特征值,在目標(biāo)區(qū)塊鏈上生成第二區(qū)塊,第一區(qū)塊為第二區(qū)塊的上一個(gè)區(qū)塊,第二區(qū)塊用于記錄業(yè)務(wù)數(shù)據(jù)。
該步驟中,服務(wù)器可以從目標(biāo)區(qū)塊鏈中獲取第一區(qū)塊的區(qū)塊頭中的所有信息,并基于該第一區(qū)塊的區(qū)塊頭中的所有信息得到第一區(qū)塊的區(qū)塊頭特征值,并對(duì)將要存入第二區(qū)塊的區(qū)塊主體中的業(yè)務(wù)數(shù)據(jù)進(jìn)行特征值計(jì)算,得到第二區(qū)塊的區(qū)塊主體特征值,進(jìn)而,將第一區(qū)塊的區(qū)塊頭特征值、第二區(qū)塊的區(qū)塊主體特征值(還可以包括版本號(hào)、難度值和時(shí)間戳)存儲(chǔ)至第二區(qū)塊的區(qū)塊頭;將業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至第二區(qū)塊的區(qū)塊主體,生成該第二區(qū)塊,使得第二區(qū)塊與第一區(qū)塊通過(guò)第一區(qū)塊的區(qū)塊頭特征值相關(guān),因而實(shí)現(xiàn)了將區(qū)塊鏈中的區(qū)塊串聯(lián)起來(lái)的目的,使得對(duì)區(qū)塊中任何信息(包括業(yè)務(wù)數(shù)據(jù))的篡改,均能夠通過(guò)區(qū)塊的區(qū)塊頭中所存儲(chǔ)的上一個(gè)區(qū)塊的區(qū)塊頭特征值的追溯而檢測(cè)到,從而保證了業(yè)務(wù)數(shù)據(jù)的安全。
需要說(shuō)明的是,將業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至目標(biāo)區(qū)塊鏈的可以是子系統(tǒng)中配置該目標(biāo)區(qū)塊鏈的節(jié)點(diǎn),當(dāng)該節(jié)點(diǎn)接收到邏輯節(jié)點(diǎn)轉(zhuǎn)發(fā)的業(yè)務(wù)數(shù)據(jù)時(shí),可以將該業(yè)務(wù)數(shù)據(jù)發(fā)送至該目標(biāo)區(qū)塊鏈對(duì)應(yīng)的運(yùn)行于領(lǐng)導(dǎo)狀態(tài)的節(jié)點(diǎn)(簡(jiǎn)稱領(lǐng)導(dǎo)節(jié)點(diǎn)),由該領(lǐng)導(dǎo)節(jié)點(diǎn)廣播業(yè)務(wù)數(shù)據(jù)存儲(chǔ)請(qǐng)求至該目標(biāo)區(qū)塊鏈對(duì)應(yīng)的各個(gè)節(jié)點(diǎn),如果領(lǐng)導(dǎo)節(jié)點(diǎn)能夠接收到各個(gè)節(jié)點(diǎn)中預(yù)設(shè)數(shù)量的節(jié)點(diǎn)對(duì)該業(yè)務(wù)數(shù)據(jù)存儲(chǔ)請(qǐng)求的確認(rèn)消息,則可以將該業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至自身的目標(biāo)區(qū)塊鏈中,基于該業(yè)務(wù)數(shù)據(jù)對(duì)用戶進(jìn)行響應(yīng),并向該各個(gè)節(jié)點(diǎn)廣播業(yè)務(wù)數(shù)據(jù)存儲(chǔ)指令,使得目標(biāo)區(qū)塊鏈對(duì)應(yīng)的各個(gè)節(jié)點(diǎn)(包括該節(jié)點(diǎn))可以將該業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至自身的目標(biāo)區(qū)塊鏈中。其中,每個(gè)節(jié)點(diǎn)在發(fā)送確認(rèn)消息時(shí)也發(fā)送該節(jié)點(diǎn)采用私鑰對(duì)該確認(rèn)消息的簽名,使得領(lǐng)導(dǎo)節(jié)點(diǎn)能夠?qū)⒔邮盏降暮灻麛y帶在業(yè)務(wù)數(shù)據(jù)存儲(chǔ)指令中,進(jìn)而使得接收到業(yè)務(wù)數(shù)據(jù)存儲(chǔ)指令的節(jié)點(diǎn)可以通過(guò)簽名對(duì)業(yè)務(wù)數(shù)據(jù)存儲(chǔ)指令進(jìn)行驗(yàn)證,如果簽名的數(shù)量符合預(yù)設(shè)數(shù)量,且每個(gè)簽名均通過(guò)對(duì)應(yīng)節(jié)點(diǎn)的公鑰驗(yàn)證通過(guò),則可以將業(yè)務(wù)數(shù)據(jù)存儲(chǔ)指令中攜帶的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至自身的目標(biāo)區(qū)塊鏈中。
參見(jiàn)圖3,本發(fā)明實(shí)施例提供了一種業(yè)務(wù)請(qǐng)求處理流程圖,該處理流程中,由邏輯節(jié)點(diǎn)接收用戶的業(yè)務(wù)請(qǐng)求,并按照已配置的預(yù)設(shè)對(duì)應(yīng)關(guān)系,選擇與該用戶對(duì)應(yīng)的區(qū)塊鏈,并將業(yè)務(wù)請(qǐng)求路由至配置該區(qū)塊鏈的本地節(jié)點(diǎn),由該本地節(jié)點(diǎn)將業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)至配置該區(qū)塊鏈的領(lǐng)導(dǎo)節(jié)點(diǎn),直到領(lǐng)導(dǎo)節(jié)點(diǎn)接收到配置該區(qū)塊鏈的各個(gè)節(jié)點(diǎn)中預(yù)設(shè)數(shù)量的節(jié)點(diǎn)對(duì)存儲(chǔ)業(yè)務(wù)請(qǐng)求的確認(rèn)消息,可以確認(rèn)該區(qū)塊鏈對(duì)該業(yè)務(wù)請(qǐng)求達(dá)成共識(shí),可以對(duì)該業(yè)務(wù)請(qǐng)求進(jìn)行響應(yīng),將響應(yīng)消息發(fā)送至本地節(jié)點(diǎn),本地節(jié)點(diǎn)將響應(yīng)消息發(fā)送至邏輯節(jié)點(diǎn),進(jìn)而由邏輯節(jié)點(diǎn)將響應(yīng)消息返回給終端。
本發(fā)明實(shí)施例通過(guò)在一個(gè)服務(wù)器或一個(gè)業(yè)務(wù)數(shù)據(jù)處理系統(tǒng)中配置多條區(qū)塊鏈,可以將相同用戶屬性的用戶的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到與一條區(qū)塊鏈中,進(jìn)而使得多條區(qū)塊鏈上可以分別存儲(chǔ)有不同用戶屬性的用戶的業(yè)務(wù)數(shù)據(jù),一方面,由于各個(gè)區(qū)塊鏈在生成區(qū)塊的過(guò)程互不影響,即使短期內(nèi)接收到大量用戶的業(yè)務(wù)數(shù)據(jù),也能按照用戶屬性將業(yè)務(wù)數(shù)據(jù)分流至各個(gè)區(qū)塊鏈中,進(jìn)而并行地在各個(gè)區(qū)塊鏈中存儲(chǔ)業(yè)務(wù)數(shù)據(jù),使得服務(wù)器的性能不再受限于區(qū)塊鏈的鏈?zhǔn)浇Y(jié)構(gòu),提高了服務(wù)器的運(yùn)行效率。例如,在產(chǎn)權(quán)登記業(yè)務(wù)的處理過(guò)程中,基于一條區(qū)塊鏈可以處理十萬(wàn)人的業(yè)務(wù)請(qǐng)求,而基于十條區(qū)塊鏈可以處理一百萬(wàn)人的業(yè)務(wù)請(qǐng)求。另一方面,能夠針對(duì)性地分析一類用戶群的業(yè)務(wù)數(shù)據(jù),且相同用戶屬性的用戶往往在業(yè)務(wù)數(shù)據(jù)上具有相似性,因此依據(jù)用戶屬性也可以更方便地處理業(yè)務(wù)數(shù)據(jù)。
而且,由于區(qū)塊鏈中前后區(qū)塊之間相關(guān)聯(lián),使得區(qū)塊中任一業(yè)務(wù)數(shù)據(jù)被篡改時(shí)都能通過(guò)下一區(qū)塊檢測(cè)到,避免了惡意用戶篡改或抵賴處理過(guò)的業(yè)務(wù)數(shù)據(jù),也保證了業(yè)務(wù)數(shù)據(jù)的安全性。
在實(shí)際的應(yīng)用場(chǎng)景中,根據(jù)當(dāng)前的業(yè)務(wù)需求,服務(wù)器所配置的區(qū)塊鏈也可能更新,更新的情況可能有多種,本發(fā)明實(shí)施例以下述四種情況舉例說(shuō)明:
情況1、當(dāng)服務(wù)器接收到第一更新指令時(shí),基于第一更新指令更新已配置的用戶屬性與待配置的區(qū)塊鏈的對(duì)應(yīng)關(guān)系。
其中,第一更新指令攜帶已配置的用戶屬性和待配置的區(qū)塊鏈標(biāo)識(shí)。當(dāng)接收到第一更新指令后,服務(wù)器可以從第一更新指令中提取出這兩項(xiàng)數(shù)據(jù),并在預(yù)設(shè)對(duì)應(yīng)關(guān)系中查詢是否存在與這兩項(xiàng)數(shù)據(jù)中任一項(xiàng)數(shù)據(jù)相同的數(shù)據(jù),如果存在與已配置的用戶屬性相同的用戶屬性,但不存在與該待配置的區(qū)塊鏈標(biāo)識(shí)相同的區(qū)塊鏈標(biāo)識(shí),則可以將該已配置的用戶屬性對(duì)應(yīng)的區(qū)塊鏈修改為待配置的區(qū)塊鏈。
情況2、當(dāng)服務(wù)器接收到第二更新指令時(shí),基于第二更新指令更新已配置的用戶屬性與已配置的區(qū)塊鏈的對(duì)應(yīng)關(guān)系。
其中,第二更新指令攜帶已配置的用戶屬性和已配置的區(qū)塊鏈標(biāo)識(shí)。當(dāng)接收到第二更新指令后,服務(wù)器可以從第二更新指令中提取出這兩項(xiàng)數(shù)據(jù),并在預(yù)設(shè)對(duì)應(yīng)關(guān)系中查詢是否存在與這兩項(xiàng)數(shù)據(jù)中任一項(xiàng)數(shù)據(jù)相同的數(shù)據(jù),如果存在與已配置的用戶屬性相同的用戶屬性,且存在與該待配置的區(qū)塊鏈標(biāo)識(shí)相同的區(qū)塊鏈標(biāo)識(shí),則可以刪除該已配置的用戶屬性與原區(qū)塊鏈的對(duì)應(yīng)關(guān)系,并將該已配置的用戶屬性添加為該已配置的區(qū)塊鏈對(duì)應(yīng)的用戶屬性。
情況3、當(dāng)服務(wù)器接收到第三更新指令時(shí),基于第三更新指令更新待配置的用戶屬性與待配置的區(qū)塊鏈的對(duì)應(yīng)關(guān)系。
其中,第三更新指令攜帶待配置的用戶屬性和待配置的區(qū)塊鏈標(biāo)識(shí)。當(dāng)接收到第三更新指令后,服務(wù)器可以從第三更新指令中提取出這兩項(xiàng)數(shù)據(jù),并在預(yù)設(shè)對(duì)應(yīng)關(guān)系中查詢是否存在與這兩項(xiàng)數(shù)據(jù)中任一項(xiàng)數(shù)據(jù)相同的數(shù)據(jù),如果不存在與待配置的用戶屬性相同的用戶屬性,也不存在與該待配置的區(qū)塊鏈標(biāo)識(shí)相同的區(qū)塊鏈標(biāo)識(shí),可以添加一條待配置的用戶屬性與待配置的區(qū)塊鏈的對(duì)應(yīng)關(guān)系。
情況4、當(dāng)接收到第四更新指令時(shí),基于第四更新指令更新待配置的用戶屬性與已配置的區(qū)塊鏈的對(duì)應(yīng)關(guān)系。
其中,第四更新指令攜帶待配置的用戶屬性和已配置的區(qū)塊鏈標(biāo)識(shí)。當(dāng)接收到第四更新指令后,服務(wù)器可以從第四更新指令中提取出這兩項(xiàng)數(shù)據(jù),并在預(yù)設(shè)對(duì)應(yīng)關(guān)系中查詢是否存在與這兩項(xiàng)數(shù)據(jù)中任一項(xiàng)數(shù)據(jù)相同的數(shù)據(jù),如果不存在與待配置的用戶屬性相同的用戶屬性,但存在與已待配置的區(qū)塊鏈標(biāo)識(shí)相同的區(qū)塊鏈標(biāo)識(shí),可以將該待配置的用戶屬性添加為該已配置的區(qū)塊鏈對(duì)應(yīng)的用戶屬性。
需要說(shuō)明的是,在更新該服務(wù)器上的用戶屬性和區(qū)塊鏈的對(duì)應(yīng)關(guān)系時(shí),為了保證整個(gè)業(yè)務(wù)數(shù)據(jù)處理系統(tǒng)能夠正常工作,涉及被更新的用戶屬性或被更新的區(qū)塊鏈的其他服務(wù)器也會(huì)進(jìn)行同步的更新過(guò)程。
上述更新過(guò)程以添加地區(qū)c這一用戶屬性為例,假設(shè)地區(qū)c待對(duì)應(yīng)的區(qū)塊鏈與已配置的地區(qū)b對(duì)應(yīng)的區(qū)塊鏈相同,則運(yùn)營(yíng)人員可以觸發(fā)第四更新指令,使得服務(wù)器可以基于接收到的第四更新指令進(jìn)行更新。
通過(guò)對(duì)用戶屬性和區(qū)塊鏈進(jìn)行更新,可以按照當(dāng)前的業(yè)務(wù)需求將新一類用戶群的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到新的區(qū)塊鏈中;也可以將新一類用戶群的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到已配置的區(qū)塊鏈中;也可以根據(jù)變化的服務(wù)需求,將已配置的用戶屬性與新的區(qū)塊鏈對(duì)應(yīng);還可以變更已配置的用戶屬性與已配置的區(qū)塊鏈的對(duì)應(yīng)關(guān)系,從而能夠靈活地控制業(yè)務(wù)數(shù)據(jù)的存儲(chǔ)方式。
在上述更新過(guò)程中,為了避免正在變化的用戶屬性與區(qū)塊鏈的對(duì)應(yīng)關(guān)系影響正常的業(yè)務(wù)數(shù)據(jù)處理過(guò)程,服務(wù)器可以在接收到更新指令時(shí),停止處理該更新指令對(duì)應(yīng)的區(qū)塊鏈上業(yè)務(wù)數(shù)據(jù)的存儲(chǔ)過(guò)程;直到完成已執(zhí)行的合約且接收到更新完成消息時(shí),按照更新后的預(yù)設(shè)對(duì)應(yīng)關(guān)系存儲(chǔ)業(yè)務(wù)數(shù)據(jù)。其中,合約是指運(yùn)行在區(qū)塊鏈上的代碼,用于指示如何處理業(yè)務(wù)數(shù)據(jù)。由于接收到更新指令時(shí)可能正在執(zhí)行某些合約,因此為了避免更新后合約無(wú)法正常執(zhí)行,可以等待已執(zhí)行的合約執(zhí)行完成,再開始處理區(qū)塊鏈或用戶屬性更新后的業(yè)務(wù)數(shù)據(jù)。
圖4是本發(fā)明實(shí)施例提供的一種業(yè)務(wù)數(shù)據(jù)存儲(chǔ)裝置的框圖。參見(jiàn)圖4,該裝置具體包括:
接收模塊401,用于接收用戶的業(yè)務(wù)數(shù)據(jù);
確定模塊402,用于根據(jù)用戶的用戶屬性,從多條區(qū)塊鏈中確定與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈;
存儲(chǔ)模塊403,用于基于業(yè)務(wù)數(shù)據(jù)以及目標(biāo)區(qū)塊鏈中第一區(qū)塊的區(qū)塊頭特征值,在目標(biāo)區(qū)塊鏈上生成第二區(qū)塊,第一區(qū)塊為第二區(qū)塊的上一個(gè)區(qū)塊,第二區(qū)塊用于記錄業(yè)務(wù)數(shù)據(jù)。
本發(fā)明實(shí)施例通過(guò)在一個(gè)服務(wù)器或一個(gè)業(yè)務(wù)數(shù)據(jù)處理系統(tǒng)中配置多條區(qū)塊鏈,可以將相同用戶屬性的用戶的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到與一條區(qū)塊鏈中,進(jìn)而使得多條區(qū)塊鏈上可以分別存儲(chǔ)有不同用戶屬性的用戶的業(yè)務(wù)數(shù)據(jù),一方面,由于各個(gè)區(qū)塊鏈在生成區(qū)塊的過(guò)程互不影響,即使短期內(nèi)接收到大量用戶的業(yè)務(wù)數(shù)據(jù),也能按照用戶屬性將業(yè)務(wù)數(shù)據(jù)分流至各個(gè)區(qū)塊鏈中,進(jìn)而并行地在各個(gè)區(qū)塊鏈中存儲(chǔ)業(yè)務(wù)數(shù)據(jù),使得服務(wù)器的性能不再受限于區(qū)塊鏈的鏈?zhǔn)浇Y(jié)構(gòu),提高了服務(wù)器的運(yùn)行效率。另一方面,能夠針對(duì)性地分析一類用戶群的業(yè)務(wù)數(shù)據(jù),且相同用戶屬性的用戶往往在業(yè)務(wù)數(shù)據(jù)上具有相似性,因此依據(jù)用戶屬性也可以更方便地處理業(yè)務(wù)數(shù)據(jù)。
在一種可能實(shí)現(xiàn)方式中,確定模塊402用于:
根據(jù)用戶的用戶屬性查詢預(yù)設(shè)對(duì)應(yīng)關(guān)系,預(yù)設(shè)對(duì)應(yīng)關(guān)系用于指示用戶屬性與區(qū)塊鏈的對(duì)應(yīng)關(guān)系;如果預(yù)設(shè)對(duì)應(yīng)關(guān)系中存在與用戶的用戶屬性匹配的區(qū)塊鏈,將與用戶的用戶屬性匹配的區(qū)塊鏈確定為目標(biāo)區(qū)塊鏈。
在一種可能實(shí)現(xiàn)方式中,確定模塊402還用于:
如果不存在與用戶的用戶屬性匹配的區(qū)塊鏈,將多條區(qū)塊鏈中的共享區(qū)塊鏈確定為目標(biāo)區(qū)塊鏈,共享區(qū)塊鏈用于存儲(chǔ)多個(gè)服務(wù)機(jī)構(gòu)之間共享的業(yè)務(wù)數(shù)據(jù)。
在一種可能實(shí)現(xiàn)方式中,基于圖4的裝置組成,參見(jiàn)圖5a,該裝置還包括:
接收模塊401,用于接收業(yè)務(wù)數(shù)據(jù)包;
獲取模塊404,用于從業(yè)務(wù)數(shù)據(jù)包中獲取業(yè)務(wù)數(shù)據(jù)和用戶對(duì)業(yè)務(wù)數(shù)據(jù)的簽名;
確定模塊402,用于如果對(duì)業(yè)務(wù)數(shù)據(jù)的簽名驗(yàn)證通過(guò),根據(jù)用戶的用戶屬性,從多條區(qū)塊鏈中確定與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈。
在一種可能實(shí)現(xiàn)方式中,基于圖4的裝置組成,參見(jiàn)圖5b,該裝置還包括:
更新模塊405,用于當(dāng)接收到第一更新指令時(shí),基于第一更新指令更新已配置的用戶屬性與待配置的區(qū)塊鏈的對(duì)應(yīng)關(guān)系;或,
更新模塊405,用于當(dāng)接收到第二更新指令時(shí),基于第二更新指令更新已配置的用戶屬性與已配置的區(qū)塊鏈的對(duì)應(yīng)關(guān)系;或,
更新模塊405,用于當(dāng)接收到第三更新指令時(shí),基于第三更新指令更新待配置的用戶屬性與待配置的區(qū)塊鏈的對(duì)應(yīng)關(guān)系;或,
更新模塊405,用于當(dāng)接收到第四更新指令時(shí),基于第四更新指令更新待配置的用戶屬性與已配置的區(qū)塊鏈的對(duì)應(yīng)關(guān)系。
在一種可能實(shí)現(xiàn)方式中,確定模塊402用于:根據(jù)第一確定方式,將匹配用戶的用戶位置的區(qū)塊鏈確定為與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈;和/或,
確定模塊402用于:根據(jù)第二確定方式,將匹配用戶的用戶設(shè)備的區(qū)塊鏈確定為與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈;和/或,
確定模塊402用于:根據(jù)第三確定方式,將匹配用戶的用戶等級(jí)的區(qū)塊鏈確定為與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈;和/或,
確定模塊402用于:根據(jù)第四確定方式,將匹配用戶的用戶賬號(hào)的區(qū)塊鏈確定為與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)區(qū)塊鏈。
上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本發(fā)明的可選實(shí)施例,在此不再一一贅述。
需要說(shuō)明的是:上述實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)裝置在存儲(chǔ)業(yè)務(wù)數(shù)據(jù)時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)裝置與業(yè)務(wù)數(shù)據(jù)存儲(chǔ)方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過(guò)程詳見(jiàn)方法實(shí)施例,這里不再贅述。
圖6是本發(fā)明實(shí)施例提供的一種電子設(shè)備600的框圖。例如,電子設(shè)備600可以被提供為一服務(wù)器。參照?qǐng)D6,電子設(shè)備600包括處理器622和存儲(chǔ)器632,存儲(chǔ)器632中存儲(chǔ)有至少一條指令、至少一段程序、代碼集或指令集,至少一條指令、至少一段程序、代碼集或指令集由處理器622加載并執(zhí)行以實(shí)現(xiàn)上述業(yè)務(wù)數(shù)據(jù)存儲(chǔ)方法。
電子設(shè)備600還可以包括一個(gè)電源組件626被配置為執(zhí)行電子設(shè)備600的電源管理,一個(gè)有線或無(wú)線網(wǎng)絡(luò)接口650被配置為將電子設(shè)備600連接到網(wǎng)絡(luò),和一個(gè)輸入輸出(i/o)接口658。電子設(shè)備600可以操作基于存儲(chǔ)在存儲(chǔ)器632的操作系統(tǒng),例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或類似。
在示例性實(shí)施例中,還提供了一種存儲(chǔ)介質(zhì),例如包括至少一條指令、至少一段程序、代碼集或指令集的存儲(chǔ)器,上述至少一條指令、至少一段程序、代碼集或指令集可由電子設(shè)備中的處理器加載并執(zhí)行以完成上述實(shí)施例中的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)方法。例如,存儲(chǔ)介質(zhì)可以是rom、ram、cd-rom、磁帶、軟盤和光數(shù)據(jù)存儲(chǔ)設(shè)備等。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,的程序可以存儲(chǔ)于一種存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。