本發(fā)明涉及數(shù)據(jù)傳輸技術(shù)領(lǐng)域,特別是涉及數(shù)據(jù)傳輸方法、區(qū)塊鏈節(jié)點及分布式數(shù)據(jù)庫。
背景技術(shù):
隨著比特幣的發(fā)行,區(qū)塊鏈技術(shù)也進入公眾視野。由于區(qū)塊鏈技術(shù)的去中心化、高安全性,因此業(yè)界普遍認為區(qū)塊鏈技術(shù)是下一代金融交換技術(shù)的基礎(chǔ)核心技術(shù)之一,將在賬戶系統(tǒng)清算,核算和資金結(jié)轉(zhuǎn)方面發(fā)揮重要的作用。
但區(qū)塊鏈技術(shù)本身最初是為了比特幣(bitcoin)而研發(fā)的,因此現(xiàn)有區(qū)塊鏈技術(shù)本身帶有濃厚的比特幣特性,為了保證數(shù)據(jù)的安全性,當有交易數(shù)據(jù)產(chǎn)生時需要各區(qū)塊鏈節(jié)點投票顯示該交易數(shù)據(jù)有效時才存儲該交易數(shù)據(jù)。但現(xiàn)代金融交換系統(tǒng)的數(shù)據(jù)具有高并發(fā)、大吞吐量的特性。這就導(dǎo)致大量數(shù)據(jù)處于投票階段,當各區(qū)塊鏈節(jié)點投票無法及時完成時,這些處于投票階段的數(shù)據(jù)將無法被有效存儲,一方面可能導(dǎo)致數(shù)據(jù)丟失,另一方面也使得數(shù)據(jù)存儲效率低下。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提供數(shù)據(jù)傳輸方法、區(qū)塊鏈節(jié)點及分布式數(shù)據(jù)庫,以克服區(qū)塊鏈技術(shù)必須在投票驗證有效后才將數(shù)據(jù)加入?yún)^(qū)塊鏈而導(dǎo)致的數(shù)據(jù)丟失、存儲效率低下的問題。具體技術(shù)方案如下:
一種數(shù)據(jù)傳輸方法,應(yīng)用于分布式數(shù)據(jù)庫,所述分布式數(shù)據(jù)庫與至少兩個區(qū)塊鏈節(jié)點通信連接,所述方法包括:
分布式數(shù)據(jù)庫獲得第一區(qū)塊鏈節(jié)點對所要寫入的數(shù)據(jù)的正確性驗證通過后以區(qū)塊方式寫入的數(shù)據(jù);
分布式數(shù)據(jù)庫將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點,以使各其他區(qū)塊鏈節(jié)點對接收的數(shù)據(jù)的正確性進行驗證并根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票;
分布式數(shù)據(jù)庫將投票信息與所述被寫入的數(shù)據(jù)對應(yīng)存儲。
可選的,所述分布式數(shù)據(jù)庫將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點,包括:分布式數(shù)據(jù)庫利用PUSH機制將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點。
可選的,還包括:
所述分布式數(shù)據(jù)庫對所存儲的數(shù)據(jù)進行定期備份;
分布式數(shù)據(jù)庫在確定當前已存儲的數(shù)據(jù)有誤時,將當前已存儲的數(shù)據(jù)恢復(fù)為上一次備份的數(shù)據(jù)。
可選的,所述投票信息包括:投票有效的區(qū)塊鏈節(jié)點列表和投票無效的區(qū)塊鏈節(jié)點列表;或者,所述投票信息包括:投票結(jié)果,所述投票結(jié)果為有效或無效。
可選的,在所述投票信息包括投票結(jié)果時,所述方法還包括:
根據(jù)所述投票結(jié)果為相對應(yīng)的被寫入數(shù)據(jù)添加有效性標識,所述有效性標識為有效標識或無效標識。
一種數(shù)據(jù)傳輸方法,應(yīng)用于區(qū)塊鏈節(jié)點中,所述區(qū)塊鏈節(jié)點與分布式數(shù)據(jù)庫通信連接,所述方法包括:
第一區(qū)塊鏈節(jié)點對所要寫入的數(shù)據(jù)的正確性進行驗證,驗證通過后以區(qū)塊方式將所要寫入的數(shù)據(jù)寫入所述分布式數(shù)據(jù)庫中,以使所述分布式數(shù)據(jù)庫將所述被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點;
各其他區(qū)塊鏈節(jié)點對接收的數(shù)據(jù)的正確性進行驗證并根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票,以使所述分布式數(shù)據(jù)庫將投票信息與所述被寫入的數(shù)據(jù)對應(yīng)存儲。
一種分布式數(shù)據(jù)庫,所述分布式數(shù)據(jù)庫與至少兩個區(qū)塊鏈節(jié)點通信連接,所述分布式數(shù)據(jù)庫包括:數(shù)據(jù)獲得模塊、數(shù)據(jù)推送模塊和信息存儲模塊,
所述數(shù)據(jù)獲得模塊,用于獲得第一區(qū)塊鏈節(jié)點對所要寫入的數(shù)據(jù)的正確性驗證通過后以區(qū)塊方式寫入的數(shù)據(jù);
所述數(shù)據(jù)推送模塊,用于將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點,以使各其他區(qū)塊鏈節(jié)點對接收的數(shù)據(jù)的正確性進行驗證并根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票;
所述信息存儲模塊,用于將投票信息與所述被寫入的數(shù)據(jù)對應(yīng)存儲。
可選的,所述數(shù)據(jù)推送模塊具體用于:利用PUSH機制將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點,以使各其他區(qū)塊鏈節(jié)點對接收的數(shù)據(jù)的正確性進行驗證并根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票。
可選的,還包括:備份模塊和恢復(fù)模塊,
所述備份模塊,用于對所存儲的數(shù)據(jù)進行定期備份;
所述恢復(fù)模塊,用于在確定當前已存儲的數(shù)據(jù)有誤時,將當前已存儲的數(shù)據(jù)恢復(fù)為上一次備份的數(shù)據(jù)。
可選的,所述投票信息包括:投票有效的區(qū)塊鏈節(jié)點列表和投票無效的區(qū)塊鏈節(jié)點列表;或者,所述投票信息包括:投票結(jié)果,所述投票結(jié)果為有效或無效。
可選的,在所述投票信息包括投票結(jié)果時,所述分布式數(shù)據(jù)庫還包括:標識添加模塊,用于根據(jù)所述投票結(jié)果為相對應(yīng)的被寫入數(shù)據(jù)添加有效性標識,所述有效性標識為有效標識或無效標識。
一種區(qū)塊鏈節(jié)點,所述區(qū)塊鏈節(jié)點與分布式數(shù)據(jù)庫通信連接,所述區(qū)塊鏈節(jié)點包括:驗證模塊、數(shù)據(jù)發(fā)送模塊和投票模塊,
所述驗證模塊,用于獲得數(shù)據(jù)并對所述數(shù)據(jù)的正確性進行驗證,如所述數(shù)據(jù)由所述分布式數(shù)據(jù)庫發(fā)送至該區(qū)塊鏈節(jié)點,則觸發(fā)所述投票模塊;如果所述數(shù)據(jù)不是由所述分布式數(shù)據(jù)庫發(fā)送至該區(qū)塊鏈節(jié)點的,則驗證通過后觸發(fā)所述數(shù)據(jù)發(fā)送模塊;
所述數(shù)據(jù)發(fā)送模塊,用于將驗證通過后的數(shù)據(jù)寫入所述分布式數(shù)據(jù)庫以使所述分布式數(shù)據(jù)庫將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點,使各其他區(qū)塊鏈節(jié)點對接收的數(shù)據(jù)的正確性進行驗證并根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票;
所述投票模塊,用于根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票,以使所述分布式數(shù)據(jù)庫將投票信息與所述被寫入的數(shù)據(jù)對應(yīng)存儲。
本發(fā)明實施例提供了數(shù)據(jù)傳輸方法、區(qū)塊鏈節(jié)點及分布式數(shù)據(jù)庫,分布式數(shù)據(jù)庫獲得第一區(qū)塊鏈節(jié)點對所要寫入的數(shù)據(jù)的正確性驗證通過后以區(qū)塊方式寫入的數(shù)據(jù);分布式數(shù)據(jù)庫將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點,以使各其他區(qū)塊鏈節(jié)點對接收的數(shù)據(jù)的正確性進行驗證并根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票;分布式數(shù)據(jù)庫將投票信息與所述被寫入的數(shù)據(jù)對應(yīng)存儲。本發(fā)明將分布式數(shù)據(jù)庫與區(qū)塊鏈技術(shù)進行了結(jié)合,當區(qū)塊鏈節(jié)點獲得數(shù)據(jù)并驗證通過后可以首先將該數(shù)據(jù)以區(qū)塊方式寫入分布式數(shù)據(jù)庫中進行存儲,然后其他區(qū)塊鏈節(jié)點再進行投票。避免了區(qū)塊鏈技術(shù)必須在投票驗證有效后才將數(shù)據(jù)加入?yún)^(qū)塊鏈而導(dǎo)致的數(shù)據(jù)丟失、存儲效率低下的問題。
當然,實施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時達到以上所述的所有優(yōu)點。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的分布式數(shù)據(jù)庫與區(qū)塊鏈節(jié)點連接示意圖;
圖2為本發(fā)明實施例提供的一種數(shù)據(jù)傳輸方法的流程圖;
圖3為本發(fā)明實施例提供的另一種數(shù)據(jù)傳輸方法的流程圖;
圖4為本發(fā)明實施例提供的另一種數(shù)據(jù)傳輸方法的流程圖;
圖5為本發(fā)明實施例提供的一種分布式數(shù)據(jù)庫的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請結(jié)合圖1及圖2,本發(fā)明實施例提供了一種數(shù)據(jù)傳輸方法,應(yīng)用于分布式數(shù)據(jù)庫001,所述分布式數(shù)據(jù)庫001與至少兩個區(qū)塊鏈節(jié)點通信連接,如圖2所示,該方法可以包括:
S001、分布式數(shù)據(jù)庫001獲得第一區(qū)塊鏈節(jié)點002對所要寫入的數(shù)據(jù)的正確性驗證通過后以區(qū)塊方式寫入的數(shù)據(jù);
其中,分布式數(shù)據(jù)庫001可以為開源分布式數(shù)據(jù)庫。本發(fā)明將分布式數(shù)據(jù)庫與區(qū)塊鏈技術(shù)進行了結(jié)合,當區(qū)塊鏈節(jié)點獲得數(shù)據(jù)后并驗證通過后可以首先將該數(shù)據(jù)以區(qū)塊方式寫入分布式數(shù)據(jù)庫中進行存儲,然后再進行投票即可。這樣就避免了區(qū)塊鏈技術(shù)必須在投票驗證有效后才將數(shù)據(jù)加入?yún)^(qū)塊鏈而導(dǎo)致的數(shù)據(jù)丟失、存儲效率低下的問題。
其中,所要寫入的數(shù)據(jù)可以為業(yè)務(wù)數(shù)據(jù),具體的,如交易數(shù)據(jù)。本發(fā)明中的區(qū)塊鏈節(jié)點可以為礦機。
第一區(qū)塊鏈節(jié)點002可以為產(chǎn)生該所要寫入的數(shù)據(jù)的金融業(yè)務(wù)點所連接的區(qū)塊鏈節(jié)點。該區(qū)塊鏈節(jié)點可以設(shè)置于該金融業(yè)務(wù)點的設(shè)備中。當然,一個金融業(yè)務(wù)點的設(shè)備中可以設(shè)置有一個或多個區(qū)塊鏈節(jié)點,同樣,一個區(qū)塊鏈節(jié)點也可以設(shè)置在一個金融業(yè)務(wù)點的設(shè)備中或分布在多個金融業(yè)務(wù)點的設(shè)備中。
第一區(qū)塊鏈節(jié)點002在獲得所要寫入的數(shù)據(jù)后,需要首先進行正確性驗證,防止將明顯錯誤的數(shù)據(jù)寫入分布式數(shù)據(jù)庫001中。
S002、分布式數(shù)據(jù)庫001將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點003,以使各其他區(qū)塊鏈節(jié)點003對接收的數(shù)據(jù)的正確性進行驗證并根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票;
具體的,分布式數(shù)據(jù)庫可以利用PUSH機制將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點。
通過PUSH機制,每次分布式數(shù)據(jù)庫的修改都會告知各區(qū)塊鏈節(jié)點,這也就實現(xiàn)了區(qū)塊鏈節(jié)點對分布式數(shù)據(jù)庫的監(jiān)聽。當分布式數(shù)據(jù)庫中有數(shù)據(jù)被修改(包括寫入數(shù)據(jù)、刪除數(shù)據(jù)、調(diào)整數(shù)據(jù)等)時,各區(qū)塊鏈節(jié)點就可以對此次修改進行驗證,從而保證每次修改的數(shù)據(jù)的正確性。
分布式數(shù)據(jù)庫可以設(shè)于各金融業(yè)務(wù)點的設(shè)備中,如設(shè)于各區(qū)塊鏈節(jié)點中或金融業(yè)務(wù)點的其他設(shè)備中。當然,分布式數(shù)據(jù)庫也可以設(shè)于各金融業(yè)務(wù)點的設(shè)備外的其他設(shè)備中。
S003、分布式數(shù)據(jù)庫001將投票信息與所述被寫入的數(shù)據(jù)對應(yīng)存儲。
在實際應(yīng)用中,由于被寫入的數(shù)據(jù)是第一區(qū)塊鏈節(jié)點002驗證通過后才寫入分布式數(shù)據(jù)庫的,因此分布式數(shù)據(jù)庫001可以將第一區(qū)塊鏈節(jié)點002對該數(shù)據(jù)的驗證結(jié)果作為投票信息的一部分與被寫入的數(shù)據(jù)對應(yīng)存儲。
具體的投票有效的判斷標準可以有多種,如投票有效的比例為100%,或投票有效的比例為80%,或者投票有效的區(qū)塊鏈節(jié)點個數(shù)不低于預(yù)設(shè)數(shù)值。
其中,投票信息可以包括:投票有效的區(qū)塊鏈節(jié)點列表和投票無效的區(qū)塊鏈節(jié)點列表;或者,所述投票信息包括:投票結(jié)果,所述投票結(jié)果為有效或無效。
在所述投票信息包括投票結(jié)果時,圖2所示方法還可以包括:
根據(jù)所述投票結(jié)果為相對應(yīng)的被寫入數(shù)據(jù)添加有效性標識,所述有效性標識為有效標識或無效標識。
當投票結(jié)果為有效時,各區(qū)塊鏈節(jié)點可以使該被寫入的數(shù)據(jù)形成區(qū)塊鏈。
由于添加了有效性標識,因此當分布式數(shù)據(jù)庫中的數(shù)據(jù)進行使用時就可以根據(jù)該有效性標識確定數(shù)據(jù)的有效性,從而決定是否進行使用。
本發(fā)明實施例提供的一種數(shù)據(jù)傳輸方法,將分布式數(shù)據(jù)庫與區(qū)塊鏈技術(shù)進行了結(jié)合,當區(qū)塊鏈節(jié)點獲得數(shù)據(jù)后并驗證通過后可以首先將該數(shù)據(jù)以區(qū)塊方式寫入分布式數(shù)據(jù)庫中進行存儲,然后分布式數(shù)據(jù)庫再將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點進行投票。這樣就避免了區(qū)塊鏈技術(shù)必須在投票驗證有效后才將數(shù)據(jù)加入?yún)^(qū)塊鏈而導(dǎo)致的數(shù)據(jù)丟失、存儲效率低下的問題??梢?,本發(fā)明可以使得數(shù)據(jù)在傳輸過程中不易丟失,而且數(shù)據(jù)的存儲效率較高。
如圖3所示,本發(fā)明實施例提供的另一種數(shù)據(jù)傳輸方法,還可以包括:
S004、所述分布式數(shù)據(jù)庫對所存儲的數(shù)據(jù)進行定期備份;
S005、分布式數(shù)據(jù)庫在確定當前已存儲的數(shù)據(jù)有誤時,將當前已存儲的數(shù)據(jù)恢復(fù)為上一次備份的數(shù)據(jù)。
通過上述備份-恢復(fù)機制就可以使得即使有錯誤數(shù)據(jù)被寫入分布式數(shù)據(jù)庫,在圖2所示步驟S002中各區(qū)塊鏈節(jié)點根據(jù)驗證結(jié)果對數(shù)據(jù)的有效性進行投票,確定數(shù)據(jù)有誤時,分布式數(shù)據(jù)庫可以恢復(fù)為上一次備份的數(shù)據(jù),從而保證分布式數(shù)據(jù)庫中數(shù)據(jù)的安全性??蛇x的,步驟S005可以在步驟S002確定數(shù)據(jù)有誤之后執(zhí)行。當然,由于確定數(shù)據(jù)有效性的方式非常多,并不僅限于步驟S002的方式,因此步驟S005也可以在其他確定數(shù)據(jù)有效性的方式確定數(shù)據(jù)有誤之后執(zhí)行。
其中,步驟S004、步驟S005與圖2所示的步驟之間的執(zhí)行順序本發(fā)明在此不做限定。
相應(yīng)的,請結(jié)合圖1和圖4,本發(fā)明還提供了一種數(shù)據(jù)傳輸方法,應(yīng)用于區(qū)塊鏈節(jié)點中,所述區(qū)塊鏈節(jié)點與分布式數(shù)據(jù)001通信連接,如圖4所示,該方法可以包括:
S100、第一區(qū)塊鏈節(jié)點002對所要寫入的數(shù)據(jù)的正確性進行驗證,驗證通過后以區(qū)塊方式將所要寫入的數(shù)據(jù)寫入所述分布式數(shù)據(jù)庫001中,以使所述分布式數(shù)據(jù)庫001將所述被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點003;
S200、各其他區(qū)塊鏈節(jié)點003對接收的數(shù)據(jù)的正確性進行驗證并根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票,以使所述分布式數(shù)據(jù)庫001將投票信息與所述被寫入的數(shù)據(jù)對應(yīng)存儲。
本發(fā)明實施例提供的一種數(shù)據(jù)傳輸方法,將分布式數(shù)據(jù)庫與區(qū)塊鏈技術(shù)進行了結(jié)合,某區(qū)塊鏈節(jié)點獲得數(shù)據(jù)后并驗證通過后可以首先將該數(shù)據(jù)以區(qū)塊方式寫入分布式數(shù)據(jù)庫中進行存儲,然后分布式數(shù)據(jù)庫再將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點進行投票。這樣就避免了區(qū)塊鏈技術(shù)必須在投票驗證有效后才將數(shù)據(jù)加入?yún)^(qū)塊鏈而導(dǎo)致的數(shù)據(jù)丟失、存儲效率低下的問題??梢姡景l(fā)明可以使得數(shù)據(jù)在傳輸過程中不易丟失,而且數(shù)據(jù)的存儲效率較高。
與圖2所示方法實施例相對應(yīng),請結(jié)合圖1及圖5,本發(fā)明實施例還提供了一種分布式數(shù)據(jù)庫,所述分布式數(shù)據(jù)庫001與至少兩個區(qū)塊鏈節(jié)點通信連接,所述分布式數(shù)據(jù)庫001包括:數(shù)據(jù)獲得模塊100、數(shù)據(jù)推送模塊200和信息存儲模塊300,
所述數(shù)據(jù)獲得模塊100,用于獲得第一區(qū)塊鏈節(jié)點001對所要寫入的數(shù)據(jù)的正確性驗證通過后以區(qū)塊方式寫入的數(shù)據(jù);
其中,分布式數(shù)據(jù)庫001可以為開源分布式數(shù)據(jù)庫。本發(fā)明將分布式數(shù)據(jù)庫與區(qū)塊鏈技術(shù)進行了結(jié)合,當區(qū)塊鏈節(jié)點獲得數(shù)據(jù)后并驗證通過后可以首先將該數(shù)據(jù)以區(qū)塊方式寫入分布式數(shù)據(jù)庫中進行存儲,然后再進行投票即可。這樣就避免了區(qū)塊鏈技術(shù)必須在投票驗證有效后才將數(shù)據(jù)加入?yún)^(qū)塊鏈而導(dǎo)致的數(shù)據(jù)丟失、存儲效率低下的問題。
其中,所要寫入的數(shù)據(jù)可以為業(yè)務(wù)數(shù)據(jù),具體的,如交易數(shù)據(jù)。本發(fā)明中的區(qū)塊鏈節(jié)點可以為礦機。
第一區(qū)塊鏈節(jié)點002可以為產(chǎn)生該所要寫入的數(shù)據(jù)的金融業(yè)務(wù)點所連接的區(qū)塊鏈節(jié)點。該區(qū)塊鏈節(jié)點可以設(shè)置于該金融業(yè)務(wù)點的設(shè)備中。當然,一個金融業(yè)務(wù)點的設(shè)備中可以設(shè)置有一個或多個區(qū)塊鏈節(jié)點,同樣,一個區(qū)塊鏈節(jié)點也可以設(shè)置在一個金融業(yè)務(wù)點的設(shè)備中或分布在多個金融業(yè)務(wù)點的設(shè)備中。
第一區(qū)塊鏈節(jié)點002在獲得所要寫入的數(shù)據(jù)后,需要首先進行正確性驗證,防止將明顯錯誤的數(shù)據(jù)寫入分布式數(shù)據(jù)庫001中。
所述數(shù)據(jù)推送模塊200,用于將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點003,以使各其他區(qū)塊鏈節(jié)點003對接收的數(shù)據(jù)的正確性進行驗證并根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票;
其中,所述數(shù)據(jù)推送模塊可以具體用于:利用PUSH機制將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點,以使各其他區(qū)塊鏈節(jié)點對接收的數(shù)據(jù)的正確性進行驗證并根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票。
通過PUSH機制,每次分布式數(shù)據(jù)庫的修改都會告知各區(qū)塊鏈節(jié)點,這也就實現(xiàn)了區(qū)塊鏈節(jié)點對分布式數(shù)據(jù)庫的監(jiān)聽。當分布式數(shù)據(jù)庫中有數(shù)據(jù)被修改(包括寫入數(shù)據(jù)、刪除數(shù)據(jù)、調(diào)整數(shù)據(jù)等)時,各區(qū)塊鏈節(jié)點就可以對此次修改進行驗證,從而保證每次修改的數(shù)據(jù)的正確性。
分布式數(shù)據(jù)庫可以設(shè)于各金融業(yè)務(wù)點的設(shè)備中,如設(shè)于各區(qū)塊鏈節(jié)點中或金融業(yè)務(wù)點的其他設(shè)備中。當然,分布式數(shù)據(jù)庫也可以設(shè)于各金融業(yè)務(wù)點的設(shè)備外的其他設(shè)備中。
所述信息存儲模塊300,用于將投票信息與所述被寫入的數(shù)據(jù)對應(yīng)存儲。
在實際應(yīng)用中,由于被寫入的數(shù)據(jù)是第一區(qū)塊鏈節(jié)點002驗證通過后才寫入分布式數(shù)據(jù)庫的,因此分布式數(shù)據(jù)庫001可以將第一區(qū)塊鏈節(jié)點002對該數(shù)據(jù)的驗證結(jié)果作為投票信息的一部分與被寫入的數(shù)據(jù)對應(yīng)存儲。
具體的投票有效的判斷標準可以有多種,如投票有效的比例為100%,或投票有效的比例為80%,或者投票有效的區(qū)塊鏈節(jié)點個數(shù)不低于預(yù)設(shè)數(shù)值。
其中,所述投票信息可以包括:投票有效的區(qū)塊鏈節(jié)點列表和投票無效的區(qū)塊鏈節(jié)點列表;或者,所述投票信息包括:投票結(jié)果,所述投票結(jié)果為有效或無效。
在所述投票信息包括投票結(jié)果時,所述分布式數(shù)據(jù)庫001還可以包括:標識添加模塊,用于根據(jù)所述投票結(jié)果為相對應(yīng)的被寫入數(shù)據(jù)添加有效性標識,所述有效性標識為有效標識或無效標識。
當投票結(jié)果為有效時,各區(qū)塊鏈節(jié)點可以使該被寫入的數(shù)據(jù)形成區(qū)塊鏈。
由于添加了有效性標識,因此當分布式數(shù)據(jù)庫中的數(shù)據(jù)進行使用時就可以根據(jù)該有效性標識確定數(shù)據(jù)的有效性,從而決定是否進行使用。
本發(fā)明實施例提供的一種分布式數(shù)據(jù)庫,將分布式數(shù)據(jù)庫與區(qū)塊鏈技術(shù)進行了結(jié)合,當區(qū)塊鏈節(jié)點獲得數(shù)據(jù)后并驗證通過后可以首先將該數(shù)據(jù)以區(qū)塊方式寫入分布式數(shù)據(jù)庫中進行存儲,然后分布式數(shù)據(jù)庫再將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點進行投票。這樣就避免了區(qū)塊鏈技術(shù)必須在投票驗證有效后才將數(shù)據(jù)加入?yún)^(qū)塊鏈而導(dǎo)致的數(shù)據(jù)丟失、存儲效率低下的問題??梢?,本發(fā)明可以使得數(shù)據(jù)在傳輸過程中不易丟失,而且數(shù)據(jù)的存儲效率較高。
進一步,圖5所示分布式數(shù)據(jù)庫還可以包括:備份模塊和恢復(fù)模塊,
所述備份模塊,用于對所存儲的數(shù)據(jù)進行定期備份;
所述恢復(fù)模塊,用于在確定當前已存儲的數(shù)據(jù)有誤時,將當前已存儲的數(shù)據(jù)恢復(fù)為上一次備份的數(shù)據(jù)。
通過上述備份-恢復(fù)機制就可以使得即使有錯誤數(shù)據(jù)被寫入分布式數(shù)據(jù)庫,在各區(qū)塊鏈節(jié)點根據(jù)驗證結(jié)果對數(shù)據(jù)的有效性進行投票,確定數(shù)據(jù)有誤時,分布式數(shù)據(jù)庫可以恢復(fù)為上一次備份的數(shù)據(jù),從而保證分布式數(shù)據(jù)庫中數(shù)據(jù)的安全性。
與圖4所示方法實施例相對應(yīng),本發(fā)明還提供了一種區(qū)塊鏈節(jié)點,所述區(qū)塊鏈節(jié)點與分布式數(shù)據(jù)庫001通信連接,所述區(qū)塊鏈節(jié)點可以包括:驗證模塊、數(shù)據(jù)發(fā)送模塊和投票模塊,
所述驗證模塊,用于獲得數(shù)據(jù)并對所述數(shù)據(jù)的正確性進行驗證,如所述數(shù)據(jù)由所述分布式數(shù)據(jù)庫001發(fā)送至該區(qū)塊鏈節(jié)點,則觸發(fā)所述投票模塊;如果所述數(shù)據(jù)不是由所述分布式數(shù)據(jù)庫發(fā)送至該區(qū)塊鏈節(jié)點的,則驗證通過后觸發(fā)所述數(shù)據(jù)發(fā)送模塊;
所述數(shù)據(jù)發(fā)送模塊,用于將驗證通過后的數(shù)據(jù)寫入所述分布式數(shù)據(jù)庫001以使所述分布式數(shù)據(jù)庫001將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點,使各其他區(qū)塊鏈節(jié)點對接收的數(shù)據(jù)的正確性進行驗證并根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票;
所述投票模塊,用于根據(jù)驗證結(jié)果對該數(shù)據(jù)的有效性進行投票,以使所述分布式數(shù)據(jù)庫001將投票信息與所述被寫入的數(shù)據(jù)對應(yīng)存儲。
本發(fā)明實施例提供的一種區(qū)塊鏈節(jié)點,可以在獲得數(shù)據(jù)后并驗證通過后首先將該數(shù)據(jù)以區(qū)塊方式寫入分布式數(shù)據(jù)庫中進行存儲,然后分布式數(shù)據(jù)庫再將被寫入的數(shù)據(jù)推送到其他區(qū)塊鏈節(jié)點進行投票。這樣就避免了區(qū)塊鏈技術(shù)必須在投票驗證有效后才將數(shù)據(jù)加入?yún)^(qū)塊鏈而導(dǎo)致的數(shù)據(jù)丟失、存儲效率低下的問題??梢?,本發(fā)明可以使得數(shù)據(jù)在傳輸過程中不易丟失,而且數(shù)據(jù)的存儲效率較高。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。