基於區塊鏈的資料壓縮、查詢方法及裝置和電子設備
本說明書實施例涉及區塊鏈技術領域,尤其涉及一種基於區塊鏈的資料壓縮、查詢方法及裝置和電子設備。
區塊鏈技術,也被稱之為分布式帳本技術,是一種由若干台計算設備共同參與“記帳”,共同維護一份完整的分布式資料庫的新興技術。由於區塊鏈技術具有去中心化、公開透明、每台計算設備可以參與資料庫記錄、並且各計算設備之間可以快速的進行資料同步的特性,使得區塊鏈技術在眾多的領域中廣泛的進行應用。
本說明書實施例提供的一種基於區塊鏈的資料壓縮、查詢方法及裝置和電子設備:
根據本說明書實施例的第一態樣,提供一種基於區塊鏈的資料壓縮方法,所述方法包括:
業務方根據預設的壓縮模板,將待存證的目標資料進行壓縮;
將壓縮後的目標資料以及所述壓縮模板的唯一標識組裝為存證交易;
將所述存證交易發送給區塊鏈的節點設備,以使所述節點設備反應於所述存證交易,查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板對所述目標資料的資料格式進行校驗,如果校驗通過存證所述目標資料。
可選的,所述根據預設的壓縮模板,將待存證的目標資料進行壓縮,具體包括:
確定待存證的目標資料的資料結構;
根據所述資料結構對應的壓縮模板,將所述目標資料進行壓縮。
可選的,所述目標資料的資料結構由自描述結構和實際資料構成;其中,所述自描述結構用於表示實際資料所表達的含義;
所述壓縮模板中記錄了自描述結構的壓縮規則;
所述將所述目標資料進行壓縮包括:
根據所述壓縮規則,將目標資料的自描述結構映射為自定義資料;其中,所述自定義資料量小於自描述結構的資料量。
可選的,所述方法還包括:
將壓縮模板組裝為智能合約的創建交易;
將所述創建交易發送給區塊鏈的節點設備,以使所述節點設備反應於所述創建交易,呼叫發佈於所述區塊鏈的審核合約中聲明的合約審核邏輯,在交易日誌中寫入一個投票事件,所述區塊鏈的審核節點監聽到所述投票事件後,向所述審核合約提交投票交易;所述審核合約對投票交易進行匯總整理,得出所述智能合約的審核結果。
可選的,所述方法還包括:
如果審核結果為通過,在區塊鏈中創建所述智能合約,並向業務方回傳所述智能合約的唯一標識。
可選的,所述唯一標識包括:
針對所述智能合約中聲明的壓縮模板的唯一內容進行hash計算得到的hash值。
根據本說明書實施例的第二態樣,提供一種基於區塊鏈的資料壓縮裝置,所述裝置包括:
區塊鏈的節點設備接收業務方提交的存證交易;其中,所述存證交易中包含有唯一標識、待存證的目標資料,所述目標資料為經過所述唯一標識對應的壓縮模板壓縮後的資料;
反應於所述存證交易,查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板對所述目標資料的資料格式進行校驗,如果校驗通過,存證所述目標資料。
可選的,所述方法還包括:
接收業務方發送的針對壓縮模板組裝而成的智能合約的創建交易;
反應於所述創建交易,呼叫發佈於所述區塊鏈的審核合約中聲明的合約審核邏輯,在交易日誌中寫入一個投票事件,所述區塊鏈的審核節點監聽到所述投票事件後,向所述審核合約提交投票交易;所述審核合約對投票交易進行匯總整理,得出所述智能合約的審核結果。
可選的,所述方法還包括:
如果審核結果為通過,在區塊鏈中創建所述智能合約,並向業務方回傳所述智能合約的唯一標識。
可選的,所述唯一標識包括:
針對所述智能合約中聲明的壓縮模板的唯一內容進行hash計算得到的hash值。
根據本說明書實施例的第三態樣,提供一種基於區塊鏈的資料查詢裝置,所述區塊鏈上存證的資料為基於上述基於區塊鏈的資料壓縮方法進行資料壓縮後的壓縮資料;所述方法包括:
業務方針對待查詢的資料,將所述唯一標識組裝為查詢交易;
將所述查詢交易發送給區塊鏈的節點設備,以使所述節點設備反應於所述查詢交易,查詢區塊鏈上存證的壓縮資料;查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板將所述壓縮資料還原為完整資料;
接收所述節點設備回傳的完整資料。
可選的,所述壓縮模板中記錄了自描述結構的壓縮規則;
所述將所述壓縮資料還原為完整資料,具體包括:
根據所述壓縮規則,將壓縮資料中的自定義資料映射為自描述結構;其中,所述自定義資料量小於自描述結構的資料量。
根據本說明書實施例的第四態樣,提供一種基於區塊鏈的資料查詢裝置,所述區塊鏈上存證的資料為基於上述基於區塊鏈的資料壓縮方法進行資料壓縮後的壓縮資料;所述方法包括:
區塊鏈的節點設備接收業務方提交的查詢交易;其中,所述查詢交易中包含有唯一標識;
反應於所述查詢交易,查詢區塊鏈上存證的壓縮資料;
查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板將所述壓縮資料還原為完整資料;
將所述完整資料回傳給所述業務方。
可選的,所述壓縮模板中記錄了自描述結構的壓縮規則;
所述將所述壓縮資料還原為完整資料,具體包括:
根據所述壓縮規則,將壓縮資料中的自定義資料映射為自描述結構;其中,所述自定義資料量小於自描述結構的資料量。
根據本說明書實施例的第五態樣,提供一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為上述任一項基於區塊鏈的資料壓縮方法。
根據本說明書實施例的第六態樣,提供一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為上述任一項基於區塊鏈的資料查詢方法。
本說明書實施例,提供了一種基於區塊鏈的資料壓縮方案,業務方在本地基於壓縮模板對待存證的目標資料進行壓縮,對應的區塊鏈的節點設備基於該壓縮模板對應的智能合約對壓縮資料進行校驗,確保待存證的壓縮資料符合資料格式的要求以避免資料異常(如資料亂碼、錯位)。如此,透過壓縮模板與智能合約的格式約束,從資料源頭上對資料進行壓縮,減少資料量。另一態樣,該提供了一種基於區塊鏈的資料查詢方案,區塊鏈的節點設備在接收到業務方的查詢交易時,由於區塊鏈存證的資料為壓縮資料,因此可以基於智能合約中聲明的壓縮模板將壓縮資料還原為完整的資料。如此,同樣是基於智能合約的壓縮模板,將存證的壓縮資料還原為完整資料以提供給業務方,保證資料正確性。
這裡將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本說明書相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本說明書的一些態樣相一致的裝置和方法的例子。
在本說明書使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本說明書。在本說明書和所附申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指並包含一個或多個相關聯的列出項目的任何或所有可能組合。
應當理解,儘管在本說明書可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本說明書範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“反應於確定”。
基於區塊鏈的溯源存證場景,是現如今應用區塊鏈技術最為廣泛的場景之一。區塊鏈技術的防篡改、可追溯、資料儲存公平公正等特點賦能存證溯源資料的公信力,被業界廣泛使用。但由於區塊鏈是多節點設備各自擁有自己的資料帳本,即一份存證資料會被多節點設備複製儲存,隨著業務存證資料量的增加,整個區塊鏈上存證資料會成倍數增長,從而會佔用大量的儲存資源、網路開銷。
具體地,現有上鏈存證的資料通常是以資料結構的形式上鏈存證的。例如xml、json等資料結構。這種資料結構的優點具有自描述結構,所述自描述結構具有展示資料所表達的意義的優點,但是自描述結構會佔用大量的儲存空間。
而區塊鏈的儲存資源、網路資源並不是無窮無盡的;因此,如何即保證業務需求的實現,又能夠節省資源開銷成了一個極待解決的問題。
本說明書實施例,提供了一種基於區塊鏈的資料壓縮方案,業務方在本地基於壓縮模板對待存證的目標資料進行壓縮,對應的區塊鏈的節點設備基於該壓縮模板對應的智能合約對壓縮資料進行校驗,確保待存證的壓縮資料符合資料格式的要求以避免資料異常(如資料亂碼、錯位)。如此,透過壓縮模板與智能合約的格式約束,從資料源頭上對資料進行壓縮,減少資料量。另一態樣,該提供了一種基於區塊鏈的資料查詢方案,區塊鏈的節點設備在接收到業務方的查詢交易時,由於區塊鏈存證的資料為壓縮資料,因此可以基於智能合約中聲明的壓縮模板將壓縮資料還原為完整的資料。如此,同樣是基於智能合約的壓縮模板,將存證的壓縮資料還原為完整資料以提供給業務方,保證資料正確性。
在本說明書所描述的區塊鏈,具體可以包括私有鏈、共有鏈以及聯盟鏈等,在本說明書中不進行特別限定。
例如,在一個場景中,上述區塊鏈具體可以是由業務系統、審核系統、公示系統等作為聯盟成員組成的一個聯盟鏈;該聯盟鏈的運營方可以依託於該聯盟鏈,來部署針對上述資料壓縮存證業務;而以上所描述的作為聯盟成員的業務系統、審核系統、公示系統都可以作為上述資料壓縮存證業務的一個業務節點。各個業務節點可以將自身所產生或者接收到的與上述壓縮資料以交易的形式在聯盟鏈中進行發佈,並在該交易經過聯盟鏈中的共識節點的共識處理之後,在聯盟鏈中的分布式資料庫進行儲存,完成上述物流檢驗結果的“上鏈”存證。
其中,需要說明的是,在本說明書中所描述的交易(Transaction),是指業務方透過區塊鏈的客戶端創建,並需要最終發佈至區塊鏈的分布式資料庫中的一筆資料。
區塊鏈中的交易,通常存在狹義的交易以及廣義的交易之分。狹義的交易是指業務方向區塊鏈發佈的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是業務方在區塊鏈中發起的一筆轉帳。而廣義的交易是指業務方向區塊鏈發佈的一筆具有業務意圖的業務資料;例如,運營方可以基於實際的業務需求搭建一個聯盟鏈,依託於聯盟鏈部署一些與價值轉移無關的其它類型的在線業務(比如,業務資料存證、業務資料查詢、業務資料處理等),而在這類聯盟鏈中,交易可以是業務方在聯盟鏈中發佈的一筆具有業務意圖的業務消息或者業務請求。
上述客戶端,可以包括任意類型的以區塊鏈中儲存的底層業務資料作為資料支撐,來實現特定的業務功能的上層應用。
智能合約(Smart contract)是一種旨在應用在可以部署在區塊鏈上的以資訊化方式傳播、驗證或執行合同的計算機協定。透過在智能合約中聲明業務邏輯可以實現執行相應操作。智能合約允許在沒有第三方的情況下進行可信交易。這些交易可追蹤且不可逆轉。智能合約能夠提供優於傳統合同方法的安全,並減少與合同相關的其他交易成本。
本說明書提供的方案,主要分為資料壓縮並存證以及壓縮資料查詢兩部分。
請參考圖1,圖1為本說明書一實施例提供的基於區塊鏈的資料壓縮方法的流程圖,所述方法應用於業務方,具體可以包括以下步驟:
步驟110:業務方根據預設的壓縮模板,將待存證的目標資料進行壓縮;
步驟120:將壓縮後的目標資料以及所述壓縮模板的唯一標識組裝為存證交易;
步驟130:將所述存證交易發送給區塊鏈的節點設備,以使所述節點設備反應於所述存證交易,查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板對所述目標資料的資料格式進行校驗,如果校驗通過存證所述目標資料。
值得一提的是,上述區塊鏈中所述唯一標識對應的智能合約是由任一業務方預先發佈至區塊鏈中的。具體如下步驟所示:
A1:將壓縮模板組裝為智能合約的創建交易;
A2:將所述創建交易發送給區塊鏈的節點設備,以使所述節點設備反應於所述創建交易,呼叫發佈於所述區塊鏈的審核合約中聲明的合約審核邏輯,在交易日誌中寫入一個投票事件,所述區塊鏈的審核節點監聽到所述投票事件後,向所述審核合約提交投票交易;所述審核合約對投票交易進行匯總整理,得出所述智能合約的審核結果。
該實施例中,業務方可以創建用於對業務資料進行校驗的智能合約,該智能合約是基於壓縮模板組裝而成的。
一般的,智能合約需要符合智能合約的規範。因此,對於節點設備來說,需要對業務方提交的智能合約進行審核。具體地,呼叫發佈於所述區塊鏈的審核合約中聲明的合約審核邏輯,在交易日誌中寫入一個投票事件,所述區塊鏈的審核節點監聽到所述投票事件後,向所述審核合約提交投票交易;所述審核合約對投票交易進行匯總整理,得出所述智能合約的審核結果。
如果審核結果通過,則創建業務方提交用於進行資料壓縮校驗的智能合約,並且區塊鏈可以生成該智能合約對應的唯一標識。即,唯一標識與智能合約之間具有一一對應關係。
在一實施例中,所述唯一標識可以是指針對所述智能合約中聲明的壓縮模板的唯一內容進行hash計算得到的hash值。而所述hash值也作為存放智能合約的合約地址。
所述唯一標識除了採用hash值之外,還可以採用其它任意具有唯一性的標識,例如採用依次增長的ID進行標識。例如,從ID=0開始,每創建一個智能合約,在原有的ID基礎上加1作為新創建的智能合約的唯一標識。
如上所述,業務方可以在成功發佈壓縮模板對應的智能合約之外,可以接收區塊鏈分配的唯一標識。該唯一標識不僅可以對應區塊鏈中的智能合約,也可以對應業務方本地的壓縮模板。即,唯一標識與壓縮模板之間具有一一對應關係。
在一實施例中,不同壓縮模板用於對不同資料結構的業務資料進行壓縮。因此,所述步驟110根據預設的壓縮模板,將待存證的目標資料進行壓縮,具體可以包括:
確定待存證的目標資料的資料結構;
根據所述資料結構對應的壓縮模板,將所述目標資料進行壓縮。
舉例說明,假設目標資料屬於XML資料結構,那麼業務方需要採用XML的壓縮模板對目標資料進行壓縮;
如果目標資料屬於JSON資料結構,那麼業務方需要採用JSON的壓縮模板對目標資料進行壓縮。
在一實施例中,所述目標資料的資料結構由自描述結構和實際資料構成;其中,所述自描述結構用於表示實際資料所表達的含義;
所述壓縮模板中記錄了自描述結構的壓縮規則;
所述將所述目標資料進行壓縮包括:
根據所述壓縮規則,將目標資料的自描述結構映射為自定義資料;其中,所述自定義資料量小於自描述結構的資料量。
舉例說明,XML資料結構的特徵是以“/***/”作為自描述結構,其中“***”是描述實際資料含義的內容;例如:/username/ZhangSan;通過/username/就可以確定
“ZhangSan”表達的是用戶名。
類似的,JSON資料結構的特徵是以“***:”作為自描述結構,其中“***”是描述實際資料含義的內容;例如:username:ZhangSan;通過username:就可以確定“ZhangSan”表達的是用戶名。
不管是哪種資料結構,在對應的壓縮模板中可以預先定義每種自描述結構與自定義資料之間的映射關係。從而使得業務方可以根據所述壓縮規則,將目標資料的自描述結構映射為自定義資料;其中,所述自定義資料量小於自描述結構的資料量。
舉例說明,針對目標資料:/username/ZhangSan;由於該目標資料的資料結構為XML資料結構,假設XML的壓縮模板中定義了/username/映射的是“1”;那麼壓縮後的目標資料就變為:1 ZhangSan。可見,壓縮前後目標資料的資料量減少了很多。
本說明書實施例,提供了一種基於區塊鏈的資料壓縮方案,業務方在本地基於壓縮模板對待存證的目標資料進行壓縮,對應的區塊鏈的節點設備基於該壓縮模板對應的智能合約對壓縮資料進行校驗,確保待存證的壓縮資料符合資料格式的要求以避免資料異常(如資料亂碼、錯位)。如此,透過壓縮模板與智能合約的格式約束,從資料源頭上對資料進行壓縮,減少資料量。
請參考圖2,圖2為本說明書一實施例提供的基於區塊鏈的資料壓縮方法的流程圖,所述方法應用於區塊鏈的節點設備,具體可以包括以下步驟:
步驟210:區塊鏈的節點設備接收業務方提交的存證交易;其中,所述存證交易中包含有唯一標識、待存證的目標資料,所述目標資料為經過所述唯一標識對應的壓縮模板壓縮後的資料;
步驟220:反應於所述存證交易,查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板對所述目標資料的資料格式進行校驗,如果校驗通過,存證所述目標資料。
該實施例中與前述圖1所示實施例是執行主體不同,具體實現可以參考圖1實施例中的描述。
業務方可以創建用於對業務資料進行校驗的智能合約,該智能合約是基於壓縮模板組裝而成的。
一般的,智能合約需要符合智能合約的規範。因此,對於節點設備來說,需要對業務方提交的智能合約進行審核。
在一實施例中,區塊鏈的節點設備接收業務方發送的針對壓縮模板組裝而成的智能合約的創建交易;
反應於所述創建交易,呼叫發佈於所述區塊鏈的審核合約中聲明的合約審核邏輯,在交易日誌中寫入一個投票事件,所述區塊鏈的審核節點監聽到所述投票事件後,向所述審核合約提交投票交易;所述審核合約對投票交易進行匯總整理,得出所述智能合約的審核結果。
如果審核結果為通過,在區塊鏈中創建所述智能合約,並向業務方回傳所述智能合約的唯一標識。即,唯一標識與智能合約之間具有一一對應關係。
在一實施例中,所述唯一標識可以是指針對所述智能合約中聲明的壓縮模板的唯一內容進行hash計算得到的hash值。而所述hash值也作為存放智能合約的合約地址。
所述唯一標識除了採用hash值之外,還可以採用其它任意具有唯一性的標識,例如採用依次增長的ID進行標識。例如,從ID=0開始,每創建一個智能合約,在原有的ID基礎上加1作為新創建的智能合約的唯一標識。
針對業務方上傳的已在業務方本地基於壓縮模板壓縮後的目標資料,節點設備需要對該目標資料進行校驗。只有在目標資料的資料格式符合壓縮模板規定的資料格式時,才可以確定校驗通過,從而存證所述壓縮後的目標資料。
本說明書實施例,提供了一種基於區塊鏈的資料壓縮方案,業務方在本地基於壓縮模板對待存證的目標資料進行壓縮,對應的區塊鏈的節點設備基於該壓縮模板對應的智能合約對壓縮資料進行校驗,確保待存證的壓縮資料符合資料格式的要求以避免資料異常(如資料亂碼、錯位)。如此,透過壓縮模板與智能合約的格式約束,從資料源頭上對資料進行壓縮,減少資料量。
如前所述,業務方可以將目標資料壓縮後上鏈存證,這樣上鏈存證的資料量會大大減少,以降低資料存證所需的儲存資源;然而由於資料經過了壓縮,在讀取這些壓縮資料後,如何將壓縮資料還原為完整資料也需要解決。
請參考圖3,圖3為本說明書一實施例提供的基於區塊鏈的資料查詢方法的流程圖,所述方法應用於業務方,所述區塊鏈上存證的資料為基於前述圖1所示實施例進行資料壓縮後的壓縮資料;本實施例具體可以包括以下步驟:
步驟310:業務方針對待查詢的資料,將所述唯一標識組裝為查詢交易;
步驟320:將所述查詢交易發送給區塊鏈的節點設備,以使所述節點設備反應於所述查詢交易,查詢區塊鏈上存證的壓縮資料;查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板將所述壓縮資料還原為完整資料;
步驟330:接收所述節點設備回傳的完整資料。
業務方在需要獲取目標資料時,可以基於目標資料所屬資料結構對應的唯一標識組裝為查詢交易,即查詢交易中包含有唯一標識。
節點設備反應所述查詢交易,首先可以查詢目標資料存證在區塊鏈上的壓縮資料;以及,查詢所述唯一標識對應的智能合約。
這裡查詢壓縮資料和智能合約的執行沒有絕對的時序順序,可以是同時執行,也可以先執行壓縮資料,也可以是先執行查詢智能合約。
在查詢到智能合約以及壓縮資料之後,需要呼叫所述智能合約中聲明的壓縮模板將所述壓縮資料還原為完整資料。
在一實施例中,所述壓縮模板中記錄了自描述結構的壓縮規則;
所述將所述壓縮資料還原為完整資料,具體包括:
根據所述壓縮規則,將壓縮資料中的自定義資料映射為自描述結構;其中,所述自定義資料量小於自描述結構的資料量。
繼續沿用前述示例:針對目標資料:/username/ ZhangSan;由於該目標資料的資料結構為XML資料結構,假設XML的壓縮模板中定義了/username/映射的是“1”;那麼壓縮後的目標資料就變為:1 ZhangSan;
如果業務方需要獲取該目標資料,由於區塊鏈中存證的是1 ZhangSan;需要將自定義資料還原回自描述結構;由於智能合約中聲明的XML壓縮模板中定義了“/username/”與“1”之間的映射關係;因此,節點設備可以將壓縮資料中的自定義資料“1”轉換為自描述結構“/username/”,即還原的完整資料為/username/ ZhangSan;該查詢到的資料ZhangSan的含義為用戶名。
本說明書實施例,該提供了一種基於區塊鏈的資料查詢方案,區塊鏈的節點設備在接收到業務方的查詢交易時,由於區塊鏈存證的資料為壓縮資料,因此可以基於智能合約中聲明的壓縮模板將壓縮資料還原為完整的資料。如此,同樣是基於智能合約的壓縮模板,將存證的壓縮資料還原為完整資料以提供給業務方,保證資料正確性。
請參考圖4,圖4為本說明書一實施例提供的基於區塊鏈的資料查詢方法的流程圖,所述方法應用於區塊鏈的節點設備,所述區塊鏈上存證的資料為基於前述圖1所示實施例進行資料壓縮後的壓縮資料;本實施例具體可以包括以下步驟:
步驟410:區塊鏈的節點設備接收業務方提交的查詢交易;其中,所述查詢交易中包含有唯一標識;
步驟420:反應於所述查詢交易,查詢區塊鏈上存證的壓縮資料;
步驟430:查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板將所述壓縮資料還原為完整資料;
步驟440:將所述完整資料回傳給所述業務方。
該實施例中與前述圖3所示實施例是執行主體不同,具體實現可以參考圖3實施例中的描述。
業務方可以向區塊鏈的節點設備發起查詢交易,以查詢存證在區塊鏈上的目標資料。其中,所述查詢交易中包含有唯一標識。
節點設備反應所述查詢交易,首先可以查詢目標資料存證在區塊鏈上的壓縮資料;以及,查詢所述唯一標識對應的智能合約。
這裡查詢壓縮資料和智能合約的執行沒有絕對的時序順序,可以是同時執行,也可以先執行壓縮資料,也可以是先執行查詢智能合約。
在查詢到智能合約以及壓縮資料之後,需要呼叫所述智能合約中聲明的壓縮模板將所述壓縮資料還原為完整資料。
在一實施例中,所述壓縮模板中記錄了自描述結構的壓縮規則;
所述將所述壓縮資料還原為完整資料,具體包括:
根據所述壓縮規則,將壓縮資料中的自定義資料映射為自描述結構;其中,所述自定義資料量小於自描述結構的資料量。
繼續沿用前述示例:針對目標資料:/username/ ZhangSan;由於該目標資料的資料結構為XML資料結構,假設XML的壓縮模板中定義了/username/映射的是“1”;那麼壓縮後的目標資料就變為:1 ZhangSan;
如果業務方需要獲取該目標資料,由於區塊鏈中存證的是1 ZhangSan;需要將自定義資料還原回自描述結構;由於智能合約中聲明的XML壓縮模板中定義了“/username/”與“1”之間的映射關係;因此,節點設備可以將壓縮資料中的自定義資料“1”轉換為自描述結構“/username/”,即還原的完整資料為/username/ ZhangSan;該查詢到的資料ZhangSan的含義為用戶名。
本說明書實施例,該提供了一種基於區塊鏈的資料查詢方案,區塊鏈的節點設備在接收到業務方的查詢交易時,由於區塊鏈存證的資料為壓縮資料,因此可以基於智能合約中聲明的壓縮模板將壓縮資料還原為完整的資料。如此,同樣是基於智能合約的壓縮模板,將存證的壓縮資料還原為完整資料以提供給業務方,保證資料正確性。
與前述基於區塊鏈的獎勵資金分配方法實施例相對應,本說明書還提供了基於區塊鏈的獎勵資金分配裝置的實施例。所述裝置實施例可以透過軟體實現,也可以透過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為一個邏輯意義上的裝置,是透過其所在設備的處理器將非揮發性中對應的計算機業務程式指令讀取到內存記憶體中運行形成的。從硬體層面而言,如圖5所示,為本說明書基於區塊鏈的獎勵資金分配裝置所在設備的一種硬體結構圖,除了圖5所示的處理器、網路介面、內存記憶體以及非揮發性記憶體之外,實施例中裝置所在的設備通常根據基於區塊鏈的獎勵資金分配實際功能,還可以包括其他硬體,對此不再贅述。
請參見圖6,為本說明書一實施例提供的基於區塊鏈的資料壓縮裝置的模組圖,所述裝置對應了圖1所示實施例,應用於業務方,所述裝置包括:
壓縮單元510,業務方根據預設的壓縮模板,將待存證的目標資料進行壓縮;
組裝單元520,將壓縮後的目標資料以及所述壓縮模板的唯一標識組裝為存證交易;
存證單元530,將所述存證交易發送給區塊鏈的節點設備,以使所述節點設備反應於所述存證交易,查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板對所述目標資料的資料格式進行校驗,如果校驗通過存證所述目標資料。
可選的,所述壓縮單元510,具體包括:
確定子單元,確定待存證的目標資料的資料結構;
壓縮子單元,根據所述資料結構對應的壓縮模板,將所述目標資料進行壓縮。
可選的,所述目標資料的資料結構由自描述結構和實際資料構成;其中,所述自描述結構用於表示實際資料所表達的含義;
所述壓縮模板中記錄了自描述結構的壓縮規則;
所述壓縮子單元中,將所述目標資料進行壓縮包括:
根據所述壓縮規則,將目標資料的自描述結構映射為自定義資料;其中,所述自定義資料量小於自描述結構的資料量。
可選的,所述裝置還包括:
交易組裝子單元,將壓縮模板組裝為智能合約的創建交易;
合約創建子單元,將所述創建交易發送給區塊鏈的節點設備,以使所述節點設備反應於所述創建交易,呼叫發佈於所述區塊鏈的審核合約中聲明的合約審核邏輯,在交易日誌中寫入一個投票事件,所述區塊鏈的審核節點監聽到所述投票事件後,向所述審核合約提交投票交易;所述審核合約對投票交易進行匯總整理,得出所述智能合約的審核結果。
可選的,所述合約創建子單元還包括:
如果審核結果為通過,在區塊鏈中創建所述智能合約,並向業務方回傳所述智能合約的唯一標識。
可選的,所述唯一標識包括:
針對所述智能合約中聲明的壓縮模板的唯一內容進行hash計算得到的hash值。
請參見圖7,為本說明書一實施例提供的基於區塊鏈的資料壓縮裝置的模組圖,所述裝置對應了圖2所示實施例,應用於區塊鏈的節點設備,所述裝置包括:
接收單元610,區塊鏈的節點設備接收業務方提交的存證交易;其中,所述存證交易中包含有唯一標識、待存證的目標資料,所述目標資料為經過所述唯一標識對應的壓縮模板壓縮後的資料;
反應單元620,反應於所述存證交易,查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板對所述目標資料的資料格式進行校驗,如果校驗通過,存證所述目標資料。
區塊鏈的節點設備接收業務方提交的存證交易;其中,所述存證交易中包含有唯一標識、待存證的目標資料,所述目標資料為經過所述唯一標識對應的壓縮模板壓縮後的資料;
反應於所述存證交易,查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板對所述目標資料的資料格式進行校驗,如果校驗通過,存證所述目標資料。
可選的,所述裝置還包括:
接收子單元,接收業務方發送的針對壓縮模板組裝而成的智能合約的創建交易;
創建子單元,反應於所述創建交易,呼叫發佈於所述區塊鏈的審核合約中聲明的合約審核邏輯,在交易日誌中寫入一個投票事件,所述區塊鏈的審核節點監聽到所述投票事件後,向所述審核合約提交投票交易;所述審核合約對投票交易進行匯總整理,得出所述智能合約的審核結果。
可選的,所述創建子單元,還包括:
如果審核結果為通過,在區塊鏈中創建所述智能合約,並向業務方回傳所述智能合約的唯一標識。
可選的,所述唯一標識包括:
針對所述智能合約中聲明的壓縮模板的唯一內容進行hash計算得到的hash值。
與前述基於區塊鏈的資料查詢方法實施例相對應,本說明書還提供了基於區塊鏈的資料查詢裝置的實施例。所述裝置實施例可以透過軟體實現,也可以透過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為一個邏輯意義上的裝置,是透過其所在設備的處理器將非揮發性記憶體中對應的計算機業務程式指令讀取到內存記憶體中運行形成的。從硬體層面而言,如圖8所示,為本說明書基於區塊鏈的資料查詢裝置所在設備的一種硬體結構圖,除了圖8所示的處理器、網路介面、內存記憶體以及非揮發性記憶體之外,實施例中裝置所在的設備通常根據基於區塊鏈的資料查詢實際功能,還可以包括其他硬體,對此不再贅述。
請參見圖9,為本說明書一實施例提供的基於區塊鏈的資料壓縮裝置的模組圖,所述裝置對應了圖3所示實施例,應用於業務方,所述區塊鏈上存證的資料為前述基於區塊鏈的資料壓縮方法進行資料壓縮後的壓縮資料;所述裝置包括:
組裝單元710,業務方針對待查詢的資料,將所述唯一標識組裝為查詢交易;
查詢單元720,將所述查詢交易發送給區塊鏈的節點設備,以使所述節點設備反應於所述查詢交易,查詢區塊鏈上存證的壓縮資料;查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板將所述壓縮資料還原為完整資料;
接收單元730,接收所述節點設備回傳的完整資料。
可選的,所述壓縮模板中記錄了自描述結構的壓縮規則;
所述查詢單元720中,將所述壓縮資料還原為完整資料,具體包括:
根據所述壓縮規則,將壓縮資料中的自定義資料映射為自描述結構;其中,所述自定義資料量小於自描述結構的資料量。
請參見圖10,為本說明書一實施例提供的基於區塊鏈的資料壓縮裝置的模組圖,所述裝置對應了圖4所示實施例,應用於區塊鏈的節點設備,所述區塊鏈上存證的資料為前述基於區塊鏈的資料壓縮方法進行資料壓縮後的壓縮資料;所述裝置包括:
接收單元810,區塊鏈的節點設備接收業務方提交的查詢交易;其中,所述查詢交易中包含有唯一標識;
查詢單元820,反應於所述查詢交易,查詢區塊鏈上存證的壓縮資料;
解壓單元830,查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板將所述壓縮資料還原為完整資料;
回傳單元840,將所述完整資料回傳給所述業務方。
可選的,所述壓縮模板中記錄了自描述結構的壓縮規則;
所述解壓單元830中將所述壓縮資料還原為完整資料,具體包括:
根據所述壓縮規則,將壓縮資料中的自定義資料映射為自描述結構;其中,所述自定義資料量小於自描述結構的資料量。
上述實施例闡明的系統、裝置、模組或單元,具體可以由計算機晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為計算機,計算機的具體形式可以是個人計算機、膝上型計算機、蜂巢式電話、相機電話、智慧電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板計算機、可穿戴設備或者這些設備中的任意幾種設備的組合。
上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是實體上分開的,作為單元顯示的部件可以是或者也可以不是實體單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
以上圖6描述了基於區塊鏈的資料壓縮裝置的內部功能模組和結構示意,其實質上的執行主體可以為一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為:
業務方根據預設的壓縮模板,將待存證的目標資料進行壓縮;
將壓縮後的目標資料以及所述壓縮模板的唯一標識組裝為存證交易;
將所述存證交易發送給區塊鏈的節點設備,以使所述節點設備反應於所述存證交易,查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板對所述目標資料的資料格式進行校驗,如果校驗通過存證所述目標資料。
以上圖7描述了基於區塊鏈的資料壓縮裝置的內部功能模組和結構示意,其實質上的執行主體可以為一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為:
區塊鏈的節點設備接收業務方提交的存證交易;其中,所述存證交易中包含有唯一標識、待存證的目標資料,所述目標資料為經過所述唯一標識對應的壓縮模板壓縮後的資料;
反應於所述存證交易,查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板對所述目標資料的資料格式進行校驗,如果校驗通過,存證所述目標資料。
以上圖9描述了基於區塊鏈的資料查詢裝置的內部功能模組和結構示意,其實質上的執行主體可以為一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為:
業務方針對待查詢的資料,將所述唯一標識組裝為查詢交易;其中,所述區塊鏈上存證的資料為前述任一基於區塊鏈的資料壓縮方法進行資料壓縮後的壓縮資料;
將所述查詢交易發送給區塊鏈的節點設備,以使所述節點設備反應於所述查詢交易,查詢區塊鏈上存證的壓縮資料;查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板將所述壓縮資料還原為完整資料;
接收所述節點設備回傳的完整資料。
以上圖10描述了基於區塊鏈的資料查詢裝置的內部功能模組和結構示意,其實質上的執行主體可以為一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為:
區塊鏈的節點設備接收業務方提交的查詢交易;其中,所述查詢交易中包含有唯一標識;所述區塊鏈上存證的資料為前述任一基於區塊鏈的資料壓縮方法進行資料壓縮後的壓縮資料
反應於所述查詢交易,查詢區塊鏈上存證的壓縮資料;
查詢發佈於所述區塊鏈中所述唯一標識對應的智能合約,呼叫所述智能合約中聲明的壓縮模板將所述壓縮資料還原為完整資料;
將所述完整資料回傳給所述業務方。
在上述電子設備的實施例中,應理解,該處理器可以是中央處理單元(英文:Central Processing Unit,簡稱:CPU),還可以是其他通用處理器、數位信號處理器(英文:Digital Signal Processor,簡稱:DSP)、專用積體電路(英文:Application Specific Integrated Circuit,簡稱:ASIC)等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等,而前述的記憶體可以是唯讀記憶體(英文:read-only memory,縮寫:ROM)、隨機存取記憶體(英文:random access memory,簡稱:RAM)、快閃記憶體、硬碟或者固態硬碟。結合本發明實施例所公開的方法的步驟可以直接體現為硬體處理器執行完成,或者用處理器中的硬體及軟體模組組合執行完成。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於電子設備實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本領域技術人員在考慮說明書及實踐這裡公開的發明後,將容易想到本說明書的其它實施方案。本說明書旨在涵蓋本說明書的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本說明書的一般性原理並包括本說明書未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本說明書的真正範圍和精神由下面的申請專利範圍指出。
應當理解的是,本說明書並不局限於上面已經描述並在附圖中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本說明書的範圍僅由所附的權利要求來限制。
21:掃描框
22:第一識別碼
31:掃描框
32:第一識別碼
41:掃描框
42:第一識別碼
51:掃描框
52:第一識別碼
511:二維碼定位區
512:二維碼定位區
513:二維碼定位區
61:掃描框
62:第一識別碼
611:二維碼定位區
612:二維碼定位區
613:二維碼定位區
71:同時代表第一識別碼和掃描框
801:顯示請求獲取模組
802:顯示模組
900:設備
910:處理器
920:指令
930:記憶體
[圖1] 是本說明書一實施例提供的基於區塊鏈的資料壓縮方法的流程圖;
[圖2] 是本說明書一實施例提供的基於區塊鏈的資料壓縮方法的流程圖;
[圖3] 是本說明書一實施例提供的基於區塊鏈的資料查詢方法的流程圖;
[圖4] 是本說明書一實施例提供的基於區塊鏈的資料查詢方法的流程圖;
[圖5] 是本說明書一實施例提供的基於區塊鏈的資料壓縮裝置的硬體結構圖;
[圖6] 是本說明書一實施例提供的基於區塊鏈的資料壓縮裝置的模組示意圖;
[圖7] 是本說明書一實施例提供的基於區塊鏈的資料壓縮裝置的模組示意圖;
[圖8] 是本說明書一實施例提供的基於區塊鏈的資料查詢裝置的硬體結構圖;
[圖9] 是本說明書一實施例提供的基於區塊鏈的資料查詢裝置的模組示意圖;
[圖10] 是本說明書一實施例提供的基於區塊鏈的資料查詢裝置的模組示意圖。