TWI728654B - 資料儲存方法及節點 - Google Patents
資料儲存方法及節點 Download PDFInfo
- Publication number
- TWI728654B TWI728654B TW109101460A TW109101460A TWI728654B TW I728654 B TWI728654 B TW I728654B TW 109101460 A TW109101460 A TW 109101460A TW 109101460 A TW109101460 A TW 109101460A TW I728654 B TWI728654 B TW I728654B
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- key
- node
- data
- historical
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本說明書一個或多個實施例提供一種資料儲存方法及節點,該方法可以包括:區塊鏈節點獲取待儲存資料對應的第一鍵值對,所述第一鍵值對包含所述待儲存資料的值和第一鍵;所述區塊鏈節點根據所述第一鍵在樹狀資料組織結構中確定出對應的葉子節點;所述區塊鏈節點在確定出的葉子節點不存在關聯的歷史取值時,將所述待儲存資料的值關聯至確定出的葉子節點;所述區塊鏈節點在確定出的葉子節點存在關聯的歷史取值時,對所述第一鍵進行修改,以將所述第一鍵值對更新為更新後鍵值對,並將所述更新後鍵值對儲存於確定出的葉子節點對應的衝突資料儲存結構中,使確定出的葉子節點的取值為根據所述待儲存資料的值和所述歷史取值計算得到的雜湊值。
Description
本說明書一個或多個實施例涉及終端技術領域,尤其涉及一種資料儲存方法及節點。
區塊鏈技術(也被稱之為,分散式帳本技術)是一種去中性化的分散式資料庫技術,具有去中心化、公開透明、不可篡改、可信任等多種特點,適用於諸多對資料可靠性具有高需求的應用場景中。
有鑑於此,本說明書一個或多個實施例提供一種資料儲存方法及裝置。
為實現上述目的,本說明書一個或多個實施例提供技術方案如下:
根據本說明書一個或多個實施例的第一態樣,提出了一種資料儲存方法,包括:
區塊鏈節點獲取待儲存資料對應的第一鍵值對,所述第一鍵值對包含所述待儲存資料的值和第一鍵;
所述區塊鏈節點根據所述第一鍵在樹狀資料組織結構中確定出對應的葉子節點,其中所述樹狀資料組織結構中的非葉子節點的取值為根據下一級子節點的取值計算得到的雜湊值;
所述區塊鏈節點在確定出的葉子節點不存在關聯的歷史取值時,將所述待儲存資料的值關聯至確定出的葉子節點,使確定出的葉子節點的取值為根據所述待儲存資料的值計算得到的雜湊值;
所述區塊鏈節點在確定出的葉子節點存在關聯的歷史取值時,對所述第一鍵進行修改,以將所述第一鍵值對更新為更新後鍵值對;以及,所述區塊鏈節點將所述更新後鍵值對儲存於確定出的葉子節點對應的衝突資料儲存結構中,使確定出的葉子節點的取值為根據所述待儲存資料的值和所述歷史取值計算得到的雜湊值。
根據本說明書一個或多個實施例的第二態樣,提出了一種資料儲存節點,包括:
獲取單元,獲取待儲存資料對應的第一鍵值對,所述第一鍵值對包含所述待儲存資料的值和第一鍵;
確定單元,根據所述第一鍵在樹狀資料組織結構中確定出對應的葉子節點,其中所述樹狀資料組織結構中的非葉子節點的取值為根據下一級子節點的取值計算得到的雜湊值;
關聯單元,在確定出的葉子節點不存在關聯的歷史取值時,將所述待儲存資料的值關聯至確定出的葉子節點,使確定出的葉子節點的取值為根據所述待儲存資料的值計算得到的雜湊值;
修改單元,在確定出的葉子節點存在關聯的歷史取值時,對所述第一鍵進行修改,以將所述第一鍵值對更新為更新後鍵值對;
儲存單元,將所述更新後鍵值對儲存於確定出的葉子節點對應的衝突資料儲存結構中,使確定出的葉子節點的取值為根據所述待儲存資料的值和所述歷史取值計算得到的雜湊值。
根據本說明書一個或多個實施例的第三態樣,提出了一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的儲存器;
其中,所述處理器通過運行所述可執行指令以實現如第一態樣所述的方法。
根據本說明書一個或多個實施例的第四態樣,提出了一種電腦可讀儲存媒體,其上儲存有電腦指令,該指令被處理器執行時實現如第一態樣所述方法的步驟。
這裡將詳細地對範例性實施例進行說明,其範例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數字表示相同或相似的要素。以下範例性實施例中所描述的實施方式並不代表與本說明書一個或多個實施例相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本說明書一個或多個實施例的一些態樣相一致的裝置和方法的例子。
需要說明的是:在其他實施例中並不一定按照本說明書顯示和描述的順序來執行相應方法的步驟。在一些其他實施例中,其方法所包括的步驟可以比本說明書所描述的更多或更少。此外,本說明書中所描述的單一步驟,在其他實施例中可能被分解為多個步驟進行描述;而本說明書中所描述的多個步驟,在其他實施例中也可能被合併為單一步驟進行描述。
圖1是一範例性實施例提供的一種範例環境的示意圖。如圖1所示,範例環境100允許實體參與區塊鏈網路102。區塊鏈網路102可以為公有類型、私有類型或聯盟類型的區塊鏈網路。範例環境100可以包括計算設備104、106、108、110、112和網路114;在一實施例中,網路114可以包括區域網路(Local Area Network,LAN)、廣域網路(Wide Area Network,WAN)、網際網路或其組合,並連接至網站、用戶設備(例如計算設備)和後端系統。在一實施例中,可以通過有線和/或無線通訊方式存取網路114。
在某些情況下,計算設備106、108可以是雲端計算系統的節點(未顯示),或者每個計算設備106、108可以是單獨的雲端計算系統,包括由網路互連並作為分散式處理系統工作的多台電腦。
在一實施例中,計算設備104~108可以運行任何適當的計算系統,使其能夠作為區塊鏈網路102中的節點;例如,計算設備104~108可以包括但不限於伺服器、桌上型電腦、筆記型電腦、平板電腦計算設備和智慧型手機。在一實施例中,計算設備104~108可以歸屬於相關實體並用於實現相應的服務,例如該服務可以用於對某一實體或多個實體之間的交易進行管理。
在一實施例中,計算設備104~108分別儲存有區塊鏈網路102對應的區塊鏈帳本。計算設備104可以是(或包含)用於提供瀏覽器功能的網路伺服器,該網路伺服器可基於網路114提供與區塊鏈網路102相關的可視化資訊。在一些情況下,計算設備104可以不參與區塊驗證,而是監控區塊鏈網路102以確定其他節點(譬如可以包括計算設備106-108)何時達成共識,並據此產生相應的區塊鏈可視化用戶介面。
在一實施例中,計算設備104可接收客戶端設備(例如計算設備110或計算設備112)針對區塊鏈可視化用戶介面發起的請求。在一些情況下,區塊鏈網路102的節點也可以作為客戶端設備,例如計算設備108的用戶可以使用運行在計算設備108上的瀏覽器向計算設備104發送上述請求。
回應於上述請求,計算設備104可以基於儲存的區塊鏈帳本產生區塊鏈可視化用戶介面(如網頁),並將產生的區塊鏈可視化用戶介面發送給請求的客戶端設備。如果區塊鏈網路102是私有類型或聯盟類型的區塊鏈網路,對區塊鏈可視化用戶介面的請求可以包括用戶授權資訊,在產生區塊鏈可視化用戶介面並發送給請求的客戶端設備之前,可以由計算設備104對該用戶授權資訊進行驗證,並在驗證通過後傳回相應的區塊鏈可視化用戶介面。
區塊鏈可視化用戶介面可以顯示在客戶端設備上(例如可顯示在圖1所示的用戶介面116中)。當區塊鏈帳本發生更新時,用戶介面116的顯示內容也可以隨之發生更新。此外,用戶與用戶介面116的互動可能導致對其他用戶介面的請求,例如顯示區塊列表、區塊詳情、交易列表、交易詳情、帳戶列表、帳戶詳情、合約列表、合約詳情或者用戶對區塊鏈網路實施搜索而產生的搜索結果頁面等。
圖2是一範例性實施例提供的一種概念架構的示意圖。如圖2所示,該概念架構200包括實體層202、託管服務層204和區塊鏈網路層206。例如,實體層202可以包括三個實體:實體1、實體2和實體3,每個實體都有各自的交易管理系統208。
在一實施例中,託管服務層204可以包括每個交易管理系統208對應的介面210。例如,各個交易管理系統208使用協定(例如超文字傳輸協定安全(HTTPS)等)通過網路(例如圖1中的網路114)與各自的介面210通訊。在一些例子中,每個介面210可以提供各自對應的交易管理系統208與區塊鏈網路層206之間的通訊連接;更具體地,介面210可與區塊鏈網路層206的區塊鏈網路212通訊。在一些例子中,介面210和區塊鏈網路層206之間的通訊可以使用遠端程序呼叫(Remote Procedure Calls,RPCs)而實現。在一些例子中,介面210可以向交易管理系統208提供用於存取區塊鏈網路212的API介面。
如本文所述,區塊鏈網路212以對等網路的形式提供,該對等網路包括多個節點214,這些節點214分別用於對塊鏈資料所形成的區塊鏈帳本216進行持久化;其中,
圖2中僅顯示了一份區塊鏈帳本216,但區塊鏈網路212中可以存在多份區塊鏈帳本216或其副本,例如每一節點214可以分別維護一份區塊鏈帳本216或其副本。
需要指出的是:在本說明書中所描述的交易(transaction),是指用戶通過區塊鏈的客戶端創建,並需要最終發佈至區塊鏈的分散式資料庫中的一筆資料。其中,區塊鏈中的交易,存在狹義的交易以及廣義的交易之分。狹義的交易是指用戶向區塊鏈發佈的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是用戶在區塊鏈中發起的一筆轉帳。而廣義的交易是指用戶向區塊鏈發佈的一筆具有業務意圖的業務資料;例如,營運方可以基於實際的業務需求搭建一個聯盟鏈,依託於聯盟鏈部署一些與價值轉移無關的其它類型的在線業務(例如,租房業務、車輛排程業務、保險理賠業務、信用服務、醫療服務等),而在這類聯盟鏈中,交易可以是用戶在聯盟鏈中發佈的一筆具有業務意圖的業務訊息或者業務請求。
圖3是一範例性實施例提供的一種資料儲存方法的流程圖。如圖3所示,該方法可以包括以下步驟:
步驟302,區塊鏈節點獲取待儲存資料對應的第一鍵值對,所述第一鍵值對包含所述待儲存資料的值和第一鍵。
在一實施例中,不論是公有鏈(Public Blockchain),私有鏈(Private Blockchain)、聯盟鏈(Consortium Blockchain),還是多種類型的結合(例如私有鏈+聯盟鏈、聯盟鏈+公有鏈等不同組合形式),區塊鏈網路中的節點(即區塊鏈節點)在資料儲存的過程中,可以對儲存的資料按照一定形式進行組織,例如組織為樹狀資料組織結構等。
以公有鏈為例,公有鏈以比特幣、以太坊為代表。例如,在以太坊網路中,區塊鏈節點通過運行EVM(以太坊虛擬機),並在EVM內執行智慧合約的代碼,可以實現複雜的處理邏輯。智慧合約的代碼中定義有若干合約狀態,這些合約狀態的取值可以在代碼被執行後發生變化。因此,以太坊網路中的區塊鏈節點採用MPT類型的樹狀資料組織結構對所有合約狀態的取值進行組織和儲存,並將MPT的根節點處形成的根雜湊記錄至區塊頭中,以用於對合約狀態及其取值進行驗證。
在一實施例中,本說明書中的待儲存資料可以包括上述的合約狀態。當然,在其他實施例中還可以適用於其他類型的資料,例如智慧合約被執行後產生的收據(receipt)等,本說明書並不對此進行限制。
在一實施例中,區塊鏈節點上預配置有統一的鍵值對產生規則,可以為待儲存資料的值設定相應的鍵。例如,區塊鏈節點可以直接根據該鍵值對產生規則,為待儲存資料的值設定上述的第一鍵。
再例如,區塊鏈節點可以根據該鍵值對產生規則為待儲存資料產生對應的初始鍵值對,該初始鍵值對包括待儲存資料的值和初始鍵;接著,區塊鏈節點可以選取初始鍵中特定位的字元組成第一鍵,且第一鍵的長度小於初始鍵,以得到上述的第一鍵值對。例如在以太坊中,智慧合約的模型中定義了合約狀態的key長度為32位元組、value長度為32位元組,即初始鍵的長度為32位元組,那麼第一鍵可以為初始鍵的前16位元組(即上述的特定位),即第一鍵的長度為16位元組;當然,其他實施例中可以選取其他的“特定位”,第一鍵的長度也可以不同,本說明書並不對此進行限制。類似地,對於前述直接根據鍵值對產生規則而產生第一鍵的實施例中,可以直接產生16位元組長度的第一鍵。
假定在待儲存資料對應的初始鍵值對中,待儲存資料的值為32位元組、初始鍵的長度為32位元組,那麼該初始鍵值對總共佔用64位元組的儲存空間。而通過將初始鍵處理為上述的第一鍵,且第一鍵的長度為16位元組,使得第一鍵值對總共佔用48位元組的儲存空間,所佔用的儲存空間減少了16位元組。在區塊鏈節點針對更多資料進行組織和儲存時,如果均採用長度相對更短的第一鍵,相比於採用長度相對更長的初始鍵或其他鍵,顯然能夠極大地減少對節點上儲存空間的佔用,並且有助於提升檢索性能。
步驟304,所述區塊鏈節點根據所述第一鍵在樹狀資料組織結構中確定出對應的葉子節點,其中所述樹狀資料組織結構中的非葉子節點的取值為根據下一級子節點的取值計算得到的雜湊值。
在一實施例中,樹狀資料組織結構從頂部的根節點向下形成若干層,每層包含若干節點,直至形成最底部的葉子節點。每一節點的取值均為雜湊值,其中:葉子節點的取值為關聯資料計算得到的雜湊值;非葉子節點的取值為下一級子節點的取值計算得到的雜湊值,直至計算得到根節點對應的雜湊值,即根雜湊。因此,根據各節點的取值情況,該樹狀資料組織結構具有Merkle Tree(默克爾樹)的特性。
在一實施例中,樹狀資料組織結構中的每一節點存在對應的節點標記;其中,在根節點至確定出的葉子節點構成的路徑上,各個節點對應的節點標記依次組合形成的組合值等於前述的第一鍵。因此,區塊鏈節點可以根據待儲存資料對應的第一鍵,從樹狀資料組織結構的根節點依次向下、分別確定出每一級對應的節點,直至確定出對應的葉子節點。因此,根據路徑與鍵之間的對應關係,該樹狀資料組織結構具有字典樹的特性,例如具體可以採用前綴樹(Trie)、壓縮前綴樹(Patricia trie)或類似的結構形式。
在一實施例中,樹狀資料組織結構可以綜合前述的默克爾樹與字典樹的特性,譬如在基於字典樹的結構的基礎上,使得各節點的取值符合默克爾樹的特性,從而既可以使節點路徑與鍵相匹配,又可以從葉子節點逐步向上確定出各個節點對應的雜湊值。例如,該樹狀資料組織結構可以為默克爾-帕特裡夏樹(Merkle Patricia Tree,簡稱MPT);或者,該樹狀資料組織結構可以為類似的其他結構。
步驟306a,所述區塊鏈節點在確定出的葉子節點不存在關聯的歷史取值時,將所述待儲存資料的值關聯至確定出的葉子節點,使確定出的葉子節點的取值為根據所述待儲存資料的值計算得到的雜湊值。
在一實施例中,如果確定出的葉子節點尚未存在關聯的歷史取值,那麼可以將待儲存資料的值關聯至該葉子節點,使得該葉子節點的取值暫時為該待儲存資料的值對應的雜湊值,且對於後續通過上述步驟302-304定位到該葉子節點的其他資料,該待儲存資料的值相對於後續的其他資料而言是已關聯至該葉子節點的歷史取值,需要轉至步驟306b進行處理。
步驟306b,所述區塊鏈節點在確定出的葉子節點存在關聯的歷史取值時,對所述第一鍵進行修改,以將所述第一鍵值對更新為更新後鍵值對。
在一實施例中,由於區塊鏈節點根據待儲存資料對應的第一鍵確定出葉子節點,那麼當該葉子節點存在關聯的歷史取值時,表明該歷史取值對應的鍵與第一鍵相同。因此,通過對第一鍵進行修改,使得更新後鍵值對中的鍵區別於歷史取值對應的鍵,以便對待儲存資料與歷史取值之間進行區分、避免混淆。
在一實施例中,如果第一鍵是由前述的初始鍵所含的特定位組成,那麼對第一鍵進行修改時,可以將第一鍵恢復為初始鍵,即更新後鍵值對為前述的初始鍵值對。當然,第一鍵還可以被修改為其他取值,而並不一定採用上述的初始鍵,只要能夠區別於歷史取值對應的鍵即可,本說明書並不對此進行限制。
步驟308,所述區塊鏈節點將所述更新後鍵值對儲存於確定出的葉子節點對應的衝突資料儲存結構中,使確定出的葉子節點的取值為根據所述待儲存資料的值和所述歷史取值計算得到的雜湊值。
在一實施例中,如果待儲存資料確定出的葉子節點已經存在關聯的歷史取值,表明該待儲存資料與歷史取值之間發生了資料衝突。但是,每個葉子節點只能夠與一個取值建立關聯,因而通過為每一葉子節點分別設定對應的衝突資料儲存結構,使得發生資料衝突的情況下,可以將資料儲存於該衝突資料儲存結構中,該衝突資料儲存結構中的資料不存在數量限制,並且儲存於該衝突資料儲存結構中的資料均被確定為與相應的葉子節點之間建立關聯,從而對葉子節點可關聯的資料實現了數量擴展。因此,當某一鍵值對被儲存於衝突資料儲存結構時,相當於該鍵值對中的值被間接關聯至相應的葉子節點。
在一實施例中,根據待儲存資料確定出的葉子節點,對應的歷史取值可以包括在歷史時刻直接關聯至該葉子節點的歷史值,也可以包括在歷史時刻記錄於衝突資料儲存結構中的歷史鍵值對。其中,歷史鍵值對所含的歷史鍵應當區別於上述更新後鍵值對所含的鍵。
其中,當僅存在一個歷史取值時,該歷史取值通常是直接關聯至葉子節點的歷史值;當然,本說明書並不排除該歷史取值可能是位於衝突資料儲存結構中的歷史鍵值對。當存在多個歷史取值時,多個歷史取值可以均為位於衝突資料儲存結構中的歷史鍵值對;或者,最早的一條歷史取值為直接關聯至葉子節點的歷史值,而其他歷史取值均為位於衝突資料儲存結構中的歷史鍵值對。
在一實施例中,當同時存在直接關聯至葉子節點的歷史取值和儲存於資料儲存結構中的鍵值對(歷史鍵值對和/或上述的更新後鍵值對)時,除非預先定義了這些資料之間的順序,否則在基於這些資料產生葉子節點對應的雜湊值時,不同順序可能導致不同的雜湊值,即雜湊值不是穩態的。
因此,區塊鏈節點可以刪除確定出的葉子節點被關聯的歷史值,並將該歷史值對應的第二鍵值對記錄於衝突資料儲存結構中;其中,第二鍵值對包含歷史值和第二鍵,且第二鍵區別於衝突資料儲存結構中的其他鍵值對所含的鍵。那麼,由於衝突資料儲存結構中的所有鍵值對之間按照預設順序進行依次排列,例如按照數值產生順序、鍵的數值大小順序等,可以確保按照該順序排列並產生相應葉子節點的雜湊值,因而可以得到穩態雜湊值。
在一實施例中,衝突資料儲存結構可以為樹狀資料組織結構,例如默克爾樹等。或者,衝突資料儲存結構可以為表格結構。或者,可以採用其他形式的衝突資料儲存結構,本說明書並不對此進行限制。
圖4是一範例性實施例提供的一種樹狀資料組織結構的示意圖。假定區塊鏈節點採用如圖4所示的樹狀資料組織結構,該樹狀資料組織結構的頂部為根節點41、其他層級包含若干節點,例如根節點41的子節點包括節點421、節點422等,節點421的子節點包括節點431、節點432等,底層為若干葉子節點,如節點441、節點442和節點443等。除了葉子節點之外,其他的每一節點分別存在一個或多個子節點,子節點的數量根據實際情況而定,本說明書並不對此進行限制。
如前所述,樹狀資料組織結構繼承了字典樹的特性,可以通過路徑表徵相應鍵值對的鍵。例如,根節點41對應的節點標記為a、節點421對應的節點標記為5、節點422對應的節點標記為7、節點431對應的節點標記為1、節點432對應的節點標記為2、節點441對應的節點標記為1、節點442對應的節點標記為5、節點443對應的節點標記為f等。假定葉子節點441對應於節點431,那麼從根節點41至節點441可以形成路徑a-5-1-……-1。假定葉子節點442對應於節點432,那麼從根節點至節點442可以形成路徑a-5-2-……-5。假定葉子節點443對應於節點432,那麼從根節點至節點443可以形成路徑a-5-2-……-f。
如前所述,樹狀資料組織結構繼承了默克爾樹的特性,每個節點的取值為雜湊值。對於葉子節點而言,雜湊值由葉子節點所關聯的數值計算得到。例如,節點441的取值為雜湊值Hn-1,該雜湊值Hn-1為:關聯至該節點441的數值計算出的雜湊值;節點442的取值為雜湊值Hn-2,該雜湊值Hn-2為:關聯至該節點442的數值計算出的雜湊值;節點443的取值為雜湊值Hn-3,該雜湊值Hn-3為:關聯至該節點443的數值計算出的雜湊值。而對於非葉子節點而言,雜湊值由節點下一級的子節點的取值計算得到。例如,根節點41的取值為雜湊值Hr,且根節點41下一級的節點為節點421和節點422,那麼該雜湊值Hr為:根據節點421的取值與節點422的取值計算得到的雜湊值,例如將節點421對應的雜湊值H1-1與節點422對應的雜湊值H1-2拼接為一字元串,並將該字元串計算出的雜湊值作為上述的雜湊值Hr。再例如,節點421的取值為雜湊值H1-1,且節點421下一級的節點為節點431和節點432,那麼該雜湊值H1-1為:根據節點431的取值與節點432的取值計算得到的雜湊值,例如將節點431對應的雜湊值H2-1與節點432對應的雜湊值H2-2拼接為一字元串,並將該字元串計算出的雜湊值作為上述的雜湊值H1-1。
區塊鏈節點通過執行某一交易呼叫的智慧合約後,假定該智慧合約中定義的合約狀態Z1發生了取值變化,區塊鏈節點需要將該合約狀態Z1的取值儲存至如圖4所示的樹狀資料組織結構中。區塊鏈節點首先為該合約狀態Z1產生對應的鍵值對。
對於以太坊網路而言,如前所述,區塊鏈節點產生的鍵值對中的key為32位元組、value為32位元組。而在本說明書中,區塊鏈節點可以首先採用類似的方式產生初始鍵值對,包括初始鍵K1’、值value為V1,即鍵值對為K1’-V1,其中K1’的長度為32位元組、V1的長度為32位元組。接著,區塊鏈節點可以對初始鍵K1’進行轉換,例如截取前16位元組,形成新的鍵K1,構成新的鍵值對K1-V1。那麼,區塊鏈節點在儲存該合約狀態Z1時,鍵值對K1-V1僅需佔用48位元組的儲存空間,而非鍵值對K1’-V1所需佔用的64位元組。
針對合約狀態Z1的鍵值對K1-V1,區塊鏈節點根據K1在如圖4所示的樹狀資料組織結構中確定相應的葉子節點。例如,當K1的取值為a52……f時,假定該K1的取值匹配於根節點41至葉子節點443的路徑,那麼可以確定K1對應於葉子節點443。
假定此前並不存在已關聯至葉子節點443的歷史取值,區塊鏈節點可以將合約狀態Z1的取值V1直接關聯至葉子節點443,如圖5所示。此時,節點443對應的雜湊值Hn-i是通過對取值V1進行雜湊計算得到。
在針對合約狀態Z1進行儲存之後,假定區塊鏈節點通過執行某一交易呼叫的智慧合約後,該智慧合約中定義的合約狀態Z2發生了取值變化,區塊鏈節點需要將該合約狀態Z2的取值儲存至如圖5所示的樹狀資料組織結構中。
對合約狀態Z2的儲存過程,與上述合約狀態Z1的儲存過程類似。區塊鏈節點為合約狀態Z2產生初始鍵值對K2’-V2,接著將初始鍵K2’的前16位元組截取為新的鍵K2,並組成合約狀態Z2的鍵值對K2-V2。接著,區塊鏈節點根據鍵K2從如圖5所示的樹狀資料組織結構中確定對應的葉子節點。
假定K2的取值為a52……f,與上述的K1恰好相同,區塊鏈節點可以據此確定出相應的葉子節點為節點443。那麼,對於合約狀態Z2而言,節點443已經存在相關聯的歷史取值,即上文被關聯至節點443的歷史值V1。因此,對合約狀態Z2的儲存過程,區別於前文對合約狀態Z1的儲存過程。
區塊鏈節點可以為節點443創建對應的衝突資料儲存表,例如該衝突資料儲存表可以如圖6所示。區塊鏈節點可以在節點443被創建時,就隨之創建了衝突資料儲存表;或者,區塊鏈節點可以在發生資料衝突的情況下,例如上文中在儲存合約狀態Z2的過程中,臨時創建衝突資料儲存表。
區塊鏈節點的處理過程包括兩個態樣:第一態樣,區塊鏈節點將關聯至節點443的歷史取值V1刪除。第二態樣,區塊鏈節點將合約狀態Z1對應的鍵值對恢復為初始鍵值對K1-V1、將合約狀態Z2對應的鍵值對恢復為初始鍵值對K2-V2,並將初始鍵值對K1-V1、K2-V2分別儲存至節點443對應的衝突資料儲存表中。例如圖6所示,衝突資料儲存表的主鍵可以包括“鍵”和“值”,區塊鏈節點可以相應地寫入K1-V1、K2-V2。衝突資料儲存表的主鍵還可以包括“衝突數量”,區塊鏈節點可以記入發生衝突的鍵值對的總量,例如此處為2。
類似地,當區塊鏈節點後續再次產生匹配於葉子節點443的合約狀態Z3時,由於鍵值對K1-V1、K2-V2已經儲存於節點443對應的衝突資料儲存表中,因而如圖7所示,只需要確定出合約狀態Z3對應的初始鍵值對K3-V3,並將該鍵值對K3-V3記入節點443對應的衝突資料儲存表即可。區塊鏈節點還將“衝突數量”的取值更新為3。
在衝突資料儲存表中,各條鍵值對之間按照預設順序進行依次排列。例如該順序可以包括鍵值對的產生順序。因此,在所有區塊鏈節點分別將鍵值對K1-V1、K2-V2、K3-V3插入衝突資料儲存表時,可以確保每個區塊鏈節點都是將鍵值對K1-V1排列在先、鍵值對K2-V2排列在後、鍵值對K3-V3排列在最後,而節點443對應的雜湊值Hn-i均是通過將取值V1、V2、V3按照V1→V2→V3的順序拼接後進行雜湊計算得到,而不會按照V2→V1→V3或其他順序進行拼接,確保所有區塊鏈節點計算出的雜湊值Hn-i取值均相同。
綜上所述,本說明書的技術方案可以支援較短長度的key,並且在發生資料衝突的情況下,通過為葉子節點配置相應的衝突資料儲存結構,即可記下匹配於該葉子節點的所有鍵值對,並對各個鍵值對進行有效區分。實際上,即便是採用上文所述的16位元組長度的key,不同合約狀態之間產生相同key的機率也極低,因而對於絕大部分的鍵值對而言,均因採用較短長度的key而為節點節省了大量的儲存空間。
圖8是一範例性實施例提供的一種設備的示意結構圖。請參考圖8,在硬體層面,該設備包括處理器802、內部匯流排804、網路介面806、記憶體808以及非揮發性儲存器810,當然還可能包括其他業務所需要的硬體。處理器802從非揮發性儲存器810中讀取對應的電腦程式到記憶體808中接著運行,在邏輯層面上形成資料儲存節點。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,例如邏輯裝置抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯裝置。
請參考圖9,在軟體實施方式中,該資料儲存節點可以包括:
獲取單元91,獲取待儲存資料對應的第一鍵值對,所述第一鍵值對包含所述待儲存資料的值和第一鍵;
確定單元92,根據所述第一鍵在樹狀資料組織結構中確定出對應的葉子節點,其中所述樹狀資料組織結構中的非葉子節點的取值為根據下一級子節點的取值計算得到的雜湊值;
關聯單元93,在確定出的葉子節點不存在關聯的歷史取值時,將所述待儲存資料的值關聯至確定出的葉子節點,使確定出的葉子節點的取值為根據所述待儲存資料的值計算得到的雜湊值;
修改單元94,在確定出的葉子節點存在關聯的歷史取值時,對所述第一鍵進行修改,以將所述第一鍵值對更新為更新後鍵值對;
儲存單元95,將所述更新後鍵值對儲存於確定出的葉子節點對應的衝突資料儲存結構中,使確定出的葉子節點的取值為根據所述待儲存資料的值和所述歷史取值計算得到的雜湊值。
可選的,獲取單元91具體用於:
獲取所述待儲存資料對應的初始鍵值對,所述初始鍵值對包括所述待儲存資料的值和初始鍵;
選取所述初始鍵中特定位的字元組成所述第一鍵,且所述第一鍵的長度小於所述初始鍵,以得到所述第一鍵值對。
可選的,所述更新後鍵值對為所述初始鍵值對。
可選的,所述樹狀資料組織結構中的每一節點存在對應的節點標記;其中,在根節點至確定出的葉子節點構成的路徑上,各個節點對應的節點標記依次組合形成的組合值等於所述第一鍵。
可選的,所述歷史取值包括:在歷史時刻記錄於所述衝突資料儲存結構中的歷史鍵值對;其中,所述歷史鍵值對所含的歷史鍵區別於所述更新後鍵值對所含的鍵。
可選的,所述歷史取值包括:在歷史時刻被關聯至確定出的葉子節點的歷史值。
可選的,還包括:
刪除單元96,刪除確定出的葉子節點被關聯的歷史值;
記錄單元97,將所述歷史值對應的第二鍵值對記錄於所述衝突資料儲存結構中,所述第二鍵值對包含所述歷史值和第二鍵,且所述第二鍵區別於所述衝突資料儲存結構中的其他鍵值對所含的鍵。
可選的,所述衝突資料儲存結構中的所有鍵值對之間按照預設順序進行依次排列。
可選的,所述衝突資料儲存結構為樹狀資料組織結構或表格結構。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
在一個典型的配置中,電腦包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性儲存器,隨機存取記憶體(RAM)和/或非揮發性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的範例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶、磁碟儲存、量子儲存器、基於石墨烯的儲存媒體或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫態電腦可讀媒體(transitory media),如調變的資料訊號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範圍內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在圖式中描繪的過程不一定要求顯示的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多任務處理和並行處理也是可以的或者可能是有利的。
在本說明書一個或多個實施例使用的術語是僅僅出於描述特定實施例的目的,而非意於限制本說明書一個或多個實施例。在本說明書一個或多個實施例和所附申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也意於包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指並包含一個或多個相關聯的列出項目的任何或所有可能組合。
應當理解,儘管在本說明書一個或多個實施例可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本說明書一個或多個實施例範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“回應於確定”。
以上所述僅為本說明書一個或多個實施例的較佳實施例而已,並不用以限制本說明書一個或多個實施例,凡在本說明書一個或多個實施例的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書一個或多個實施例保護的範圍之內。
100:環境
102:區塊鏈網路
104:計算設備
106:計算設備
108:計算設備
110:計算設備
112:計算設備
114:網路
116:用戶介面
200:概念架構
202:實體層
204:託管服務層
206:區塊鏈網路層
208:交易管理系統
210:介面
212:區塊鏈網路
214:節點
216:區塊鏈帳本
302~308:步驟
41:根節點
421:節點
422:節點
431:節點
432:節點
441:節點
442:節點
443:節點
802:處理器
804:內部匯流排
806:網路介面
808:記憶體
810:非揮發性儲存器
91:獲取單元
92:確定單元
93:關聯單元
94:修改單元
95:儲存單元
96:刪除單元
97:記錄單元
[圖1]是一範例性實施例提供的一種範例環境的示意圖。
[圖2]是一範例性實施例提供的一種概念架構的示意圖。
[圖3]是一範例性實施例提供的一種資料儲存方法的流程圖。
[圖4]是一範例性實施例提供的一種樹狀資料組織結構的示意圖。
[圖5]是一範例性實施例提供的一種將值關聯至葉子節點的示意圖。
[圖6-7]是一範例性實施例提供的一種將鍵值對記錄於葉子節點對應的衝突資料儲存表的示意圖。
[圖8]是一範例性實施例提供的一種設備的結構示意圖。
[圖9]是一範例性實施例提供的一種資料儲存節點的方塊圖。
Claims (12)
- 一種資料儲存方法,包括: 區塊鏈節點獲取待儲存資料對應的第一鍵值對,所述第一鍵值對包含所述待儲存資料的值和第一鍵; 所述區塊鏈節點根據所述第一鍵在樹狀資料組織結構中確定出對應的葉子節點,其中所述樹狀資料組織結構中的非葉子節點的取值為根據下一級子節點的取值計算得到的雜湊值; 所述區塊鏈節點在確定出的葉子節點不存在關聯的歷史取值時,將所述待儲存資料的值關聯至確定出的葉子節點,使確定出的葉子節點的取值為根據所述待儲存資料的值計算得到的雜湊值; 所述區塊鏈節點在確定出的葉子節點存在關聯的歷史取值時,對所述第一鍵進行修改,以將所述第一鍵值對更新為更新後鍵值對;以及,所述區塊鏈節點將所述更新後鍵值對儲存於確定出的葉子節點對應的衝突資料儲存結構中,使確定出的葉子節點的取值為根據所述待儲存資料的值和所述歷史取值計算得到的雜湊值。
- 根據請求項1所述的方法,所述區塊鏈節點獲取待儲存資料對應的第一鍵值對,包括: 所述區塊鏈節點獲取所述待儲存資料對應的初始鍵值對,所述初始鍵值對包括所述待儲存資料的值和初始鍵; 所述區塊鏈節點選取所述初始鍵中特定位的字元組成所述第一鍵,且所述第一鍵的長度小於所述初始鍵,以得到所述第一鍵值對。
- 根據請求項2所述的方法,所述更新後鍵值對為所述初始鍵值對。
- 根據請求項1所述的方法,所述樹狀資料組織結構中的每一節點存在對應的節點標記;其中,在根節點至確定出的葉子節點構成的路徑上,各個節點對應的節點標記依次組合形成的組合值等於所述第一鍵。
- 根據請求項1所述的方法,所述歷史取值包括:在歷史時刻記錄於所述衝突資料儲存結構中的歷史鍵值對;其中,所述歷史鍵值對所含的歷史鍵區別於所述更新後鍵值對所含的鍵。
- 根據請求項1所述的方法,所述歷史取值包括:在歷史時刻被關聯至確定出的葉子節點的歷史值。
- 根據請求項6所述的方法,還包括: 所述區塊鏈節點刪除確定出的葉子節點被關聯的歷史值; 所述區塊鏈節點將所述歷史值對應的第二鍵值對記錄於所述衝突資料儲存結構中,所述第二鍵值對包含所述歷史值和第二鍵,且所述第二鍵區別於所述衝突資料儲存結構中的其他鍵值對所含的鍵。
- 根據請求項1所述的方法,所述衝突資料儲存結構中的所有鍵值對之間按照預設順序進行依次排列。
- 根據請求項1所述的方法,所述衝突資料儲存結構為樹狀資料組織結構或表格結構。
- 一種資料儲存節點,包括: 獲取單元,獲取待儲存資料對應的第一鍵值對,所述第一鍵值對包含所述待儲存資料的值和第一鍵; 確定單元,根據所述第一鍵在樹狀資料組織結構中確定出對應的葉子節點,其中所述樹狀資料組織結構中的非葉子節點的取值為根據下一級子節點的取值計算得到的雜湊值; 關聯單元,在確定出的葉子節點不存在關聯的歷史取值時,將所述待儲存資料的值關聯至確定出的葉子節點,使確定出的葉子節點的取值為根據所述待儲存資料的值計算得到的雜湊值; 修改單元,在確定出的葉子節點存在關聯的歷史取值時,對所述第一鍵進行修改,以將所述第一鍵值對更新為更新後鍵值對; 儲存單元,將所述更新後鍵值對儲存於確定出的葉子節點對應的衝突資料儲存結構中,使確定出的葉子節點的取值為根據所述待儲存資料的值和所述歷史取值計算得到的雜湊值。
- 一種電子設備,包括: 處理器; 用於儲存處理器可執行指令的儲存器; 其中,所述處理器通過運行所述可執行指令以實現如請求項1-9中任一項所述的方法。
- 一種電腦可讀儲存媒體,其上儲存有電腦指令,該指令被處理器執行時實現如請求項1-9中任一項所述方法的步驟。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910468704.4 | 2019-05-31 | ||
CN201910468704.4A CN110275884B (zh) | 2019-05-31 | 2019-05-31 | 数据存储方法及节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202046299A TW202046299A (zh) | 2020-12-16 |
TWI728654B true TWI728654B (zh) | 2021-05-21 |
Family
ID=67960453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109101460A TWI728654B (zh) | 2019-05-31 | 2020-01-16 | 資料儲存方法及節點 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN110275884B (zh) |
TW (1) | TWI728654B (zh) |
WO (1) | WO2020238254A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275884B (zh) * | 2019-05-31 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 数据存储方法及节点 |
US11294875B2 (en) | 2019-05-31 | 2022-04-05 | Advanced New Technologies Co., Ltd. | Data storage on tree nodes |
CN112579343B (zh) * | 2019-09-27 | 2024-05-28 | 阿里巴巴集团控股有限公司 | 区块链节点数据的恢复方法及装置 |
CN111143288A (zh) * | 2019-12-22 | 2020-05-12 | 北京浪潮数据技术有限公司 | 一种数据存储方法、系统及相关装置 |
CN111209341B (zh) * | 2020-01-07 | 2023-03-14 | 北京众享比特科技有限公司 | 区块链的数据存储方法、装置、设备及介质 |
CN111367915A (zh) * | 2020-03-04 | 2020-07-03 | 深圳前海微众银行股份有限公司 | 一种区块链数据的操作方法及装置 |
CN111695123B (zh) * | 2020-04-27 | 2021-03-26 | 华东师范大学 | 一种面向区块链的降低冲突的乐观并发保序编码方法 |
CN111651300B (zh) * | 2020-06-05 | 2023-03-21 | 成都质数斯达克科技有限公司 | 一种区块链数据恢复方法、装置、设备及介质 |
CN111782549B (zh) * | 2020-07-31 | 2024-06-21 | 北京字节跳动网络技术有限公司 | 测试方法、装置和电子设备 |
CN112035491B (zh) * | 2020-09-30 | 2021-12-28 | 中山大学 | 基于区块链的数据存储方法、电子积分处理方法及系统 |
CN112434015B (zh) * | 2020-12-08 | 2022-08-19 | 新华三大数据技术有限公司 | 数据存储的方法、装置、电子设备及介质 |
CN112819468A (zh) * | 2021-02-24 | 2021-05-18 | 浙江蓝景科技有限公司 | 智能合约的处理方法、装置和电子设备 |
CN112988910B (zh) * | 2021-05-07 | 2021-09-24 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN114579693B (zh) * | 2021-12-02 | 2024-05-14 | 广州趣丸网络科技有限公司 | 一种nlp文本安全审核多级检索系统 |
CN114510465B (zh) * | 2022-02-22 | 2023-09-26 | 光大科技有限公司 | 数据管理方法、装置及计算机可读存储介质 |
CN116050358B (zh) * | 2023-03-21 | 2023-06-06 | 北京飞轮数据科技有限公司 | 应用于动态数据的数据处理方法、装置和电子设备 |
CN116308367B (zh) * | 2023-05-22 | 2023-07-21 | 北京智优集品科技有限公司 | 用于电子商务系统的安全防护方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101322136A (zh) * | 2005-12-05 | 2008-12-10 | 北京书生国际信息技术有限公司 | 一种文档数据安全管理方法和系统 |
CN103297413A (zh) * | 2012-01-28 | 2013-09-11 | 查平 | 可分享网络文档保密柜 |
CN107332847A (zh) * | 2017-07-05 | 2017-11-07 | 武汉凤链科技有限公司 | 一种基于区块链的访问控制方法和系统 |
WO2018031940A1 (en) * | 2016-08-12 | 2018-02-15 | ALTR Solutions, Inc. | Fragmenting data for the purposes of persistent storage across multiple immutable data structures |
WO2018124716A1 (ko) * | 2016-12-29 | 2018-07-05 | 주식회사 코인플러그 | Utxo 기반 프로토콜에서 머클 트리 구조를 사용하여 통합 포인트 서비스를 제공하는 방법 및 이를 이용한 지원 서버 |
US20180205552A1 (en) * | 2015-06-02 | 2018-07-19 | ALTR Solutions, Inc. | Utilizing a tree-structure to segment and distribute files across a series of blockchains |
US10075298B2 (en) * | 2015-06-02 | 2018-09-11 | ALTR Solutions, Inc. | Generation of hash values within a blockchain |
WO2018194351A1 (ko) * | 2017-04-17 | 2018-10-25 | 주식회사 코인플러그 | Utxo 기반 프로토콜에서 머클 트리 구조를 이용하는 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버 |
US10121019B2 (en) * | 2015-06-02 | 2018-11-06 | ALTR Solutions, Inc. | Storing differentials of files in a distributed blockchain |
TW201916629A (zh) * | 2017-09-29 | 2019-04-16 | 香港商阿里巴巴集團服務有限公司 | 資料儲存方法、資料查詢方法及裝置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815258B (zh) * | 2015-11-27 | 2020-01-17 | 华为技术有限公司 | 一种数据存储方法和协调节点 |
US10013573B2 (en) * | 2015-12-16 | 2018-07-03 | International Business Machines Corporation | Personal ledger blockchain |
CN105719185B (zh) * | 2016-01-22 | 2019-02-15 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN106055597B (zh) * | 2016-05-24 | 2022-05-20 | 布比(北京)网络技术有限公司 | 数字交易系统、及用于其的账户信息查询方法 |
CN106126722B (zh) * | 2016-06-30 | 2019-10-18 | 中国科学院计算技术研究所 | 一种基于验证的前缀混合树及设计方法 |
CN107015882B (zh) * | 2016-12-26 | 2019-11-22 | 阿里巴巴集团控股有限公司 | 一种区块数据校验方法和装置 |
US11316696B2 (en) * | 2017-09-29 | 2022-04-26 | R3 Ltd. | Hash subtrees for grouping components by component type |
CN108197226A (zh) * | 2017-12-29 | 2018-06-22 | 山大地纬软件股份有限公司 | Mptc账户状态树以及mptc区块链快速检索方法 |
CN108282474B (zh) * | 2018-01-18 | 2020-04-17 | 山东大学 | 基于区块链的数字资产交易一致性的维护方法 |
US10261711B1 (en) * | 2018-01-25 | 2019-04-16 | Merck Sharp & Dohme Corp. | Proof of non-tampering for stored data |
CN108446376B (zh) * | 2018-03-16 | 2022-04-08 | 众安信息技术服务有限公司 | 数据存储方法与装置 |
CN108595538B (zh) * | 2018-04-04 | 2020-05-01 | 中国地质大学(武汉) | 一种基于区块链的键值数据组织方法及系统 |
CN108615156A (zh) * | 2018-05-09 | 2018-10-02 | 上海魅联信息技术有限公司 | 一种基于区块链的数据结构 |
CN108959563B (zh) * | 2018-07-04 | 2020-05-15 | 东北大学 | 一种容量可扩展区块链查询方法及系统 |
CN109165221A (zh) * | 2018-08-16 | 2019-01-08 | 北京京东尚科信息技术有限公司 | 区块链的数据存储方法、装置、区块链节点及存储介质 |
CN109684325A (zh) * | 2018-11-07 | 2019-04-26 | 天津大学 | 一种高效的rdf数据存储查询系统 |
CN109559234B (zh) * | 2019-01-31 | 2020-10-23 | 杭州复杂美科技有限公司 | 一种区块链状态数据的存储方法、设备和存储介质 |
CN110275884B (zh) * | 2019-05-31 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 数据存储方法及节点 |
-
2019
- 2019-05-31 CN CN201910468704.4A patent/CN110275884B/zh active Active
-
2020
- 2020-01-14 WO PCT/CN2020/072007 patent/WO2020238254A1/zh active Application Filing
- 2020-01-16 TW TW109101460A patent/TWI728654B/zh active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101322136A (zh) * | 2005-12-05 | 2008-12-10 | 北京书生国际信息技术有限公司 | 一种文档数据安全管理方法和系统 |
CN103297413A (zh) * | 2012-01-28 | 2013-09-11 | 查平 | 可分享网络文档保密柜 |
US20180205552A1 (en) * | 2015-06-02 | 2018-07-19 | ALTR Solutions, Inc. | Utilizing a tree-structure to segment and distribute files across a series of blockchains |
US10075298B2 (en) * | 2015-06-02 | 2018-09-11 | ALTR Solutions, Inc. | Generation of hash values within a blockchain |
US10121019B2 (en) * | 2015-06-02 | 2018-11-06 | ALTR Solutions, Inc. | Storing differentials of files in a distributed blockchain |
US10193696B2 (en) * | 2015-06-02 | 2019-01-29 | ALTR Solutions, Inc. | Using a tree structure to segment and distribute records across one or more decentralized, acylic graphs of cryptographic hash pointers |
WO2018031940A1 (en) * | 2016-08-12 | 2018-02-15 | ALTR Solutions, Inc. | Fragmenting data for the purposes of persistent storage across multiple immutable data structures |
WO2018124716A1 (ko) * | 2016-12-29 | 2018-07-05 | 주식회사 코인플러그 | Utxo 기반 프로토콜에서 머클 트리 구조를 사용하여 통합 포인트 서비스를 제공하는 방법 및 이를 이용한 지원 서버 |
WO2018194351A1 (ko) * | 2017-04-17 | 2018-10-25 | 주식회사 코인플러그 | Utxo 기반 프로토콜에서 머클 트리 구조를 이용하는 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버 |
CN107332847A (zh) * | 2017-07-05 | 2017-11-07 | 武汉凤链科技有限公司 | 一种基于区块链的访问控制方法和系统 |
TW201916629A (zh) * | 2017-09-29 | 2019-04-16 | 香港商阿里巴巴集團服務有限公司 | 資料儲存方法、資料查詢方法及裝置 |
Also Published As
Publication number | Publication date |
---|---|
CN110275884A (zh) | 2019-09-24 |
TW202046299A (zh) | 2020-12-16 |
CN110275884B (zh) | 2020-08-04 |
WO2020238254A1 (zh) | 2020-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI728654B (zh) | 資料儲存方法及節點 | |
US11294875B2 (en) | Data storage on tree nodes | |
US11216444B2 (en) | Scalable event sourcing datastore | |
WO2021017435A1 (zh) | 区块链状态数据存储方法及装置、电子设备 | |
CN107577427B (zh) | 用于区块链系统的数据迁移方法、设备和存储介质 | |
WO2017050014A1 (zh) | 一种数据存储处理方法和装置 | |
US7647454B2 (en) | Transactional shared memory system and method of control | |
US10275489B1 (en) | Binary encoding-based optimizations at datastore accelerators | |
TW202030656A (zh) | 跨鏈用權系統及方法、裝置、電子設備、儲存媒體 | |
KR20200099602A (ko) | 계층화된 그래프 데이터 구조 | |
TW202025057A (zh) | 欄位更新方法及裝置、電子設備 | |
TWI714414B (zh) | 區塊鏈資料的分次獲取方法和裝置 | |
US10855637B2 (en) | Architecture for large data management in communication applications through multiple mailboxes | |
EP3812917A1 (en) | Data structure reading method and apparatus, data structure updating method and apparatus, and electronic device | |
EP3769233A2 (en) | Performing map iterations in a blockchain-based system | |
CN112912870A (zh) | 租户标识符的转换 | |
US20180018365A1 (en) | Mapping database structure to software | |
US10146833B1 (en) | Write-back techniques at datastore accelerators | |
US8577890B2 (en) | Modifying data set name qualifiers | |
CN110362590A (zh) | 数据管理方法、装置、系统、电子设备及计算机可读介质 | |
WO2024021417A1 (zh) | 数据账户创建方法及装置 | |
US10885157B2 (en) | Determining a database signature | |
CN112579343B (zh) | 区块链节点数据的恢复方法及装置 | |
CN111488607A (zh) | 业务数据区块链的数据处理方法及其装置 | |
CN116680729A (zh) | 一种基于智能合约的数据处理方法、装置及相关设备 |