<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

區塊鏈集群處理系統和方法與流程

文檔序號:11929943閱讀:485來源:國知局
區塊鏈集群處理系統和方法與流程

本發明涉及互聯網技術領域,特別是涉及一種區塊鏈集群處理系統和方法。



背景技術:

區塊鏈一般被理解為一個分布式的賬本,它實質上也是一個分布式計算和存儲系統。區塊鏈有多個節點,不同的節點通過一定的計算規則達成共識,并且將共識后的交易執行結果以區塊的形式存儲至數據庫中,多個區塊組成了區塊鏈,多個節點之間可以對區塊互為備份。由于區塊鏈中的每個節點是獨立的,節點出現故障是不可避免的。當出現故障的節點較多時,區塊鏈可能會無法正常工作,導致區塊鏈的可用性較低。如何有效提高區塊鏈的可用性成為目前需要解決的一個技術問題。



技術實現要素:

基于此,有必要針對上述技術問題,提供一種能夠有效提高區塊鏈可用性的區塊鏈集群處理系統和方法。

一種區塊鏈集群處理系統,所述系統包括計算集群和存儲集群,所述計算集群包括多個計算節點,所述存儲集群包括內存數據庫集群和磁盤數據庫集群,所述內存數據庫集群包括多個內存數據庫,所述磁盤數據庫集群包括多個磁盤數據庫;所述計算集群在同一時刻只有一個計算節點工作,所內存數據庫集群在同一時刻只有一個內存數據庫工作,所述磁盤數據庫在同一時刻只有一個磁盤數據庫工作;當前工作的計算節點獲取交易信息,對所述交易信息進行計算得到對應的區塊鏈數據,將所述區塊鏈數據寫入內存數據庫集群中當前工作的內存數據庫,并且將所述區塊鏈數據寫入磁盤數據庫集群中當前工作的磁盤數據庫;當所述計算節點發生故障時,切換至所述計算集群中的其他計算節點繼續工作;當所述內存數據庫發生故障時,切換至所述內存數據庫集群中的其他內存數據庫繼續工作;當所述磁盤數據庫發生故障時,切換至所述磁盤數據庫集群中的其他磁盤數據庫繼續工作。

在其中一個實施例中,所述計算集群包括多個,所述計算集群包括對應的機構標識,其中一個機構標識對應的計算集群的計算節點將交易信息發送至其他機構標識對應的計算集群運行中的計算節點進行共識,得到其他機構標識對應的計算集群返回的共識后的交易信息,所述計算節點利用共識后的交易信息進行計算,得到對應的區塊鏈數據。

在其中一個實施例中,當所述計算節點將區塊鏈數據寫入內存數據庫集群失敗時,所述計算節點對區塊鏈數據建立本地數據緩存,在內存數據庫集群將寫入失敗的內存數據庫切換至其他內存數據庫后,所述計算節點將本地緩存的區塊鏈數據寫入切換后的內存數據庫。

在其中一個實施例中,當所述計算節點將區塊鏈數據寫入磁盤數據庫集群失敗時,所述計算節點對區塊鏈數據建立本地數據緩存,在磁盤數據庫集群將寫入失敗的磁盤數據庫切換至其他磁盤數據庫后,所述計算節點將本地緩存的區塊鏈數據寫入切換后的磁盤數據庫。

在其中一個實施例中,所述磁盤數據庫集群包括寫數據庫集群和讀數據庫集群,所述寫數據庫集群接收計算節點寫入的區塊鏈數據并且進行存儲,所述讀數據庫集群與所述寫數據庫集群保存區塊鏈數據同步;當計算節點讀取區塊鏈數據時,在所述度數據庫集群中進行讀取。

在其中一個實施例中,所述系統還包括安全集群,所述安全集群包括多個安全節點,所述安全集群在同一時刻只運行一個安全節點;所述安全節點用于接收計算節點上傳的驗證信息,根據驗證信息對區塊鏈使用者的合法性進行驗證;當所述安全節點發生故障時,切換至所述安全集群中的其他安全節點繼續運行。

一種區塊鏈集群處理方法,所述方法應用于計算集群,在同一時刻所述計算集群中只有一個計算節點工作,具體包括以下步驟:

獲取交易信息,對所述交易信息進行計算,得到對應的區塊鏈數據;

將所述區塊鏈數據寫入內存數據庫集群,以使得所述內存數據庫集群當前工作的一個內存數據庫接收所述區塊鏈數據并且進行存儲;

將所述區塊鏈數據寫入磁盤數據庫集群,以使得所述磁盤數據庫集群當前工作的一個磁盤數據庫接收所述區塊鏈數據并且進行存儲;

當所述計算節點發生故障時,切換至所述計算集群中的其他計算節點繼續工作。

在其中一個實施例中,所述計算集群包括多個,所述計算集群包括對應的機構標識;在所述獲取交易信息的步驟之后,還包括:

將所述交易信息發送至其他機構標識對應的計算集群運行中的計算節點,以使得其他計算集群對所述交易信息進行共識;

接收其他機構標識對應的計算集群返回的共識后的交易信息;

利用共識后的交易信息進行計算,得到對應的區塊鏈數據。

在其中一個實施例中,所述方法還包括:

當區塊鏈數據寫入內存數據庫集群失敗時,對區塊鏈數據建立本地數據緩存;

在內存數據庫集群將寫入失敗的內存數據庫切換至其他內存數據庫后,將本地緩存的區塊鏈數據寫入切換后的內存數據庫。

在其中一個實施例中,所述方法還包括:

當區塊鏈數據寫入磁盤數據庫集群失敗時,對區塊鏈數據建立本地數據緩存,

在磁盤數據庫集群將寫入失敗的磁盤數據庫切換至其他磁盤數據庫后,將本地緩存的區塊鏈數據寫入切換后的磁盤數據庫。

上述區塊鏈集群處理系統和方法,計算集群在同一時刻只有一個計算節點工作,該工作節點獲取交易信息,對交易信息進行計算得到對應的區塊鏈數據,并且將區塊鏈數據寫入內存數據庫集群當前唯一工作的內存數據庫進行存儲,以及將區塊鏈數據寫入磁盤數據庫集群當前唯一工作的磁盤數據庫進行存儲。當該計算節點發生故障時,切換至所述計算集群中的其他計算節點繼續工作,由此通過對每個計算節點進行負載均衡處理和對區塊鏈數據的一致性管理能夠有效提高區塊鏈中計算節點的可用性。當該內存數據庫發生故障時,切換至所述內存數據庫集群中的其他內存數據庫繼續工作,能夠有效提高區塊鏈中內存數據庫的可用性。當該磁盤數據庫發生故障時,切換至所述磁盤數據庫集群中的其他磁盤數據庫繼續工作,能夠有效提高區塊鏈中磁盤數據庫的可用性。由于區塊鏈中計算節點和存儲節點的可用性均得到有效提高,因此,區塊鏈整體的可用性得到有效提高。

附圖說明

圖1為一個實施例中區塊鏈集群處理系統的框圖;

圖2為一個實施例中多個計算集群的連接示意圖;

圖3為一個實施例中區塊鏈集群處理方法的流程圖;

圖4為一個實施例中服務器的框圖;

圖5為一個實施例中區塊鏈集群處理裝置的框圖。

具體實施方式

為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。

在一個實施例中,如圖1所示,提供了一種區塊鏈集群處理系統,包括計算集群和存儲集群,計算集群包括多個計算節點,存儲集群包括內存數據庫集群和磁盤數據庫集群,內存數據庫集群包括多個內存數據庫,磁盤數據庫集群包括多個磁盤數據庫;計算集群在同一時刻只有一個計算節點工作,所內存數據庫集群在同一時刻只有一個內存數據庫工作,磁盤數據庫在同一時刻只有一個磁盤數據庫工作;當前工作的計算節點獲取交易信息,對交易信息進行計算得到對應的區塊鏈數據,將區塊鏈數據寫入內存數據庫集群中當前工作的內存數據庫,并且將區塊鏈數據寫入磁盤數據庫集群中當前工作的磁盤數據庫;當計算節點發生故障時,切換至計算集群中的其他計算節點繼續工作;當內存數據庫發生故障時,切換至內存數據庫集群中的其他內存數據庫繼續工作;當磁盤數據庫發生故障時,切換至磁盤數據庫集群中的其他磁盤數據庫繼續工作。

計算集群包括多個計算節點。計算集群可以是按照預設規則來劃分的,例如,預設規則可以是將同屬于一個機構標識的多個計算節點組成一個計算集群。計算集群可以包括兩個或兩個以上的服務器節點。計算集群可以通過一個虛擬地址對區塊鏈提供服務。計算集群在同一時刻只有一個計算節點在工作,其他計算節點保持待機狀態。工作中的計算節點獲取交易信息,對交易信息進行計算,計算得到對應的區塊鏈數據。區塊鏈數據包括交易執行結果和交易日志等。

存儲集群包括內存數據庫集群和磁盤數據庫集群。存儲集群也可以按照預設規則來劃分。內存數據庫集群包括多個內存數據庫,磁盤數據庫集群包括多個磁盤數據庫。內存數據庫和磁盤數據庫也可以統稱為區塊鏈的存儲節點。內存數據庫集群在同一時刻只有一個內存數據庫工作,其他內存數據庫保持待機狀態。磁盤數據庫集群在同一時刻只有一個磁盤數據庫工作,其他磁盤數據庫保持待機狀態。內存數據庫集群中的多個內存數據庫通過數據復制保持數據一致性。磁盤數據庫集群中的多個磁盤數據庫通過數據復制保持數據一致性。

當前工作的計算節點可以將計算得到的區塊鏈數據分別存儲至內存數據庫集群和磁盤數據庫集群。具體的,當前工作的計算節點通過內存數據庫接口層將區塊鏈數據寫入至內存數據庫集群當前工作的唯一內存數據庫進行存儲。當前工作的計算節點通過磁盤數據庫接口、數據路由、分庫分表中間件等將區塊鏈數據寫入至磁盤數據庫集群當前工作的唯一磁盤數據庫進行存儲。由于內存數據庫的寫入速度遠遠高于磁盤數據庫的寫入速度,將區塊鏈數據存入內存數據庫能夠有效提高存儲效率。區塊鏈數據被高頻率的寫入內存數據庫時也不會對區塊鏈性能造成影響。但是內存數據庫的容量是相對有限的,還需要磁盤數據庫對區塊鏈數據提供永久性存儲。

計算集群對當前工作的計算節點進行故障監控。具體的,計算集群可以通過負載均衡的方式對當前工作的計算節點進行故障監控,也可以通過基于消息傳遞的一致性算法對當前工作的計算節點進行故障監控,或者通過分布式應用程序協調服務Zookeeper(一個分布式的,開放源碼的分布式應用程序協調服務)對當前工作的計算節點進行故障監控。若當前工作的計算節點發生故障,通過負載均衡的方式和/或虛擬地址漂移的方式切換至計算集群中的其他計算節點繼續工作。以此對計算集群中的每個計算節點進行負載均衡處理,以及對區塊鏈數據的一致性管理,能夠有效提高區塊鏈中計算節點的可用性。

內存數據庫集群對當前工作的內存數據庫進行故障監控。具體的,可以通過負載均衡的方式對當前工作的內存數據庫進行故障監控,也可以通過基于消息傳遞的一致性算法對當前工作的內存數據庫進行故障監控,或者通過分布式應用程序協調服務Zookeeper對當前工作的內存數據庫進行故障監控。內存數據庫集群的各個內存數據庫中的區塊鏈數據保持一致,若當前工作的內存數據庫發生故障,通過負載均衡的方式切換至內存數據庫集群中的其他內存數據庫繼續工作。由此能夠有效提高區塊鏈中內存數據庫的可用性。

磁盤數據庫集群對當前工作的磁盤數據庫進行故障監控。具體的,可以通過負載均衡的方式對當前工作的磁盤數據庫進行故障監控,也可以通過基于消息傳遞的一致性算法對當前工作的磁盤數據庫進行故障監控,或者通過分布式應用程序協調服務Zookeeper對當前工作的磁盤數據庫進行故障監控。磁盤數據庫集群的各個磁盤數據庫中的區塊鏈數據保持一致,若當前工作的磁盤數據庫發生故障,通過負載均衡的方式切換至磁盤數據庫集群中其他的磁盤數據庫繼續工作。由此能夠有效提高區塊鏈中磁盤數據庫的可用性。

本實施例中,計算集群在同一時刻只有一個計算節點工作,該工作節點獲取交易信息,對交易信息進行計算得到對應的區塊鏈數據,并且將區塊鏈數據寫入內存數據庫集群當前唯一工作的內存數據庫進行存儲,以及將區塊鏈數據寫入磁盤數據庫集群當前唯一工作的磁盤數據庫進行存儲。當該計算節點發生故障時,切換至計算集群中的其他計算節點繼續工作,由此通過對每個計算節點進行負載均衡處理和對區塊鏈數據的一致性管理能夠有效提高區塊鏈中計算節點的可用性。當該內存數據庫發生故障時,切換至內存數據庫集群中的其他內存數據庫繼續工作,能夠有效提高區塊鏈中內存數據庫的可用性。當該磁盤數據庫發生故障時,切換至磁盤數據庫集群中的其他磁盤數據庫繼續工作,能夠有效提高區塊鏈中磁盤數據庫的可用性。由于區塊鏈中計算節點和存儲節點的可用性均得到有效提高,因此,區塊鏈整體的可用性得到有效提高。

進一步的,當計算集群中的計算節點讀取區塊鏈數據時,先讀取內存數據庫集群中當前唯一工作的內存數據庫。由于內存數據庫的讀取速度遠遠快于磁盤數據庫的讀取速度,因此從內存數據庫集群讀取數據能夠有效提高數據讀取速度。若讀取失敗,計算節點再讀取磁盤數據庫集群中當前唯一工作的磁盤數據庫。若再次讀取失敗,則讀取本地數據緩存,若仍舊讀取失敗,則返回數據讀取失敗的提示信息。

在一個實施例中,計算集群包括多個,計算集群包括對應的機構標識,其中一個機構標識對應的計算集群的計算節點將交易信息發送至其他機構標識對應的計算集群運行中的計算節點進行共識,得到其他機構標識對應的計算集群返回的共識后的交易信息,計算節點利用共識后的交易信息進行計算,得到對應的區塊鏈數據。

計算集群可以包括對應的機構標識。假設,機構標識分別為A和B,其中A對應的計算集群包括3個計算節點,B對應的計算集群包括5個計算節點。在計算節點對交易信息進行計算之前,需要多個計算節點對交易信息進行共識。傳統的方式中,若A中的一個計算節點發起共識請求,則需要將待共識的交易信息發送至A對應的另外2個計算節點和B對應的5個計算節點進行共識。如果A對應的計算節點和/或B對應的計算節點發生故障,則可能出現共識結果不準確的情形,對區塊鏈的性能造成影響,導致區塊鏈的可用性下降。

本實施例中,每個計算集群在同一時刻只有一個計算節點工作。多個計算集群可以分別通過虛擬地址對區塊鏈提供服務器。多個計算集群的連接示意圖如圖2所示。當其中一個計算集群中計算節點需要對交易信息進行共識時,可以將交易信息發送至其他機構標識對應的計算集群當前唯一工作的計算節點進行共識。如果計算集群中當前工作的計算節點,可以按照上述實施例中提供的方式切換至其他計算節點繼續工作。從而能夠避免因計算節點故障而導致共識結果不準確的情形,能夠有效提高區塊鏈的可用性。

在一個實施例中,當計算節點將區塊鏈數據寫入內存數據庫集群失敗時,計算節點對區塊鏈數據建立本地數據緩存,在內存數據庫集群將寫入失敗的內存數據庫切換至其他內存數據庫后,計算節點將本地緩存的區塊鏈數據寫入切換后的內存數據庫。

本實施例中,當內存數據庫集群中當前工作的內存數據庫出現故障時,內存數據庫集群會從該故障內存數據庫切換至其他內存數據庫。在這個切換過程中,如果計算節點向內存數據庫集群寫入區塊鏈數據,會出現寫入失敗的情形。為了確保區塊鏈數據不丟失并且能夠存入內存數據庫集群,計算節點對區塊鏈數據建立本地緩存。在內存數據庫集群從故障內存數據庫切換至其他內存數據庫之后,計算節點將本地緩存的區塊鏈數據寫入內存數據庫集群當前工作的內存數據庫。從而確保區塊鏈數據能夠被完整存儲至內存數據庫集群。

在一個實施例中,當計算節點將區塊鏈數據寫入磁盤數據庫集群失敗時,計算節點對區塊鏈數據建立本地數據緩存,在磁盤數據庫集群將寫入失敗的磁盤數據庫切換至其他磁盤數據庫后,計算節點將本地緩存的區塊鏈數據寫入切換后的磁盤數據庫。

本實施例中,當磁盤數據庫集群中當前工作的磁盤數據庫出現故障時,磁盤數據庫集群會從該故障磁盤數據庫切換至其他磁盤數據庫。在這個切換過程中,如果計算節點向磁盤數據庫集群寫入區塊鏈數據,會出現寫入失敗的情形。為了確保區塊鏈數據不丟失并且能夠存入磁盤數據庫集群,計算節點對區塊鏈數據建立本地緩存。在磁盤數據庫集群從故障磁盤數據庫切換至其他磁盤數據庫之后,計算節點將本地緩存的區塊鏈數據寫入磁盤數據庫集群當前工作的磁盤數據庫。從而確保區塊鏈數據能夠被完整存儲至磁盤數據庫集群。

在一個實施例中,磁盤數據庫集群包括寫數據庫集群和讀數據庫集群,寫數據庫集群接收計算節點寫入的區塊鏈數據并且進行存儲,讀數據庫集群與寫數據庫集群保存區塊鏈數據同步;當計算節點讀取區塊鏈數據時,在度數據庫集群中進行讀取。

本實施例中,磁盤數據庫可以包括寫數據庫和讀數據庫。多個寫數據庫組成寫數據庫集群,多個讀數據庫集群組成讀數據庫集群。寫數據庫集群在同一時刻只有一個寫數據庫保持工作,讀數據庫集群在同一時刻也是只有一個讀數據庫保持工作。計算節點通過磁盤數據庫接口層、數據路由、分庫分表中間件和寫數據庫連接池對寫數據庫集群進行寫操作。計算節點通過磁盤數據庫接口層、數據路由、分庫分表中間件和讀數據庫連接池對讀數據庫集群進行讀操作。

當計算節點向磁盤數據庫集群寫入區塊鏈數據時,計算節點將區塊鏈數據寫入寫數據庫集群當前唯一工作的寫數據庫中進行存儲。若寫數據庫集群中的寫數據庫發生故障,通過負載均衡和/或一致性服務切換至寫數據庫集群中的其他寫數據庫繼續工作。寫數據庫集群和讀數據庫集群通過數據復制保持數據一致性。當計算節點需要讀取區塊鏈數據時,計算節點訪問讀數據庫集群當前唯一工作的讀數據庫,進行數據讀取。若讀數據庫集群中的讀數據庫發生故障,通過負載均衡和/或一致性服務切換至讀數據庫集群中的其他讀數據庫繼續工作。通過將磁盤數據庫集群的讀寫功能進行分離,能夠有效提高區塊鏈數據的存儲和讀取效率,有效提高區塊鏈的可用性。

在一個實施例中,該系統還包括安全集群,安全集群包括多個安全節點,安全集群在同一時刻只運行一個安全節點;安全節點接收計算節點上傳的驗證信息,根據驗證信息對區塊鏈使用者的合法性進行驗證;當安全節點發生故障時,切換至安全集群中的其他安全節點繼續運行。

區塊鏈使用者通過計算節點登錄以及進行交易時,該系統會通過安全集群對區塊鏈使用者的合法性進行驗證。在傳統的方式中,多個安全節點是獨立的,當需要進行安全驗證時,計算節點將驗證信息上傳至對應的安全節點。若安全節點出現故障,則可能無法完成安全驗證,或者出現非法入侵者被驗證通過的情形,由此對區塊鏈的安全性帶來不利影響,也降低了區塊鏈的可用性。

本實施例中,安全集群包括多個安全節點,安全節點也可以稱為CA(Certificate Authority,證書授權中心)或安全中心。安全集群通過一個虛擬地址對區塊鏈提供服務。安全集群在同一時刻只有一個安全節點進行工作,其他安全節點保持待機狀態。當前工作的安全節點接收計算節點上傳的驗證信息,根據驗證信息對區塊鏈使用者的合法性進行驗證,以此確保區塊鏈數據的安全性。

安全集群可以采用上述實施例中提供的方式對當前工作的安全節點進行故障監控。當前工作的安全節點發生故障時,通過負載均衡的方式和/或虛擬地址漂移的方式切換至安全集群中的其他安全節點繼續工作。由此能夠確區塊鏈使用者的合法性驗證順利進行,從而有效提高區塊鏈的可用性。

進一步的,為了便于對區塊鏈使用者的驗證信息進行管理,多個機構標識對應的計算集群可以向同一個安全集群發送驗證信息,安全集群接收多個機構標識對應的計算集群內的計算節點發送的驗證信息,根據驗證信息分別對多個機構標識對應的區塊鏈使用者的合法性進行驗證。

進一步的,為了有效提高驗證效率,安全集群可以有多個,安全集群可以有對應的機構標識。同一機構標識對應的計算集群向同一機構標識的安全集群發送驗證信息,多個安全集群可以同時對不同區塊鏈使用的合法性進行驗證。

在一個實施例中,如圖3所示,提供了一種區塊鏈集群處理方法,應該理解的是,雖然圖3的流程圖中的各個步驟按照箭頭的指示依次顯示,但是這些步驟并不是必然按照箭頭指示的順序依次執行。除非本文中有明確的說明,這些步驟的執行并沒有嚴格的順序限制,其可以以其他的順序執行。而且,圖3中的至少一部分步驟可以包括多個子步驟或者多個階段,這些子步驟或者階段并不必然是在同一時刻執行完成,而是可以在不同的時刻執行,其執行順序也不必然是依次進行,而是可以與其他步驟或者其他步驟的子步驟或者階段的至少一部分輪流或者交替地執行。該方法應用于計算集群,在同一時刻計算集群中只有一個計算節點工作,具體包括以下步驟:

步驟302,獲取交易信息,對交易信息進行計算,得到對應的區塊鏈數據;

步驟304,將區塊鏈數據寫入內存數據庫集群,以使得內存數據庫集群當前工作的一個內存數據庫接收區塊鏈數據并且進行存儲;

步驟306,將區塊鏈數據寫入磁盤數據庫集群,以使得磁盤數據庫集群當前工作的一個磁盤數據庫接收區塊鏈數據并且進行存儲;

步驟308,當計算節點發生故障時,切換至計算集群中的其他計算節點繼續工作。

本實施例中,計算集群包括多個計算節點。計算集群可以通過一個虛擬地址對區塊鏈提供服務。計算集群在同一時刻只有一個計算節點在工作,其他計算節點保持待機狀態。工作中的計算節點獲取交易信息,對交易信息進行計算,計算得到對應的區塊鏈數據。區塊鏈數據包括交易執行結果和交易日志等。若當前工作的計算節點發生故障,通過負載均衡的方式和/或虛擬地址漂移的方式切換至計算集群中的其他計算節點繼續工作。以此對計算集群中的每個計算節點進行負載均衡處理,以及對區塊鏈數據的一致性管理,能夠有效提高區塊鏈中計算節點的可用性。

存儲集群包括內存數據庫集群和磁盤數據庫集群。存儲集群也可以按照預設規則來劃分。內存數據庫集群包括多個內存數據庫,磁盤數據庫集群包括多個磁盤數據庫。內存數據庫和磁盤數據庫也可以統稱為區塊鏈的存儲節點。內存數據庫集群在同一時刻只有一個內存數據庫工作,其他內存數據庫保持待機狀態。磁盤數據庫集群在同一時刻只有一個磁盤數據庫工作,其他磁盤數據庫保持待機狀態。內存數據庫集群中的多個內存數據庫通過數據復制保持數據一致性。磁盤數據庫集群中的多個磁盤數據庫通過數據復制保持數據一致性。

當前工作的計算節點通過內存數據庫接口層將區塊鏈數據寫入至內存數據庫集群當前工作的唯一內存數據庫進行存儲。若當前工作的內存數據庫發生故障,通過負載均衡的方式切換至內存數據庫集群中的其他內存數據庫繼續工作。在其中一個實施例中,該方法還包括:當區塊鏈數據寫入內存數據庫集群失敗時,對區塊鏈數據建立本地數據緩存;在內存數據庫集群將寫入失敗的內存數據庫切換至其他內存數據庫后,將本地緩存的區塊鏈數據寫入切換后的內存數據庫。

當前工作的計算節點通過磁盤數據庫接口、數據路由、分庫分表中間件等將區塊鏈數據寫入至磁盤數據庫集群當前工作的唯一磁盤數據庫進行存儲。若當前工作的磁盤數據庫發生故障,通過負載均衡的方式切換至磁盤數據庫集群中其他的磁盤數據庫繼續工作。在其中一個實施例中,該方法還包括:當區塊鏈數據寫入磁盤數據庫集群失敗時,對區塊鏈數據建立本地數據緩存,在磁盤數據庫集群將寫入失敗的磁盤數據庫切換至其他磁盤數據庫后,將本地緩存的區塊鏈數據寫入切換后的磁盤數據庫。

本實施例中,計算集群在同一時刻只有一個計算節點工作,該工作節點獲取交易信息,對交易信息進行計算得到對應的區塊鏈數據,并且將區塊鏈數據寫入內存數據庫集群當前唯一工作的內存數據庫進行存儲,以及將區塊鏈數據寫入磁盤數據庫集群當前唯一工作的磁盤數據庫進行存儲。當該計算節點發生故障時,切換至計算集群中的其他計算節點繼續工作,由此通過對每個計算節點進行負載均衡處理和對區塊鏈數據的一致性管理能夠有效提高區塊鏈中計算節點的可用性。當該內存數據庫發生故障時,切換至內存數據庫集群中的其他內存數據庫繼續工作,能夠有效提高區塊鏈中內存數據庫的可用性。當該磁盤數據庫發生故障時,切換至磁盤數據庫集群中的其他磁盤數據庫繼續工作,能夠有效提高區塊鏈中磁盤數據庫的可用性。由于區塊鏈中計算節點和存儲節點的可用性均得到有效提高,因此,區塊鏈整體的可用性得到有效提高。

在一個實施例中,計算集群包括多個,計算集群包括對應的機構標識;在獲取交易信息的步驟之后,還包括:將交易信息發送至其他機構標識對應的計算集群運行中的計算節點,以使得其他計算集群對所述交易信息進行共識;接收其他機構標識對應的計算集群返回的共識后的交易信息;利用共識后的交易信息進行計算,得到對應的區塊鏈數據。

本實施例中,每個計算集群在同一時刻只有一個計算節點工作。多個計算集群可以分別通過虛擬地址對區塊鏈提供服務器。當其中一個計算集群中計算節點需要對交易信息進行共識時,可以將交易信息發送至其他機構標識對應的計算集群當前唯一工作的計算節點進行共識。如果計算集群中當前工作的計算節點,可以按照上述實施例中提供的方式切換至其他計算節點繼續工作。從而能夠避免因計算節點故障而導致共識結果不準確的情形,能夠有效提高區塊鏈的可用性。

在一個實施例中,該方法還包括:向安全集群上傳驗證信息,以使得安全集群中在同一時刻唯一工作的安全節點根據驗證信息對區塊鏈使用者的合法性進行驗證;安全集群中包括多個安全節點,若當前工作的安全節點發生故障,則切換至安全集群中的其他安全節點繼續工作。

本實施例中,安全集群通過一個虛擬地址對區塊鏈提供服務。安全集群在同一時刻只有一個安全節點進行工作,其他安全節點保持待機狀態。當前工作的安全節點接收計算節點上傳的驗證信息,根據驗證信息對區塊鏈使用者的合法性進行驗證,以此確保區塊鏈數據的安全性。

安全集群可以采用上述實施例中提供的方式對當前工作的安全節點進行故障監控。當前工作的安全節點發生故障時,通過負載均衡的方式和/或虛擬地址漂移的方式切換至安全集群中的其他安全節點繼續工作。由此能夠確區塊鏈使用者的合法性驗證順利進行,從而有效提高區塊鏈的可用性。

在一個實施例中,計算集群中的計算節點可以是服務器,如圖4所示,服務器400包括通過系統總線連接的處理器401、內存儲器402、非易失性存儲介質403和網絡接口404。其中,該服務器的非易失性存儲介質403中存儲有操作系統4031和區塊鏈集群處理處理裝置4032,區塊鏈集群處理裝置4032用于實現有效提高區塊鏈的可用性。服務器400的處理器401用于提供計算和控制能力,被配置為執行一種區塊鏈集群處理方法。終端400的內存儲器402為非易失性存儲介質中的區塊鏈集群處理處理裝置4032的運行提供環境,內存儲器402中可儲存有計算機可讀指令,該計算機可讀指令被處理器執行時,可使得處理器執行一種區塊鏈集群處理方法。服務器400的網絡接口404用于據以與其他計算集群或存儲集群通過網絡連接通信。本領域技術人員可以理解,圖4中示出的結構,僅僅是與本申請方案相關的部分結構的框圖,并不構成對本申請方案所應用于其上的服務器的限定,具體地服務器可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。

在一個實施例中,如圖5所示,提供了一種區塊鏈集群處理裝置,包括:獲取模塊502、計算模塊504、存儲模塊506和切換模塊508,其中:

獲取模塊502,用于獲取交易信息。

計算模塊504,用于對交易信息進行計算,得到對應的區塊鏈數據。

存儲模塊506,用于將區塊鏈數據寫入內存數據庫集群,以使得內存數據庫集群當前工作的一個內存數據庫接收區塊鏈數據并且進行存儲;將區塊鏈數據寫入磁盤數據庫集群,以使得磁盤數據庫集群當前工作的一個磁盤數據庫接收區塊鏈數據并且進行存儲。

切換模塊508,用于當計算節點發生故障時,切換至計算集群中的其他計算節點繼續工作。

在一個實施例中,計算集群包括多個,計算集群包括對應的機構標識;該裝置還包括:發送模塊510和接收模塊512,其中:

發送模塊510,用于將交易信息發送至其他機構標識對應的計算集群運行中的計算節點,以使得其他計算集群對交易信息進行共識。

接收模塊512,用于接收其他機構標識對應的計算集群返回的共識后的交易信息。

計算模塊504還用于利用共識后的交易信息進行計算,得到對應的區塊鏈數據。

在一個實施例中,存儲模塊506還用于當區塊鏈數據寫入內存數據庫集群失敗時,對區塊鏈數據建立本地數據緩存;在內存數據庫集群將寫入失敗的內存數據庫切換至其他內存數據庫后,將本地緩存的區塊鏈數據寫入切換后的內存數據庫。

在一個實施例中,存儲模塊506當區塊鏈數據寫入磁盤數據庫集群失敗時,對區塊鏈數據建立本地數據緩存,在磁盤數據庫集群將寫入失敗的磁盤數據庫切換至其他磁盤數據庫后,將本地緩存的區塊鏈數據寫入切換后的磁盤數據庫。

本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,的程序可存儲于一非易失性計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)等。

以上實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。

以上實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬于本發明的保護范圍。因此,本發明專利的保護范圍應以所附權利要求為準。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影