TWI722592B - 資料結構的讀取及更新方法、裝置、電子設備 - Google Patents
資料結構的讀取及更新方法、裝置、電子設備 Download PDFInfo
- Publication number
- TWI722592B TWI722592B TW108136033A TW108136033A TWI722592B TW I722592 B TWI722592 B TW I722592B TW 108136033 A TW108136033 A TW 108136033A TW 108136033 A TW108136033 A TW 108136033A TW I722592 B TWI722592 B TW I722592B
- Authority
- TW
- Taiwan
- Prior art keywords
- smart contract
- data structure
- contract
- update
- data
- 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/23—Updating
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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/2272—Management thereof
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/381—Currency conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本說明書一個或多個實施例提供一種資料結構的讀取及更新方法、裝置、電子設備,該資料結構的讀取方法可以包括:區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求;回應於所述呼叫請求,所述區塊鏈節點運行所述第一智能合約包含的合約代碼,以對第二智能合約包含的元資料所描述的資料結構進行解析,並透過電腦程式設計語言對所述資料結構進行表徵;所述區塊鏈節點將所述電腦程式設計語言表徵的資料結構返回至所述呼叫請求的發起方。
Description
本說明書一個或多個實施例有關區塊鏈技術領域,尤其有關一種資料結構的讀取及更新方法、裝置、電子設備。
區塊鏈技術(也被稱之為,分散式帳本技術)是一種去中心化的分散式資料庫技術,具有去中心化、公開透明、不可篡改、可信任等多種特點,適用於諸多對資料可靠性具有高需求的應用場景中。
有鑑於此,本說明書一個或多個實施例提供一種資料結構的讀取及更新方法、裝置、電子設備。
為實現上述目的,本說明書一個或多個實施例提供技術方案如下:
根據本說明書一個或多個實施例的第一態樣,提出了一種資料結構的讀取方法,包括:
區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求;
回應於所述呼叫請求,所述區塊鏈節點運行所述第一智能合約包含的合約代碼,以對第二智能合約包含的元資料所描述的資料結構進行解析,並透過電腦程式設計語言對所述資料結構進行表徵;
所述區塊鏈節點將所述電腦程式設計語言表徵的資料結構返回至所述呼叫請求的發起方。
根據本說明書一個或多個實施例的第二態樣,提出了一種資料結構的更新方法,包括:
區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求;
所述區塊鏈節點獲取基於電腦程式設計語言的更新後資料結構;
回應於所述呼叫請求,所述區塊鏈節點運行所述第一智能合約包含的第一合約代碼,所述第一合約代碼用於對所述更新後資料結構進行解析,並表徵為基於定義描述語言的更新後元資料,以對第二智能合約包含的更新前元資料進行更新。
根據本說明書一個或多個實施例的第三態樣,提出了一種資料結構的讀取裝置,包括:
獲取單元,使區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求;
回應單元,回應於所述呼叫請求,使所述區塊鏈節點運行所述第一智能合約包含的合約代碼,以對第二智能合約包含的元資料所描述的資料結構進行解析,並透過電腦程式設計語言對所述資料結構進行表徵;
返回單元,使所述區塊鏈節點將所述電腦程式設計語言表徵的資料結構返回至所述呼叫請求的發起方。
根據本說明書一個或多個實施例的第四態樣,提出了一種資料結構的更新裝置,包括:
請求獲取單元,使區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求;
結構獲取單元,使所述區塊鏈節點獲取基於電腦程式設計語言的更新後資料結構;
請求回應單元,回應於所述呼叫請求,使所述區塊鏈節點運行所述第一智能合約包含的第一合約代碼,所述第一合約代碼用於對所述更新後資料結構進行解析,並表徵為基於定義描述語言的更新後元資料,以對第二智能合約包含的更新前元資料進行更新。
根據本說明書一個或多個實施例的第五態樣,提出了一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為實現如上述實施例中任一所述的資料結構的讀取方法。
根據本說明書一個或多個實施例的第六態樣,提出了一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為實現如上述實施例中任一所述的資料結構的更新方法。
這裡將詳細地對示例性實施例進行說明,其示例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本說明書一個或多個實施例相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本說明書一個或多個實施例的一些態樣相一致的裝置和方法的例子。
需要說明的是:在其他實施例中並不一定按照本說明書示出和描述的順序來執行對應方法的步驟。在一些其他實施例中,其方法所包括的步驟可以比本說明書所描述的更多或更少。此外,本說明書中所描述的單個步驟,在其他實施例中可能被分解為多個步驟進行描述;而本說明書中所描述的多個步驟,在其他實施例中也可能被合併為單個步驟進行描述。
圖1是一示例性實施例提供的一種資料結構的讀取方法的流程圖。如圖1所示,該方法可以包括以下步驟:
步驟102,區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求。
在一實施例中,呼叫請求可以承載於區塊鏈網路中創建的一筆交易,並透過在該交易中指明所需呼叫的該第一智能合約的合約位址、埠資訊等,使得該呼叫請求被確認為“針對”上述的第一智能合約,從而執行該第一智能合約包含的合約代碼。
在一實施例中,本說明書中所描述的交易(transfer),是指透過區塊鏈節點對應的用戶端創建,並需要最終發布至區塊鏈網路的分散式資料庫中的一筆資料。其中,區塊鏈網路中的交易,存在狹義的交易以及廣義的交易之分。狹義的交易是指向區塊鏈網路發布的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是在區塊鏈網路中發起的一筆轉帳。而廣義的交易是指向區塊鏈網路發布的一筆具有業務意圖的業務資料;例如,運營方可以基於實際的業務需求搭建一個聯盟鏈,依託於聯盟鏈部署一些與價值轉移無關的其它類型的線上業務(比如,租房業務、車輛調度業務、保險理賠業務、信用服務、醫療服務等),而在這類聯盟鏈中,交易可以是在聯盟鏈中發布的一筆具有業務意圖的業務訊息或者業務請求。
在一實施例中,所述呼叫請求的發起方可以包括:所述區塊鏈網路中的某一角色。例如,該角色可以包括區塊鏈網路的開發人員或普通用戶,該角色能夠基於對該第一智能合約的呼叫,對第二智能合約包含的資料的資料結構進行快速讀取。
在一實施例中,第一智能合約可以經過區塊鏈網路中的各個區塊鏈節點之間共識,並記錄於區塊鏈網路中,可供區塊鏈節點進行呼叫。
在一實施例中,所述第一智能合約可以為所述區塊鏈網路的系統功能提供的系統合約。譬如,該第一智能合約可以被寫入區塊鏈網路的原始程式碼中,使得該第一智能合約可以作為預設“工具”,供區塊鏈節點對該第一智能合約進行呼叫,譬如用於對第二智能合約包含的資料的資料結構進行讀取,但普通用戶或一般開發人員無法對該第一智能合約進行修改,以確保其可靠性。
步驟104,回應於所述呼叫請求,所述區塊鏈節點運行所述第一智能合約包含的合約代碼,以對第二智能合約包含的元資料所描述的資料結構進行解析,並透過電腦程式設計語言對所述資料結構進行表徵。
在一實施例中,開發人員等角色可以讀取和編輯基於電腦程式設計語言的資料結構,而元資料採用定義描述語言進行表徵、無法被直接讀取和編輯。因此,第一智能合約包含的合約代碼可以用於實現在電腦程式設計語言與定義描述語言之間的轉換功能模組,可以對定義描述語言表徵的元資料進行解析,並進一步轉換為採用電腦程式設計語言進行表徵,以使得上述角色能夠便捷地讀取第二智能合約包含的資料的資料結構。
在一實施例中,第一智能合約可以包括code結構,該code結構中包含上述的合約代碼。第二智能合約可以包括storage結構,該storage結構用於記錄資料集合和元資料。第一智能合約也可以包括storage結構或其他結構,以用於記錄對應資料或其他內容,本說明書並不對此進行限制。第二智能合約也可以包括code結構,該code結構用於記錄合約代碼,比如該合約代碼被執行後可以對第二智能合約包含的元資料進行解析,以針對第二智能合約包含的資料進行讀寫操作、更新操作等,本說明書並不對此進行限制。
在一實施例中,資料結構可以包括:包含的資料欄位、各個資料欄位之間的層級關係、各個資料欄位之間的取值關係等,本說明書並不對此進行限制。
步驟106,所述區塊鏈節點將所述電腦程式設計語言表徵的資料結構返回至所述呼叫請求的發起方。
在一實施例中,所述電腦程式設計語言可以包括:預設類型的語言。例如,可以預先設定為均採用Solidity語言、JavaScript語言、Python語言甚至混合語言等,本說明書並不對此進行限制。採用跨合約的呼叫,還可以實現不同語言編寫的合約之間的呼叫;而且,在合約升級時,可以採用相同或者不同語言重新編寫已有合約,而不影響其它合約。採用跨合約的呼叫,還可以實現不同語言編寫的合約存取相同的資料。
在一實施例中,所述電腦程式設計語言可以包括:所述呼叫請求中指示類型的語言。換言之,呼叫請求的發起方可以指定希望採用的電腦程式設計語言的類型,這種指定可以針對任意類型,也可以在預先配置的多種類型中進行選擇,本說明書並不對此進行限制。
圖2是一示例性實施例提供的一種資料結構的更新方法的流程圖。如圖2所示,該方法可以包括以下步驟:
步驟202A,區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求。
在一實施例中,呼叫請求可以承載於區塊鏈網路中創建的一筆交易,並透過在該交易中指明所需呼叫的該第一智能合約的合約位址、埠資訊等,使得該呼叫請求被確認為“針對”上述的第一智能合約,從而執行該第一智能合約包含的第一合約代碼。
在一實施例中,本說明書中所描述的交易(transfer),是指透過區塊鏈節點對應的用戶端創建,並需要最終發布至區塊鏈網路的分散式資料庫中的一筆資料。其中,區塊鏈網路中的交易,存在狹義的交易以及廣義的交易之分。狹義的交易是指向區塊鏈網路發布的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是在區塊鏈網路中發起的一筆轉帳。而廣義的交易是指向區塊鏈網路發布的一筆具有業務意圖的業務資料;例如,運營方可以基於實際的業務需求搭建一個聯盟鏈,依託於聯盟鏈部署一些與價值轉移無關的其它類型的線上業務(比如,租房業務、車輛調度業務、保險理賠業務、信用服務、醫療服務等),而在這類聯盟鏈中,交易可以是在聯盟鏈中發布的一筆具有業務意圖的業務消息或者業務請求。
在一實施例中,所述呼叫請求的發起方可以包括:所述區塊鏈網路中的某一角色。例如,該角色可以包括區塊鏈網路的開發人員、維護人員、普通用戶或者授權用戶,該角色能夠基於對該第一智能合約的呼叫,從而便捷地實現對第二智能合約包含的資料的資料結構的更新,或者便捷地實現對第二智能合約包含的資料進行存取或者更新。
在一實施例中,第一智能合約可以經過區塊鏈網路中的各個區塊鏈節點之間共識,並記錄於區塊鏈網路中,可供區塊鏈節點進行呼叫。
在一實施例中,所述第一智能合約可以為所述區塊鏈網路的系統功能提供的系統合約。譬如,該第一智能合約可以被寫入區塊鏈網路的原始程式碼中,使得該第一智能合約可以作為預設“工具”,供區塊鏈節點對該第一智能合約進行呼叫,譬如用於對第二智能合約包含的元資料進行更新、以進一步修改第二智能合約包含的資料的資料結構,但普通用戶或一般開發人員無法對該第一智能合約進行修改,以確保其可靠性。
步驟202B,所述區塊鏈節點獲取基於電腦程式設計語言的更新後資料結構。
在一實施例中,開發人員可以透過諸如圖1所示的實施讀取第二智能合約包含的資料的資料結構,並基於電腦程式設計語言對該資料結構實施更新,從而得到更新後資料結構。
在一實施例中,所述電腦程式設計語言可以包括:預設類型的語言。例如,可以預先設定為均採用Solidity語言、JavaScript語言、Python語言等,本說明書並不對此進行限制。
在一實施例中,資料結構可以包括:包含的資料欄位、各個資料欄位之間的層級關係、各個資料欄位之間的取值關係等,本說明書並不對此進行限制。
在一實施例中,步驟202A與步驟202B之間並不存在必然的先後順序,只要發生於步驟204之前即可,本說明書並不對此進行限制。
步驟204,回應於所述呼叫請求,所述區塊鏈節點運行所述第一智能合約包含的第一合約代碼,所述第一合約代碼用於對所述更新後資料結構進行解析,並表徵為基於定義描述語言的更新後元資料,以對第二智能合約包含的更新前元資料進行更新。
在一實施例中,開發人員等角色可以讀取和編輯基於電腦程式設計語言的資料結構,而元資料採用定義描述語言進行表徵、無法被直接讀取和編輯。因此,第一智能合約包含的第一合約代碼可以用於實現在電腦程式設計語言與定義描述語言之間的轉換功能模組,可以對定義描述語言表徵的元資料進行解析,並進一步轉換為採用電腦程式設計語言進行表徵,以使得上述角色能夠透過電腦程式設計語言對資料的資料結構進行更新,並透過第一智能合約將更新後資料結構便捷地更新為第二智能合約包含的元資料,以透過更新後的元資料對第二智能合約包含的資料的資料結構進行更新。那麼,尤其是在開發階段或維護階段,使得開發人員等角色能夠快捷地讀取、修改第二智能合約包含的資料的資料結構。
在一實施例中,第一智能合約可以包括code結構,該code結構中包含上述的第一合約代碼;第一智能合約也可以包括storage結構或其他結構,以用於記錄對應資料或其他內容,本說明書並不對此進行限制。第二智能合約可以包括code結構,該code結構中包含上述的第二合約代碼,第二智能合約還可以包括storage結構,該storage結構用於記錄資料集合和元資料。其中,若第二智能合約包含的更新前元資料被更新為更新後元資料,上述的第二合約代碼可以被執行,以用於對該第二智能合約包含的更新後元資料進行解析,從而確定更新後資料結構,並據此對該第二智能合約包含的資料的資料結構進行更新。
在一實施例中,所述第一合約代碼還用於:將所述更新前元資料對應的更新前資料結構與所述更新後資料結構進行比較,以校驗所述更新後資料結構的合理性;其中,在所述更新後資料結構的合理性通過校驗的情況下,所述更新後元資料被用於對所述更新前元資料進行更新。例如,假定第二智能合約中的資料包含帳戶ID、年齡、電話號碼等欄位,並且在記錄時採用“01”代表“帳戶ID”、採用“02”代表“年齡”、採用“03”代表“電話號碼”等,那麼在更新後資料結構中如果將“02”修改為代表“電話號碼”,而“03”仍然代表“電話號碼”,就會導致“電話號碼”欄位出現混亂,造成更新後資料結構不合理,應當避免直接對更新前元資料進行更新,而應當對第一智能合約的呼叫方(如開發人員)發出告警,提示其作出修改。
圖3是一示例性實施例提供的一種智能合約的結構示意圖。如圖3所示,本說明書中涉及智能合約1和智能合約2。智能合約1可以包括結構301,比如該結構301可以稱為code結構,用於記錄該智能合約1的合約代碼(簡稱為代碼1);智能合約1還可以包括其他的結構302,比如相關技術中的storage結構、balance結構、nonce結構等,本說明書並不對此進行限制。智能合約2可以包括結構303,比如該結構303可以稱為code結構,用於記錄該智能合約2的合約代碼(簡稱為代碼2);智能合約2可以包括結構304,比如該結構304可以稱為storage結構,用於記錄該智能合約2中的合約資料(簡稱為資料)、該合約資料對應的元資料,該元資料用於描述對應的合約資料;智能合約2還可以包括其他的結構305,比如相關技術中的balance結構、nonce結構等,本說明書並不對此進行限制。
其中,智能合約1可以向外部提供針對結構301中的代碼1的API介面,以實現針對該代碼1的呼叫。以及,智能合約2可以向外部提供針對結構303中的代碼2的API介面,以實現針對該代碼2的呼叫。而在本說明書的實施例中,工作人員可以透過智能合約1提供的API介面,對該智能合約1包含的代碼1進行呼叫,而該代碼1被執行後可以透過智能合約2提供的API介面而對該代碼2進行呼叫,以針對該智能合約2包含的元資料進行解析或更新,從而讀取或更新智能合約2包含的資料採用的資料結構。
在本說明書的技術方案中,假定由用戶A對智能合約2進行開發或維護(譬如用戶A為開發人員),由於智能合約2中的元資料採用定義描述語言進行描述,而工作人員擅長於透過電腦程式設計語言進行開發或維護,而上述的智能合約1可以在定義描述語言與電腦程式設計語言之間實現切換,從而有助於工作人員透過呼叫該智能合約1而便捷地開發或維護智能合約2包含的元資料,以進一步讀取或更新智能合約2包含的資料的資料結構。
圖4是一示例性實施例提供的一種讀取資料結構的示意圖。如圖4所示,讀取資料結構的過程可以包括以下步驟:
步驟401,創建交易。
在一實施例中,假定用戶A需要讀取上述的智能合約2包含的資料的資料結構,以針對該資料結構進行更改。因此,該用戶A可以創建用於讀取資料結構的交易——相當於結構讀取請求,並向區塊鏈網路發布這條交易。假定由區塊鏈節點G對用戶A發布的上述交易進行回應,該區塊鏈節點G通常為距離用戶A最近的區塊鏈節點,當然本說明書並不對此進行限制。
在一實施例中,基於如圖3所示的實施例,智能合約2包含的元資料記錄了相關資料的資料結構,而上述的智能合約1可以對元資料採用的定義描述語言與用戶A熟知的電腦程式設計語言進行相互轉換,因而用戶A可以透過上述交易對智能合約1進行呼叫,以使得該智能合約1可以對智能合約2包含的元資料進行處理,從而獲知智能合約2包含的資料的資料結構。
在一實施例中,區塊鏈網路中可以存在很多的智能合約,以分別用於實現對應的事件或目的。因此,上述交易中可以包含智能合約1的合約位址、埠資訊等,以使得區塊鏈節點G可以基於該合約位址確定該交易需要呼叫該智能合約1,並基於埠資訊對該智能合約1包含的代碼1進行呼叫。
在一實施例中,智能合約1被創建並發布至區塊鏈網路後,在該區塊鏈網路中的各個區塊鏈節點之間達成共識,並記錄於各個區塊鏈節點上,比如上述的區塊鏈節點G上同樣記錄有該智能合約1。類似地,智能合約2被創建並發布至區塊鏈網路後,也可以基於共識而被建立於區塊鏈節點G中。
在一實施例中,智能合約1可以被配置為區塊鏈網路所提供的基礎功能,比如該智能合約1可以被寫入區塊鏈網路的原始程式碼中,而並非基於各個區塊鏈節點的共識而產生,使得該智能合約1更加安全、可靠。
步驟402,區塊鏈節點G驗證用戶A對智能合約1的呼叫權限。
在一實施例中,智能合約1可以設定有呼叫權限,類似於白名單或黑名單的形式,以避免智能合約1被隨意用於對其他智能合約的元資料進行讀取或更改,防止造成安全性風險。例如,當區塊鏈網路屬於公有鏈時,具有呼叫權限的用戶可以為預先約定的部分用戶;又例如,當區塊鏈網路屬於聯盟鏈時,具有呼叫權限的用戶可以為聯盟成員。因此,當區塊鏈節點G獲取用戶A發布的交易,並確定該交易需要對智能合約1進行呼叫時,可以首先確定該用戶A是否具有對應的呼叫權限,並在具有呼叫權限時繼續實施後續步驟,否則可以返回失敗資訊。
步驟403,區塊鏈節點G呼叫智能合約1,執行智能合約1包含的代碼1。
在一實施例中,用戶A可以在上述交易中添加針對智能合約1的輸入參數,比如該輸入參數可以包括智能合約2的合約位址、埠資訊等,以使得智能合約1包含的代碼1被執行時,可以據此對智能合約2實現呼叫。
在一實施例中,用戶A在上述交易中添加的輸入參數還可以包括操作類型,比如該操作類型可以包括“讀取元資料”,使得智能合約1包含的代碼1被執行時,可以基於對智能合約2的呼叫,讀取該智能合約2包含的元資料、對基於定義描述語言的該元資料進行解析,並將解析出的資料結構表徵為電腦程式設計語言,以提供至用戶A進行查看。
步驟404,區塊鏈節點G呼叫智能合約2,執行代碼2,讀取元資料。
在一實施例中,基於被執行的上述代碼1,區塊鏈節點G可以對智能合約2進行呼叫。例如,可以透過呼叫並執行該智能合約2包含的上述代碼2,讀取該智能合約2包含的元資料,並將該元資料返回至智能合約1。
在一實施例中,智能合約2可以設定有呼叫權限,類似於白名單或黑名單的形式,以避免智能合約2被隨意呼叫,防止其包含的元資料或資料被隨意讀取或更改,防止產生安全性風險。例如,當區塊鏈網路屬於公有鏈時,具有呼叫權限的用戶可以為預先約定的部分用戶;又例如,當區塊鏈網路屬於聯盟鏈時,具有呼叫權限的用戶可以為聯盟成員。因此,當智能合約1被用戶A所呼叫,以針對智能合約2發起呼叫時,可以確定該用戶A是否針對該智能合約2具有呼叫權限,並在具有呼叫權限時繼續實施後續步驟,否則可以返回失敗資訊。
需要說明的是:基於區塊鏈網路的分散式資料儲存的特點,使得發布至區塊鏈網路的資料需要被記錄於所有區塊鏈節點上,使得這些資料不可篡改、可溯源。但是,一些資料可能具有一定私密性,如果發布至區塊鏈網路則可能造成私密性無法保障,而如果不發布至區塊鏈網路則可能存在資料內容不可靠的問題,並且不利於各個區塊鏈節點對於相關資料的資料結構進行快捷讀取和呼叫等。因此,本說明書中透過將上述具有私密性需求的資料及其元資料記錄於智能合約(如智能合約2)中,並透過對呼叫權限的管理而限制無權限用戶對相關資料及其元資料的隨意存取,使得這些資料及其元資料既能夠公佈至區塊鏈網路、以享有區塊鏈網路所帶來的可靠性與便利性,又能夠確保資料及其元資料具有足夠的私密性和安全性。
步驟405,區塊鏈節點G解析元資料,對元資料進行語言轉換。
在一實施例中,針對智能合約2返回的元資料,被執行的上述代碼1還可以對基於定義描述語言的該元資料進行解析,並將解析出的資料結構表徵為電腦程式設計語言,以提供至用戶A進行查看。
在一實施例中,用戶A可以在上述交易中添加針對智能合約1的輸入參數,比如該輸入參數可以包括電腦程式設計語言的類型,即用戶A可以據此指定某一類型的電腦程式設計語言,使得智能合約1包含的代碼1被執行後,可以將解析出的資料結構採用該類型的電腦程式設計語言進行表徵,以便用戶A進行查看或編輯。
在一實施例中,本說明書中的資料結構可以包括:資料所涉及的資料欄位、各個資料欄位之間的層級關係、各個資料欄位之間的取值關係等,凡是能夠用於描述智能合約2所包含的資料的資訊,均可以作為此處的資料結構而提供至用戶A。
在一實施例中,用戶A在上述交易中添加的輸入參數可以包括資料結構的類型,比如該用戶A關注的若干類型的資料結構,使得智能合約1包含的代碼1被執行後,可以篩選出這些類型的資料結構並提供至用戶A,而其他類型的資料結構可以不提供至用戶A,使得用戶A查看到的資料結構更加具有針對性、更加符合用戶A的實際需求,而且免去了對其他類型的資料結構進行解析和表徵的過程,有助於提升對資料結構的讀取效率。
步驟406,區塊鏈節點G向用戶A返回處理結果。
用戶A可以對智能合約2包含的資料實施資料結構的更新。例如,在透過如圖4所示的實施例讀取該智能合約2包含的資料的更新前資料結構後,用戶A可以針對該更新前資料結構進行修改,得到更新後資料結構,並基於該更新後資料結構對智能合約2包含的元資料進行更新,然後根據更新後元資料對對應資料的資料結構進行更新。當然,用戶A還可以透過其他方式獲得智能合約2包含的資料的更新前資料結構,本說明書並不對此進行限制。
對應地,圖5是一示例性實施例提供的一種更新資料結構的示意圖。如圖5所示,更新資料結構的過程可以包括以下步驟:
步驟501,創建交易。
在一實施例中,假定用戶A需要更新上述的智能合約2包含的資料的資料結構,該用戶A可以創建用於更新資料結構的交易——相當於結構更新請求,並向區塊鏈網路發布這條交易。假定由區塊鏈節點G對用戶A發布的上述交易進行回應,該區塊鏈節點G通常為距離用戶A最近的區塊鏈節點,當然本說明書並不對此進行限制。
在一實施例中,基於如圖3所示的實施例,用戶A可以對智能合約2包含的資料採用的更新前資料結構進行更改,得到更新後資料結構;其中,該更新後資料結構採用用戶A熟知的電腦程式設計語言進行表徵,而上述的智能合約1可以對該電腦程式設計語言表徵的更新後資料結構與元資料採用的定義描述語言進行相互轉換,從而得到更新後元資料,並據此對智能合約2包含的資料的資料結構進行更新。
在一實施例中,上述交易中可以包含智能合約1的合約位址、埠資訊等,以使得區塊鏈節點G可以基於該合約位址確定該交易需要呼叫該智能合約1,並基於埠資訊對該智能合約1包含的代碼1進行呼叫。
在一實施例中,本實施例中的智能合約1可以參考圖4所示實施例中的相關描述,此處不再贅述。
步驟502,區塊鏈節點G驗證用戶A對智能合約1的呼叫許可權。
在一實施例中,步驟502可以參考圖4所示的步驟402,此處不再贅述。
步驟503,區塊鏈節點G呼叫智能合約1,對更新後資料結構進行語言轉換,並產生為更新後元資料。
在一實施例中,用戶A在上述交易中添加的輸入參數可以包括更新後資料結構,使得智能合約1包含的代碼1被執行時,可以對基於電腦程式設計語言進行表徵的該更新後資料結構進行轉換,得到基於定義描述語言進行表徵的更新後元資料。
在一實施例中,本說明書中的資料結構可以包括:資料所涉及的資料欄位、各個資料欄位之間的層級關係、各個資料欄位之間的取值關係等,凡是能夠用於描述智能合約2所包含的資料的資訊,均可以作為此處的資料結構而提供至用戶A。
在一實施例中,用戶A對於資料結構的更新可以涉及上述任意態樣的資料結構,比如對資料欄位進行添加、刪除或修改,再比如對資料欄位之間的層級關係進行增加、刪除或修改,又比如對資料欄位之間的取值關係進行增加、刪除或修改等。
下面以針對資料欄位的增加、刪除或修改為例,對更新前後的資料結構進行詳細說明:
假定智能合約2包含的資料的更新前資料結構可以表徵為如下表1所示,包括各個帳戶所屬用戶的個人資訊(如帳戶ID、年齡、地址等),以及各個帳戶對於各個類型的區塊鏈資產的持有情況。
表1
在一種情況下,假定用戶A對於資料結構的更新方式為:添加資料欄位。譬如,在上述表1的基礎上添加新的資料欄位“Balance-Type X(餘額-類型X)”,對應的更新後資料結構如下表2所示。
表2
在另一種情況下,假定用戶A對於資料結構的更新方式為:刪除資料欄位。譬如,在上述表2的基礎上刪除了原有的資料欄位“Balance-Type X(餘額-類型X)”,對應的更新後資料結構如下表1所示。
在又一種情況下,假定用戶A對於資料結構的更新方式為:修改資料欄位。譬如,在上述表1的基礎上將原有的資料欄位“Total-RMB(總額-人民幣)”更改為“Total-Dollar(總額-美元)”,即原本採用人民幣對各個帳戶持有的區塊鏈資產總額進行統計,更改為採用美元對各個帳戶持有的區塊鏈資產總額進行統計,對應的更新後資料結構如下表3所示。
表3
在一實施例中,智能合約1包含的代碼1被執行時,還可以針對更新後資料結構進行校驗,以確定用戶A實施的更新是否合理。例如,假定智能合約2中對於資料欄位的管理,採用“標識”的方式來實現;譬如,採用標識“01”表示上述的欄位“帳戶ID”、採用標識“02”表示上述的欄位“年齡”、採用標識“03”表示上述的欄位“電話”等。那麼,如果在更新後資料結構中在表1的基礎上添加了表2所示的“Balance-Type X(餘額-類型X)”欄位,並且採用標識“02”表示該“Balance-Type X(餘額-類型X)”欄位,那麼標識“02”同時對應於兩個不同欄位,表明用戶A實施的更新不合理,可以向用戶A返回提示資訊,並暫停或終止對資料結構的更新操作。
當然,除了基於“標識”的管理方式之外,智能合約2還可以採用其他方式,本說明書並不對此進行限制。譬如,智能合約2還可以採用“偏移量”方式,比如“帳戶ID”欄位作為起始欄位,該“帳戶ID”對應的偏移量為0,“年齡”欄位為“帳戶ID”欄位右側的第一個欄位,該“年齡”欄位相對於“帳戶ID”的偏移量為1,類似地,“電話”欄位相對於“帳戶ID”的偏移量為2等,以此對各個資料欄位及其位置關係進行管理,並據此確定更新後資料結構的合理性,此處不再贅述。
步驟504,區塊鏈節點G呼叫智能合約2,對智能合約2包含的更新前元資料進行更新。
在一實施例中,用戶A可以在上述交易中添加針對智能合約1的輸入參數,比如該輸入參數可以包括智能合約2的合約位址、埠資訊等,以使得智能合約1包含的代碼1被執行時,可以據此對智能合約2實現呼叫。
在一實施例中,智能合約2可以設定有呼叫權限,類似於白名單或黑名單的形式,以避免智能合約2被隨意呼叫,防止其包含的元資料被隨意讀取或更改,防止產生安全性風險。例如,當區塊鏈網路屬於公有鏈時,具有呼叫權限的用戶可以為預先約定的部分用戶;又例如,當區塊鏈網路屬於聯盟鏈時,具有呼叫權限的用戶可以為聯盟成員。因此,當智能合約1被用戶A所呼叫,以針對智能合約2發起呼叫時,可以確定該用戶A是否針對該智能合約2具有呼叫權限,並在具有呼叫權限時繼續實施後續步驟,否則可以返回失敗資訊。
需要說明的是:基於區塊鏈網路的分散式資料儲存的特點,使得發布至區塊鏈網路的資料需要被記錄於所有區塊鏈節點上,使得這些資料不可篡改、可溯源。但是,一些資料可能具有一定私密性,如果發布至區塊鏈網路則可能造成私密性無法保障,而如果不發布至區塊鏈網路則可能存在資料內容不可靠的問題,並且不利於各個區塊鏈節點對於相關資料的資料結構進行快捷讀取和呼叫等。因此,本說明書中透過將上述具有私密性需求的資料及其元資料記錄於智能合約(如智能合約2)中,並透過對呼叫許可權的管理而限制無許可權用戶對相關資料及其元資料的隨意存取,使得這些資料及其元資料既能夠公佈至區塊鏈網路、以享有區塊鏈網路所帶來的可靠性與便利性,又能夠確保資料及其元資料具有足夠的私密性和安全性。
在一實施例中,智能合約1包含的代碼1被執行後,產生的更新後元資料可以被作為呼叫智能合約2時的輸入參數,使得智能合約2包含的代碼2被執行時,可以將智能合約2原本包含的更新前元資料更換為該更新後元資料,從而對智能合約2包含的元資料進行更新。
步驟505,區塊鏈節點G向用戶A返回處理結果。
在一實施例中,由於智能合約2包含的更新後元資料採用了用戶A更新後的資料結構,因而當智能合約2包含的代碼2被執行時,可以對該更新後元資料進行解析,並基於解析結果對智能合約2包含的資料進行更新,從而最終實現了對智能合約2包含的資料的資料結構的更新操作。
在一實施例中,智能合約2包含的元資料被更新後,可以透過執行智能合約2包含的代碼2對該更新後元資料進行解析,並基於解析結果對智能合約2包含的所有資料進行更新。例如,當資料結構的更新方式為將表1所示的“Total-RMB(總額-人民幣)”欄位更改為“Total-Dollar(總額-美元)”欄位時,更新後的資料可以如表3所示。
在一實施例中,智能合約2包含的元資料被更新後,可以不對智能合約2包含的所有資料進行資料結構更新,而僅當涉及到相關資料時,才針對這些資料的資料結構進行更新。例如,智能合約2包含的元資料被更新後,智能合約2包含的資料可以仍然暫時採用表1所示的資料結構。
表4
而假定智能合約2被呼叫,以針對帳戶ID為002的區塊鏈資產總額進行查詢,那麼智能合約2包含的代碼2被執行,以針對智能合約2包含的更新後元資料進行解析,由於更新後資料結構採用“Total-Dollar(總額-美元)”欄位,因而如上表4所示,可以為該“帳戶ID=0002”的用戶資訊添加“Total-Dollar(總額-美元)”欄位,將原本對應於“Total-RMB(總額-人民幣)”欄位的資料“13000”刪除,而更改為“Total-Dollar(總額-美元)”欄位下的“1999.1696”,表明用戶B所持有的區塊鏈資產的總額相當於1999.1696美元。由於僅涉及到“帳戶ID=0002”的資料,因而對於該帳戶而言,相當於將“Total-RMB(總額-人民幣)”欄位更改為“Total-Dollar(總額-美元)”欄位,但其他帳戶仍然採用“Total-RMB(總額-人民幣)”欄位,直至相關資料被涉及到,這樣尤其是當被涉及到的帳戶數量較少時,可以極大地減少工作量。
圖6是一示例性實施例提供的一種設備的示意結構圖。請參考圖6,在硬體層面,該設備包括處理器602、內部匯流排604、網路介面606、內部記憶體608以及非易失性記憶體610,當然還可能包括其他業務所需要的硬體。處理器602從非易失性記憶體610中讀取對應的電腦程式到記憶體608中然後運行,在邏輯層面上形成資料結構的讀取裝置。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,比如邏輯裝置抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯裝置。
請參考圖7,在軟體實施方式中,該資料結構的讀取裝置可以包括:
獲取單元71,使區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求;
回應單元72,回應於所述呼叫請求,使所述區塊鏈節點運行所述第一智能合約包含的合約代碼,以對第二智能合約包含的元資料所描述的資料結構進行解析,並透過電腦程式設計語言對所述資料結構進行表徵;
返回單元73,使所述區塊鏈節點將所述電腦程式設計語言表徵的資料結構返回至所述呼叫請求的發起方。
可選地,所述元資料用於描述所述第二智能合約包含的資料。
可選地,所述電腦程式設計語言包括:預設類型的語言或所述呼叫請求中指示類型的語言。
可選地,所述第一智能合約為所述區塊鏈網路的系統功能提供的系統合約。
圖8是一示例性實施例提供的一種設備的示意結構圖。請參考圖8,在硬體層面,該設備包括處理器802、內部匯流排804、網路介面806、內部記憶體808以及非易失性記憶體810,當然還可能包括其他業務所需要的硬體。處理器802從非易失性記憶體810中讀取對應的電腦程式到記憶體808中然後運行,在邏輯層面上形成資料結構的更新裝置。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,比如邏輯裝置抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯裝置。
請參考圖9,在軟體實施方式中,該資料結構的更新裝置可以包括:
請求獲取單元91,使區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求;
結構獲取單元92,使所述區塊鏈節點獲取基於電腦程式設計語言的更新後資料結構;
請求回應單元93,回應於所述呼叫請求,使所述區塊鏈節點運行所述第一智能合約包含的第一合約代碼,所述第一合約代碼用於對所述更新後資料結構進行解析,並表徵為基於定義描述語言的更新後元資料,以對第二智能合約包含的更新前元資料進行更新。
可選地,所述第二智能合約包含的元資料用於描述所述第二智能合約包含的資料。
可選地,所述第二智能合約包含第二合約代碼,所述第二合約代碼用於對所述更新後元資料進行解析,以對所述第二智能合約包含的資料的資料結構進行更新。
可選地,所述第一智能合約為所述區塊鏈網路的系統功能提供的系統合約。
可選地,所述第一合約代碼還用於:將所述更新前元資料對應的更新前資料結構與所述更新後資料結構進行比較,以校驗所述更新後資料結構的合理性;其中,在所述更新後資料結構的合理性通過校驗的情況下,所述更新後元資料被用於對所述更新前元資料進行更新。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、穿戴式設備或者這些設備中的任意幾種設備的組合。
在一個典型的配置中,電腦包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶、磁片儲存、量子記憶體、基於石墨烯的儲存媒體或其他磁性存放裝置或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫態電腦可讀媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範圍內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在圖式中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多工處理和並行處理也是可以的或者可能是有利的。
在本說明書一個或多個實施例使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本說明書一個或多個實施例。在本說明書一個或多個實施例和所附申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“及/或”是指並包含一個或多個相關聯的列出專案的任何或所有可能組合。
應當理解,儘管在本說明書一個或多個實施例可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本說明書一個或多個實施例範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“回應於確定”。
以上所述僅為本說明書一個或多個實施例的較佳實施例而已,並不用以限制本說明書一個或多個實施例,凡在本說明書一個或多個實施例的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書一個或多個實施例保護的範圍之內。
Account ID (帳戶ID) | Age (年齡) | Tel (電話) | … | Balance-Type A (餘額-類型A) | Balance-Type B (餘額-類型B) | Total-RMB (總額-人民幣) |
0001 | 26 | 139… | … | 2000 | 1500 | 5000 |
0002 | 25 | 186… | … | 1000 | 6000 | 13000 |
0003 | 32 | 166… | … | 20000 | 2100 | 24200 |
… | … | … | … | … | … | … |
Account ID (帳戶ID) | Age (年齡) | Tel (電話) | … | Balance- Type A (餘額- 類型A) | Balance- Type B (餘額- 類型B) | Balance- Type X (餘額- 類型X) | Total-RMB (總額-人民幣) |
0001 | 26 | 139… | … | 2000 | 1500 | 0 | 5000 |
0002 | 25 | 186… | … | 1000 | 6000 | 0 | 13000 |
0003 | 32 | 166… | … | 20000 | 2100 | 0 | 24200 |
… | … | … | … | … | … | … | … |
Account ID (帳戶ID) | Age (年齡) | Tel (電話) | … | Balance-Type A (餘額-類型A) | Balance-Type B (餘額-類型B) | Total-Dollar (總額-美元) |
0001 | 26 | 139… | … | 2000 | 1500 | 768.9114 |
0002 | 25 | 186… | … | 1000 | 6000 | 1999.1696 |
0003 | 32 | 166… | … | 20000 | 2100 | 3721.5311 |
… | … | … | … | … | … | … |
Account ID (帳戶ID) | Age (年齡) | Tel (電話) | … | Balance-Type A (餘額-類型A) | Balance-Type B (餘額-類型B) | Total-RMB (總額-人民幣) | Total-Dollar (總額-美元) |
0001 | 26 | 139… | … | 2000 | 1500 | 5000 | / |
0002 | 25 | 186… | … | 1000 | 6000 | / | 1999.1696 |
0003 | 32 | 166… | … | 20000 | 2100 | 24200 | / |
… | … | … | … | … | … | … | / |
102:步驟
104:步驟
106:步驟
202A:步驟
202B:步驟
204:步驟
301:結構
302:結構
303:結構
304:結構
305:結構
401:步驟
402:步驟
403:步驟
404:步驟
405:步驟
406:步驟
501:步驟
502:步驟
503:步驟
504:步驟
505:步驟
602:處理器
604:內部匯流排
606:網路介面
608:內部記憶體
610:非易失性記憶體
71:獲取單元
72:回應單元
73:返回單元
802:處理器
804:內部匯流排
806:網路介面
808:內部記憶體
810:非易失性記憶體
91:請求獲取單元
92:結構獲取單元
93:請求回應單元
[圖1] 是一示例性實施例提供的一種資料結構的讀取方法的流程圖。
[圖2] 是一示例性實施例提供的一種資料結構的更新方法的流程圖。
[圖3] 是一示例性實施例提供的一種智能合約的結構示意圖。
[圖4] 是一示例性實施例提供的一種讀取資料結構的示意圖。
[圖5] 是一示例性實施例提供的一種更新資料結構的示意圖。
[圖6] 是一示例性實施例提供的一種設備的結構示意圖。
[圖7] 是一示例性實施例提供的一種資料結構的讀取裝置的方塊圖。
[圖8] 是一示例性實施例提供的另一種設備的結構示意圖。
[圖9] 是一示例性實施例提供的一種資料結構的更新裝置的方塊圖。
Claims (16)
- 一種資料結構的讀取方法,包括:區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求,所述第一智能合約被寫入所述區塊鏈網路的原始程式碼中;回應於所述呼叫請求,所述區塊鏈節點運行所述第一智能合約包含的合約代碼,以對第二智能合約包含的元資料所描述的資料結構進行解析,並透過電腦程式設計語言對所述資料結構進行表徵,所述元資料用於描述所述第二智能合約包含的資料;以及所述區塊鏈節點將所述電腦程式設計語言表徵的資料結構返回至所述呼叫請求的發起方。
- 如請求項1之方法,所述電腦程式設計語言包括:預設類型的語言或所述呼叫請求中指示類型的語言。
- 如請求項1之方法,所述第一智能合約為所述區塊鏈網路的系統功能提供的系統合約。
- 一種資料結構的更新方法,包括:區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求,所述第一智能合約被寫入所述區塊鏈網路的原始程式碼中;所述區塊鏈節點獲取基於電腦程式設計語言的更新後資料結構;以及回應於所述呼叫請求,所述區塊鏈節點運行所述第一 智能合約包含的第一合約代碼,所述第一合約代碼用於對所述更新後資料結構進行解析,並表徵為基於定義描述語言的更新後元資料,以對第二智能合約包含的更新前元資料進行更新,所述第二智能合約包含的元資料用於描述所述第二智能合約包含的資料。
- 如請求項4之方法,所述第二智能合約包含第二合約代碼,所述第二合約代碼用於對所述更新後元資料進行解析,以對所述第二智能合約包含的資料的資料結構進行更新。
- 如請求項4之方法,所述第一智能合約為所述區塊鏈網路的系統功能提供的系統合約。
- 如請求項4之方法,所述第一合約代碼還用於:將所述更新前元資料對應的更新前資料結構與所述更新後資料結構進行比較,以校驗所述更新後資料結構的合理性,其中,在所述更新後資料結構的合理性通過校驗的情況下,所述更新後元資料被用於對所述更新前元資料進行更新。
- 一種資料結構的讀取裝置,包括:獲取單元,使區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求,所述第一智能合約被寫入所述區塊鏈網路的原始程式碼中;回應單元,回應於所述呼叫請求,使所述區塊鏈節點運行所述第一智能合約包含的合約代碼,以對第二智能合 約包含的元資料所描述的資料結構進行解析,並透過電腦程式設計語言對所述資料結構進行表徵,所述元資料用於描述所述第二智能合約包含的資料;以及返回單元,使所述區塊鏈節點將所述電腦程式設計語言表徵的資料結構返回至所述呼叫請求的發起方。
- 如請求項8之裝置,所述電腦程式設計語言包括:預設類型的語言或所述呼叫請求中指示類型的語言。
- 如請求項8之裝置,所述第一智能合約為所述區塊鏈網路的系統功能提供的系統合約。
- 一種資料結構的更新裝置,包括:請求獲取單元,使區塊鏈網路中的區塊鏈節點獲取針對第一智能合約的呼叫請求,所述第一智能合約被寫入所述區塊鏈網路的原始程式碼中;結構獲取單元,使所述區塊鏈節點獲取基於電腦程式設計語言的更新後資料結構;以及請求回應單元,回應於所述呼叫請求,使所述區塊鏈節點運行所述第一智能合約包含的第一合約代碼,所述第一合約代碼用於對所述更新後資料結構進行解析,並表徵為基於定義描述語言的更新後元資料,以對第二智能合約包含的更新前元資料進行更新,所述第二智能合約包含的元資料用於描述所述第二智能合約包含的資料。
- 如請求項11之裝置,所述第二智能合約包含第二合約代碼,所述第二合約代碼用於對所述更新後 元資料進行解析,以對所述第二智能合約包含的資料的資料結構進行更新。
- 如請求項11之裝置,所述第一智能合約為所述區塊鏈網路的系統功能提供的系統合約。
- 如請求項11之裝置,所述第一合約代碼還用於:將所述更新前元資料對應的更新前資料結構與所述更新後資料結構進行比較,以校驗所述更新後資料結構的合理性,其中,在所述更新後資料結構的合理性通過校驗的情況下,所述更新後元資料被用於對所述更新前元資料進行更新。
- 一種電子設備,包括:處理器;以及用於儲存處理器可執行指令的記憶體,其中,所述處理器被配置為實現如請求項1至3中任一項所述的資料結構的讀取方法。
- 一種電子設備,包括:處理器;以及用於儲存處理器可執行指令的記憶體,其中,所述處理器被配置為實現如請求項4至7中任一項所述的資料結構的更新方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811564698.4A CN110032599B (zh) | 2018-12-20 | 2018-12-20 | 数据结构的读取及更新方法、装置、电子设备 |
CN201811564698.4 | 2018-12-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202024953A TW202024953A (zh) | 2020-07-01 |
TWI722592B true TWI722592B (zh) | 2021-03-21 |
Family
ID=67235374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108136033A TWI722592B (zh) | 2018-12-20 | 2019-10-04 | 資料結構的讀取及更新方法、裝置、電子設備 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11232098B2 (zh) |
EP (1) | EP3812921A4 (zh) |
CN (2) | CN111782668B (zh) |
SG (1) | SG11202100673WA (zh) |
TW (1) | TWI722592B (zh) |
WO (1) | WO2020125219A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11604890B2 (en) * | 2017-10-20 | 2023-03-14 | Hewlett Packard Enterprise Development Lp | Accessing information based on privileges |
US11582040B2 (en) | 2017-10-20 | 2023-02-14 | Hewlett Packard Enterprise Development Lp | Permissions from entities to access information |
CN111782668B (zh) * | 2018-12-20 | 2024-06-28 | 创新先进技术有限公司 | 数据结构的读取及更新方法、装置、电子设备 |
CN110032568B (zh) | 2018-12-20 | 2020-05-12 | 阿里巴巴集团控股有限公司 | 数据结构的读取及更新方法、装置、电子设备 |
US20210092127A1 (en) * | 2019-09-19 | 2021-03-25 | Microsoft Technology Licensing, Llc | Writing role-backed access control to chain |
CN110602133B (zh) * | 2019-09-20 | 2021-04-09 | 腾讯科技(深圳)有限公司 | 智能合约处理方法、区块链管理设备及存储介质 |
CN112070608B (zh) * | 2020-08-20 | 2024-03-19 | 财付通支付科技有限公司 | 信息处理方法、装置、介质及电子设备 |
CN112685016B (zh) * | 2020-12-31 | 2024-07-09 | 北京存金所贵金属有限公司 | 区块链应用的开发方法、装置和设备 |
CN113220701B (zh) * | 2021-05-25 | 2023-05-02 | 成都佰纳瑞信息技术有限公司 | 基于区块链的数据结构自适应变动升级方法、装置、设备和产品 |
CN115037610B (zh) * | 2022-04-24 | 2023-09-22 | 浙江清捷智能科技有限公司 | 一种自动配置系统及自动配置方法 |
CN114880010A (zh) * | 2022-05-13 | 2022-08-09 | 北京微芯感知科技有限公司 | 一种动态更新智能合约的方法和装置 |
CN115657901B (zh) * | 2022-10-20 | 2023-07-11 | 吉林银行股份有限公司 | 一种基于统一参数的业务变更方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107807991A (zh) * | 2017-11-07 | 2018-03-16 | 泰康保险集团股份有限公司 | 用于处理区块链数据的方法及装置 |
TW201837798A (zh) * | 2017-03-29 | 2018-10-16 | 香港商阿里巴巴集團服務有限公司 | 一種基於區塊鏈的事務處理方法及設備 |
CN108718341A (zh) * | 2018-05-30 | 2018-10-30 | 北京阿尔山金融科技有限公司 | 数据的共享和搜索的方法 |
CN108848119A (zh) * | 2018-04-03 | 2018-11-20 | 阿里巴巴集团控股有限公司 | 跨区块链的交互方法及装置、系统、电子设备 |
US20180349621A1 (en) * | 2017-06-01 | 2018-12-06 | Schvey, Inc. d/b/a/ Axoni | Distributed privately subspaced blockchain data structures with secure access restriction management |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571657B (zh) | 2010-12-10 | 2015-10-21 | 中兴通讯股份有限公司 | 一种变换采样率的数字预失真处理系统和方法 |
US8537041B2 (en) | 2011-05-12 | 2013-09-17 | Andrew Llc | Interpolation-based digital pre-distortion architecture |
CN102361476B (zh) | 2011-07-29 | 2013-01-30 | 上海交通大学 | 宽带多频段功放数字预失真装置及其方法 |
US20150379510A1 (en) * | 2012-07-10 | 2015-12-31 | Stanley Benjamin Smith | Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain. |
US9628119B2 (en) | 2014-06-27 | 2017-04-18 | Nxp Usa, Inc. | Adaptive high-order nonlinear function approximation using time-domain volterra series to provide flexible high performance digital pre-distortion |
US20160092988A1 (en) * | 2014-09-30 | 2016-03-31 | Raistone, Inc. | Systems and methods for transferring digital assests using a de-centralized exchange |
CN104580044B (zh) | 2014-12-29 | 2018-12-18 | 大唐移动通信设备有限公司 | 一种预失真处理方法和系统 |
US20160203496A1 (en) * | 2015-01-12 | 2016-07-14 | Optima Compass Group, LLC | Multivariate Dynamic Rules Engine Framework and System |
JP6756817B2 (ja) * | 2015-04-06 | 2020-09-16 | ビットマーク, インコーポレイテッドBitmark, Inc. | 非集中型のタイトル記録および認証のためのシステムならびに方法 |
US20160321676A1 (en) * | 2015-05-01 | 2016-11-03 | Monegraph, Inc. | Sharing content within social network services |
US10007913B2 (en) * | 2015-05-05 | 2018-06-26 | ShoCard, Inc. | Identity management service using a blockchain providing identity transactions between devices |
US10255336B2 (en) * | 2015-05-07 | 2019-04-09 | Datometry, Inc. | Method and system for transparent interoperability between applications and data management systems |
US20170011460A1 (en) * | 2015-07-09 | 2017-01-12 | Ouisa, LLC | Systems and methods for trading, clearing and settling securities transactions using blockchain technology |
EP3380984A4 (en) * | 2015-11-24 | 2019-07-31 | Ben-Ari, Adi | SYSTEM AND METHOD FOR THE PROTECTION OF DATA BY INTELLIGENT BLOCKCHAIN CONTRACT |
US10423993B2 (en) * | 2015-12-28 | 2019-09-24 | Raise Marketplace, Llc | Authenticating an exchange item in an exchange item marketplace network |
US11727501B2 (en) * | 2016-02-23 | 2023-08-15 | Nchain Licensing Ag | Cryptographic method and system for secure extraction of data from a blockchain |
CA3014726A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Tokenisation method and system for implementing exchanges on a blockchain |
US10346406B2 (en) * | 2016-03-28 | 2019-07-09 | International Business Machines Corporation | Decentralized autonomous edge compute coordinated by smart contract on a blockchain |
US10720232B2 (en) * | 2016-04-13 | 2020-07-21 | Accenture Global Solutions Limited | Distributed healthcare records management |
US11397944B2 (en) * | 2016-05-11 | 2022-07-26 | Nasdaq, Inc. | Application framework using blockchain-based asset ownership |
US20170345011A1 (en) * | 2016-05-26 | 2017-11-30 | Hitfin, Inc. | System and method executed on a blockchain network |
US10445698B2 (en) * | 2016-06-30 | 2019-10-15 | Clause, Inc. | System and method for forming, storing, managing, and executing contracts |
US10740844B2 (en) * | 2016-09-26 | 2020-08-11 | Shapeshift Ag | System and method of managing trustless asset portfolios |
US11176519B2 (en) * | 2016-11-11 | 2021-11-16 | International Business Machines Corporation | Smart contract admission check and fault tolerance in a blockchain |
CN106778329B (zh) * | 2016-11-28 | 2020-12-04 | 中国银行股份有限公司 | 一种区块链智能合约模板动态更新方法、装置及系统 |
WO2018140963A1 (en) * | 2017-01-30 | 2018-08-02 | Dais Technology, Inc. | System for creating and utilizing smart policies on a blockchain |
US20180218176A1 (en) * | 2017-01-30 | 2018-08-02 | SALT Lending Holdings, Inc. | System and method of creating an asset based automated secure agreement |
GB201701589D0 (en) * | 2017-01-31 | 2017-03-15 | Nchain Holdings Ltd | Computer-implemented system and method |
US10158479B2 (en) * | 2017-02-06 | 2018-12-18 | Northern Trust Corporation | Systems and methods for generating, uploading and executing code blocks within distributed network nodes |
EP3583562A1 (en) * | 2017-02-17 | 2019-12-25 | Nokia Technologies Oy | Changing smart contracts recorded in block chains |
AU2018230763A1 (en) * | 2017-03-08 | 2019-10-31 | Ip Oversight Corporation | System and method for creating commodity asset-secured tokens from reserves |
WO2018170504A1 (en) * | 2017-03-17 | 2018-09-20 | Labyrinth Research Llc | Unified control of privacy-impacting devices |
CN107332701A (zh) * | 2017-06-26 | 2017-11-07 | 中国人民银行数字货币研究所 | 管理节点的方法和系统 |
CN107943469B (zh) * | 2017-11-17 | 2022-01-11 | 深圳圣马歌科技有限公司 | 一种智能合约的发布方法及装置 |
AU2018100150A4 (en) * | 2018-02-03 | 2018-03-08 | Talbot, Phillip David MR | Proof of delivery on the blockchain |
CN108510389B (zh) * | 2018-03-30 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 基于区块链的智能合约调用方法、设备及可读存储介质 |
CN108694589A (zh) * | 2018-05-08 | 2018-10-23 | 杭州佑他科技有限公司 | 一种基于区块链的资产监控方法 |
CN108769173B (zh) * | 2018-05-21 | 2021-11-09 | 阿里体育有限公司 | 运行智能合约的区块链实现方法及设备 |
CN108876619B (zh) * | 2018-06-26 | 2022-07-05 | 北京溯安链科技有限公司 | 基于区块链智能合约的处理方法、装置、设备和介质 |
CN113095822A (zh) * | 2018-06-27 | 2021-07-09 | 创新先进技术有限公司 | 基于区块链的智能合约调用方法及装置、电子设备 |
CN108921558A (zh) * | 2018-07-11 | 2018-11-30 | 物数(上海)信息科技有限公司 | 基于区块链的资产清结算方法、系统、设备及存储介质 |
CN111782668B (zh) * | 2018-12-20 | 2024-06-28 | 创新先进技术有限公司 | 数据结构的读取及更新方法、装置、电子设备 |
-
2018
- 2018-12-20 CN CN202010590595.6A patent/CN111782668B/zh active Active
- 2018-12-20 CN CN201811564698.4A patent/CN110032599B/zh active Active
-
2019
- 2019-10-04 TW TW108136033A patent/TWI722592B/zh active
- 2019-10-30 SG SG11202100673WA patent/SG11202100673WA/en unknown
- 2019-10-30 WO PCT/CN2019/114435 patent/WO2020125219A1/zh unknown
- 2019-10-30 EP EP19898395.9A patent/EP3812921A4/en active Pending
-
2021
- 2021-01-26 US US17/159,090 patent/US11232098B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201837798A (zh) * | 2017-03-29 | 2018-10-16 | 香港商阿里巴巴集團服務有限公司 | 一種基於區塊鏈的事務處理方法及設備 |
US20180349621A1 (en) * | 2017-06-01 | 2018-12-06 | Schvey, Inc. d/b/a/ Axoni | Distributed privately subspaced blockchain data structures with secure access restriction management |
CN107807991A (zh) * | 2017-11-07 | 2018-03-16 | 泰康保险集团股份有限公司 | 用于处理区块链数据的方法及装置 |
CN108848119A (zh) * | 2018-04-03 | 2018-11-20 | 阿里巴巴集团控股有限公司 | 跨区块链的交互方法及装置、系统、电子设备 |
CN108718341A (zh) * | 2018-05-30 | 2018-10-30 | 北京阿尔山金融科技有限公司 | 数据的共享和搜索的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3812921A4 (en) | 2021-10-27 |
EP3812921A1 (en) | 2021-04-28 |
SG11202100673WA (en) | 2021-02-25 |
WO2020125219A1 (zh) | 2020-06-25 |
CN110032599A (zh) | 2019-07-19 |
CN111782668A (zh) | 2020-10-16 |
CN111782668B (zh) | 2024-06-28 |
TW202024953A (zh) | 2020-07-01 |
US11232098B2 (en) | 2022-01-25 |
CN110032599B (zh) | 2020-05-05 |
US20210149883A1 (en) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI722592B (zh) | 資料結構的讀取及更新方法、裝置、電子設備 | |
TWI706280B (zh) | 資料讀寫方法及裝置、電子設備 | |
TWI762818B (zh) | 基於區塊鏈的發票創建方法及裝置、電子設備 | |
CN110032598B (zh) | 字段更新方法及装置、电子设备 | |
TWI724570B (zh) | 資料結構的讀取及更新方法、裝置、電子設備及儲存媒體 | |
JP7019697B2 (ja) | ブロックチェーン上の動的アクセス制御 | |
US11138323B2 (en) | Blockchain-based content management system, method, apparatus, and electronic device | |
US11720607B2 (en) | System for lightweight objects | |
WO2024021417A1 (zh) | 数据账户创建方法及装置 | |
CN115221559A (zh) | 数据账户的访问授权方法及装置 | |
US20140189715A1 (en) | Conversion of lightweight object to a heavyweight object | |
CN115203746A (zh) | 数据账户的访问授权方法及装置 | |
US20120216240A1 (en) | Providing data security through declarative modeling of queries | |
CN112906045A (zh) | 一种手机盾访问记录存证和告警方法及计算机系统 | |
CN115098886A (zh) | 智能合约的访问授权方法及装置 | |
CN115640321A (zh) | 数据查询方法和装置 |