TW202016817A - 基於區塊鏈的交易處理方法及裝置、電子設備 - Google Patents
基於區塊鏈的交易處理方法及裝置、電子設備 Download PDFInfo
- Publication number
- TW202016817A TW202016817A TW108109328A TW108109328A TW202016817A TW 202016817 A TW202016817 A TW 202016817A TW 108109328 A TW108109328 A TW 108109328A TW 108109328 A TW108109328 A TW 108109328A TW 202016817 A TW202016817 A TW 202016817A
- Authority
- TW
- Taiwan
- Prior art keywords
- nonce
- transactions
- transaction
- user
- blockchain
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- 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
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Abstract
本發明揭露一種基於區塊鏈的交易處理方法,所述方法包括:確定使用者透過使用者帳戶發起的交易中是否存在需要併發執行的多筆交易;如果使用者透過使用者帳戶發起的交易中存在需要併發執行的多筆交易,為所述多筆交易添加相同的分組標識;將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備在受理所述用戶端發佈的交易後,併發執行具有相同分組標識的多筆交易。
Description
本說明書一個或多個實施例係相關於區塊鏈之技術領域,更明確是相關於一種基於區塊鏈的交易處理方法及裝置、電子設備。
區塊鏈技術,也被稱之為分散式帳本技術,是一種由若干台計算設備共同參與“記帳”,共同維護一份完整的分散式資料庫的新興技術。由於區塊鏈技術具有分散、公開透明、每台計算設備可以參與資料庫記錄、並且各計算設備之間可以快速的進行資料同步的特性,利用區塊鏈技術來搭建分散系統,並在區塊鏈的分散式資料庫中收錄各種執行程式進行自動執行,已在眾多的領域中廣泛的進行應用。
本說明書還提出一種基於區塊鏈的交易處理方法,應用於用戶端,所述方法包括:
確定使用者透過使用者帳戶發起的交易中是否存在需要併發執行的多筆交易;
如果使用者透過使用者帳戶發起的交易中存在需要併發執行的多筆交易,為所述多筆交易添加相同的分組標識;
將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備在受理所述用戶端發佈的交易後,併發執行具有相同分組標識的多筆交易。
可選的,所述需要併發執行的多筆交易,包括交易類型相同的多筆交易。
可選的,還包括:
如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要併發執行的多組交易,確定所述多組交易的執行順序;
為所述多組交易分別添加指示所述多組交易的執行順序的分組標識。
可選的,所述區塊鏈中維護了與所述使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;
所述為所述多筆交易添加相同的分組標識,包括:
從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄,並將獲取到的可用Nonce記錄分別添加至所述多筆交易。
可選的,從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄之前,還包括:
回應於針對所述用戶端的初始化指令,獲取所述區塊鏈中維護的所述Nonce列表,並將獲取到的所述Nonce列表在所述用戶端本地進行維護;
從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄,包括:
從所述用戶端本地維護的所述Nonce列表中,為所述多筆交易分別獲取分組標識相同的可用Nonce記錄。
可選的,所述用戶端本地維護的所述Nonce列表中的Nonce記錄預設被標記為可用;
所述方法還包括:
在從所述用戶端本地維護的所述Nonce列表中為所述交易獲取到了可用Nonce記錄之後,在所述Nonce列表中將所述可用Nonce記錄標記為不可用。
可選的,還包括:
確定是否接收到所述節點設備返回的所述交易被受理的通知消息;
如果是,基於預設幅度對所述可用Nonce記錄中的Nonce值進行單調遞增,並在所述Nonce值單調遞增之後,在所述Nonce列表中將所述可用Nonce記錄重新標記為可用。
可選的,將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備在受理所述用戶端發佈的交易後,併發執行具有相同分組標識的多筆交易,包括:
將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述用戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及併發執行已受理的交易中具有相同分組標識的多筆交易。
可選的,所述用戶端為多執行緒用戶端;所述Nonce列表中的Nonce記錄的數量,指示所述使用者帳戶的交易併發能力。
可選的,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
本說明書還提出一種基於區塊鏈的交易處理方法,應用於區塊鏈中的節點設備,所述方法包括:
接收用戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被所述用戶端添加了分組標識;
確定所述用戶端發送的交易中是否存在分組標識相同的多筆交易;其中,所述相同的分組標識由用戶端在確定所述多筆交易需要併發執行時添加;
如果是,在所述多筆交易被受理後併發執行所述多筆交易。
可選的,所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;所述用戶端為所述多組交易添加的分組標識指示所述多組交易的執行順序;
所述方法還包括:
如果所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照所述多組交易的分組標識所指示的執行順序,順序執行所述多組交易。
可選的,所述區塊鏈維護了Nonce列表集合;所述Nonce列表集合包括與若干使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;所述用戶端發送的交易中添加的分組標識,為所述用戶端從與所述使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;
所述方法還包括:
將所述用戶端發送的交易中添加的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;
如果所述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,受理所述交易。
可選的,還包括:
如果所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配,基於預設幅度對所述目標Nonce記錄的Nonce值進行單調遞增;以及,
向所述用戶端返回所述交易被受理的通知消息。
可選的,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
本說明書還提出一種基於區塊鏈的交易處理裝置,應用於用戶端,所述方法包括:
第一確定模組,確定使用者透過使用者帳戶發起的交易中是否存在需要併發執行的多筆交易;
添加模組,如果使用者透過使用者帳戶發起的交易中存在需要併發執行的多筆交易,為所述多筆交易添加相同的分組標識;
發佈模組,將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備在受理所述用戶端發佈的交易後,併發執行具有相同分組標識的多筆交易。
可選的,所述需要併發執行的多筆交易,包括交易類型相同的多筆交易。
可選的,所述添加模組進一步:
如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要併發執行的多組交易,確定所述多組交易的執行順序;
為所述多組交易分別添加指示所述多組交易的執行順序的分組標識。
可選的,所述區塊鏈中維護了與所述使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;
所述添加模組:
從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄,並將獲取到的可用Nonce記錄分別添加至所述多筆交易。
可選的,所述添加模組進一步:
在從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄之前,回應於針對所述用戶端的初始化指令,獲取所述區塊鏈中維護的所述Nonce列表,並將獲取到的所述Nonce列表在所述用戶端本地進行維護;
從所述用戶端本地維護的所述Nonce列表中,為所述多筆交易分別獲取分組標識相同的可用Nonce記錄。
可選的,所述用戶端本地維護的所述Nonce列表中的Nonce記錄預設被標記為可用;
所述添加模組進一步:
在從所述用戶端本地維護的所述Nonce列表中為所述交易獲取到了可用Nonce記錄之後,在所述Nonce列表中將所述可用Nonce記錄標記為不可用。
可選的,所述添加模組進一步:
確定是否接收到所述節點設備返回的所述交易被受理的通知消息;
如果是,基於預設幅度對所述可用Nonce記錄中的Nonce值進行單調遞增,並在所述Nonce值單調遞增之後,在所述Nonce列表中將所述可用Nonce記錄重新標記為可用。
可選的,所述發佈模組進一步:
將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述用戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及併發執行已受理的交易中具有相同分組標識的多筆交易。
可選的,所述用戶端為多執行緒用戶端;所述Nonce列表中的Nonce記錄的數量,指示所述使用者帳戶的交易併發能力。
可選的,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
本說明書還提出一種基於區塊鏈的交易處理裝置,應用於區塊鏈中的節點設備,所述方法包括:
接收模組,接收用戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被所述用戶端添加了分組標識;
第二確定模組,確定所述用戶端發送的交易中是否存在分組標識相同的多筆交易;其中,所述相同的分組標識由用戶端在確定所述多筆交易需要併發執行時添加;
執行模組,如果是,在所述多筆交易被受理後併發執行所述多筆交易。
可選的,所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;所述用戶端為所述多組交易添加的分組標識指示所述多組交易的執行順序;
所述方法還包括:
如果所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照所述多組交易的分組標識所指示的執行順序,順序執行所述多組交易。
可選的,所述區塊鏈維護了Nonce列表集合;所述Nonce列表集合包括與若干使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;所述用戶端發送的交易中添加的分組標識,為所述用戶端從與所述使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;
所述執行模組進一步:
將所述用戶端發送的交易中添加的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;
如果所述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,受理所述交易。
可選的,所述執行模組進一步:
如果所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配,基於預設幅度對所述目標Nonce記錄的Nonce值進行單調遞增;以及,
向所述用戶端返回所述交易被受理的通知消息。
可選的,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
本說明書還提出一種電子設備,包括:
處理器;
用於儲存機器可執行指令的記憶體;
其中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
確定使用者透過使用者帳戶發起的交易中是否存在需要併發執行的多筆交易;
如果使用者透過使用者帳戶發起的交易中存在需要併發執行的多筆交易,為所述多筆交易添加相同的分組標識;
將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備在受理所述用戶端發佈的交易後,併發執行具有相同分組標識的多筆交易。
本說明書還提出一種電子設備,包括:
處理器;
用於儲存機器可執行指令的記憶體;
其中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
接收用戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被所述用戶端添加了分組標識;
確定所述用戶端發送的交易中是否存在分組標識相同的多筆交易;其中,所述相同的分組標識由用戶端在確定所述多筆交易需要併發執行時添加;
如果是,在所述多筆交易被受理後併發執行所述多筆交易。
透過以上實施例,用戶端透過為使用者發起的需要併發執行的多筆交易添加相同的分組標識,使得區塊鏈中的節點設備在受理使用者發起的交易之後,可以併發執行具有相同的分組標識的多筆交易,從而可以提升用戶端上單帳戶的交易併發能力。
區塊鏈領域的重送攻擊,是指透過在區塊鏈中發佈重複的交易,進而導致一筆相同的交易被執行多次,對使用者造成損失的攻擊行為;
例如,比特幣網路中經典的“雙重支付”(double spending)問題,就是一種較為典型的重送攻擊行為。一筆轉帳交易在經過使用者私鑰的簽章許可後,如果被非法節點截獲,那麼該非法節點可以在該筆交易執行完畢後,基於截獲的該筆交易,發起重送攻擊,在區塊鏈中重複發佈並執行該筆交易,造成一筆轉帳交易被執行多次,進而對使用者造成資金損失。
在示出的一種實施方式中,通常可以在交易中攜帶一個密集遞增的Nonce值(密集遞增的整數)的方式,來應對針對該筆交易的重送攻擊風險;
請參見圖1,圖1為本說明書示出的一種對交易進行重送攻擊檢測的示意圖。
如圖1所示,使用者在用戶端上透過個人的使用者帳戶發起的每筆交易,都可以指定一個Nonce值,並使用使用者持有的私鑰對該筆交易的交易體和指定的Nonce值進行簽章。其中,簽章是對[交易體,Nonce值]的整體簽章,這樣可以保障該筆交易中的Nonce無法被篡改。
當簽章完成後,用戶端可以將該筆交易在區塊鏈中進行發佈。而區塊鏈中的節點設備,在收到該筆交易後,除了需要驗證該筆交易的簽章是否合法以外,還需要檢測該筆交易中的Nonce值,是否與之前已經成功受理的最近一筆交易中的Nonce值保持嚴格的密集遞增;如果該筆交易與已經成功受理的最近一筆交易中的Nonce值保持密集遞增,則可以受理該筆交易;反之,可以認定該比較交易為非法的交易。
例如,假設使用者在用戶端上透過個人的使用者帳戶Account1發起了一筆Nonce值為1的交易,該筆交易在被區塊鏈成功受理後,使用者在用戶端上透過Account1再次發起交易的時候,必須將該交易中的Nonce值指定為2,才會被區塊鏈中的節點設備認定為一筆合法的交易進行受理。
相應的,區塊鏈系統會維護使用者個人的使用者帳戶的Nonce狀態,每成功受理Account1發起的一筆交易,區塊鏈系統會將該使用者帳戶的Nonce值自增1;區塊鏈中的節點設備在收到用戶端發佈的一筆交易後,會將該筆交易中的Nonce值,與維護的Nonce狀態中的Nonce值進行比較,來判斷該筆交易中的Nonce值,是否與已經成功受理的最近一筆交易中的Nonce值嚴格遞增1;如果是,則可以受理該筆交易。
透過以上方式,雖然在某種程度上可以避免交易的重送攻擊風險,但對於使用者帳戶而言,需要在前一筆交易被受理後,才可以繼續發起下一筆交易,因此單帳戶的交易併發能力不足,無法在高併發的場景下進行應用。
基於此,在本說明書中,在以上示出的重送攻擊防護方案的基礎上,提出一種能夠提升用戶端上單帳戶的交易併發能力的技術方案。
在實現時,用戶端在收到使用者透過使用者帳戶發起的眾多交易時,可以確定使用者發起的交易中是否存在需要併發執行的多筆交易;例如,在一種實施方式中,用戶端可以將交易類型相同的多筆交易,確定為需要併發執行的多筆交易
當確定出使用者發起的交易中存在需要併發執行的多筆交易時,用戶端可以為該多筆交易添加相同的分組標識,並將添加了分組標識的交易在區塊鏈中進行發佈;其中,為多筆交易添加的相同的分組標識,用於觸發區塊鏈中的節點設備在受理該多筆交易後,併發執行該多筆交易;
而區塊鏈中的節點設備,在收到用戶端發送的交易後,可以確定用戶端發送的交易中是否存在分組標識相同的多筆交易;如果是,可以在該多筆交易被成功受理後,併發執行該多筆交易。
透過以上實施例,用戶端透過為使用者發起的需要併發執行的多筆交易添加相同的分組標識,使得區塊鏈中的節點設備在受理使用者發起的交易之後,可以併發執行具有相同的分組標識的多筆交易,從而可以提升用戶端上單帳戶的交易併發能力。
下面透過具體實施例並結合具體的應用場景對本說明書進行描述。
請參考圖2,圖2是本說明書一實施例提供的一種基於區塊鏈的交易處理方法;所述方法執行以下步驟:
步驟202,用戶端確定使用者透過使用者帳戶發起的交易中是否存在需要併發執行的多筆交易;
步驟204,如果使用者透過使用者帳戶發起的交易中存在需要併發執行的多筆交易,用戶端為所述多筆交易添加相同的分組標識;
步驟206,用戶端將所述交易發佈至所述區塊鏈;
步驟208,區塊鏈中的節點設備接收用戶端發送的使用者透過使用者帳戶發起的交易,並確定用戶端發送的交易中是否存在分組標識相同的多筆交易;如果是,在所述多筆交易被受理後併發執行所述多筆交易。
在本說明書所描述的區塊鏈,具體可以包括私有鏈、共有鏈以及聯盟鏈等,在本說明書中不進行特別限定。
例如,在一個場景中,上述區塊鏈具體可以是由第三方支付平台的伺服器、境內銀行伺服器、境外銀行伺服器、以及若干使用者節點設備作為成員設備組成的一個聯盟鏈。該聯盟鏈的營運方可以依託於該聯盟鏈,來線上部署諸如基於聯盟鏈的跨境轉帳、資產轉移等線上業務。
其中,需要說明的是,在本說明書中所描述的交易(Transaction),是指使用者透過區塊鏈的用戶端建立,並需要最終發佈至區塊鏈的分散式資料庫中的一筆資料。
區塊鏈中的交易,通常存在狹義的交易以及廣義的交易之分。狹義的交易是指使用者向區塊鏈發佈的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是使用者在區塊鏈中發起的一筆轉帳。而廣義的交易是指使用者向區塊鏈發佈的一筆具有業務意圖的業務資料;例如,營運方可以基於實際的業務需求搭建一個聯盟鏈,依託於聯盟鏈部署一些與價值轉移無關的其它類型的線上業務(比如,防偽校驗業務、租房業務、車輛調度業務、保險理賠業務、信用服務、醫療服務等),而在這類聯盟鏈中,交易可以是使用者在聯盟鏈中發佈的一筆具有業務意圖的業務消息或者業務請求。
在本說明書中,上述用戶端具體可以是一個多執行緒用戶端;也即,用戶端可以同時啟用多個執行緒,每一個執行緒都可以獨立運行,從而使用者可以透過調用用戶端的多個執行緒,透過個人的使用者帳戶來同時發起多筆交易。
當用戶端收到使用者透過使用者帳戶發起的多筆交易後,可以確定使用者透過使用者帳戶發起的交易中,是否存在需要併發執行的多筆交易;
其中,在本說明書中,需要併發執行的多筆交易,可以包括任意類型的,交易之間並不存在嚴格的交易執行順序,能夠進行併發處理和執行的交易;
例如,如果一筆交易的執行,需要將另一筆交易的執行結果作為輸入,那麼這兩筆交易,將無法進行併發處理和執行;反之,如果兩筆交易之間,並沒有以上所描述的這種資料依賴關係,那麼就可以進行併發處理和執行。
在實現時,需要併發執行的多筆交易,可以由使用者在透過使用者帳戶發起交易的過程中,來人為指定;
例如,在示出的一種實施方式中,使用者在發起了眾多筆交易後,可以透過用戶端提供的使用者界面來基於需求人工指定,需要併發執行的多筆交易。
在實際應用中,需要併發執行的多筆交易,也可以由用戶端基於預設的併發處理規則,來進行動態確認。
其中,上述併發處理規則的具體內容,在本說明書中不進行特別限定,在實際應用中,本領域技術人員可以基於實際的併發處理需求,來靈活的定義;
例如,在示出的一種實施方式中,上述併發執行規則,可以是“針對交易類型相同的交易進行併發執行”的規則;
在這種情況下,用戶端在收到使用者發起的眾多交易後,可以進一步檢查這些交易的具體交易類型;然後,將交易類型相同的多筆交易,確定為需要併發執行的交易;比如,如果區塊鏈所支持的交易類型,包括用於建立帳戶的交易類型、用於轉帳的交易類型,則用戶端可以確定出使用者所發起的眾多交易中,用於建立帳戶的交易類型、和用於轉帳的交易類型,然後將與這兩類交易類型對應的多筆交易,確定為需要併發執行的交易。
當然,在實際應用中,上述併發處理規則,除了可以是“針對交易類型相同的交易進行併發執行”的規則以外,也可以是其它形式的併發處理規則,在本說明書中不再進行一一列舉。
在本說明書中,可以針對區塊鏈所支持的交易格式進行擴展,引入一個分組標識欄位;當用戶端確定使用者透過使用者帳戶發起的交易中,存在需要併發執行的多筆交易,則可以在該多筆交易中的分組標識欄位中,為該多筆交易添加相同的分組標識;
其中,在本說明書中,為多筆交易添加的相同的分組標識,用於觸發區塊鏈中的節點設備在受理該多筆交易後,併發執行該多筆交易;
相應的,區塊鏈中的節點設備,在收到用戶端發送的添加了分組標識的交易後,可以確定用戶端發送的交易中,是否存在分組標識相同的多筆交易;如果存在,表明用戶端要求該多筆交易在區塊鏈中併發執行;此時,區塊鏈中的節點設備可以在該多筆交易透過了區塊鏈系統的一系列在受理之前的驗證和檢查被成功受理後,併發執行具有相同分組標識的多筆交易。
其中,在實際應用中,使用者透過使用者帳戶發起的交易中,可能會存在所包含的多筆交易需要併發執行的多組交易,並且該多組交易之間,可能會保持一定的執行順序;在這種情況下,如果使用者透過使用者帳戶發起的交易中,存在所包含的多筆交易需要併發執行的多組交易,此時用戶端還可以進一步確認該多組交易的執行順序;
其中,該多組交易的執行順序,可以由使用者進行人工定義,也可以由用戶端基於實際的業務流程進行動態確認,在本說明書中不進行具體的限定。
進一步的,用戶端在確定該多組交易的執行順序之後,除了需要為該多組交易中所包含的多筆交易添加相同的分組標識以外,還需要確保為該多組交易中所包含的多筆交易添加的分組標識,能夠指示該多組交易的執行順序;
其中,利用分組標識來指示多組交易的執行順序,具體可以透過為該多組交易添加在數值上保持單調遞增的分組標識的方式來實現;
例如,假設如果使用者透過使用者帳戶發起的交易中,存在所包含的交易需要併發執行的兩組交易{A1,B1,C1}和{A2,B2,C2};在這種情況下,用戶端可以為交易A1,B1,C1添加一個相同的分組標識1,為交易A2,B2,C2添加一個相同的分組標識2,利用分組標識數值上的遞增,來表示交易分組{A1,B1,C1},需要先於交易分組{A2,B2,C2}執行。也即,交易分組的執行順序,與被添加的交易標識的取值從小到大的順序保持一致。
相應的,在這種情況下,區塊鏈中的節點設備,在收到用戶端發送的添加了分組標識的交易,並確定用戶端發送的交易中,存在分組標識相同的多筆交易之後,可以按照該多筆交易的交易標識所指示出的交易順序,順序的執行該多組交易。
例如,仍以使用者透過使用者帳戶發起的交易中,存在所包含的交易需要併發執行的兩組交易,{A1,B1,C1}和{A2,B2,C2};並且,用戶端可以為交易A1,B1,C1添加一個相同的分組標識1,為交易A2,B2,C2添加一個相同的分組標識2為例;在這種情況下,區塊鏈中的節點設備,在以上交易A1,B1,C1,A2,B2,C2均被受理後,會先併發執行分組標識為1的交易分組中的交易A1,B1,C1,再併發執行分組標識為2的交易分組中的交易A2,B2,C2。
在以上方案中,透過在區塊鏈所支持的交易格式中,引入分組標識欄位,並由用戶端在使用者發起的需要併發執行的多筆交易中的分組標識欄位中,為該多筆交易添加相同的分組標識,可以觸發區塊鏈中的節點設備併發執行具有相同的分組標識的多筆交易,從而可以提升區塊鏈上的單帳戶的交易併發能力。
在實際應用中,一筆交易由區塊鏈中的節點設備受理並執行以前,通常需要透過區塊鏈系統的一系列的驗證和檢查過程;其中,針對交易的重送攻擊檢測,通常是上述一系列驗證和檢查過程中的重要一環;因此,在本說明書中,以上描述的透過為多筆交易添加相同的分組標識,來觸發區塊鏈中的節點設備併發執行具有相同分組標識的多筆交易的技術方案,也可以與針對交易的重送攻擊檢測進行結合,在避免針對交易的重送攻擊的基礎上,來進一步提升用戶端上的單帳戶的交易併發能力的技術方案。
在示出的一種實施方式中,可以在區塊鏈中維護一個Nonce列表集合,在該Nonce列表集合中,可以包括與若干使用者帳戶對應的Nonce列表。在上述Nonce列表中,均可以包括多條Nonce記錄。而每一條Nonce記錄可以包括輔助參數和Nonce值。
也即,在本說明書中,上述Nonce記錄具體可以是一條由包含Nonce值在內的多個欄位構成的複合結構。
在實現時,上述區塊鏈的營運方,可以預先為每一個使用者帳戶分配可用的Nonce值,並在分配的可用的Nonce值的基礎上,為每一個Nonce值設置對應的輔助欄位,再基於每一個可用的Nonce值和對應的輔助欄位,來構造出多條Nonce記錄;
然後,可以基於生成的多條Nonce記錄為該使用者帳戶構造Nonce列表;最後,可以基於為各個使用者帳戶構造的Nonce列表,建立上述Nonce列表集合,並將上述Nonce列表集合發佈至上述區塊鏈,由上述區塊鏈中的節點設備進行共識處理,並在共識通過後,將上述Nonce列表集合儲存在上述區塊鏈的分散式資料進行儲存和維護。
其中,需要說明的是,上述輔助參數的具體參數內容,在本說明書中不進行特別限定;在實際應用中,上述輔助參數,具體可以包括上述區塊鏈的營運方基於實際的需求,在使用者帳戶可用的Nonce值的基礎上擴展出的任意形式的參數;或者參數組合。
也即,在實際應用中,上述輔助參數中所能包含的參數數量以及類別,可以不固定;可以在Nonce值的基礎上擴展出任意一種參數來作為輔助參數;也可以在Nonce值的基礎上擴展出多種參數進行組合來作為輔助參數。
在本說明書中,以上描述的由用戶端為交易添加的分組標識,具體可以作為上述Nonce列表中的Nonce記錄中的輔助參數;其中,對於上述Nonce列表集合中的與各個使用者帳戶對應的Nonce列表而言,均可以包括多條分組標識相同的Nonce記錄,從而用戶端在為使用者透過使用者帳戶發起的多筆交易添加相同的分組標識時,可以從上述Nonce列表中獲取分組標識相同的Nonce記錄。
在示出的一種實施方式中,上述Nonce列表中的Nonce記錄中的輔助參數,除了可以包括上述分組標識以外,還可以進一步包括上述Nonce記錄的索引標識(比如索引編號)。其中,上述索引標識,具體用於表示Nonce記錄在Nonce列表中的順序以及位置。
例如,請參見圖3,以上述Nonce列表中的Nonce記錄中的輔助參數,同時包含上述分組標識和上述Nonce記錄的索引標識為例,此時上述Nonce記錄具體可以是一個Group ID(分組標識)、Index(索引標識)、Value(Nonce值)等欄位組成的複合結構。在這種情況下,在區塊鏈中維護的Nonce列表集合,可以表示成如圖3所示出的形式。
其中,上述Nonce記錄以及上述Nonce記錄中的Nonce值和上述輔助參數的具體的位元組長度,在本說明書中不進行特別限定;在實際應用中,可以基於上述區塊鏈的營運方的實際需求,進行靈活的設定(比如,營運方可以透過所佔用的位元組長度,來控制Nonce值以及輔助參數的具體取值範圍);
例如,在一種實現方式中,上述Nonce記錄具體可以是一個16位元組組成的複合結構;其中,4位元組表示Group ID(分組標識)、4位元組表示Index(索引標識)、8位元組表示Value(Nonce值)。
透過在Nonce值的基礎上,擴展出多種參數進行組合來作為輔助參數,使得上述Nonce表中的Nonce記錄能夠涵蓋豐富的取值欄位,從而可以降低上述Nonce表中的多條Nonce記錄由於取值相同發生衝突的機率;
例如,兩條由Group ID(分組標識)和Value(Nonce值)構成的總長度為12位元組的Nonce記錄完全相同發生衝突的機率,會遠低於,兩條由Group ID(分組標識)、Index(索引標識)和Value(Nonce值)構成的總長度為16位元組的Nonce記錄完全相同發生衝突的機率。
請參見圖4,當使用者在用戶端上調用用戶端啟用的多個執行緒,透過個人的使用者帳戶發起需要併發執行的多筆交易後,用戶端可以從區塊鏈上維護的與該使用者帳戶對應的上述Nonce列表中,為該多筆交易分別獲取分組標識相同的可用Nonce記錄(即為多筆交易添加相同的分組標識)。
由於上述Nonce列表中包括多條Nonce記錄,使得用戶端啟動的多執行緒均能夠從上述Nonce列表中為發起的交易獲取到可用Nonce記錄,進而使用者可以使用個人的使用者帳戶透過上述用戶端同時發起多筆交易;因此,在本說明書中,上述Nonce列表中的Nonce記錄的數量,實際上可以用於指示使用者個人的使用者帳戶的交易併發能力。比如,上述Nonce列表包括4條Nonce記錄,那麼使用者可以透過使用者帳戶同時發起4筆交易。
基於這一點,在實際應用中,區塊鏈的營運方,可以基於用戶端自身的性能,來靈活的為上述Nonce列表指定所包含的Nonce記錄的數量;或者,用戶端可以向區塊鏈系統主動上報自身的性能,由區塊鏈的營運方來靈活的指定上述Nonce列表所包含的Nonce記錄的數量;
例如,假設用戶端的性能決定,該用戶端可以同時啟動4個執行緒來發起交易,那麼在為登錄該用戶端的使用者帳戶建立上述Nonce列表時,可以為該Nonce列表添加4條可用Nonce記錄。
在示出的一種實施方式中,用戶端可以在初始化階段,預先將區塊鏈上維護的上述Nonce列表“下載”到本地進行維護;
例如,在實現時,用戶端在啟動運行,或者與區塊鏈中的節點設備之間的連接斷開需要重新進行連接時,通過都需要進行初始化操作。在這種情況下,當用戶端收到使用者觸發的針對該用戶端的初始化指令(比如啟動指令、重連指令等)時,則可以回應該初始化指令,與區塊鏈中的節點設備建立連接,並基於該連接訪問區塊鏈的分散式資料庫,獲取區塊鏈中維護的上述Nonce列表,然後可以將獲取到的上述Nonce列表本地進行儲存和維護。
在這種情況下,當用戶端需要為該多筆交易分別獲取分組標識相同的可用Nonce記錄時,可以直接從本地維護的上述Nonce列表中獲取可用Nonce記錄。
透過這種方式,可以避免與區塊鏈上的節點設備進行資料交互,從區塊鏈中維護的上述Nonce列表中讀取資料,為該目標交易獲取可用Nonce記錄,可以提升用戶端的處理性能。
其中,需要說明的是,對於使用者透過使用者帳戶發起的交易中,包括所包含的多筆交易需要併發執行的多組交易的情況下,由於該多組交易中的交易,除了需要添加相同的分組標識以外,還需要確保不同的交易分組對應的分組標識,在數值上也存在差異;因此,在這種情況下,上述Nonce列表中則需要包括分組標識相同,並且不同的交易分組的分組標識在數值上也存在差異的多組Nonce記錄;也即,同一交易分組中的交易的分組標識保持相同,而不同的交易分組中的交易分組標識在數值上要保持一定的差異;從而,確保能夠從上述Nonce列表中,為上述多組交易中的交易,獲取到分組標識相同,並且所述分組標識指示所述多組交易的執行順序的可用Nonce記錄。
在示出的一種實施方式中,對於用戶端在本地維護的上述Nonce列表,可以由用戶端為該Nonce列表中的Nonce記錄,均預設添加一個表示“可用”的標記。
例如,請參見圖5,仍以上述Nonce記錄為圖4中示出的16位元組組成的複合結構為例,可以為Nonce列表中的Nonce記錄,擴展出一個1位元組的Available欄位;其中,當Available欄位取值為T時,表示該條Nonce記錄“可用”;當Available欄位取值為F時,表示該條Nonce記錄“不可用”。
一方面,當用戶端上啟用的執行緒,在從用戶端本地維護的上述Nonce列表中為使用者發起的多筆交易獲取可用Nonce記錄時,可以從上述Nonce列表中所有被標記為“可用”的Nonce記錄來隨機選擇多筆分組標識相同的Nonce記錄作為可用Nonce記錄。
另一方面,當用戶端上啟用的執行緒,從用戶端本地維護的上述Nonce列表中為使用者發起的多筆交易獲取到可用Nonce記錄之後,可以對該可用Nonce記錄攜帶的標記進行修改更新,為該可用Nonce記錄重新添加一個表示“不可用”的標記,以將該可用Nonce記錄標記為不可用。
在本說明書中,當用戶端為使用者發起的需要併發執行的多筆交易獲取到可用Nonce記錄之後,可以將獲取到的可用Nonce記錄添加至上述多筆交易中;
例如,請繼續參見圖4,用戶端在為交易獲取到可用Nonce記錄之後,可以對交易的交易體,和上述可用Nonce記錄進行封裝,然後提示使用者基於持有的私鑰對封裝後的 [交易體,Nonce記錄]進行整體簽章,這樣可以保障該筆交易中的Nonce記錄無法被篡改。
進一步的,當用戶端將獲取到的可用Nonce記錄添加至上述多筆交易之後,用戶端可以將上述多筆交易發佈至區塊鏈;
例如,將上述多筆交易發佈至該用戶端接入的節點設備,或者將該多筆交易在區塊鏈中進行廣播發佈;其中,用戶端將上述多筆交易發佈至區塊鏈的具體方式,通常取決於區塊鏈所採用的共識機制,在本說明書中不進行特別限定。
而當區塊鏈中的節點設備在收到用戶端發佈的交易之後,首先可以在區塊鏈採用的共識演算法,發起針對收到的交易的共識處理;
其中,區塊鏈採用的共識演算法,以及基於共識演算法對上述目標交易的共識處理過程,在本說明書中不再進行詳述,本領域技術人員在將本說明書記載的技術方案付諸實現時,可以參考相關技術中的記載。
當收到的交易共識通過後,此時上述區塊鏈中的節點設備,可以進一步發起針對收到的交易的合法性檢測。
其中,在本說明書中,針對交易的合法性檢測至少可以包括,針對交易攜帶的簽章的合法性檢測、以及,針對交易的重送攻擊檢測。
在實現時,上述區塊鏈中的節點設備首先可以基於與上述使用者持有的私鑰對應的公鑰,對收到的交易的簽章進行驗證;如果交易的簽章失敗,可以認定交易為不合法的交易,上述節點設備可以直接透過用戶端向使用者返回交易執行失敗的提示消息。
如果交易的簽章驗證通過,此時上述節點設備,可以進一步基於該目交易中攜帶的可用Nonce記錄,和區塊鏈中維護的與該使用者個人的使用者帳戶對應的Nonce列表,針對該交易進行重送攻擊檢測。
一方面,請繼續參見圖4,上述節點設備可以將交易中攜帶的Nonce記錄,從區塊鏈上維護的與該使用者帳戶對應的Nonce列表中的Nonce記錄逐一進行匹配;如果交易中攜帶的Nonce記錄,與上述Nonce列表中的任一目標Nonce記錄匹配,可以確定該交易通過重送攻擊檢測;在這種情況下,該節點設備可以受理該交易。
另一方面,當該交易被受理後,該節點設備可以基於預設幅度對上述目標Nonce記錄中的Nonce值進行單調遞增;其中,上述預設幅度可以基於實際需求進行自定義;
例如,上述預設幅度仍然可以是1,上述節點設備可以在該交易被受理後,將在上述Nonce列表中匹配到的上述目標Nonce記錄中的Nonce值自增1。
透過這種方式,如果交易在被受理之後,又再次在區塊鏈中進行了重複發佈,由於上述Nonce列表中與該交易攜帶的可用Nonce記錄匹配的目標Nonce記錄中的Nonce值,已經發生了更新,該重複發佈的該交易在重送攻擊檢測階段,將無法在上述Nonce列表中匹配到對應的Nonce記錄;因此,該重複發佈的交易將不會被再次受理,從而可以有效的避免透過在區塊鏈中重複發佈該交易進行重送攻擊。
在示出的一種實施方式中,當交易被受理後,可以向上述用戶端返回上述交易被受理的通知消息;而用戶端在將使用者透過個人的使用者帳戶發起的交易發佈至區塊鏈後,可以確定是否接收到節點設備返回的交易被受理的通知消息。
如果確認收到交易被受理的通知消息:
一方面,可以基於預設幅度,對從用戶端本地維護的上述Nonce列表中為發起的交易獲取到的上述可用Nonce記錄中的Nonce值進行單調遞增;比如,將在上述可用Nonce記錄中的Nonce值也自增1,以與區塊鏈中維護的上述Nonce列表保持內容同步。
另一方面,由於此前該可用Nonce記錄已經被標記為了“不可用”;因此,在基於預設幅度,對該可用Nonce記錄中的Nonce值進行單調遞增後,可以將該可用Nonce記錄的Available欄位的取值,置位為“T”。
在本說明中,當用戶端發送的由使用者發起的交易均被受理後,此時區塊鏈中的節點設備,可以進一步確定用戶端發送的已經被受理的交易中,是否存在分組標識相同的多筆交易;
如果已經被受理的交易中,存在分組標識相同的多筆交易,此時區塊鏈中的節點設備,可以併發執行該多筆交易,並在該多筆交易執行完畢後,將該多筆交易以及該多筆交易的執行結果,在區塊鏈的分散式資料庫中進行儲存。
在以上方案中,透過將為多筆交易添加相同的分組標識,來觸發區塊鏈中的節點設備併發執行具有相同分組標識的多筆交易的技術方案,與針對交易的重送攻擊檢測進行結合,可以在避免針對交易的重送攻擊的基礎上,來進一步提升用戶端上的單帳戶的交易併發能力。
與上述方法實施例相對應,本說明書還提供了一種基於區塊鏈的交易處理裝置的實施例。本說明書的基於區塊鏈的交易處理裝置的實施例可以應用在電子設備上。裝置實施例可以透過軟體實現,也可以透過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為一個邏輯意義上的裝置,是透過其所在電子設備的處理器將非揮發性記憶體中對應的電腦程式指令讀取到內部記憶體中運行形成的。從硬體層面而言,如圖6所示,為本說明書的基於區塊鏈的交易處理裝置所在電子設備的一種硬體結構圖,除了圖6所示的處理器、內部記憶體、網路介面、以及非揮發性記憶體之外,實施例中裝置所在的電子設備通常根據該電子設備的實際功能,還可以包括其他硬體,對此不再贅述。
圖7是本說明書一例示性實施例示出的一種基於區塊鏈的交易處理裝置的方塊圖。
請參考圖7,所述基於區塊鏈的交易處理裝置70可以應用在前述圖6所示的電子設備中,包括有:第一確定模組701、添加模組702和發佈模組703。
第一確定模組701,確定使用者透過使用者帳戶發起的交易中是否存在需要併發執行的多筆交易;
添加模組702,如果使用者透過使用者帳戶發起的交易中存在需要併發執行的多筆交易,為所述多筆交易添加相同的分組標識;
發佈模組703,將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備在受理所述用戶端發佈的交易後,併發執行具有相同分組標識的多筆交易。
在本實施例中,所述需要併發執行的多筆交易,包括交易類型相同的多筆交易。
在本實施例中,所述添加模組702進一步:
如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要併發執行的多組交易,確定所述多組交易的執行順序;
為所述多組交易分別添加指示所述多組交易的執行順序的分組標識。
在本實施例中,所述區塊鏈中維護了與所述使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;
所述添加模組702:
從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄,並將獲取到的可用Nonce記錄分別添加至所述多筆交易。
在本實施例中,所述添加模組702進一步:
在從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄之前,回應於針對所述用戶端的初始化指令,獲取所述區塊鏈中維護的所述Nonce列表,並將獲取到的所述Nonce列表在所述用戶端本地進行維護;
從所述用戶端本地維護的所述Nonce列表中,為所述多筆交易分別獲取分組標識相同的可用Nonce記錄。
在本實施例中,所述用戶端本地維護的所述Nonce列表中的Nonce記錄預設被標記為可用;
所述添加模組702進一步:
在從所述用戶端本地維護的所述Nonce列表中為所述交易獲取到了可用Nonce記錄之後,在所述Nonce列表中將所述可用Nonce記錄標記為不可用。
在本實施例中,所述添加模組702進一步:
確定是否接收到所述節點設備返回的所述交易被受理的通知消息;
如果是,基於預設幅度對所述可用Nonce記錄中的Nonce值進行單調遞增,並在所述Nonce值單調遞增之後,在所述Nonce列表中將所述可用Nonce記錄重新標記為可用。
在本實施例中在本實施例中,所述發佈模組703進一步:
將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述用戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及併發執行已受理的交易中具有相同分組標識的多筆交易。
在本實施例中,所述用戶端為多執行緒用戶端;所述Nonce列表中的Nonce記錄的數量,指示所述使用者帳戶的交易併發能力。
在本實施例中,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
圖8是本說明書一例示性實施例示出的另一種基於區塊鏈的交易處理裝置的方塊圖。
請參考圖8,所述基於區塊鏈的交易處理裝置80也可以應用在前述圖6所示的電子設備中,包括有:接收模組801、第二確定模組802和執行模組803。
接收模組801,接收用戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被所述用戶端添加了分組標識;
第二確定模組802,確定所述用戶端發送的交易中是否存在分組標識相同的多筆交易;其中,所述相同的分組標識由用戶端在確定所述多筆交易需要併發執行時添加;
執行模組803,如果是,在所述多筆交易被受理後併發執行所述多筆交易。
在本實施例中,所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;所述用戶端為所述多組交易添加的分組標識指示所述多組交易的執行順序;
所述執行模組803進一步:
如果所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照所述多組交易的分組標識所指示的執行順序,順序執行所述多組交易。
在本實施例中,所述區塊鏈維護了Nonce列表集合;所述Nonce列表集合包括與若干使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;所述用戶端發送的交易中添加的分組標識,為所述用戶端從與所述使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;
所述執行模組803進一步:
將所述用戶端發送的交易中添加的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;
如果所述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,受理所述交易。
在本實施例中,所述執行模組803進一步:
如果所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配,基於預設幅度對所述目標Nonce記錄的Nonce值進行單調遞增;以及,
向所述用戶端返回所述交易被受理的通知消息。
在本實施例中,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
上述裝置中各個模組的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離組件說明的模組可以是或者也可以不是實體上分開的,作為模組顯示的組件可以是或者也可以不是實體模組,即可以位於一個地方,或者也可以分佈到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
上述實施例闡明的系統、裝置、模組或模組,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、行動電話、相機電話、智慧型電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲主機、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
與上述方法實施例相對應,本說明書還提供了一種電子設備的實施例。該電子設備包括:處理器以及用於儲存機器可執行指令的記憶體;其中,處理器和記憶體通常透過內部匯流排相互連接。在其他可能的實現方式中,所述設備還可能包括外部介面,以能夠與其他設備或者組件進行通信。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
確定使用者透過使用者帳戶發起的交易中是否存在需要併發執行的多筆交易;
如果使用者透過使用者帳戶發起的交易中存在需要併發執行的多筆交易,為所述多筆交易添加相同的分組標識;
將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備在受理所述用戶端發佈的交易後,併發執行具有相同分組標識的多筆交易。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要併發執行的多組交易,確定所述多組交易的執行順序;
為所述多組交易分別添加指示所述多組交易的執行順序的分組標識。
在本實施例中,所述區塊鏈中維護了與所述使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;
透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄,並將獲取到的可用Nonce記錄分別添加至所述多筆交易。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄之前,回應於針對所述用戶端的初始化指令,獲取所述區塊鏈中維護的所述Nonce列表,並將獲取到的所述Nonce列表在所述用戶端本地進行維護;
從所述用戶端本地維護的所述Nonce列表中,為所述多筆交易分別獲取分組標識相同的可用Nonce記錄。
在本實施例中,所述用戶端本地維護的所述Nonce列表中的Nonce記錄預設被標記為可用;
透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
在從所述用戶端本地維護的所述Nonce列表中為所述交易獲取到了可用Nonce記錄之後,在所述Nonce列表中將所述可用Nonce記錄標記為不可用。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
確定是否接收到所述節點設備返回的所述交易被受理的通知消息;
如果是,基於預設幅度對所述可用Nonce記錄中的Nonce值進行單調遞增,並在所述Nonce值單調遞增之後,在所述Nonce列表中將所述可用Nonce記錄重新標記為可用。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述用戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及併發執行已受理的交易中具有相同分組標識的多筆交易。
與上述方法實施例相對應,本說明書還提供了另一種電子設備的實施例。該電子設備包括:處理器以及用於儲存機器可執行指令的記憶體;其中,處理器和記憶體通常透過內部匯流排相互連接。在其他可能的實現方式中,所述設備還可能包括外部介面,以能夠與其他設備或者組件進行通信。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
接收用戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被所述用戶端添加了分組標識;
確定所述用戶端發送的交易中是否存在分組標識相同的多筆交易;其中,所述相同的分組標識由用戶端在確定所述多筆交易需要併發執行時添加;
如果是,在所述多筆交易被受理後併發執行所述多筆交易。
在本實施例中,所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;所述用戶端為所述多組交易添加的分組標識指示所述多組交易的執行順序;
透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
如果所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照所述多組交易的分組標識所指示的執行順序,順序執行所述多組交易。
在本實施例中,所述區塊鏈維護了Nonce列表集合;所述Nonce列表集合包括與若干使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;所述用戶端發送的交易中添加的分組標識,為所述用戶端從與所述使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;
透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
將所述用戶端發送的交易中添加的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;
如果所述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,受理所述交易。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
如果所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配,基於預設幅度對所述目標Nonce記錄的Nonce值進行單調遞增;以及,
向所述用戶端返回所述交易被受理的通知消息。
本領域技術人員在考慮說明書及實踐這裡揭露的發明後,將容易想到本說明書的其它實施方案。本說明書旨在涵蓋本說明書的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本說明書的一般性原理並包括本說明書未揭露的本技術領域中的習知常識或慣用技術手段。說明書和實施例僅被視為例示性的,本說明書的真正範圍和精神由下面的申請專利範圍指出。
應當理解的是,本說明書並不局限於上面已經描述並在圖式中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本說明書的範圍僅由所附的申請專利範圍來限制。
以上所述僅為本說明書的較佳實施例而已,並不用以限制本說明書,凡在本說明書的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書保護的範圍之內。
202:步驟
204:步驟
206:步驟
208:步驟
70:基於區塊鏈的交易處理裝置
701:第一確定模組
702:添加模組
703:發佈模組
80:基於區塊鏈的交易處理裝置
801:接收模組
802:第二確定模組
803:執行模組
圖1是一例示性實施例提供的一種對交易進行重送攻擊檢測的示意圖。
圖2是一例示性實施例提供的一種基於區塊鏈的交易處理方法的流程圖。
圖3是一例示性實施例提供的一種在區塊鏈中維護的Nonce列表集合的結構示意圖。
圖4是一例示性實施例提供的另一種對交易進行重送攻擊檢測的示意圖。
圖5是一例示性實施例提供的一種用戶端維護的Nonce列表的結構示意圖。
圖6是一例示性實施例提供的一種電子設備的結構示意圖。
圖7是一例示性實施例提供的一種基於區塊鏈的交易處理裝置的方塊圖。
圖8是一例示性實施例提供的另一種基於區塊鏈的交易處理裝置的方塊圖。
Claims (32)
- 一種基於區塊鏈的交易處理方法,應用於用戶端,所述方法包括: 確定使用者透過使用者帳戶發起的交易中是否存在需要併發執行的多筆交易; 如果使用者透過使用者帳戶發起的交易中存在需要併發執行的多筆交易,為所述多筆交易添加相同的分組標識;以及 將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備在受理所述用戶端發佈的交易後,併發執行具有相同分組標識的多筆交易。
- 根據請求項1所述的方法,所述需要併發執行的多筆交易,包括交易類型相同的多筆交易。
- 根據請求項1所述的方法,還包括: 如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要併發執行的多組交易,確定所述多組交易的執行順序;以及 為所述多組交易分別添加指示所述多組交易的執行順序的分組標識。
- 根據請求項1所述的方法,所述區塊鏈中維護了與所述使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;以及 所述為所述多筆交易添加相同的分組標識,包括: 從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄,並將獲取到的可用Nonce記錄分別添加至所述多筆交易。
- 根據請求項4所述的方法,從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄之前,還包括: 回應於針對所述用戶端的初始化指令,獲取所述區塊鏈中維護的所述Nonce列表,並將獲取到的所述Nonce列表在所述用戶端本地進行維護;以及 從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄,包括: 從所述用戶端本地維護的所述Nonce列表中,為所述多筆交易分別獲取分組標識相同的可用Nonce記錄。
- 根據請求項5所述的方法,所述用戶端本地維護的所述Nonce列表中的Nonce記錄預設被標記為可用;以及 所述方法還包括: 在從所述用戶端本地維護的所述Nonce列表中為所述交易獲取到了可用Nonce記錄之後,在所述Nonce列表中將所述可用Nonce記錄標記為不可用。
- 根據請求項6所述的方法,還包括: 確定是否接收到所述節點設備返回的所述交易被受理的通知消息;以及 如果是,基於預設幅度對所述可用Nonce記錄中的Nonce值進行單調遞增,並在所述Nonce值單調遞增之後,在所述Nonce列表中將所述可用Nonce記錄重新標記為可用。
- 根據請求項4所述的方法,將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備在受理所述用戶端發佈的交易後,併發執行具有相同分組標識的多筆交易,包括: 將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述用戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及併發執行已受理的交易中具有相同分組標識的多筆交易。
- 根據請求項4所述的方法,所述用戶端為多執行緒用戶端;所述Nonce列表中的Nonce記錄的數量,指示所述使用者帳戶的交易併發能力。
- 根據請求項9所述的方法,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
- 一種基於區塊鏈的交易處理方法,應用於區塊鏈中的節點設備,所述方法包括: 接收用戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被所述用戶端添加了分組標識; 確定所述用戶端發送的交易中是否存在分組標識相同的多筆交易;其中,所述相同的分組標識由用戶端在確定所述多筆交易需要併發執行時添加;以及 如果是,在所述多筆交易被受理後併發執行所述多筆交易。
- 根據請求項11所述的方法,所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;所述用戶端為所述多組交易添加的分組標識指示所述多組交易的執行順序;以及 所述方法還包括: 如果所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照所述多組交易的分組標識所指示的執行順序,順序執行所述多組交易。
- 根據請求項11所述的方法,所述區塊鏈維護了Nonce列表集合;所述Nonce列表集合包括與若干使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;所述用戶端發送的交易中添加的分組標識,為所述用戶端從與所述使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;以及 所述方法還包括: 將所述用戶端發送的交易中添加的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;以及 如果所述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,受理所述交易。
- 根據請求項13所述的方法,還包括: 如果所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配,基於預設幅度對所述目標Nonce記錄的Nonce值進行單調遞增;以及, 向所述用戶端返回所述交易被受理的通知消息。
- 根據請求項14所述的方法,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
- 一種基於區塊鏈的交易處理裝置,應用於用戶端,所述方法包括: 第一確定模組,確定使用者透過使用者帳戶發起的交易中是否存在需要併發執行的多筆交易; 添加模組,如果使用者透過使用者帳戶發起的交易中存在需要併發執行的多筆交易,為所述多筆交易添加相同的分組標識;以及 發佈模組,將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備在受理所述用戶端發佈的交易後,併發執行具有相同分組標識的多筆交易。
- 根據請求項16所述的裝置,所述需要併發執行的多筆交易,包括交易類型相同的多筆交易。
- 根據請求項16所述的裝置,所述添加模組進一步: 如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要併發執行的多組交易,確定所述多組交易的執行順序;以及 為所述多組交易分別添加指示所述多組交易的執行順序的分組標識。
- 根據請求項16所述的裝置,所述區塊鏈中維護了與所述使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;以及 所述添加模組: 從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄,並將獲取到的可用Nonce記錄分別添加至所述多筆交易。
- 根據請求項19所述的裝置,所述添加模組進一步: 在從所述Nonce列表中為所述多筆交易分別獲取分組標識相同的可用Nonce記錄之前,回應於針對所述用戶端的初始化指令,獲取所述區塊鏈中維護的所述Nonce列表,並將獲取到的所述Nonce列表在所述用戶端本地進行維護;以及 從所述用戶端本地維護的所述Nonce列表中,為所述多筆交易分別獲取分組標識相同的可用Nonce記錄。
- 根據請求項20所述的裝置,所述用戶端本地維護的所述Nonce列表中的Nonce記錄預設被標記為可用;以及 所述添加模組進一步: 在從所述用戶端本地維護的所述Nonce列表中為所述交易獲取到了可用Nonce記錄之後,在所述Nonce列表中將所述可用Nonce記錄標記為不可用。
- 根據請求項21所述的裝置,所述添加模組進一步: 確定是否接收到所述節點設備返回的所述交易被受理的通知消息;以及 如果是,基於預設幅度對所述可用Nonce記錄中的Nonce值進行單調遞增,並在所述Nonce值單調遞增之後,在所述Nonce列表中將所述可用Nonce記錄重新標記為可用。
- 根據請求項19所述的裝置,所述發佈模組進一步: 將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述用戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及併發執行已受理的交易中具有相同分組標識的多筆交易。
- 根據請求項19所述的裝置,所述用戶端為多執行緒用戶端;所述Nonce列表中的Nonce記錄的數量,指示所述使用者帳戶的交易併發能力。
- 根據請求項24所述的裝置,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
- 一種基於區塊鏈的交易處理裝置,應用於區塊鏈中的節點設備,所述方法包括: 接收模組,接收用戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被所述用戶端添加了分組標識; 第二確定模組,確定所述用戶端發送的交易中是否存在分組標識相同的多筆交易;其中,所述相同的分組標識由用戶端在確定所述多筆交易需要併發執行時添加;以及 執行模組,如果是,在所述多筆交易被受理後併發執行所述多筆交易。
- 根據請求項26所述的裝置,所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;所述用戶端為所述多組交易添加的分組標識指示所述多組交易的執行順序;以及 所述執行模組進一步: 如果所述用戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照所述多組交易的分組標識所指示的執行順序,順序執行所述多組交易。
- 根據請求項26所述的裝置,所述區塊鏈維護了Nonce列表集合;所述Nonce列表集合包括與若干使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;所述用戶端發送的交易中添加的分組標識,為所述用戶端從與所述使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;以及 所述執行模組進一步: 將所述用戶端發送的交易中添加的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;以及 如果所述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,受理所述交易。
- 根據請求項28所述的裝置,所述執行模組進一步: 如果所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配,基於預設幅度對所述目標Nonce記錄的Nonce值進行單調遞增;以及, 向所述用戶端返回所述交易被受理的通知消息。
- 根據請求項29所述的裝置,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
- 一種電子設備,包括: 處理器;以及 用於儲存機器可執行指令的記憶體; 其中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使: 確定使用者透過使用者帳戶發起的交易中是否存在需要併發執行的多筆交易; 如果使用者透過使用者帳戶發起的交易中存在需要併發執行的多筆交易,為所述多筆交易添加相同的分組標識;以及 將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備在受理所述用戶端發佈的交易後,併發執行具有相同分組標識的多筆交易。
- 一種電子設備,包括: 處理器;以及 用於儲存機器可執行指令的記憶體; 其中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使: 接收用戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被所述用戶端添加了分組標識; 確定所述用戶端發送的交易中是否存在分組標識相同的多筆交易;其中,所述相同的分組標識由用戶端在確定所述多筆交易需要併發執行時添加;以及 如果是,在所述多筆交易被受理後併發執行所述多筆交易。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811253445.5A CN109598598B (zh) | 2018-10-25 | 2018-10-25 | 基于区块链的交易处理方法及装置、电子设备 |
CN201811253445.5 | 2018-10-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202016817A true TW202016817A (zh) | 2020-05-01 |
TWI734088B TWI734088B (zh) | 2021-07-21 |
Family
ID=65957014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108109328A TWI734088B (zh) | 2018-10-25 | 2019-03-19 | 基於區塊鏈的交易處理方法及裝置、電子設備 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20210157800A1 (zh) |
EP (1) | EP3816922A4 (zh) |
CN (2) | CN111782275B (zh) |
SG (1) | SG11202100828VA (zh) |
TW (1) | TWI734088B (zh) |
WO (1) | WO2020082892A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782275B (zh) * | 2018-10-25 | 2024-02-06 | 创新先进技术有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
CN110264348B (zh) * | 2019-05-07 | 2021-08-20 | 北京奇艺世纪科技有限公司 | 一种交易上链的处理方法、装置及存储介质 |
US11108545B2 (en) | 2019-05-31 | 2021-08-31 | Advanced New Technologies Co., Ltd. | Creating a blockchain account and verifying blockchain transactions |
CN110264354B (zh) * | 2019-05-31 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 创建区块链账户及验证区块链交易的方法及装置 |
US11222011B2 (en) | 2019-06-28 | 2022-01-11 | Advanced New Technologies Co., Ltd. | Blockchain-based transaction processing |
CN110415117A (zh) * | 2019-06-28 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 基于区块链的交易处理方法、装置和电子设备 |
CN110349029B (zh) * | 2019-07-17 | 2022-04-15 | 中国银行股份有限公司 | 一种基于区块链的交易一致性的处理方法、设备以及系统 |
CN113570460A (zh) * | 2019-08-30 | 2021-10-29 | 创新先进技术有限公司 | 在区块链中并发执行交易的方法和装置 |
CN111754349B (zh) * | 2020-08-28 | 2020-12-04 | 支付宝(杭州)信息技术有限公司 | 对区块链中的交易进行分组的方法和装置 |
CN111754350B (zh) | 2020-08-28 | 2020-11-24 | 支付宝(杭州)信息技术有限公司 | 并行获取区块链中的交易访问变量的编号的方法和装置 |
CN112748994B (zh) * | 2020-12-31 | 2023-11-28 | 上海简苏网络科技有限公司 | 一种区块链交易并行处理方法及系统 |
CN112837156A (zh) * | 2021-02-10 | 2021-05-25 | 中国人民银行数字货币研究所 | 固定执行顺序的交易方法和装置 |
CN112990895A (zh) * | 2021-03-11 | 2021-06-18 | 杭州复杂美科技有限公司 | 一种加速区块链交易并行执行的方法、设备及储存介质 |
CN113269644B (zh) * | 2021-05-28 | 2023-06-02 | 长沙链奇科技有限公司 | 基于区块链的交易处理方法及装置 |
CN113516557B (zh) * | 2021-07-14 | 2022-09-23 | 桂林电子科技大学 | 一种有向无环图结构的区块链及其实现方法 |
CN116634025B (zh) * | 2023-07-25 | 2023-12-29 | 武汉趣链数字科技有限公司 | 一种确定交易顺序的方法、设备、系统和存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529371B2 (en) * | 2004-04-22 | 2009-05-05 | International Business Machines Corporation | Replaceable sequenced one-time pads for detection of cloned service client |
US9710271B2 (en) * | 2014-06-30 | 2017-07-18 | International Business Machines Corporation | Collecting transactional execution characteristics during transactional execution |
US10255108B2 (en) * | 2016-01-26 | 2019-04-09 | International Business Machines Corporation | Parallel execution of blockchain transactions |
CN106097073A (zh) * | 2016-06-20 | 2016-11-09 | 深圳市淘淘谷信息技术有限公司 | 一种用区块链来赋予数字账户交易过程独有id的方法 |
US20180158034A1 (en) * | 2016-12-07 | 2018-06-07 | International Business Machines Corporation | Dynamic reordering of blockchain transactions to optimize performance and scalability |
CN106815722B (zh) * | 2016-12-22 | 2021-05-07 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 基于区块链的信息处理方法和装置 |
CN106980649B (zh) * | 2017-02-28 | 2020-07-10 | 创新先进技术有限公司 | 写入区块链业务数据的方法和装置及业务子集合确定方法 |
US10832230B2 (en) * | 2017-04-04 | 2020-11-10 | International Business Machines Corporation | Scalable and distributed shared ledger transaction management |
CN107678865A (zh) * | 2017-09-20 | 2018-02-09 | 中国银行股份有限公司 | 基于交易分组的区块链的验证方法以及系统 |
CN107993147A (zh) * | 2017-11-13 | 2018-05-04 | 中国银行股份有限公司 | 热点账户的余额控制方法及装置 |
CN108053211B (zh) * | 2017-12-27 | 2021-04-06 | 北京欧链科技有限公司 | 基于区块链的交易处理方法及装置 |
CN108416675A (zh) * | 2018-02-14 | 2018-08-17 | 阿里巴巴集团控股有限公司 | 资产管理方法及装置、电子设备 |
CN111782275B (zh) * | 2018-10-25 | 2024-02-06 | 创新先进技术有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
-
2018
- 2018-10-25 CN CN202010541237.6A patent/CN111782275B/zh active Active
- 2018-10-25 CN CN201811253445.5A patent/CN109598598B/zh active Active
-
2019
- 2019-03-19 TW TW108109328A patent/TWI734088B/zh active
- 2019-08-29 EP EP19875980.5A patent/EP3816922A4/en active Pending
- 2019-08-29 WO PCT/CN2019/103236 patent/WO2020082892A1/zh unknown
- 2019-08-29 SG SG11202100828VA patent/SG11202100828VA/en unknown
-
2021
- 2021-01-29 US US17/163,247 patent/US20210157800A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP3816922A1 (en) | 2021-05-05 |
TWI734088B (zh) | 2021-07-21 |
US20210157800A1 (en) | 2021-05-27 |
EP3816922A4 (en) | 2021-09-15 |
CN109598598B (zh) | 2020-05-12 |
SG11202100828VA (en) | 2021-03-30 |
WO2020082892A1 (zh) | 2020-04-30 |
CN111782275B (zh) | 2024-02-06 |
CN109598598A (zh) | 2019-04-09 |
CN111782275A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202016817A (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
TWI706278B (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
TWI737977B (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
US11562375B2 (en) | Blockchain-based data verification method, apparatus, and electronic device | |
CN108683630B (zh) | 跨区块链的认证方法及装置、电子设备 | |
TWI759563B (zh) | 資產管理方法及裝置、電子設備 | |
TWI776030B (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
US11442912B2 (en) | Blockchain-based information processing method and apparatus and computer-readable storage medium | |
TW202001656A (zh) | 基於區塊鏈的智能合約調用方法及裝置、電子設備 | |
TW201935384A (zh) | 資產管理方法及裝置、電子設備 | |
CN110659906B (zh) | 票据信息处理方法、相关设备及介质 | |
CN111597269A (zh) | 一种基于区块链的合约实现方法、装置及设备 |