[發明專利]對區塊鏈中的交易進行分組的方法和裝置有效
| 申請號: | 202010889817.4 | 申請日: | 2020-08-28 |
| 公開(公告)號: | CN111754349B | 公開(公告)日: | 2020-12-04 |
| 發明(設計)人: | 劉曉建 | 申請(專利權)人: | 支付寶(杭州)信息技術有限公司 |
| 主分類號: | G06F21/64 | 分類號: | G06F21/64;G06Q40/04 |
| 代理公司: | 北京億騰知識產權代理事務所(普通合伙) 11309 | 代理人: | 張靜娟;周良玉 |
| 地址: | 310000 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 區塊 中的 交易 進行 分組 方法 裝置 | ||
本說明書實施例提供了一種對區塊鏈中的交易進行分組的方法和裝置,所述方法包括:獲取多個交易中的第一交易;獲取第一交易中訪問的第一變量;讀取與第一變量對應的第一歸屬變量的第一值;讀取與第一交易對應的第一關聯變量的第一值;如果所述第一歸屬變量的第一值為所述多個交易中的第二交易的編號,通過對所述關聯數組中的原子變量的原子比較修改操作,記錄所述第一交易與所述第二交易的關聯關系;基于所述關聯數組對所述多個交易進行分組。
技術領域
本說明書實施例涉及區塊鏈技術領域,更具體地,涉及一種對區塊鏈中的交易進行分組的方法和裝置。
背景技術
區塊鏈技術也被稱之為分布式賬本技術,區塊鏈中的每個全節點都有全量的、一致的數據。為了保證每個全節點具有一致的數據,對區塊鏈中的多個交易進行并發處理的前提是確保并發執行的交易之間沒有任何數據依賴關系。在例如Hyperledger Fabric區塊鏈(下文簡稱為Fabric區塊鏈)中,由背書節點預執行各個交易生成各個交易的讀寫集,所述讀寫集中包括在預執行交易的過程中讀取的變量或寫入的變量。Fabric區塊鏈中的提交節點在對區塊進行入塊時,執行區塊中的交易,基于當前的世界狀態,確定區塊中的每個交易的讀寫集是否可成功執行,如果可成功執行,則相應地更改世界狀態。因此,如果兩個交易的訪問變量沒有讀寫沖突,則其導致的世界狀態的改變不會影響另一個交易的執行,因此該兩個交易可以并發執行。如果兩個交易的訪問變量存在讀寫沖突,則只能串行執行。
若在執行一批交易前,根據各個交易的讀寫集之間的重疊關系,將讀寫集有重疊的交易放到同一個組中,則可以保證不同組內的交易之間一定沒有數據依賴關系。傳統方案為單線程根據各個交易讀寫集的重疊性來進行交易分組,當待分組交易數達到數萬個時,分組算法耗時達到數百毫秒,會嚴重制約整個系統的吞吐率。
因此,需要一種更有效的對區塊鏈中的交易進行分組的方案。
發明內容
本說明書實施例旨在提供一種更有效的對區塊鏈中的交易進行分組的方案,以解決現有技術中的不足。
為實現上述目的,本說明書一個方面提供一種對區塊鏈中的交易進行分組的方法,包括:
獲取多個交易中的第一交易;
獲取第一交易中訪問的第一變量;
讀取與第一變量對應的第一歸屬變量的第一值,所述第一歸屬變量存儲于共享內存中、用于記錄與所述第一變量歸屬的交易關聯的交易的編號;
讀取與第一交易對應的第一關聯變量的第一值,所述第一關聯變量為關聯數組中包括的一個原子變量,所述關聯數組包括與所述多個交易分別對應的多個原子變量、并存儲于共享內存中,所述第一關聯變量用于記錄與第一交易關聯的交易的編號;
如果所述第一歸屬變量的第一值為所述多個交易中的第二交易的編號,基于所述第一歸屬變量的第一值和所述第一關聯變量的第一值,對關聯數組中的原子變量進行原子比較修改操作,以在所述關聯數組中記錄所述第一交易與所述第二交易的關聯關系;
基于所述關聯數組對所述多個交易進行分組。
在一種實施方式中,所述第一歸屬變量為原子變量,所述方法還包括:如果所述第一歸屬變量的第一值是預定無效值,則進行以下原子操作:讀取所述第一歸屬變量的第二值,如果所述第一歸屬變量的第二值為所述預定無效值,則將所述第一歸屬變量的值修改為所述第一關聯變量的第一值,如果所述第一歸屬變量的第二值不是所述預定無效值,則返回所述第一歸屬變量的第二值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于支付寶(杭州)信息技術有限公司,未經支付寶(杭州)信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010889817.4/2.html,轉載請聲明來源鉆瓜專利網。





