本申請涉及計算機技術(shù)領(lǐng)域,尤其涉及一種共識校驗的方法及裝置。
背景技術(shù):
區(qū)塊鏈技術(shù)具有能夠使區(qū)塊鏈中存儲的數(shù)據(jù)具有不可篡改、去中心化等特性,所以,區(qū)塊鏈技術(shù)一經(jīng)面世以來,就受到了人們的廣泛關(guān)注。隨著人們對區(qū)塊鏈技術(shù)的不斷深入研究,除了通過區(qū)塊鏈技術(shù)實現(xiàn)更加安全的數(shù)據(jù)存儲環(huán)境外,還利用區(qū)塊鏈技術(shù)實現(xiàn)了多種業(yè)務的優(yōu)化處理。
當前,區(qū)塊鏈節(jié)點接收到客戶端向其發(fā)送的業(yè)務請求時,會將該業(yè)務請求存儲在自身中。與此同時,該區(qū)塊鏈節(jié)點還會將該業(yè)務請求廣播給共識網(wǎng)絡的其他區(qū)塊鏈節(jié)點中,其他區(qū)塊鏈節(jié)點則相應的會將接收到的該業(yè)務請求存儲在自身中。
而在共識校驗階段,區(qū)塊鏈節(jié)點首先需要從自身存儲的各業(yè)務請求中撈取一定數(shù)量的業(yè)務請求,并對這些業(yè)務請求進行非對稱簽名合法驗證;當確定這些業(yè)務請求通過非對稱簽名合法驗證后,則將這些業(yè)務請求打包成預處理塊廣播給整個共識網(wǎng)絡中的其他區(qū)塊鏈節(jié)點。其他區(qū)塊鏈節(jié)點接收到該預處理塊后,則先對該預處理塊中包含的各業(yè)務請求進行非對稱簽名合法驗證,并在確定出這些業(yè)務請求通過非對稱簽名合法驗證后,對這些業(yè)務請求進行共識校驗,以決定是否需要將這些業(yè)務請求以區(qū)塊的形式存儲在區(qū)塊鏈中。
從上述過程中可以看出,在共識校驗階段中,區(qū)塊鏈節(jié)點需要對待共識的各業(yè)務請求進行較為繁瑣的處理后,才能將這些業(yè)務請求打包成預處理塊廣播給共識網(wǎng)絡中的其他區(qū)塊鏈節(jié)點。其他區(qū)塊鏈節(jié)點也需要對該預處理塊進行一定處理后,才能對該預處理塊中包含的各業(yè)務請求進行共識校驗。由此可以看出,在現(xiàn)有技術(shù)中,共識階段涉及的過程較為復雜,共識過程所耗費的時間過長,從而降低了區(qū)塊鏈業(yè)務的共識校驗效率。
技術(shù)實現(xiàn)要素:
本申請實施例提供一種共識校驗的方法,用以解決現(xiàn)有技術(shù)區(qū)塊鏈業(yè)務中共識校驗效率較低的問題。
本申請實施例提供了一種共識校驗的方法,包括:
第一區(qū)塊鏈節(jié)點接收客戶端發(fā)送的業(yè)務請求并對所述業(yè)務請求進行第一安全性驗證;
當確定所述業(yè)務請求通過所述第一安全性驗證時,存儲所述業(yè)務請求,并將所述業(yè)務請求廣播給各第二區(qū)塊鏈節(jié)點,以使所述各第二區(qū)塊鏈節(jié)點在確定所述業(yè)務請求通過第二安全性驗證時存儲所述業(yè)務請求;
在確定滿足預設條件時,對存儲的至少一個業(yè)務請求進行預處理,得到預處理塊并存儲;
在進行共識校驗時,撈取預處理塊并廣播給共識網(wǎng)絡中的各第二區(qū)塊鏈節(jié)點,以通過所述各第二區(qū)塊鏈節(jié)點對撈取的預處理塊進行共識校驗。
本申請實施例提供一種共識校驗的裝置,用以解決現(xiàn)有技術(shù)區(qū)塊鏈業(yè)務中共識校驗效率較低的問題。
本申請實施例提供了一種共識校驗的裝置,包括:
接收模塊,接收客戶端發(fā)送的業(yè)務請求并對所述業(yè)務請求進行第一安全性驗證;
存儲模塊,當確定所述業(yè)務請求通過所述第一安全性驗證時,存儲所述業(yè)務請求,并將所述業(yè)務請求廣播給各第二區(qū)塊鏈節(jié)點,以使所述各第二區(qū)塊鏈節(jié)點在確定所述業(yè)務請求通過第二安全性驗證時存儲所述業(yè)務請求;
預處理模塊,在確定滿足預設條件時,對存儲的至少一個業(yè)務請求進行預處理,得到預處理塊并存儲;
撈取模塊,在進行共識校驗時,撈取預處理塊并廣播給共識網(wǎng)絡中的各第二區(qū)塊鏈節(jié)點,以通過所述各第二區(qū)塊鏈節(jié)點對撈取的預處理塊進行共識校驗。
本申請實施例提供一種共識校驗的方法,用以解決現(xiàn)有技術(shù)區(qū)塊鏈業(yè)務中共識校驗效率較低的問題。
本申請實施例提供了一種共識校驗的方法,包括:
第二區(qū)塊鏈節(jié)點接收第一區(qū)塊鏈節(jié)點廣播的業(yè)務請求并對所述業(yè)務請求進行第二安全性驗證;
當確定所述業(yè)務請求通過所述第二安全性驗證時,存儲所述業(yè)務請求;
當接收到所述第一區(qū)塊鏈節(jié)點廣播的預處理塊時,則對所述預處理塊進行共識校驗。
本申請實施例提供一種共識校驗的裝置,用以解決現(xiàn)有技術(shù)區(qū)塊鏈業(yè)務中共識校驗效率較低的問題。
本申請實施例提供了一種共識校驗的裝置,包括:
接收請求模塊,接收第一區(qū)塊鏈節(jié)點廣播的業(yè)務請求并對所述業(yè)務請求進行第二安全性驗證;
請求存儲模塊,當確定所述業(yè)務請求通過所述第二安全性驗證時,存儲所述業(yè)務請求;
校驗模塊,當接收到所述第一區(qū)塊鏈節(jié)點廣播的預處理塊時,則對所述預處理塊進行共識校驗。
本申請實施例采用的上述至少一個技術(shù)方案能夠達到以下有益效果:
在本申請實施例中,第一區(qū)塊鏈節(jié)點是在接收到客戶端發(fā)送的業(yè)務請求后,即可對該業(yè)務請求進行第一安全性驗證,而非等到共識校驗階段,才對該業(yè)務請求進行第一安全性驗證,這就極大的簡化了共識校驗的過程。并且,第一區(qū)塊鏈節(jié)點在共識校驗階段之前,可先從自身存儲的各業(yè)務請求中撈取至少一個業(yè)務請求,并對撈取的各業(yè)務請求進行處理,以得到預處理塊,這樣一來,第一區(qū)塊鏈節(jié)點在共識校驗階段則可直接將先前得到的預處理塊廣播給共識網(wǎng)絡中的各第二區(qū)塊鏈節(jié)點,以通過各第二區(qū)塊鏈節(jié)點對該預處理塊所對應的各業(yè)務請求進行共識校驗,從而極大的簡化了共識校驗階段的過程,降低了共識校驗階段所耗費的時間,提高了區(qū)塊鏈業(yè)務的共識效率。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當限定。在附圖中:
圖1為本申請實施例提供的共識校驗過程的示意圖;
圖2為本申請實施例提供的整個共識網(wǎng)絡對業(yè)務請求進行非對稱簽名合法驗證的詳細過程示意圖;
圖3為本申請實施例提供的確定待校驗特征值的示意圖;
圖4為本申請實施例提供的服務器集群的示意圖;
圖5為本申請實施例提供的一種共識校驗的裝置示意圖;
圖6為本申請實施例提供的另一種共識校驗的裝置示意圖。
具體實施方式
當前,區(qū)塊鏈節(jié)點進行業(yè)務處理的過程大致如下:客戶端向區(qū)塊鏈節(jié)點發(fā)送業(yè)務請求后,區(qū)塊鏈節(jié)點會將接收到的業(yè)務請求以廣播的形式發(fā)送至其他區(qū)塊鏈節(jié)點中;其他區(qū)塊鏈節(jié)點會將接收到的該業(yè)務請求進行存儲。向其他區(qū)塊鏈節(jié)點發(fā)送該業(yè)務請求的區(qū)塊鏈節(jié)點也會將該業(yè)務請求存儲在自身中。
在由各區(qū)塊鏈節(jié)點組成的共識網(wǎng)絡中,各區(qū)塊鏈節(jié)點均有向其他區(qū)塊鏈節(jié)點發(fā)起共識請求的權(quán)利。區(qū)塊鏈節(jié)點可將自身存儲的一定數(shù)量的業(yè)務請求按照一定順序進行排列,得到一個業(yè)務請求隊列,并生成針對該業(yè)務請求隊列的一個哈希(hash)值。而后,區(qū)塊鏈節(jié)點可將該業(yè)務請求隊列以及該hash打包成一個預處理塊,將該預處理塊以廣播的形式的發(fā)送至其他的區(qū)塊鏈節(jié)點,以進行共識校驗。
在共識校驗的過程中,當其他區(qū)塊鏈節(jié)點接收到該預處理塊后,將對該預處理塊中的包含的各業(yè)務請求進行諸如非對稱簽名合法驗證之類的安全性驗證,如,區(qū)塊鏈節(jié)點可根據(jù)自身所持有的公鑰,將該預處理塊中包含的各業(yè)務請求進行解析,以驗證各業(yè)務請求是否為合法的業(yè)務請求。
除此之外,由于區(qū)塊鏈節(jié)點每當接收客戶端發(fā)送的業(yè)務請求時,就會將該業(yè)務請求廣播給其他的區(qū)塊鏈節(jié)點,因此,通常情況下,各區(qū)塊鏈節(jié)點自身均應存儲有整個共識網(wǎng)絡接收的各業(yè)務請求。基于此,其他區(qū)塊鏈節(jié)點接收到該預處理塊后,將對該預處理塊中的各業(yè)務請求進行哈希完整性驗證,即,區(qū)塊鏈節(jié)點可從自身存儲的各業(yè)務請求中查找到該預處理塊中包含的業(yè)務請求,并將查找到的業(yè)務請求按照該業(yè)務請求在該預處理塊中的排列順序進行排列,得到一個業(yè)務請求隊列;而后,區(qū)塊鏈節(jié)點可生成針對該業(yè)務請求隊列的一個hash值,進而將得到的hash值與該預處理塊中包含的hash值進行比對,以確認該預處理塊中的各業(yè)務請求是否發(fā)生篡改。
各區(qū)塊鏈節(jié)點將根據(jù)對該預處理塊進行的安全性驗證以及哈希完整性驗證,得到自身針對該預處理塊整體是否合法的校驗結(jié)果,并將自身得到的校驗結(jié)果以廣播的形式廣播給其他的區(qū)塊鏈節(jié)點。
各區(qū)塊鏈節(jié)點將根據(jù)其他區(qū)塊鏈節(jié)點針對該預處理塊所發(fā)送的校驗結(jié)果以及自身得到的校驗結(jié)果,得到整個共識網(wǎng)絡中各區(qū)塊鏈節(jié)點針對該預處理塊是否通過的綜合校驗結(jié)果,并將得到的綜合校驗結(jié)果再次以廣播的形式廣播給其他的區(qū)塊鏈節(jié)點。
共識網(wǎng)絡中的各區(qū)塊鏈節(jié)點接收到相互廣播的綜合校驗結(jié)果后,將進一步判斷共識網(wǎng)絡中各區(qū)塊鏈節(jié)點得出各綜合校驗結(jié)果大部分是否均為校驗通過。若是,則將該預處理塊中的各業(yè)務請求以區(qū)塊的形式存儲在自身的區(qū)塊鏈中,若否,則確定該預處理塊中的各業(yè)務請求共識校驗不通過。
從上述過程中可以看出,在現(xiàn)有技術(shù)中,區(qū)塊鏈節(jié)點對各業(yè)務請求進行共識校驗時,共識校驗過程較為復雜,共識校驗過程所耗費的時間過長,從而導致了區(qū)塊鏈業(yè)務的業(yè)務處理效率低下。
為了有效解決上述問題,在本申請中,第一區(qū)塊鏈節(jié)點可將安全性驗證以及預處理塊的生成提前到共識校驗階段之前來進行。換句話說,第一區(qū)塊鏈節(jié)點可將現(xiàn)有技術(shù)中共識校驗階段涉及的一部分過程提前到共識校驗階段之前來進行,從而極大的降低了共識校驗過程的復雜度,縮短了共識校驗階段所耗費的時間,提高了區(qū)塊鏈業(yè)務的共識校驗效率。
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本申請保護的范圍。
圖1為本申請實施例提供的共識校驗過程的示意圖,具體包括以下步驟:
s101:第一區(qū)塊鏈節(jié)點接收客戶端發(fā)送的業(yè)務請求并對所述業(yè)務請求進行第一安全性驗證。
在本申請實施例中,用戶在業(yè)務處理的過程中,可通過終端中安裝的客戶端向第一區(qū)塊鏈節(jié)點發(fā)送的業(yè)務請求,即,用戶在客戶端所展示的界面中填寫相應的業(yè)務處理內(nèi)容,客戶端根據(jù)用戶在該界面中填寫的業(yè)務處理內(nèi)容,生成相應的業(yè)務請求,進而通過終端將該業(yè)務請求發(fā)送至第一區(qū)塊鏈節(jié)點中。當然,用戶也可在自己所持有的用戶終端填寫相應的業(yè)務處理內(nèi)容,而終端將根據(jù)用戶填寫的業(yè)務處理內(nèi)容,生成相應的業(yè)務請求,并將業(yè)務請求發(fā)送至整個共識網(wǎng)絡中的第一區(qū)塊鏈節(jié)點中。其中,這里提到的終端可以是諸如電腦、智能手機等設備。
需要說明的是,在實際應用中,共識網(wǎng)絡中包含有多個區(qū)塊鏈節(jié)點,而本申請實施例所提到的第一區(qū)塊鏈節(jié)點指的是接收客戶端業(yè)務請求的區(qū)塊鏈節(jié)點。除第一區(qū)塊鏈節(jié)點之外其他區(qū)塊鏈節(jié)點,在本申請實施例中可以稱之為第二區(qū)塊鏈節(jié)點。第一區(qū)塊鏈節(jié)點和第二區(qū)塊鏈節(jié)點是一個相對概念。從客戶端接收業(yè)務請求的區(qū)塊鏈節(jié)點可以為第一區(qū)塊鏈節(jié)點,而接收由第一區(qū)塊鏈節(jié)點通過廣播的方式所發(fā)送的該業(yè)務請求的區(qū)塊鏈節(jié)點則可以稱之為第二區(qū)塊鏈節(jié)點。由于共識網(wǎng)絡中的各區(qū)塊鏈節(jié)點均可接收客戶端發(fā)送的業(yè)務請求,因此,各區(qū)塊鏈節(jié)點實質(zhì)上均可以是第一區(qū)塊鏈節(jié)點,也可以是第二區(qū)塊鏈節(jié)點。第一區(qū)塊鏈節(jié)點和第二區(qū)塊鏈節(jié)點的劃分可以取決于業(yè)務請求是從何處接收的。
在現(xiàn)有技術(shù)中,第一區(qū)塊鏈節(jié)點在接收到客戶端發(fā)送的業(yè)務請求時,通常是將該業(yè)務請求直接存儲在自身中的。在此過程中,第一區(qū)塊鏈節(jié)點不對該業(yè)務請求進行任何驗證。而驗證的過程則通常是在共識校驗的階段進行的。在共識校驗過程中,共識網(wǎng)絡中的各區(qū)塊鏈節(jié)點先是對第一區(qū)塊鏈節(jié)點廣播的預處理塊中包含的各業(yè)務請求進行安全性驗證,諸如rsa等非對稱簽名合法驗證,以驗證該預處理塊中包含的各業(yè)務請求是否合法。之后,共識網(wǎng)絡中的各區(qū)塊鏈節(jié)點將對各業(yè)務請求的內(nèi)容進行驗證。驗證的方式可以通過哈希完整性驗證的方式來實現(xiàn)。
在完成上述兩個驗證后,共識網(wǎng)絡中的各區(qū)塊鏈節(jié)點將進一步根據(jù)針對該預處理塊驗證后得到的校驗結(jié)果進行共識,從而決定該預處理塊中包含的各業(yè)務請求是否可以寫入到區(qū)塊鏈中。
從上述可以看出,在共識校驗過程中,共識網(wǎng)絡需要對上述預處理塊中包含的各業(yè)務請求進行安全性驗證、哈希完整性驗證以及校驗結(jié)果共識三個階段。這三個階段使得現(xiàn)有技術(shù)中共識校驗的過程耗時過長,從而降低了區(qū)塊鏈業(yè)務的共識校驗效率。
為了有效解決上述問題,在本申請實施例中,可將共識校驗中的安全性驗證提前到共識校驗之前,從而簡化整個共識校驗過程,提升共識校驗的效率,進而提高區(qū)塊鏈業(yè)務的業(yè)務處理效率。
具體的,第一區(qū)塊鏈節(jié)點在接收到客戶端發(fā)送的業(yè)務請求后,可對該業(yè)務請求進行第一安全性驗證。在本申請實施例中,第一安全性驗證可以是非對稱簽名合法驗證,而這里提到的非對稱簽名合法驗證可以通過諸如rsa加密算法等非對稱加密算法來實現(xiàn)。所以,客戶端在向第一區(qū)塊鏈節(jié)點發(fā)送該業(yè)務請求時,可通過自己所持有的私鑰對該業(yè)務請求進行加密,而第一區(qū)塊鏈節(jié)點接收到該業(yè)務請求后,可通過自己所持有的公鑰對該業(yè)務請求進行解析,并對解析出的內(nèi)容進行驗證。
其中,客戶端在向第一區(qū)塊鏈節(jié)點發(fā)送上述業(yè)務請求時,可將解析該業(yè)務請求的公鑰攜帶在該業(yè)務請求中進行發(fā)送,第一區(qū)塊鏈節(jié)點接收到該業(yè)務請求后,可根據(jù)該業(yè)務請求中包含的公鑰,對該業(yè)務請求進行解析。當然,第一區(qū)塊鏈節(jié)點也可事先從客戶端中獲取到該公鑰,相應的,客戶端向第一區(qū)塊鏈節(jié)點發(fā)送該業(yè)務請求時,第一區(qū)塊鏈節(jié)點可通過事先獲取到的公鑰對該業(yè)務請求進行解析。
需要說明的是,上述說明的第一安全性驗證是指第一區(qū)塊鏈節(jié)點對上述業(yè)務請求所進行的安全性驗證,后續(xù)提到的第二安全性驗證則是指第二區(qū)塊鏈節(jié)點對上述業(yè)務請求進行的安全性驗證,第一安全性驗證和第二安全性驗證所采用的具體驗證方式可以是同一驗證方式,如,均為非對稱簽名合法驗證。所以,這里提到的第一安全性驗證以及后續(xù)提到的第二安全性驗證僅為區(qū)分是哪一區(qū)塊鏈節(jié)點對上述業(yè)務請求所執(zhí)行的安全性驗證。
s102:當確定所述業(yè)務請求通過所述第一安全性驗證時,存儲所述業(yè)務請求,并將所述業(yè)務請求廣播給各第二區(qū)塊鏈節(jié)點,以使所述各第二區(qū)塊鏈節(jié)點在確定所述業(yè)務請求通過第二安全性驗證時存儲所述業(yè)務請求。
當?shù)谝粎^(qū)塊鏈節(jié)點確定該業(yè)務請求通過第一安全性驗證后,可將該業(yè)務請求進行存儲。當?shù)谝粎^(qū)塊鏈節(jié)點確定該業(yè)務請求未通過第一安全性驗證后,則不對該業(yè)務請求進行存儲,并可向客戶端發(fā)送該業(yè)務請求受理失敗的提示,客戶端接收到該提示后可向用戶進行展示,以使用戶重新編輯業(yè)務請求,并通過客戶端發(fā)送給第一區(qū)塊鏈節(jié)點。
除此之外,第一區(qū)塊鏈節(jié)點接收到客戶端發(fā)送的業(yè)務請求時,可將該業(yè)務請求以廣播的形式發(fā)送給各第二區(qū)塊鏈節(jié)點。這里提到的各第二區(qū)塊鏈節(jié)點可以為共識網(wǎng)絡中除第一區(qū)塊鏈節(jié)點以外的其他區(qū)塊鏈節(jié)點。各第二區(qū)塊鏈節(jié)點接收到該業(yè)務請求后,可對該業(yè)務請求進行第二安全性驗證,以決定是否對該業(yè)務請求進行存儲,如圖2所示。
圖2為本申請實施例提供的整個共識網(wǎng)絡對業(yè)務請求進行安全性驗證的詳細過程示意圖。
以交易業(yè)務為例,當用戶需要進行轉(zhuǎn)賬業(yè)務時,可在終端安裝的客戶端中選擇轉(zhuǎn)賬對象并輸入轉(zhuǎn)賬金額??蛻舳藢⒏鶕?jù)用戶輸入的內(nèi)容,生成相應的交易請求,并將這筆交易請求發(fā)送至第一區(qū)塊鏈節(jié)點中。其中,客戶端在發(fā)送該業(yè)務請求之前,可通過自己所持有的私鑰對這筆交易請求進行加密,并將加密后的交易請求發(fā)送至第一區(qū)塊鏈節(jié)點中。
第一區(qū)塊鏈節(jié)點接收到客戶端發(fā)送的交易請求(即業(yè)務請求)后,可通過該交易請求中所攜帶的公鑰(當然,第一區(qū)塊鏈節(jié)點也可事先從客戶端中獲取到該公鑰)對該交易請求進行解密(即對該交易請求進行第一安全性驗證),以得到這筆交易請求中所涉及的交易雙方的賬戶地址,進而驗證交易雙方的賬戶地址是否合法。當確定出這筆交易請求所涉及的交易雙方的賬戶地址均為合法賬戶,且交易發(fā)起方的賬戶中所存有的金額數(shù)大于等于這筆交易請求中所涉及的轉(zhuǎn)賬金額數(shù)時,則確定這筆交易請求通過第一安全性驗證,進而將這筆交易請求存儲在第一區(qū)塊鏈節(jié)點所對應的業(yè)務存儲器中。第一區(qū)塊鏈節(jié)點將這筆交易請求存儲在該業(yè)務存儲器則相當于對這筆交易請求進行了受理。而當?shù)谝粎^(qū)塊鏈節(jié)點確定這筆交易請求未通過第一安全性驗證時,則拒絕受理這筆交易請求,即,不會將這筆交易請求存儲在自身對應的業(yè)務存儲器中。
除此之外,第一區(qū)塊鏈節(jié)點在接收到這筆交易請求時,可將這筆交易請求以廣播的形式發(fā)送給共識網(wǎng)絡中的其他區(qū)塊鏈節(jié)點,即各第二區(qū)塊鏈節(jié)點。各第二區(qū)塊鏈節(jié)點在接收到這筆交易請求后,可對這筆交易請求進行第二安全性驗證。對于每個第二區(qū)塊鏈節(jié)點來說,當確定出這筆交易請求通過第二安全性驗證時,則可將這筆交易請求存儲在自身對應的業(yè)務存儲器中,即受理這筆交易請求;同樣,當確定出這筆交易請求未通過第二安全性驗證時,則不對這筆交易請求進行受理。
在本申請實施例中,共識網(wǎng)絡中的各區(qū)塊鏈節(jié)點和各業(yè)務存儲器中可通過一個預設的分布式中間件實現(xiàn)數(shù)據(jù)傳輸。即,第一區(qū)塊鏈節(jié)點確定該業(yè)務請求通過第一安全性驗證時,可將該業(yè)務請求發(fā)送至分布式中間件中,該分布式中間件可根據(jù)該第一區(qū)塊鏈節(jié)點的節(jié)點標識,將該業(yè)務請求發(fā)送至該第一區(qū)塊鏈節(jié)點所對應的業(yè)務存儲器中進行存儲。
s103:在確定滿足預設條件時,對存儲的至少一個業(yè)務請求進行預處理,得到預處理塊并存儲。
由于本申請實施例意在簡化區(qū)塊鏈業(yè)務共識校驗的過程,縮短共識校驗的耗時,提高共識校驗的效率。為此,第一區(qū)塊鏈節(jié)點在對自身存儲的各業(yè)務請求進行共識校驗之前,可先對各業(yè)務請求進行預處理,得到預處理塊,從而在共識校驗過程中,直接將該預處理塊廣播給共識網(wǎng)絡中的各第二區(qū)塊鏈節(jié)點進行共識校驗。
具體的,在本申請實施例中,第一區(qū)塊鏈節(jié)點當確定滿足預設條件時,可從自身對應的業(yè)務存儲器中撈取至少一個業(yè)務請求,并在后續(xù)過程中,通過整個共識網(wǎng)絡對這些業(yè)務請求進行共識。
其中,第一區(qū)塊鏈節(jié)點在確定當前時刻到達下一個撈取業(yè)務請求的設定時間周期時,則確定滿足撈取請求的條件,進而從自身對應的業(yè)務存儲器中撈取至少一個業(yè)務請求,并對撈取的至少一個業(yè)務請求進行預處理。除此之外,上述預設條件也可以是其他的條件。如,第一區(qū)塊鏈節(jié)點當監(jiān)測到業(yè)務存儲器中的業(yè)務請求到達設定的存儲時間時,則確定該業(yè)務請求滿足預設條件,而后,第一區(qū)塊鏈節(jié)點可將滿足預設條件的各業(yè)務請求進行預處理,并得到相應的預處理塊。當然,這里提到的預設條件也可以是其他的形式,在此就不一一舉例說明了。
而第一區(qū)塊鏈節(jié)點從業(yè)務存儲器撈取業(yè)務請求的過程中,可按照業(yè)務類型優(yōu)先級的方式從自身對應的業(yè)務存儲器中撈取一定數(shù)量的業(yè)務請求,例如,第一區(qū)塊鏈節(jié)點可以某一業(yè)務類型為界限,將業(yè)務類型優(yōu)先級位于該業(yè)務類型之上的各業(yè)務請求從該業(yè)務存儲器中撈取出來。
當然,第一區(qū)塊鏈節(jié)點通過共識網(wǎng)絡對業(yè)務請求進行共識時,可選定一個業(yè)務,并將這個業(yè)務所對應的各業(yè)務請求從業(yè)務存儲器中撈取出來,其中,第一區(qū)塊鏈節(jié)點選定業(yè)務時,可隨機選取,也可按照一定順序進行選??;或是按照各業(yè)務請求進入該業(yè)務存儲器中時間的先后順序,從該業(yè)務存儲器中撈取一定數(shù)量的業(yè)務請求。當然,第一區(qū)塊鏈節(jié)點還可通過其他標準來撈取業(yè)務請求,在此就不進行詳細贅述了。
第一區(qū)塊鏈節(jié)點撈取到各業(yè)務請求后,可通過預設的特征值確定規(guī)則,分別確定出各業(yè)務請求所對應的各子特征值。如,當預設的特征值確定規(guī)則為hash算法時,第一區(qū)塊鏈節(jié)點可分別確定出各業(yè)務請求所對應的各子hash值,而當預設的特征值確定規(guī)則為消息摘要算法第五版(messagedigestalgorithm,md5)時,第一區(qū)塊鏈節(jié)點可分別確定出各業(yè)務請求所對應的子md5值。
第一區(qū)塊鏈節(jié)點確定出各業(yè)務請求對應的各子特征值后,可根據(jù)確定出的各子特征值以及各業(yè)務請求的排列順序,確定出各業(yè)務請求唯一對應的待驗證特征值。
其中,該待驗證特征值與各業(yè)務請求整體上唯一對應,即,當各業(yè)務請求中的某一業(yè)務請求在內(nèi)容上發(fā)生變化時,則該待驗證特征值也將發(fā)生變化。而各業(yè)務請求的排列順序可以是第一區(qū)塊鏈節(jié)點設定的一個排列順序,也可按照各業(yè)務請求在業(yè)務存儲器中的排列順序來確定。第一區(qū)塊鏈節(jié)點確定待驗證特征值的方式如圖3所示。
圖3為本申請實施例提供的確定待驗證特征值的示意圖。
在圖3中,第一區(qū)塊鏈節(jié)點所采用的特征值確定規(guī)則為hash算法。假設,第一區(qū)塊鏈節(jié)點從其自身存儲的各業(yè)務請求中撈取到四個業(yè)務請求,這四個業(yè)務請求的排序如圖3所示。第一區(qū)塊鏈節(jié)點分別確定出這四個業(yè)務請求對應的四個子hash值后,可將這四個子hash值,按照這四個業(yè)務請求的排序,從左到右依次置于merkle樹的四個葉子節(jié)點上,并以此確定出merkle樹的非葉子節(jié)點以及根節(jié)點。而后,第一區(qū)塊鏈節(jié)點可將該merkle樹的根節(jié)點hash7確定為這四個業(yè)務請求唯一對應的待驗證特征值。
需要說明的是,上述說明的確定待驗證特征值的方法并不唯一,第一區(qū)塊鏈節(jié)點也可采用其他的方式進行,只需保證各業(yè)務請求在一定順序下,該待驗證特征值與各業(yè)務請求唯一對應即可。
第一區(qū)塊鏈節(jié)點在確定出各業(yè)務請求(即從業(yè)務存儲器中撈取的至少一個業(yè)務請求)唯一對應的待驗證特征值后,可將該待驗證特征值以及各業(yè)務請求對應的各業(yè)務請求標識(如對于交易業(yè)務來說,交易請求標識可以是一筆交易的流水號)打包成預處理塊。其中,第一區(qū)塊鏈節(jié)點可將各業(yè)務請求標識按照上述各業(yè)務請求的排列順序進行排序,得到業(yè)務請求標識隊列,并將該業(yè)務請求標識隊列保存在該預處理塊中。
第一區(qū)塊鏈節(jié)點確定出上述預處理塊后,可將該預處理塊保存在自身所對應的業(yè)務存儲器中。待到達共識校驗階段時,第一區(qū)塊鏈節(jié)點可以從該業(yè)務存儲器中撈取出該預處理塊,并將該預處理塊廣播給共識網(wǎng)絡中的各第二區(qū)塊鏈節(jié)點進行共識校驗。其中,第一區(qū)塊鏈節(jié)點可將該預處理塊與各業(yè)務請求混合存儲在自身所對應的業(yè)務存儲器中,也可在該業(yè)務存儲器中劃分出指定的存儲區(qū)域,并將該預處理塊存儲在該指定的存儲區(qū)域中。
s104:在進行共識校驗時,撈取預處理塊并廣播給共識網(wǎng)絡中的各第二區(qū)塊鏈節(jié)點,以通過所述各第二區(qū)塊鏈節(jié)點對撈取的預處理塊進行共識校驗。
在共識校驗過程中,第一區(qū)塊鏈節(jié)點可從自身存儲的先前通過預處理各業(yè)務請求所對應的預處理塊中撈取預處理塊,并將該預處理塊通過廣播發(fā)送給整個共識網(wǎng)絡中的其他區(qū)塊鏈節(jié)點(即各第二區(qū)塊鏈節(jié)點),進而通過共識網(wǎng)絡對該預處理塊所對應的各業(yè)務請求進行共識校驗。
具體的,第一區(qū)塊鏈節(jié)點可將上述預處理塊廣播給共識網(wǎng)絡中的各第二區(qū)塊鏈節(jié)點,而對于每個第二區(qū)塊鏈節(jié)點來說,當接收到第一區(qū)塊鏈節(jié)點發(fā)送的預處理塊時,第二區(qū)塊鏈節(jié)點可對該預處理塊進行解析,以確定出該預處理塊中所包含的各業(yè)務請求的業(yè)務請求標識。
第二區(qū)塊鏈節(jié)點可進一步的從自身存儲的各業(yè)務請求中確定出與該業(yè)務請求標識對應的各業(yè)務請求,并通過預設的特征值確定規(guī)則,分別確定出各業(yè)務請求所對應的各子特征值,其中,第二區(qū)塊鏈節(jié)點所采用的特征值確定規(guī)定與第一區(qū)塊鏈節(jié)點的相同。
第二區(qū)塊鏈節(jié)點確定出各業(yè)務請求對應的各子特征值后,可根據(jù)該業(yè)務請求標識的排列順序(即業(yè)務請求標識隊列中各業(yè)務請求標識的排列順序)以及各子特征值,確定出各業(yè)務請求在整體上唯一對應的一個特征值,繼而將該特征值與該預處理塊中的待驗證總特征值進行對比,當這兩個特征值相同時,則可確定出第一區(qū)塊鏈節(jié)點所要共識的這些業(yè)務請求在內(nèi)容上沒有發(fā)生過篡改,即,確定這些業(yè)務請求通過哈希完整性驗證,其中,第二區(qū)塊鏈節(jié)點在確定各業(yè)務請求標識的排列順序時,可通過該預處理塊中包含的各業(yè)務請求標識的排列順序進行確定。
各第二區(qū)塊鏈節(jié)點可按照上述方法對上述預處理塊進行哈希完整性驗證,并分別得到各自針對該預處理塊的校驗結(jié)果,隨后,各第二區(qū)塊鏈節(jié)點可將各自得到的校驗結(jié)果以廣播的形式發(fā)送給共識網(wǎng)絡中的其他區(qū)塊鏈節(jié)點,而共識網(wǎng)絡中的各區(qū)塊鏈節(jié)點接收到相互廣播的各校驗結(jié)果后,可通過接收到的各校驗結(jié)果以及自身得到的校驗結(jié)果,得到共識網(wǎng)絡中各區(qū)塊鏈節(jié)點針對該預處理塊是否通過校驗的綜合校驗結(jié)果,并將得到的綜合校驗結(jié)果再次廣播給整個共識網(wǎng)絡中的其他區(qū)塊鏈節(jié)點。
共識網(wǎng)絡中的各區(qū)塊鏈節(jié)點接收到相互廣播的綜合校驗結(jié)果后,可進一步判斷整個共識網(wǎng)絡中,各區(qū)塊鏈節(jié)點得出的各綜合校驗結(jié)果大部分是否均為校驗通過,若是,則將該預處理塊包含的各業(yè)務請求標識所對應的業(yè)務請求寫入到一個區(qū)塊中進行存儲,并進一步將該區(qū)塊按照時序?qū)懭氲阶陨肀4娴膮^(qū)塊鏈中;若否,則確定該預處理塊所對應的各業(yè)務請求未通過共識網(wǎng)絡的共識校驗,并拒絕將各業(yè)務請求寫入到區(qū)塊鏈中。
當區(qū)塊鏈節(jié)點(這里提到的區(qū)塊鏈節(jié)點即可以是第一區(qū)塊鏈節(jié)點,也可以是第二區(qū)塊鏈節(jié)點)將所述各業(yè)務請求以區(qū)塊的形式存儲在區(qū)塊鏈中后,可將這些業(yè)務請求在各自業(yè)務存儲器中所占用的存儲空間進行釋放,并將這些業(yè)務請求轉(zhuǎn)移至用于保存歷史業(yè)務請求的數(shù)據(jù)庫中。
從上述方法可以看出,第一區(qū)塊鏈節(jié)點在接收到客戶端發(fā)送的業(yè)務請求后,可對該業(yè)務請求進行第一安全性驗證,并在確定該業(yè)務請求通過第一安全性驗證后,將該業(yè)務請求進行存儲,而后,第一區(qū)塊鏈節(jié)點可對自身的至少一個業(yè)務請求進行預處理,得到預處理塊,并將該預處理塊進行存儲,這樣一來,第一區(qū)塊鏈節(jié)點在進行共識校驗的過程中,可直接將先前在共識校驗階段之前得到的預處理塊撈取出來,并將該預處理塊廣播給共識網(wǎng)絡中的其他區(qū)塊鏈節(jié)點進行共識校驗,繼而極大的簡化了共識校驗階段的過程,縮短了共識校驗階段的耗時,從而提高了區(qū)塊鏈節(jié)點的共識校驗效率,進而在一定程度上提高了區(qū)塊鏈業(yè)務的共識校驗效率。
需要說明的是,為了進一步的提升區(qū)塊鏈業(yè)務的業(yè)務處理效率,在本申請實施例中,共識網(wǎng)絡中的各區(qū)塊鏈節(jié)點(即第一區(qū)塊鏈節(jié)點以及各第二區(qū)塊鏈節(jié)點)也可通過服務器集群來接收、存儲、驗證、預處理上述業(yè)務請求,換句話說,在現(xiàn)有技術(shù)中,區(qū)塊鏈節(jié)點通常都是由一個單一的設備組成的,而在本申請實施例中,區(qū)塊鏈節(jié)點也可以是一個服務器集群,服務器集群中的各服務器可以地位等同,也可設有專門處理指定任務的服務器,而服務器集群中的各服務器可共享相同的節(jié)點配置,如,各服務器可共享一個節(jié)點身份標識號碼(identity、id)、點對點路由表、節(jié)點非對稱公私鑰等節(jié)點配置,因此,在外界看來,服務器集群中各服務器所發(fā)出的動作以及指令均可以看出是從一個區(qū)塊鏈節(jié)點中發(fā)出的,服務器集群示意圖如下圖所示。
圖4為本申請實施例提供的服務器集群的示意圖。
圖4中展示了第一區(qū)塊鏈節(jié)點的服務器集群架構(gòu),在該服務器集群中存在一個具有路由功能的設備,該具有路由功能的設備負責將用戶終端發(fā)送的業(yè)務請求分配至該服務器集群中的一個服務器中。其中,該具有路由功能的設備可以通過隨機分配的方式將該業(yè)務請求分配至該服務器集群中的一個服務器上,也可通過負載均衡的方式將該業(yè)務請求分配至該服務器集群中的服務器中,所以,該具有路由功能的設備也可以是一個負載均衡設備。而服務器集群中的服務器接收到該業(yè)務請求后,可對該業(yè)務請求進行第一安全性驗證,并在確定出該業(yè)務請求通過第一安全性驗證,將該業(yè)務請求存儲在第一區(qū)塊鏈節(jié)點所對應的業(yè)務存儲器中,其中,第一區(qū)塊鏈節(jié)點的服務器集群可對應一個業(yè)務存儲器。當然,服務器集群中的服務器各自也可對應有一個業(yè)務存儲器,此時,第一區(qū)塊鏈節(jié)點將對應有多個業(yè)務存儲器。
服務器集群中的服務器可從業(yè)務存儲器中撈取一定數(shù)量的業(yè)務請求,并對該業(yè)務請求進行預處理,得到預處理塊,而后,該服務器可將得到的預處理塊存儲在第一區(qū)塊鏈節(jié)點所對應的業(yè)務存儲器中,以備后續(xù)共識校驗中所使用,其中,該服務器可以是先前負載均衡設備選取的用于接收客戶端發(fā)送的業(yè)務請求的服務器(或是通過具有路由功能的設備選取的服務器),也可以是重新從第一區(qū)塊鏈節(jié)點包含的多個服務器中選取出的服務器。
需要說明的是,當服務器集群中的某一服務器從上述業(yè)務存儲器中撈取一定數(shù)量的業(yè)務請求時,可直接將這些業(yè)務請求轉(zhuǎn)移至該服務器中進行預處理,這樣,服務器集群中的其他服務器將無法從業(yè)務存儲器中撈取這些業(yè)務請求,從而避免這些業(yè)務請求被服務器集群中的服務器重復預處理的情況發(fā)生。
當然,服務器集群中的某一服務器在撈取這些業(yè)務請求的過程中,也可將這些業(yè)務請求在業(yè)務存儲器中進行標記,這樣,服務器集群中的其他服務器一旦在業(yè)務存儲器中查看到被標記的業(yè)務請求,則不對該業(yè)務請求進行預處理。除此之外,服務器集群中的服務器也可通過其他的方式來放置業(yè)務請求被重復預處理的情況發(fā)生,在此就不一一舉例說明了。
在共識校驗過程中,服務器集群中的服務器可從第一區(qū)塊鏈節(jié)點所對應的業(yè)務存儲器中撈取先前預處理各業(yè)務請求所得到的預處理塊,并將該預處理塊通過網(wǎng)關(guān)發(fā)送至共識網(wǎng)絡中的其他區(qū)塊鏈節(jié)點(即各第二區(qū)塊鏈節(jié)點),而各第二區(qū)塊鏈節(jié)點接收到該預處理塊后,可通過各自的負載均衡設備(或是具有路由功能的設備),將該預處理塊分配至自身服務器集群中的一個服務器,并通過該服務器來對該預處理塊進行共識校驗。
其中,從業(yè)務存儲器中撈取上述預處理塊的服務器可以是服務器集群中任意一個服務器,選取服務器的工作可以由負載均衡設備通過負載均衡的方式來決定(或是由具有路由功能的設備來選取),也可以由服務器集群中的一個指定服務器來決定,抑或是服務器集群中的各服務器可分別設有一個共識周期,不同服務器的共識周期不同,換句話說,不同服務器的共識周期在時間上是錯開的。對于服務器集群中的每個服務器來說,該服務器可每經(jīng)過一段時間(即自身對應的共識周期),則自動從第一區(qū)塊鏈節(jié)點對應的業(yè)務存儲器中撈取先前得到的預處理塊,并通過網(wǎng)關(guān)將該預處理塊廣播至共識網(wǎng)絡中的各第二區(qū)塊鏈節(jié)點中。除此之外,預處理塊的撈取工作也可由服務器集群中一個指定的服務器來負責,而其他服務器則不參與預處理塊的撈取工作。
從上述圖4中可以看出,整個服務器集群就相當于是第一區(qū)塊鏈節(jié)點,由于第一區(qū)塊鏈節(jié)點的服務器數(shù)量從單一服務器轉(zhuǎn)變成服務器集群的模式,所以無論在服務器壓力上還是業(yè)務處理效率上均得到了明顯的提升,從而為后續(xù)用戶數(shù)量增加所帶來的服務壓力加大提供了有效的應對措施。
需要說明的是,上述圖4中除了可以通過具有路由功能的設備(或負載均衡設備)從第一區(qū)塊鏈節(jié)點中包含的多個服務器中選取服務器來完成指定任務外,也可通過諸如網(wǎng)關(guān)的形式來實現(xiàn),若通過網(wǎng)關(guān)來實現(xiàn)服務器的選取工作,則該網(wǎng)關(guān)可以通過負載均衡的方式從第一區(qū)塊鏈節(jié)點包含的多個服務器中選取出一個服務器來完成指定任務,也可采用隨機選取的方式,當然也可采用其他的方式來實現(xiàn)服務器的選取工作,在此就不一一舉例說明了。
而通過上述具有路由功能的設備(或是負載均衡設備)選取出的服務器在接收到客戶端發(fā)送業(yè)務請求后,該具有路由功能的設備可重新從第一區(qū)塊鏈節(jié)點包含的多個服務器中選取出用于存儲該業(yè)務請求的服務器,并通過接收該業(yè)務請求的服務器將該業(yè)務請求發(fā)送至選取出的用于存儲該業(yè)務請求的服務器,進而通過存儲該業(yè)務請求的服務器實現(xiàn)該業(yè)務請求的存儲。當然,第一區(qū)塊鏈節(jié)點通過該具有路由功能的設備(或是負載均衡設備)選取出的服務器進行業(yè)務請求的預處理工作時,同樣可采用這種方式,即,當選取出的服務器完成業(yè)務請求的預處理工作后,該具有路由功能的設備可從第一區(qū)塊鏈節(jié)點包含的多個服務器中重新確定出一個服務器,并通知完成業(yè)務請求預處理工作的服務器將得到的預處理塊發(fā)送至重新確定出的服務器,以通過重新確定出的服務器將該預處理塊存儲在第一區(qū)塊鏈節(jié)點包含的業(yè)務存儲器中。
上述圖4中僅僅以第一區(qū)塊鏈節(jié)點的服務器集群舉例說明了服務器集群在區(qū)塊鏈業(yè)務中是如何工作的,而共識網(wǎng)絡中各第二區(qū)塊鏈節(jié)點的服務器集群可與上述說明的服務器集群相同,而在一些處理過程中也與上述第一區(qū)塊鏈節(jié)點的服務器集群相似,在此就不進行詳細贅述了。
還需說明的是,在本申請實施例中,整個共識網(wǎng)絡可以是聯(lián)盟鏈的共識網(wǎng)絡,而各區(qū)塊鏈節(jié)點則可以是聯(lián)盟鏈中的各區(qū)塊鏈節(jié)點。
以上為本申請實施例提供的共識校驗方法,基于同樣的思路,本申請實施例還提供兩種共識校驗的裝置,如圖5、6所示。
圖5為本申請實施例提供的一種共識校驗的裝置示意圖,具體包括:
接收模塊501,接收終端發(fā)送的業(yè)務請求并對所述業(yè)務請求進行第一安全性驗證;
存儲模塊502,當確定所述業(yè)務請求通過所述第一安全性驗證時,存儲所述業(yè)務請求,并將所述業(yè)務請求廣播給各第二區(qū)塊鏈節(jié)點,以使所述各第二區(qū)塊鏈節(jié)點在確定所述業(yè)務請求通過第二安全性驗證時存儲所述業(yè)務請求;
預處理模塊503,在確定滿足預設條件時,對存儲的至少一個業(yè)務請求進行預處理,得到預處理塊并存儲;
撈取模塊504,在進行共識校驗時,撈取預處理塊并廣播給共識網(wǎng)絡中的各第二區(qū)塊鏈節(jié)點,以通過所述各第二區(qū)塊鏈節(jié)點對撈取的預處理塊進行共識校驗。
所述第一安全性驗證包括:非對稱簽名合法驗證。
所述存儲模塊502,當確定所述業(yè)務請求未通過所述第一安全性驗證時,則不對所述業(yè)務請求進行存儲。
所述預處理模塊503,當監(jiān)測到經(jīng)過設定時間周期時,則確定滿足所述預設條件。
所述預處理模塊503,按照預設的特征值確定規(guī)則,確定所述至少一個業(yè)務請求對應的待驗證特征值;將所述至少一個業(yè)務請求對應的各業(yè)務請求標識以及所述待驗證特征值打包成預處理塊。
圖6為本申請實施例提供的另一種共識校驗的裝置示意圖,具體包括:
接收請求模塊601,接收第一區(qū)塊鏈節(jié)點廣播的業(yè)務請求并對所述業(yè)務請求進行第二安全性驗證;
請求存儲模塊602,當確定所述業(yè)務請求通過所述安全性驗證時,存儲所述業(yè)務請求;
校驗模塊603,當接收到所述第一區(qū)塊鏈節(jié)點廣播的預處理塊時,則對所述預處理塊進行共識校驗。
所述第二安全性驗證包括:非對稱簽名合法驗證。
所述請求存儲模塊602,當確定所述業(yè)務請求未通過所述第二安全性驗證時,則不對所述業(yè)務請求進行存儲。
所述校驗模塊603,當接收到所述第一區(qū)塊鏈節(jié)點廣播的預處理塊時,則從自身存儲的各業(yè)務請求中查找與所述預處理塊中包含的各業(yè)務請求標識對應的各業(yè)務請求,并根據(jù)預設的特征值確定規(guī)則,確定各業(yè)務請求對應的特征值;通過所述特征值,對所述預處理塊中包含的待驗證特征值進行共識校驗。
在本申請實施例中,第一區(qū)塊鏈節(jié)點在接收到客戶端發(fā)送的業(yè)務請求后,可對該業(yè)務請求進行第一安全性驗證,并在確定該業(yè)務請求通過第一安全性驗證后,將該業(yè)務請求存儲在自身中,而后,第一區(qū)塊鏈節(jié)點可對自身存儲的各業(yè)務請求中的至少一個業(yè)務請求進行預處理,得到預處理塊,并將該預處理塊進行存儲,這樣一來,第一區(qū)塊鏈節(jié)點在進行共識校驗的過程中,可直接從存儲的各預處理塊中撈取預處理塊,并將該預處理塊廣播給共識網(wǎng)絡中的其他區(qū)塊鏈節(jié)點進行共識校驗,繼而極大的簡化了共識校驗階段的過程,縮短了共識校驗階段的耗時,從而提高了區(qū)塊鏈節(jié)點的共識校驗效率。
在20世紀90年代,對于一個技術(shù)的改進可以很明顯地區(qū)分是硬件上的改進(例如,對二極管、晶體管、開關(guān)等電路結(jié)構(gòu)的改進)還是軟件上的改進(對于方法流程的改進)。然而,隨著技術(shù)的發(fā)展,當今的很多方法流程的改進已經(jīng)可以視為硬件電路結(jié)構(gòu)的直接改進。設計人員幾乎都通過將改進的方法流程編程到硬件電路中來得到相應的硬件電路結(jié)構(gòu)。因此,不能說一個方法流程的改進就不能用硬件實體模塊來實現(xiàn)。例如,可編程邏輯器件(programmablelogicdevice,pld)(例如現(xiàn)場可編程門陣列(fieldprogrammablegatearray,fpga))就是這樣一種集成電路,其邏輯功能由用戶對器件編程來確定。由設計人員自行編程來把一個數(shù)字系統(tǒng)“集成”在一片pld上,而不需要請芯片制造廠商來設計和制作專用的集成電路芯片。而且,如今,取代手工地制作集成電路芯片,這種編程也多半改用“邏輯編譯器(logiccompiler)”軟件來實現(xiàn),它與程序開發(fā)撰寫時所用的軟件編譯器相類似,而要編譯之前的原始代碼也得用特定的編程語言來撰寫,此稱之為硬件描述語言(hardwaredescriptionlanguage,hdl),而hdl也并非僅有一種,而是有許多種,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)與verilog。本領(lǐng)域技術(shù)人員也應該清楚,只需要將方法流程用上述幾種硬件描述語言稍作邏輯編程并編程到集成電路中,就可以很容易得到實現(xiàn)該邏輯方法流程的硬件電路。
控制器可以按任何適當?shù)姆绞綄崿F(xiàn),例如,控制器可以采取例如微處理器或處理器以及存儲可由該(微)處理器執(zhí)行的計算機可讀程序代碼(例如軟件或固件)的計算機可讀介質(zhì)、邏輯門、開關(guān)、專用集成電路(applicationspecificintegratedcircuit,asic)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存儲器控制器還可以被實現(xiàn)為存儲器的控制邏輯的一部分。本領(lǐng)域技術(shù)人員也知道,除了以純計算機可讀程序代碼方式實現(xiàn)控制器以外,完全可以通過將方法步驟進行邏輯編程來使得控制器以邏輯門、開關(guān)、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來實現(xiàn)相同功能。因此這種控制器可以被認為是一種硬件部件,而對其內(nèi)包括的用于實現(xiàn)各種功能的裝置也可以視為硬件部件內(nèi)的結(jié)構(gòu)?;蛘呱踔?,可以將用于實現(xiàn)各種功能的裝置視為既可以是實現(xiàn)方法的軟件模塊又可以是硬件部件內(nèi)的結(jié)構(gòu)。
上述實施例闡明的系統(tǒng)、裝置、模塊或單元,具體可以由計算機芯片或?qū)嶓w實現(xiàn),或者由具有某種功能的產(chǎn)品來實現(xiàn)。一種典型的實現(xiàn)設備為計算機。具體的,計算機例如可以為個人計算機、膝上型計算機、蜂窩電話、相機電話、智能電話、個人數(shù)字助理、媒體播放器、導航設備、電子郵件設備、游戲控制臺、平板計算機、可穿戴設備或者這些設備中的任何設備的組合。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡接口和內(nèi)存。
內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。內(nèi)存是計算機可讀介質(zhì)的示例。
計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應包含在本申請的權(quán)利要求范圍之內(nèi)。