本公開涉及區塊鏈的,具體而言,涉及一種聯盟鏈的賬本優化方法、裝置、設備、介質及產品。
背景技術:
1、算力網絡打通了網、云、數、智、安、邊、端、鏈等多層次算力資源,提供一體化服務的新型信息基礎設施;然而,由于算力網絡中算力節點具有泛在分布、情況復雜、數量龐大等特點,因此,為算力網絡帶來了信任和協作等問題。
2、區塊鏈具有去中心化、不可篡改、可追溯的特性,因此,區塊鏈可以很好的解決信任問題。聯盟鏈屬于區塊鏈的一種由聯盟內部的成員所有,可控性較強且容易達成共識,構建基于聯盟鏈的算力網絡可有效解決算網中各合作方之間信任不足、信息不透明、協作不通暢等問題。但是,由于聯盟鏈的賬本數據的全備份機制,會造成區塊鏈中節點存儲資源緊張難以支撐越來越多的賬本數據,而且對于新節點的加入,會使區塊賬本的同步時間越來越久,難以保障聯盟鏈網絡長期運行效率,所以解決鏈內賬本存儲問題是保證算力網絡聯盟鏈正常運行的首要問題。
技術實現思路
1、本公開實施例至少提供一種聯盟鏈的賬本優化方法、裝置、設備、介質及產品。
2、第一方面,本公開實施例提供了一種聯盟鏈的賬本優化方法,包括:
3、在檢測到算網聯盟鏈的全節點鏈中區塊數量滿足分段條件的情況下,在所述算網聯盟鏈的當前配置塊中插入目標字段;其中,所述目標字段包含用于指示所述算網聯盟鏈中區塊的分段位置的標識位,以及上一個配置塊的哈希地址;
4、在檢測到所述全節點鏈滿足節點替換條件的情況下,基于配置塊中目標字段查找待替換塊區域;
5、在輕節點鏈中查找與所述待替換塊區域中每個全節點區塊相對應的輕節點區塊,并將所述全節點區塊替換為相對應的輕節點區塊。
6、一種可選的實施方式中,所述在所述算網聯盟鏈的當前配置塊中插入目標字段,包括:
7、在所述當前配置塊的元數據結構中插入第一字段和第二字段;其中,所述第一字段用于指示分段位置的標識位,所述第二字段用于指示所述當前配置塊之前的上一個配置塊的哈希地址。
8、一種可選的實施方式中,所述檢測到算網聯盟鏈的全節點鏈中區塊數量滿足分段條件,包括:
9、在檢測到所述當前配置塊和所述全節點鏈中第一配置塊之間配置塊數量滿足第一數量要求的情況下,確定所述全節點鏈中區塊數量滿足分段條件;其中,所述第一配置塊為所述全節點鏈中所述當前配置塊的上一個插入標識位的配置塊。
10、一種可選的實施方式中,所述在檢測到所述全節點鏈滿足節點替換條件的情況下,基于所述配置塊中目標字段查找待替換塊區域,包括:
11、按照從后往前的順序,在所述全節點鏈中查找首個插入標識位的配置塊,得到第二配置塊;
12、將所述全節點鏈中位于所述第二配置塊和第三配置塊之間指定數量的配置塊確定為所述待替換塊區域;其中,所述第三配置塊為所述第二配置塊之后插入標識位的配置塊。
13、一種可選的實施方式中,所述算網聯盟鏈包括多個組織,每個所述組織中包含錨節點和背書節點;其中,所述背書節點用于接收該組織中主節點發送的全節點區塊,所述錨節點用于接收該組織中主節點發送的輕節點區塊。
14、一種可選的實施方式中,在將所述全節點區塊替換為相對應的輕節點區塊之后,所述方法還包括:
15、在所述算網聯盟鏈中確定已替換為相對應輕節點區塊的區塊,得到備份區塊;
16、將所述備份區塊在第一組織的備份節點中進行備份,并基于所述備份區塊創建虛擬鏈;
17、在所述第一組織的錨節點中設置的路由表寫入所述備份區塊的區塊路由信息。
18、一種可選的實施方式中,所述方法還包括:
19、響應于數據查詢請求,基于所述路由表確定待查詢的歷史數據的備份組織,以及在所述備份組織中確定備份所述歷史數據的備份節點;
20、基于所述備份節點中運行的虛擬鏈查找所述歷史數據。
21、一種可選的實施方式中,所述備份節點包含主備份節點和從備份節點,所述方法還包括:
22、基于所述主備份節點中備份區塊的區塊頭計算第一默克爾樹根哈希值,并基于所述從備份節點中備份區塊的區塊頭計算第二默克爾樹根哈希值;
23、基于所述第一默克爾樹根哈希值和所述第二默克爾樹根哈希值,校驗所述主備份節點和所述從備份節點中備份區塊的一致性。
24、一種可選的實施方式中,在將所述全節點區塊替換為相對應的輕節點區塊之后,所述方法還包括:
25、計算所述算網聯盟鏈的各個組織中全節點鏈上狀態數據庫的bucket樹的根值,得到多個根植;
26、根據所述多個根植校驗所述算網聯盟鏈內世界狀態的一致性和完整性。
27、第二方面,本公開實施例提供了一種聯盟鏈的賬本優化裝置包括:
28、插入單元,用于在檢測到算網聯盟鏈的全節點鏈中區塊數量滿足分段條件的情況下,在所述算網聯盟鏈的當前配置塊中插入目標字段;其中,所述目標字段包含用于指示所述算網聯盟鏈中區塊的分段位置的標識位,以及上一個配置塊的哈希地址;
29、查找單元,用于在檢測到所述全節點鏈滿足節點替換條件的情況下,基于所述配置塊中目標字段查找待替換塊區域;
30、區塊替換單元,用于在輕節點鏈中查找與所述待替換塊區域中每個全節點區塊相對應的輕節點區塊,并將所述全節點區塊替換為相對應的輕節點區塊。
31、第三方面,本公開實施例還提供一種電子設備,包括:處理器、存儲器和總線,所述存儲器存儲有所述處理器可執行的機器可讀指令,當電子設備運行時,所述處理器與所述存儲器之間通過總線通信,所述機器可讀指令被所述處理器執行時執行上述第一方面,或第一方面中任一種可能的實施方式中的步驟。
32、第四方面,本公開實施例還提供一種計算機可讀存儲介質,該計算機可讀存儲介質上存儲有計算機程序,該計算機程序被處理器運行時執行上述第一方面,或第一方面中任一種可能的實施方式中的步驟。
33、第五方面,本公開實施例還提供一種計算機程序產品,其特征在于,所述計算機程序產品被存儲在存儲介質中,所述程序產品被至少一個處理器執行上述第一方面,或第一方面中任一種可能的實施方式中的步驟。
34、在本公開實施例中,在檢測到算網聯盟鏈的全節點鏈中區塊數量滿足分段條件的情況下,可以在算網聯盟鏈的當前配置塊中插入目標字段;其中,目標字段包含用于指示算網聯盟鏈中區塊的分段位置的標識位,以及上一個配置塊的哈希地址;并在檢測到全節點鏈滿足節點替換條件的情況下,基于配置塊中目標字段查找待替換塊區域;然后,在輕節點鏈中查找與待替換塊區域中每個全節點區塊相對應的輕節點區塊,并將全節點區塊替換為相對應的輕節點區塊。
35、上述實施方式中,通過在配置塊中插入目標字段,并基于目標字段查找待替換塊區域,從而將待替換塊區域中每個全節點區塊替換為輕節點區塊的方式,可以保證在區塊鏈本身不可篡改的特性下,減輕全量區塊賬本存儲負擔,有效解決節點的賬本存儲壓力,推動了算力網絡聯盟鏈的持續發展。
36、為使本公開的上述目的、特征和優點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。