TWI679597B - 共識驗證方法、裝置及設備 - Google Patents
共識驗證方法、裝置及設備 Download PDFInfo
- Publication number
- TWI679597B TWI679597B TW107141397A TW107141397A TWI679597B TW I679597 B TWI679597 B TW I679597B TW 107141397 A TW107141397 A TW 107141397A TW 107141397 A TW107141397 A TW 107141397A TW I679597 B TWI679597 B TW I679597B
- Authority
- TW
- Taiwan
- Prior art keywords
- business data
- consensus verification
- business
- node
- queue
- Prior art date
Links
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or 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/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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/08—Payment architectures
- G06Q20/085—Payment architectures involving remote charge determination or related payment systems
-
- 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/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/102—Bill distribution or payments
-
- 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/403—Solvency checks
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- 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
Abstract
本說明書實施例公開了一種共識驗證方法、裝置及設備。在本說明實施例中,針對每個業務資料,若該業務資料未通過第一共識驗證,則第一節點不會直接將該業務資料視為無效,而是判斷該業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存。第一節點當確定觸發預設的重試執行條件時,可以重新對待重試的業務資料進行第一共識驗證。
Description
本說明書涉及資訊技術領域,尤其涉及一種共識驗證的方法、裝置及設備。
目前,基於區塊鏈技術開發的各種區塊鏈系統的應用前景較為廣闊。廣為人知的區塊鏈系統有比特幣、乙太坊、超級帳本等,各種區塊鏈系統的架構不盡相同。
對於超級帳本或其他類似於超級帳本的架構的區塊鏈系統而言,其大致架構可以如圖1所示。在圖1所示的區塊鏈系統中,將對業務的共識驗證過程分為兩個階段,即第一共識驗證階段和第二共識驗證階段(具體地,在超級帳本系統中,所述第一共識驗證階段被稱為背書階段,所述第二共識驗證階段被稱為確認階段)。區塊鏈節點的類型至少可以包括第一節點(圖1中的空心節點)和第二節點(圖1中的實心節點),同一區塊鏈節點可以既是第一節點,又是第二節點(在超級帳本系統中,所述第一節點被稱為背書節點,所述第二節點被稱為確認節點)。
繼續參見圖1,各第一節點接收用戶通過用戶端發送的業務資料,並根據接收到各業務資料的先後順序,依次針對每個業務資料執行第一共識驗證。通過第一共識驗證的各業務資料會被依次添加到待確認業務佇列的隊尾(對於業務資料TXn而言,n越小,表明該業務資料被各第一節點接收到的時間越早),各區塊鏈節點都儲存有所述待確認業務佇列,並對所述待確認業務佇列進行同步更新。各第二節點可以定期從待確認業務佇列中,由前到後依次撈取若干業務資料打包成區塊,並對該區塊中的業務資料進行第二共識驗證,包含的所有業務資料均通過第二共識驗證的區塊會被各第二節點存入區塊鏈(即共用帳本)。需要說明的是,針對所述待確認業務佇列中的每個業務資料,若該業務資料已經被撈取,則各區塊鏈節點會將該業務資料從所述待確認業務佇列中刪除。
上述的第一共識驗證是指各第一節點基於共識演算法,驗證業務資料的合理性。具體地,各第一節點依次針對接收到的每個業務資料,類比執行該業務資料對應的業務操作,得到類比業務結果,然後根據類比業務結果,判斷該業務資料是否合理,若是,則確定該業務資料通過第一共識驗證,否則,確定該業務資料不通過第一共識驗證。上述的第二共識驗證主要是基於共識演算法,對業務資料的合理性之外的其他方面進行驗證,如驗證是否涉及重複花銷(即一筆資產被花費不止一次)。
基於現有技術,需要一種對使用者而言更為便利的共識驗證方法。
對於超級帳本或其他類似於超級帳本的架構的區塊鏈系統而言,其大致架構可以如圖1所示。在圖1所示的區塊鏈系統中,將對業務的共識驗證過程分為兩個階段,即第一共識驗證階段和第二共識驗證階段(具體地,在超級帳本系統中,所述第一共識驗證階段被稱為背書階段,所述第二共識驗證階段被稱為確認階段)。區塊鏈節點的類型至少可以包括第一節點(圖1中的空心節點)和第二節點(圖1中的實心節點),同一區塊鏈節點可以既是第一節點,又是第二節點(在超級帳本系統中,所述第一節點被稱為背書節點,所述第二節點被稱為確認節點)。
繼續參見圖1,各第一節點接收用戶通過用戶端發送的業務資料,並根據接收到各業務資料的先後順序,依次針對每個業務資料執行第一共識驗證。通過第一共識驗證的各業務資料會被依次添加到待確認業務佇列的隊尾(對於業務資料TXn而言,n越小,表明該業務資料被各第一節點接收到的時間越早),各區塊鏈節點都儲存有所述待確認業務佇列,並對所述待確認業務佇列進行同步更新。各第二節點可以定期從待確認業務佇列中,由前到後依次撈取若干業務資料打包成區塊,並對該區塊中的業務資料進行第二共識驗證,包含的所有業務資料均通過第二共識驗證的區塊會被各第二節點存入區塊鏈(即共用帳本)。需要說明的是,針對所述待確認業務佇列中的每個業務資料,若該業務資料已經被撈取,則各區塊鏈節點會將該業務資料從所述待確認業務佇列中刪除。
上述的第一共識驗證是指各第一節點基於共識演算法,驗證業務資料的合理性。具體地,各第一節點依次針對接收到的每個業務資料,類比執行該業務資料對應的業務操作,得到類比業務結果,然後根據類比業務結果,判斷該業務資料是否合理,若是,則確定該業務資料通過第一共識驗證,否則,確定該業務資料不通過第一共識驗證。上述的第二共識驗證主要是基於共識演算法,對業務資料的合理性之外的其他方面進行驗證,如驗證是否涉及重複花銷(即一筆資產被花費不止一次)。
基於現有技術,需要一種對使用者而言更為便利的共識驗證方法。
本說明書實施例提供一種共識驗證方法、裝置及設備,以解決現有的共識驗證方法容易給用戶造成不便的問題。
為解決上述技術問題,本說明書實施例是這樣實現的:
本說明書實施例提供的一種共識驗證方法,區塊鏈節點至少包括第一節點和第二節點,其中,第一節點用於執行第一共識驗證,第二節點用於執行第二共識驗證,所述方法包括:
第一節點接收業務資料,並對所述業務資料進行第一共識驗證;
若所述業務資料通過第一共識驗證,則將所述業務資料添加到待確認業務佇列中,以便各第二節點從所述待確認佇列中撈取業務資料產生區塊,並對所述區塊進行第二共識驗證;
若所述業務資料未通過第一共識驗證,則判斷所述業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存;
當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證。
本說明書實施例提供的一種共識驗證裝置,區塊鏈節點至少包括所述裝置和第二節點,其中,所述裝置用於執行第一共識驗證,第二節點用於執行第二共識驗證,所述裝置包括:
驗證模組,接收業務資料,並對所述業務資料進行第一共識驗證;當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證;
添加模組,若所述業務資料通過第一共識驗證,則將所述業務資料添加到待確認業務佇列中,以便各第二節點從所述待確認佇列中撈取業務資料產生區塊,並對所述區塊進行第二共識驗證;
判斷儲存模組,若所述業務資料未通過第一共識驗證,則判斷所述業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存。
本說明書實施例提供的一種共識驗證設備,區塊鏈節點至少包括所述設備和第二節點,其中,所述設備用於執行第一共識驗證,第二節點用於執行第二共識驗證,所述設備包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
接收業務資料,並對所述業務資料進行第一共識驗證;
若所述業務資料通過第一共識驗證,則將所述業務資料添加到待確認業務佇列中,以便各第二節點從所述待確認佇列中撈取業務資料產生區塊,並對所述區塊進行第二共識驗證;
若所述業務資料未通過第一共識驗證,則判斷所述業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存;
當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證。
由以上本說明書實施例提供的技術方案可見,在本說明書實施例中,針對每個業務資料,若該業務資料未通過第一共識驗證,則第一節點不會直接將該業務資料視為無效而將其丟棄,而是判斷該業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存。第一節點當確定觸發預設的重試執行條件時,可以重新對待重試的業務資料進行第一共識驗證。如此一來,首次未通過第一共識驗證的業務資料如果滿足預設的可重試條件,後續就可以重新進入第一共識驗證階段。雖然由於某些原因(如用戶的資產餘額不足)導致某個業務資料首次未通過第一共識驗證,但是隨著時間的推移,上述阻礙該業務資料通過第一共識驗證的原因可能會消除,此時,倘若第一節點可以重新對該業務資料進行第一共識驗證,那麼該業務資料就可以通過第一共識驗證,而無需用戶再次向第一節點發送相同的業務資料,也就不會給用戶造成不便。
為解決上述技術問題,本說明書實施例是這樣實現的:
本說明書實施例提供的一種共識驗證方法,區塊鏈節點至少包括第一節點和第二節點,其中,第一節點用於執行第一共識驗證,第二節點用於執行第二共識驗證,所述方法包括:
第一節點接收業務資料,並對所述業務資料進行第一共識驗證;
若所述業務資料通過第一共識驗證,則將所述業務資料添加到待確認業務佇列中,以便各第二節點從所述待確認佇列中撈取業務資料產生區塊,並對所述區塊進行第二共識驗證;
若所述業務資料未通過第一共識驗證,則判斷所述業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存;
當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證。
本說明書實施例提供的一種共識驗證裝置,區塊鏈節點至少包括所述裝置和第二節點,其中,所述裝置用於執行第一共識驗證,第二節點用於執行第二共識驗證,所述裝置包括:
驗證模組,接收業務資料,並對所述業務資料進行第一共識驗證;當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證;
添加模組,若所述業務資料通過第一共識驗證,則將所述業務資料添加到待確認業務佇列中,以便各第二節點從所述待確認佇列中撈取業務資料產生區塊,並對所述區塊進行第二共識驗證;
判斷儲存模組,若所述業務資料未通過第一共識驗證,則判斷所述業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存。
本說明書實施例提供的一種共識驗證設備,區塊鏈節點至少包括所述設備和第二節點,其中,所述設備用於執行第一共識驗證,第二節點用於執行第二共識驗證,所述設備包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
接收業務資料,並對所述業務資料進行第一共識驗證;
若所述業務資料通過第一共識驗證,則將所述業務資料添加到待確認業務佇列中,以便各第二節點從所述待確認佇列中撈取業務資料產生區塊,並對所述區塊進行第二共識驗證;
若所述業務資料未通過第一共識驗證,則判斷所述業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存;
當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證。
由以上本說明書實施例提供的技術方案可見,在本說明書實施例中,針對每個業務資料,若該業務資料未通過第一共識驗證,則第一節點不會直接將該業務資料視為無效而將其丟棄,而是判斷該業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存。第一節點當確定觸發預設的重試執行條件時,可以重新對待重試的業務資料進行第一共識驗證。如此一來,首次未通過第一共識驗證的業務資料如果滿足預設的可重試條件,後續就可以重新進入第一共識驗證階段。雖然由於某些原因(如用戶的資產餘額不足)導致某個業務資料首次未通過第一共識驗證,但是隨著時間的推移,上述阻礙該業務資料通過第一共識驗證的原因可能會消除,此時,倘若第一節點可以重新對該業務資料進行第一共識驗證,那麼該業務資料就可以通過第一共識驗證,而無需用戶再次向第一節點發送相同的業務資料,也就不會給用戶造成不便。
在現有的共識驗證方法中,為了追求區塊鏈節點部署的靈活性,在超級帳本或其他類似於超級帳本的架構中,將區塊鏈節點的類型區分為第一節點和第二節點(也稱背書節點和確認節點)。各第一節點根據接收到各業務資料的先後順序,依次針對每個業務資料進行第一共識驗證,並依次將通過第一共識驗證的業務資料添加到待確認業務佇列的隊尾,而各第二節點通常由前到後依次從待確認佇列中撈取若干業務資料進行第二共識驗證。正是由於存在上述的順序性,導致一個業務資料的合理性以其之前通過第一共識驗證的業務資料為前提,而不能以其之後通過第一共識驗證的業務資料為前提。實踐中,對於某個未通過第一共識驗證的業務資料而言,該業務資料未通過第一共識驗證的原因(如用戶的資產餘額不足、用戶暫時沒有業務許可權等)可能只是暫時存在的,會隨著時間的推移而消除。但是,當該業務資料未通過第一共識驗證的原因消除時,用戶唯有再次向各第一節點發送相同的業務資料,才能實現對應的業務目的,這給使用者帶來了不便。
舉例來說,如圖2所示,將業務資料記為TX,假設用戶張三當前的資產餘額為5元,但是其想要向用戶李四轉帳10元,張三通過用戶端向各第一節點發送TX1,各第一節點對該業務資料進行第一共識驗證,即模擬執行張三向李四轉帳10元,得到的模擬業務結果為張三的資產餘額變為-5元,這顯然是不合理的。因此,各第一節點會認定TX未通過第一共識驗證,拒絕將TX1添加到待確認業務佇列,從而使得張三發起的該筆轉帳交易無法進入第二共識驗證階段,也就無法被記入共用帳本,因而是無效的。
對於在TX1之後進入第一共識驗證階段的TX2(王五向張三轉帳20元)而言,當TX2通過第一共識驗證和第二共識驗證,被存入區塊鏈時,張三的資產餘額將會達到25元。此時,之前導致TX1未通過第一共識驗證的原因已經消除,但是由於張三之前發送給各第一節點的TX1已經被確認無效而被丟棄了,因此張三唯有再次發送TX1給各第一節點,才能實現向李四轉帳10元的業務目的。
而在本說明書實施例中,未通過第一共識驗證的業務資料如果滿足預設的可重試條件,就不會直接被視為無效,而是成為待重試的業務資料。當預設的重試執行條件被觸發時,各第一節點會重新對待重試的業務資料進行第一共識驗證。如此,繼續沿用上例,首次未通過第一共識驗證的TX1成為待重試的業務資料,當所述重試執行條件被觸發時,若TX2已經被確認有效,則TX1就可以通過新一次的第一共識驗證,從而使得TX1可以順利進入待確認業務佇列(後續可以進入第二共識驗證階段)。因此,用戶無需再次向第一節點發送TX1,也就不會給用戶造成不便。
為了使本技術領域的人員更好地理解本說明書中的技術方案,下面將結合本說明書一個或多個實施例中的圖式,對本說明書實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本說明書一部分實施例,而不是全部的實施例。通過本說明書實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本說明書保護的範圍。
以下結合圖式,詳細說明本說明書各實施例提供的技術方案。
圖3是本說明書實施例提供的一種共識驗證方法流程圖,包括以下步驟:
S300:第一節點接收業務資料。
在本說明書實施例中,所述區塊鏈系統基於“超級帳本”或其他類似於“超級帳本”的架構。在所述區塊鏈系統中,共識驗證的過程分為第一共識驗證階段和第二共識驗證階段。組成所述區塊鏈系統的區塊鏈節點具體可以是具有通信功能和資料處理功能的設備。區塊鏈節點的類型至少包括兩種,即第一節點和第二節點,其中,第一節點用於執行第一共識驗證,第二節點用於執行第二共識驗證,同一個區塊鏈節點可以同時是第一節點和第二節點。
眾所周知,共識驗證需要多個區塊鏈節點參與,具體地,第一共識驗證是由多個第一節點協力完成的。但是為了描述的方便,下文著重描述一個第一節點所執行的步驟,每個第一節點執行的步驟都是相同的。下文中“第一節點進行共識驗證”實際上是指“第一節點與其他第一節點一起,進行共識驗證”。
實際應用中,用戶若想要發起一筆業務,則需要通過用戶端向第一節點發送該筆業務的業務資料。例如,用戶A若想要發起一筆轉帳業務(向用戶B轉帳),則轉帳方使用者A需要通過用戶端向各第一節點發送該筆轉帳業務涉及的收款方位址、轉帳金額等,作為業務資料。
S302:對所述業務資料進行第一共識驗證,若所述業務資料通過第一共識驗證,則執行步驟S304,若所述業務資料未通過第一共識驗證,則執行步驟S306。
在本說明書實施例中,所述第一節點接收到業務資料後,對所述業務資料進行第一共識驗證。其中,有關所述第一共識驗證的說明可參見前文,不再贅述。
S304:將所述業務資料添加到待確認業務佇列中。
若所述業務資料通過步驟S302所述的第一共識驗證,則第一節點會將所述業務資料添加到待確認業務佇列中。其中,所述待確認業務佇列可以是第一節點預先在自身的記憶體或其他儲存介質中創建的。
S306:判斷所述業務資料是否滿足預設的可重試條件,若是,則執行步驟S308,否則,執行步驟S310。
若所述業務資料未通過步驟S302所述的第一共識驗證,則第一節點會進而判斷所述業務資料是否可重試。其中,所述可重試條件可以根據需要預設。
具體地,可以根據所述業務資料未通過所述第一共識驗證的原因,判斷所述業務資料是否滿足預設的可重試條件。也就是說,若所述業務資料未通過第一共識驗證的原因可以隨著時間的推移而消除,則所述業務資料滿足預設的可重試條件。
例如,當所述業務資料是轉帳業務的業務資料時,若所述業務資料未通過第一共識驗證,則第一節點可以當確定轉帳方的資產餘額不足時(即所述業務資料未通過第一共識驗證的原因是轉帳方的資產餘額不足),確定所述業務資料滿足預設的可重試條件。需要說明的是,本申請實施例中的資產不限於貨幣,還可以是礦產、藝術品等其他財物。
再如,第一節點可以當確定業務資料涉及的使用者缺少指定業務許可權時(即所述業務資料未通過第一共識驗證的原因是所述業務資料涉及的使用者缺少指定業務許可權),確定所述業務資料滿足預設的可重試條件。
S308:將所述業務資料作為待重試的業務資料進行儲存。
在本說明書實施例中,第一節點會將未通過第一共識驗證且滿足預設的可重試條件的業務資料作為待重試的業務資料進行儲存。具體地,第一節點可以將待重試的業務資料存入記憶體或其他儲存介質。
S310:確認所述業務資料無效。
在本說明書實施例中,第一節點會將未通過第一共識驗證且不滿足預設的可重試條件的業務資料直接確認為無效的業務資料。
S312:當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證。
在本說明書實施例中,所述重試執行條件可以根據需要預設。具體地,倘若在區塊鏈系統中,已經預先設定了每個區塊的最大容量(如10兆),和/或第二節點產生每個區塊的週期(如10秒),那麼,確定觸發預設的重試執行條件具體可以是:
若各第二節點從所述待確認佇列中撈取的用於產生下一個區塊的業務資料的資料總量與所述最大容量的差值落入第一指定數值範圍,則確定觸發預設的重試執行條件;和/或若當前時刻到當前所在週期的結束時刻的時間間隔落入第二指定數值範圍,則確定觸發預設的重試執行條件。其中,所述第一指定數值範圍和所述第二指定範圍可以根據需要指定。
在本說明書實施例中,針對每個待重試的業務資料,若在第一節點重新對該待重試的業務資料進行第一共識驗證之前,導致該待重試的業務資料之前未通過所述第一共識驗證的原因已經消除,則當第一節點重新對該待重試的業務資料進行第一共識驗證時,該待重試的業務資料可以通過第一共識驗證。若在第一節點重新對該待重試的業務資料進行第一共識驗證之前,導致該待重試的業務資料之前未通過所述第一共識驗證的原因仍未消除,則當第一節點重新對該待重試的業務資料進行第一共識驗證時,該待重試的業務資料依然無法通過第一共識驗證。
在本步驟S312中,第一節點可以重新對待重試的業務資料進行第一共識驗證,直至所述待重試的業務資料通過第一共識驗證,或直至對所述待重試的業務資料進行第一共識驗證的次數達到指定次數。
通過圖3所示的共識驗證方法,針對每個業務資料,若該業務資料未通過第一共識驗證,則第一節點不會直接將該業務資料視為無效,而是判斷該業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存。第一節點當確定觸發預設的重試執行條件時,可以重新對待重試的業務資料進行第一共識驗證。如此一來,首次未通過第一共識驗證的業務資料如果滿足預設的可重試條件,後續就可以重新進入第一共識驗證階段。雖然由於某些原因(如用戶的資產餘額不足)導致某個業務資料首次未通過第一共識驗證,但是隨著時間的推移,上述阻礙該業務資料通過第一共識驗證的原因可能會消除,此時,倘若第一節點可以重新對該業務資料進行第一共識驗證,那麼該業務資料就可以通過第一共識驗證,而無需用戶再次向第一節點發送相同的業務資料,也就不會給用戶造成不便。
圖4是本說明書實施例提供的技術效果示意圖。如圖4所示,張三向各第一節點發送TX1後,各第一節點對TX1進行第一共識驗證,由於張三的餘額不足,導致TX1未通過第一共識驗證。但是,後續王五向各第一節點發送向張三轉帳20元的TX2,若在各第一節點重新對TX1進行第一共識驗證之前,TX2已經通過第一共識驗證和第二共識驗證,張三的資產餘額變為25元,則各第一節點在重新對TX1進行第一共識驗證時,TX1可以通過第一共識驗證,張三無需再向各第一節點發送一次TX1。
需要說明的是,在圖1所示的區塊鏈系統的架構中,針對業務資料A,第一節點在對業務資料A進行第一共識驗證時,第一節點類比執行業務資料A所依據的基礎資料不僅可以包括區塊鏈上記錄的已經生效的業務資料,還可以進一步包括已經通過第一共識驗證,卻還未完成第二共識驗證的業務資料(是否通過第二共識驗證未可知)。在圖4所示的例子中,若在各第一節點重新對TX1進行第一共識驗證之前,TX2已經通過第一共識驗證,卻還未完成第二共識驗證,則第一節點可以以TX2為依據,預期張三的資產餘額將會變為25元,在重新對TX1進行第一共識驗證時,確定TX1通過第一共識驗證。
此外需要說明的是,在步驟S304中,所述待確認業務佇列中的各業務資料通常是有序排列的。具體地,第一節點可以按照特定的順序(通常是接收到各業務資料的先後順序)依次對每個業務資料進行第一共識驗證,並依次將通過第一共識驗證的每個業務資料添加到所述待確認業務佇列的隊尾。如此,待確認業務佇列中的各業務資料排列的先後順序與第一節點之前對各待確認的業務資料進行第一共識驗證的先後順序是一致的。對應地,各第二節點可以從所述待確認業務佇列中由前到後撈取若干業務資料打包成區塊,然後針對該區塊進行第二共識驗證,若該區塊中包含的所有業務資料均通過第二共識驗證,則各第二節點會將該區塊存入區塊鏈。
基於此,在步驟S312之後,即在第一節點重新對待重試的業務資料進行第一共識驗證之後,第一節點可以將通過第一共識驗證的待重試的業務資料添加到所述待確認業務佇列中指定位置之前的位置。其中,所述指定位置可以根據需要指定,其具體可以是所述待確認業務佇列中的隊首。如此,待重試的業務資料若重新通過第一共識驗證,則可以被添加到所述待確認業務佇列中較為靠前的位置,從而可以儘快被各第二節點撈取進行第二共識驗證。
還需要說明的是,在圖4所示的例子中,第一節點在重新對TX1進行第一共識驗證時,可以以之前通過第一共識驗證的TX2為依據,認定TX1通過第一共識驗證。但是,若後續TX2未通過第二共識驗證,則TX1就喪失了合理的前提,也不應當被存入區塊鏈。為此,在本說明書實施例中,採用指定規則,使得各第二節點將TX1和TX2打包進同一區塊,可以解決此問題。具體地,可以將通過第一共識驗證的待重試的業務資料添加到所述待確認業務佇列中導致所述待重試的業務資料通過第一共識驗證的業務資料的臨近位置。例如,可以將重新通過第一共識驗證的TX1添加到所述待確認業務佇列中,TX2的後一位置,如此可以盡可能使得TX1和TX2被各第二節點打包進同一區塊,如此,若TX2未通過第二共識驗證,則該區塊包含的所有業務資料(TX1也在內)都會被認定無效。
另外,在步驟S308中,第一節點可以將所述業務資料作為待重試的業務資料添加到預先創建的待重試業務佇列的隊尾。如此,所述待重試業務佇列中的各業務資料排列的先後順序與第一節點對各待重試的業務資料進行第一共識驗證的先後順序也是一致的。如此,在步驟S312中,第一節點可以從所述待重試業務佇列中,依次撈取至少一個待重試的業務資料,並重新對撈取的待重試的業務資料進行第一共識驗證。
基於圖1所示的共識驗證方法,本說明書實施例還對應提供了一種共識驗證裝置,如圖5所示,區塊鏈節點至少包括所述裝置和第二節點,其中,所述裝置用於執行第一共識驗證,第二節點用於執行第二共識驗證,所述裝置包括:
驗證模組501,接收業務資料,並對所述業務資料進行第一共識驗證;當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證;
添加模組502,若所述業務資料通過第一共識驗證,則將所述業務資料添加到待確認業務佇列中,以便各第二節點從所述待確認佇列中撈取業務資料產生區塊,並對所述區塊進行第二共識驗證;
判斷儲存模組503,若所述業務資料未通過第一共識驗證,則判斷所述業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存。
所述判斷儲存模組503,根據所述業務資料未通過所述第一共識驗證的原因,判斷所述業務資料是否滿足預設的可重試條件。
所述業務資料包括:轉帳業務的業務資料;
所述判斷儲存模組503,當轉帳方的資產餘額不足時,確定所述業務資料滿足預設的可重試條件。
預先設定每個區塊的最大容量,和/或第二節點產生每個區塊的週期;
所述驗證模組501,若各第二節點從所述待確認佇列中撈取的用於產生下一個區塊的業務資料的資料總量與所述最大容量的差值落入第一指定數值範圍,則確定觸發預設的重試執行條件;和/或若當前時刻到當前所在週期的結束時刻的時間間隔落入第二指定數值範圍,則確定觸發預設的重試執行條件。
所述判斷儲存模組503,將所述業務資料作為待重試的業務資料添加到預先創建的待重試業務佇列的隊尾;
所述驗證模組501,從所述待重試業務佇列中,由前到後依次撈取至少一個待重試的業務資料;重新對撈取的待重試的業務資料進行第一共識驗證。
所述驗證模組501,重新對待重試的業務資料進行第一共識驗證,直至所述待重試的業務資料通過第一共識驗證;或重新對待重試的業務資料進行第一共識驗證,直至對所述待重試的業務資料進行第一共識驗證的次數達到指定次數。
所述添加模組502,將所述業務資料添加到待確認業務佇列的隊尾;各第二節點從所述待確認佇列中由前到後依次撈取若干業務資料產生區塊;在所述驗證模組重新對待重試的業務資料進行第一共識驗證之後,將通過第一共識驗證的待重試的業務資料添加到所述待確認業務佇列中指定位置之前的位置。
基於圖1所示的共識驗證方法,本說明書實施例還對應提供了一種共識驗證設備,如圖6所示,區塊鏈節點至少包括所述設備和第二節點,其中,所述設備用於執行第一共識驗證,第二節點用於執行第二共識驗證,所述設備包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
接收業務資料,並對所述業務資料進行第一共識驗證;
若所述業務資料通過第一共識驗證,則將所述業務資料添加到待確認業務佇列中,以便各第二節點從所述待確認佇列中撈取業務資料產生區塊,並對所述區塊進行第二共識驗證;
若所述業務資料未通過第一共識驗證,則判斷所述業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存;
當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於圖6所示的設備而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都通過將改進的方法流程程式化到硬體電路中來得到對應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式化邏輯裝置(Programmable Logic Device, PLD)(例如現場可程式化閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由使用者對裝置程式化來確定。由設計人員自行程式化來把一個數位元系統“集成”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種程式化也多半改用“邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始代碼也得用特定的程式化語言來撰寫,此稱之為硬體描述語言(Hardware Description Language,HDL),而HDL也並非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯程式化並程式化到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或軔體)的電腦可讀介質、邏輯閘、開關、專用積體電路(Application Specific Integrated Circuit,ASIC)、可程式化邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,記憶體控制器還可以被實現為記憶體的控制邏輯的一部分。本領域技術人員也知道,除了以純電腦可讀程式碼方式實現控制器以外,完全可以通過將方法步驟進行邏輯程式化來使得控制器以邏輯閘、開關、專用積體電路、可程式化邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體元件,而對其內包括的用於實現各種功能的裝置也可以視為硬體元件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模組又可以是硬體元件內的結構。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦。具體的,電腦例如可以為個人電腦、筆記型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位元助理、媒體播放機、導航設備、電子郵件設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任何設備的組合。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本說明書時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存介質(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式化資料處理設備的處理器以產生一個機器,使得通過電腦或其他可程式化資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式化資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式化資料處理設備上,使得在電腦或其他可程式化設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式化設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀介質中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀介質的示例。
電腦可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存介質的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位元多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸介質,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀介質不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本說明書可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。也可以在分散式運算環境中實踐本說明書,在這些分散式運算環境中,由通過通信網路而被連接的遠端處理設備來執行任務。在分散式運算環境中,程式模組可以位於包括存放裝置在內的本地和遠端電腦儲存介質中。
以上所述僅為本說明書的實施例而已,並不用於限制本說明書。對於本領域技術人員來說,本說明書可以有各種更改和變化。凡在本說明書的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本說明書的申請專利範圍之內。
舉例來說,如圖2所示,將業務資料記為TX,假設用戶張三當前的資產餘額為5元,但是其想要向用戶李四轉帳10元,張三通過用戶端向各第一節點發送TX1,各第一節點對該業務資料進行第一共識驗證,即模擬執行張三向李四轉帳10元,得到的模擬業務結果為張三的資產餘額變為-5元,這顯然是不合理的。因此,各第一節點會認定TX未通過第一共識驗證,拒絕將TX1添加到待確認業務佇列,從而使得張三發起的該筆轉帳交易無法進入第二共識驗證階段,也就無法被記入共用帳本,因而是無效的。
對於在TX1之後進入第一共識驗證階段的TX2(王五向張三轉帳20元)而言,當TX2通過第一共識驗證和第二共識驗證,被存入區塊鏈時,張三的資產餘額將會達到25元。此時,之前導致TX1未通過第一共識驗證的原因已經消除,但是由於張三之前發送給各第一節點的TX1已經被確認無效而被丟棄了,因此張三唯有再次發送TX1給各第一節點,才能實現向李四轉帳10元的業務目的。
而在本說明書實施例中,未通過第一共識驗證的業務資料如果滿足預設的可重試條件,就不會直接被視為無效,而是成為待重試的業務資料。當預設的重試執行條件被觸發時,各第一節點會重新對待重試的業務資料進行第一共識驗證。如此,繼續沿用上例,首次未通過第一共識驗證的TX1成為待重試的業務資料,當所述重試執行條件被觸發時,若TX2已經被確認有效,則TX1就可以通過新一次的第一共識驗證,從而使得TX1可以順利進入待確認業務佇列(後續可以進入第二共識驗證階段)。因此,用戶無需再次向第一節點發送TX1,也就不會給用戶造成不便。
為了使本技術領域的人員更好地理解本說明書中的技術方案,下面將結合本說明書一個或多個實施例中的圖式,對本說明書實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本說明書一部分實施例,而不是全部的實施例。通過本說明書實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本說明書保護的範圍。
以下結合圖式,詳細說明本說明書各實施例提供的技術方案。
圖3是本說明書實施例提供的一種共識驗證方法流程圖,包括以下步驟:
S300:第一節點接收業務資料。
在本說明書實施例中,所述區塊鏈系統基於“超級帳本”或其他類似於“超級帳本”的架構。在所述區塊鏈系統中,共識驗證的過程分為第一共識驗證階段和第二共識驗證階段。組成所述區塊鏈系統的區塊鏈節點具體可以是具有通信功能和資料處理功能的設備。區塊鏈節點的類型至少包括兩種,即第一節點和第二節點,其中,第一節點用於執行第一共識驗證,第二節點用於執行第二共識驗證,同一個區塊鏈節點可以同時是第一節點和第二節點。
眾所周知,共識驗證需要多個區塊鏈節點參與,具體地,第一共識驗證是由多個第一節點協力完成的。但是為了描述的方便,下文著重描述一個第一節點所執行的步驟,每個第一節點執行的步驟都是相同的。下文中“第一節點進行共識驗證”實際上是指“第一節點與其他第一節點一起,進行共識驗證”。
實際應用中,用戶若想要發起一筆業務,則需要通過用戶端向第一節點發送該筆業務的業務資料。例如,用戶A若想要發起一筆轉帳業務(向用戶B轉帳),則轉帳方使用者A需要通過用戶端向各第一節點發送該筆轉帳業務涉及的收款方位址、轉帳金額等,作為業務資料。
S302:對所述業務資料進行第一共識驗證,若所述業務資料通過第一共識驗證,則執行步驟S304,若所述業務資料未通過第一共識驗證,則執行步驟S306。
在本說明書實施例中,所述第一節點接收到業務資料後,對所述業務資料進行第一共識驗證。其中,有關所述第一共識驗證的說明可參見前文,不再贅述。
S304:將所述業務資料添加到待確認業務佇列中。
若所述業務資料通過步驟S302所述的第一共識驗證,則第一節點會將所述業務資料添加到待確認業務佇列中。其中,所述待確認業務佇列可以是第一節點預先在自身的記憶體或其他儲存介質中創建的。
S306:判斷所述業務資料是否滿足預設的可重試條件,若是,則執行步驟S308,否則,執行步驟S310。
若所述業務資料未通過步驟S302所述的第一共識驗證,則第一節點會進而判斷所述業務資料是否可重試。其中,所述可重試條件可以根據需要預設。
具體地,可以根據所述業務資料未通過所述第一共識驗證的原因,判斷所述業務資料是否滿足預設的可重試條件。也就是說,若所述業務資料未通過第一共識驗證的原因可以隨著時間的推移而消除,則所述業務資料滿足預設的可重試條件。
例如,當所述業務資料是轉帳業務的業務資料時,若所述業務資料未通過第一共識驗證,則第一節點可以當確定轉帳方的資產餘額不足時(即所述業務資料未通過第一共識驗證的原因是轉帳方的資產餘額不足),確定所述業務資料滿足預設的可重試條件。需要說明的是,本申請實施例中的資產不限於貨幣,還可以是礦產、藝術品等其他財物。
再如,第一節點可以當確定業務資料涉及的使用者缺少指定業務許可權時(即所述業務資料未通過第一共識驗證的原因是所述業務資料涉及的使用者缺少指定業務許可權),確定所述業務資料滿足預設的可重試條件。
S308:將所述業務資料作為待重試的業務資料進行儲存。
在本說明書實施例中,第一節點會將未通過第一共識驗證且滿足預設的可重試條件的業務資料作為待重試的業務資料進行儲存。具體地,第一節點可以將待重試的業務資料存入記憶體或其他儲存介質。
S310:確認所述業務資料無效。
在本說明書實施例中,第一節點會將未通過第一共識驗證且不滿足預設的可重試條件的業務資料直接確認為無效的業務資料。
S312:當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證。
在本說明書實施例中,所述重試執行條件可以根據需要預設。具體地,倘若在區塊鏈系統中,已經預先設定了每個區塊的最大容量(如10兆),和/或第二節點產生每個區塊的週期(如10秒),那麼,確定觸發預設的重試執行條件具體可以是:
若各第二節點從所述待確認佇列中撈取的用於產生下一個區塊的業務資料的資料總量與所述最大容量的差值落入第一指定數值範圍,則確定觸發預設的重試執行條件;和/或若當前時刻到當前所在週期的結束時刻的時間間隔落入第二指定數值範圍,則確定觸發預設的重試執行條件。其中,所述第一指定數值範圍和所述第二指定範圍可以根據需要指定。
在本說明書實施例中,針對每個待重試的業務資料,若在第一節點重新對該待重試的業務資料進行第一共識驗證之前,導致該待重試的業務資料之前未通過所述第一共識驗證的原因已經消除,則當第一節點重新對該待重試的業務資料進行第一共識驗證時,該待重試的業務資料可以通過第一共識驗證。若在第一節點重新對該待重試的業務資料進行第一共識驗證之前,導致該待重試的業務資料之前未通過所述第一共識驗證的原因仍未消除,則當第一節點重新對該待重試的業務資料進行第一共識驗證時,該待重試的業務資料依然無法通過第一共識驗證。
在本步驟S312中,第一節點可以重新對待重試的業務資料進行第一共識驗證,直至所述待重試的業務資料通過第一共識驗證,或直至對所述待重試的業務資料進行第一共識驗證的次數達到指定次數。
通過圖3所示的共識驗證方法,針對每個業務資料,若該業務資料未通過第一共識驗證,則第一節點不會直接將該業務資料視為無效,而是判斷該業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存。第一節點當確定觸發預設的重試執行條件時,可以重新對待重試的業務資料進行第一共識驗證。如此一來,首次未通過第一共識驗證的業務資料如果滿足預設的可重試條件,後續就可以重新進入第一共識驗證階段。雖然由於某些原因(如用戶的資產餘額不足)導致某個業務資料首次未通過第一共識驗證,但是隨著時間的推移,上述阻礙該業務資料通過第一共識驗證的原因可能會消除,此時,倘若第一節點可以重新對該業務資料進行第一共識驗證,那麼該業務資料就可以通過第一共識驗證,而無需用戶再次向第一節點發送相同的業務資料,也就不會給用戶造成不便。
圖4是本說明書實施例提供的技術效果示意圖。如圖4所示,張三向各第一節點發送TX1後,各第一節點對TX1進行第一共識驗證,由於張三的餘額不足,導致TX1未通過第一共識驗證。但是,後續王五向各第一節點發送向張三轉帳20元的TX2,若在各第一節點重新對TX1進行第一共識驗證之前,TX2已經通過第一共識驗證和第二共識驗證,張三的資產餘額變為25元,則各第一節點在重新對TX1進行第一共識驗證時,TX1可以通過第一共識驗證,張三無需再向各第一節點發送一次TX1。
需要說明的是,在圖1所示的區塊鏈系統的架構中,針對業務資料A,第一節點在對業務資料A進行第一共識驗證時,第一節點類比執行業務資料A所依據的基礎資料不僅可以包括區塊鏈上記錄的已經生效的業務資料,還可以進一步包括已經通過第一共識驗證,卻還未完成第二共識驗證的業務資料(是否通過第二共識驗證未可知)。在圖4所示的例子中,若在各第一節點重新對TX1進行第一共識驗證之前,TX2已經通過第一共識驗證,卻還未完成第二共識驗證,則第一節點可以以TX2為依據,預期張三的資產餘額將會變為25元,在重新對TX1進行第一共識驗證時,確定TX1通過第一共識驗證。
此外需要說明的是,在步驟S304中,所述待確認業務佇列中的各業務資料通常是有序排列的。具體地,第一節點可以按照特定的順序(通常是接收到各業務資料的先後順序)依次對每個業務資料進行第一共識驗證,並依次將通過第一共識驗證的每個業務資料添加到所述待確認業務佇列的隊尾。如此,待確認業務佇列中的各業務資料排列的先後順序與第一節點之前對各待確認的業務資料進行第一共識驗證的先後順序是一致的。對應地,各第二節點可以從所述待確認業務佇列中由前到後撈取若干業務資料打包成區塊,然後針對該區塊進行第二共識驗證,若該區塊中包含的所有業務資料均通過第二共識驗證,則各第二節點會將該區塊存入區塊鏈。
基於此,在步驟S312之後,即在第一節點重新對待重試的業務資料進行第一共識驗證之後,第一節點可以將通過第一共識驗證的待重試的業務資料添加到所述待確認業務佇列中指定位置之前的位置。其中,所述指定位置可以根據需要指定,其具體可以是所述待確認業務佇列中的隊首。如此,待重試的業務資料若重新通過第一共識驗證,則可以被添加到所述待確認業務佇列中較為靠前的位置,從而可以儘快被各第二節點撈取進行第二共識驗證。
還需要說明的是,在圖4所示的例子中,第一節點在重新對TX1進行第一共識驗證時,可以以之前通過第一共識驗證的TX2為依據,認定TX1通過第一共識驗證。但是,若後續TX2未通過第二共識驗證,則TX1就喪失了合理的前提,也不應當被存入區塊鏈。為此,在本說明書實施例中,採用指定規則,使得各第二節點將TX1和TX2打包進同一區塊,可以解決此問題。具體地,可以將通過第一共識驗證的待重試的業務資料添加到所述待確認業務佇列中導致所述待重試的業務資料通過第一共識驗證的業務資料的臨近位置。例如,可以將重新通過第一共識驗證的TX1添加到所述待確認業務佇列中,TX2的後一位置,如此可以盡可能使得TX1和TX2被各第二節點打包進同一區塊,如此,若TX2未通過第二共識驗證,則該區塊包含的所有業務資料(TX1也在內)都會被認定無效。
另外,在步驟S308中,第一節點可以將所述業務資料作為待重試的業務資料添加到預先創建的待重試業務佇列的隊尾。如此,所述待重試業務佇列中的各業務資料排列的先後順序與第一節點對各待重試的業務資料進行第一共識驗證的先後順序也是一致的。如此,在步驟S312中,第一節點可以從所述待重試業務佇列中,依次撈取至少一個待重試的業務資料,並重新對撈取的待重試的業務資料進行第一共識驗證。
基於圖1所示的共識驗證方法,本說明書實施例還對應提供了一種共識驗證裝置,如圖5所示,區塊鏈節點至少包括所述裝置和第二節點,其中,所述裝置用於執行第一共識驗證,第二節點用於執行第二共識驗證,所述裝置包括:
驗證模組501,接收業務資料,並對所述業務資料進行第一共識驗證;當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證;
添加模組502,若所述業務資料通過第一共識驗證,則將所述業務資料添加到待確認業務佇列中,以便各第二節點從所述待確認佇列中撈取業務資料產生區塊,並對所述區塊進行第二共識驗證;
判斷儲存模組503,若所述業務資料未通過第一共識驗證,則判斷所述業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存。
所述判斷儲存模組503,根據所述業務資料未通過所述第一共識驗證的原因,判斷所述業務資料是否滿足預設的可重試條件。
所述業務資料包括:轉帳業務的業務資料;
所述判斷儲存模組503,當轉帳方的資產餘額不足時,確定所述業務資料滿足預設的可重試條件。
預先設定每個區塊的最大容量,和/或第二節點產生每個區塊的週期;
所述驗證模組501,若各第二節點從所述待確認佇列中撈取的用於產生下一個區塊的業務資料的資料總量與所述最大容量的差值落入第一指定數值範圍,則確定觸發預設的重試執行條件;和/或若當前時刻到當前所在週期的結束時刻的時間間隔落入第二指定數值範圍,則確定觸發預設的重試執行條件。
所述判斷儲存模組503,將所述業務資料作為待重試的業務資料添加到預先創建的待重試業務佇列的隊尾;
所述驗證模組501,從所述待重試業務佇列中,由前到後依次撈取至少一個待重試的業務資料;重新對撈取的待重試的業務資料進行第一共識驗證。
所述驗證模組501,重新對待重試的業務資料進行第一共識驗證,直至所述待重試的業務資料通過第一共識驗證;或重新對待重試的業務資料進行第一共識驗證,直至對所述待重試的業務資料進行第一共識驗證的次數達到指定次數。
所述添加模組502,將所述業務資料添加到待確認業務佇列的隊尾;各第二節點從所述待確認佇列中由前到後依次撈取若干業務資料產生區塊;在所述驗證模組重新對待重試的業務資料進行第一共識驗證之後,將通過第一共識驗證的待重試的業務資料添加到所述待確認業務佇列中指定位置之前的位置。
基於圖1所示的共識驗證方法,本說明書實施例還對應提供了一種共識驗證設備,如圖6所示,區塊鏈節點至少包括所述設備和第二節點,其中,所述設備用於執行第一共識驗證,第二節點用於執行第二共識驗證,所述設備包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
接收業務資料,並對所述業務資料進行第一共識驗證;
若所述業務資料通過第一共識驗證,則將所述業務資料添加到待確認業務佇列中,以便各第二節點從所述待確認佇列中撈取業務資料產生區塊,並對所述區塊進行第二共識驗證;
若所述業務資料未通過第一共識驗證,則判斷所述業務資料是否滿足預設的可重試條件,若是,則將所述業務資料作為待重試的業務資料進行儲存;
當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於圖6所示的設備而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都通過將改進的方法流程程式化到硬體電路中來得到對應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式化邏輯裝置(Programmable Logic Device, PLD)(例如現場可程式化閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由使用者對裝置程式化來確定。由設計人員自行程式化來把一個數位元系統“集成”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種程式化也多半改用“邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始代碼也得用特定的程式化語言來撰寫,此稱之為硬體描述語言(Hardware Description Language,HDL),而HDL也並非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯程式化並程式化到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或軔體)的電腦可讀介質、邏輯閘、開關、專用積體電路(Application Specific Integrated Circuit,ASIC)、可程式化邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,記憶體控制器還可以被實現為記憶體的控制邏輯的一部分。本領域技術人員也知道,除了以純電腦可讀程式碼方式實現控制器以外,完全可以通過將方法步驟進行邏輯程式化來使得控制器以邏輯閘、開關、專用積體電路、可程式化邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體元件,而對其內包括的用於實現各種功能的裝置也可以視為硬體元件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模組又可以是硬體元件內的結構。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦。具體的,電腦例如可以為個人電腦、筆記型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位元助理、媒體播放機、導航設備、電子郵件設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任何設備的組合。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本說明書時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存介質(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式化資料處理設備的處理器以產生一個機器,使得通過電腦或其他可程式化資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式化資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式化資料處理設備上,使得在電腦或其他可程式化設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式化設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀介質中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀介質的示例。
電腦可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存介質的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位元多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸介質,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀介質不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本說明書可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。也可以在分散式運算環境中實踐本說明書,在這些分散式運算環境中,由通過通信網路而被連接的遠端處理設備來執行任務。在分散式運算環境中,程式模組可以位於包括存放裝置在內的本地和遠端電腦儲存介質中。
以上所述僅為本說明書的實施例而已,並不用於限制本說明書。對於本領域技術人員來說,本說明書可以有各種更改和變化。凡在本說明書的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本說明書的申請專利範圍之內。
S300~S312:步驟
501:驗證模組
502:添加模組
503:判斷儲存模組
501:驗證模組
502:添加模組
503:判斷儲存模組
為了更清楚地說明本說明書實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖式作簡單地介紹,顯而易見地,下面描述中的圖式僅僅是本說明書中記載的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些圖式獲得其他的圖式。
圖1是本說明書實施例提供的現有的區塊鏈系統架構圖;
圖2是現有的共識驗證方法存在的問題示意圖;
圖3是本說明書實施例提供的共識驗證方法流程圖;
圖4是本說明書實施例提供的技術效果示意圖;
圖5是本說明書實施例提供的一種共識驗證裝置示意圖;
圖6是本說明書實施例提供的一種共識驗證設備示意圖。
圖1是本說明書實施例提供的現有的區塊鏈系統架構圖;
圖2是現有的共識驗證方法存在的問題示意圖;
圖3是本說明書實施例提供的共識驗證方法流程圖;
圖4是本說明書實施例提供的技術效果示意圖;
圖5是本說明書實施例提供的一種共識驗證裝置示意圖;
圖6是本說明書實施例提供的一種共識驗證設備示意圖。
Claims (15)
- 一種共識驗證方法,區塊鏈節點至少包括第一節點和第二節點,其中,第一節點用於執行第一共識驗證,第二節點用於執行第二共識驗證,該方法包括:
第一節點接收業務資料,並對該業務資料進行第一共識驗證;
若該業務資料通過第一共識驗證,則將該業務資料添加到待確認業務佇列中,以便各第二節點從該待確認佇列中撈取業務資料產生區塊,並對該區塊進行第二共識驗證;
若該業務資料未通過第一共識驗證,則判斷該業務資料是否滿足預設的可重試條件,若是,則將該業務資料作為待重試的業務資料進行儲存;
當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證。 - 如請求項1所述的方法,判斷該業務資料是否滿足預設的可重試條件,具體包括:
根據該業務資料未通過該第一共識驗證的原因,判斷該業務資料是否滿足預設的可重試條件。 - 如請求項2所述的方法,該業務資料包括:轉帳業務的業務資料;
根據該業務資料未通過該第一共識驗證的原因,判斷該業務資料是否滿足預設的可重試條件,具體包括:
當轉帳方的資產餘額不足時,確定該業務資料滿足預設的可重試條件。 - 如請求項1所述的方法,預先設定每個區塊的最大容量,和/或第二節點產生每個區塊的週期;
確定觸發預設的重試執行條件,具體包括:
若各第二節點從該待確認佇列中撈取的用於產生下一個區塊的業務資料的資料總量與該最大容量的差值落入第一指定數值範圍,則確定觸發預設的重試執行條件;和/或
若當前時刻到當前所在週期的結束時刻的時間間隔落入第二指定數值範圍,則確定觸發預設的重試執行條件。 - 如請求項1所述的方法,將該業務資料作為待重試的業務資料進行儲存,具體包括:
將該業務資料作為待重試的業務資料添加到預先創建的待重試業務佇列的隊尾;
重新對待重試的業務資料進行第一共識驗證,具體包括:
從該待重試業務佇列中,由前到後依次撈取至少一個待重試的業務資料;
重新對撈取的待重試的業務資料進行第一共識驗證。 - 如請求項1所述的方法,重新對待重試的業務資料進行第一共識驗證,具體包括:
重新對待重試的業務資料進行第一共識驗證,直至該待重試的業務資料通過第一共識驗證;或
重新對待重試的業務資料進行第一共識驗證,直至對該待重試的業務資料進行第一共識驗證的次數達到指定次數。 - 如請求項1所述的方法,將該業務資料添加到待確認業務佇列中,具體包括:
將該業務資料添加到待確認業務佇列的隊尾;
各第二節點從該待確認佇列中撈取業務資料產生區塊,具體包括:
各第二節點從該待確認佇列中由前到後依次撈取若干業務資料產生區塊;
在重新對待重試的業務資料進行第一共識驗證之後,該方法還包括:
將通過第一共識驗證的待重試的業務資料添加到該待確認業務佇列中指定位置之前的位置。 - 一種共識驗證裝置,區塊鏈節點至少包括該裝置和第二節點,其中,該裝置用於執行第一共識驗證,第二節點用於執行第二共識驗證,該裝置包括:
驗證模組,接收業務資料,並對該業務資料進行第一共識驗證;當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證;
添加模組,若該業務資料通過第一共識驗證,則將該業務資料添加到待確認業務佇列中,以便各第二節點從該待確認佇列中撈取業務資料產生區塊,並對該區塊進行第二共識驗證;
判斷儲存模組,若該業務資料未通過第一共識驗證,則判斷該業務資料是否滿足預設的可重試條件,若是,則將該業務資料作為待重試的業務資料進行儲存。 - 如請求項8所述的裝置,該判斷儲存模組,根據該業務資料未通過該第一共識驗證的原因,判斷該業務資料是否滿足預設的可重試條件。
- 如請求項9所述的裝置,該業務資料包括:轉帳業務的業務資料;
該判斷儲存模組,當轉帳方的資產餘額不足時,確定該業務資料滿足預設的可重試條件。 - 如請求項8所述的裝置,預先設定每個區塊的最大容量,和/或第二節點產生每個區塊的週期;
該驗證模組,若各第二節點從該待確認佇列中撈取的用於產生下一個區塊的業務資料的資料總量與該最大容量的差值落入第一指定數值範圍,則確定觸發預設的重試執行條件;和/或若當前時刻到當前所在週期的結束時刻的時間間隔落入第二指定數值範圍,則確定觸發預設的重試執行條件。 - 如請求項8所述的裝置,該判斷儲存模組,將該業務資料作為待重試的業務資料添加到預先創建的待重試業務佇列的隊尾;
該驗證模組,從該待重試業務佇列中,由前到後依次撈取至少一個待重試的業務資料;重新對撈取的待重試的業務資料進行第一共識驗證。 - 如請求項8所述的裝置,該驗證模組,重新對待重試的業務資料進行第一共識驗證,直至該待重試的業務資料通過第一共識驗證;或重新對待重試的業務資料進行第一共識驗證,直至對該待重試的業務資料進行第一共識驗證的次數達到指定次數。
- 如請求項8所述的裝置,該添加模組,將該業務資料添加到待確認業務佇列的隊尾;各第二節點從該待確認佇列中由前到後依次撈取若干業務資料產生區塊;在該驗證模組重新對待重試的業務資料進行第一共識驗證之後,將通過第一共識驗證的待重試的業務資料添加到該待確認業務佇列中指定位置之前的位置。
- 一種共識驗證設備,區塊鏈節點至少包括該設備和第二節點,其中,該設備用於執行第一共識驗證,第二節點用於執行第二共識驗證,該設備包括一個或多個處理器及記憶體,該記憶體儲存有程式,並且被配置成由該一個或多個處理器執行以下步驟:
接收業務資料,並對該業務資料進行第一共識驗證;
若該業務資料通過第一共識驗證,則將該業務資料添加到待確認業務佇列中,以便各第二節點從該待確認佇列中撈取業務資料產生區塊,並對該區塊進行第二共識驗證;
若該業務資料未通過第一共識驗證,則判斷該業務資料是否滿足預設的可重試條件,若是,則將該業務資料作為待重試的業務資料進行儲存;
當確定觸發預設的重試執行條件時,重新對待重試的業務資料進行第一共識驗證。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810196464.2 | 2018-03-09 | ||
CN201810196464.2A CN108537525B (zh) | 2018-03-09 | 2018-03-09 | 一种共识验证方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201939386A TW201939386A (zh) | 2019-10-01 |
TWI679597B true TWI679597B (zh) | 2019-12-11 |
Family
ID=63483498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107141397A TWI679597B (zh) | 2018-03-09 | 2018-11-21 | 共識驗證方法、裝置及設備 |
Country Status (7)
Country | Link |
---|---|
US (3) | US10985923B2 (zh) |
CN (1) | CN108537525B (zh) |
AU (1) | AU2019232751B2 (zh) |
CA (1) | CA3084078C (zh) |
SG (1) | SG11202004566QA (zh) |
TW (1) | TWI679597B (zh) |
WO (1) | WO2019173395A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108537525B (zh) | 2018-03-09 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种共识验证方法、装置及设备 |
US11410105B2 (en) * | 2019-07-03 | 2022-08-09 | Vertru Technologies Inc. | Blockchain based supply chain network systems |
US11144537B2 (en) | 2019-09-16 | 2021-10-12 | Bank Of America Corporation | System for data consensus validation in an electronic distributed server network using a screening node |
CN110992052A (zh) * | 2019-12-05 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111083221B (zh) * | 2019-12-13 | 2023-08-04 | 北京菲林方德科技有限公司 | 一种交易验证方法及装置 |
CN111581109A (zh) * | 2020-05-15 | 2020-08-25 | 杭州安恒信息技术股份有限公司 | 一种接口返回数据校验的方法、系统及设备 |
CN112214407A (zh) * | 2020-10-10 | 2021-01-12 | 广州华多网络科技有限公司 | 数据校验控制、执行方法及其相应的装置、设备、介质 |
CN115687527B (zh) * | 2022-11-09 | 2023-10-10 | 北京北纬三十度网络科技有限公司 | 一种基于区块链大数据的存储系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106327173A (zh) * | 2016-08-22 | 2017-01-11 | 布比(北京)网络技术有限公司 | 网络支付方法及装置 |
CN106845210A (zh) * | 2017-01-19 | 2017-06-13 | 布比(北京)网络技术有限公司 | 事件认证方法和装置 |
CN107194008A (zh) * | 2017-06-19 | 2017-09-22 | 无锡井通网络科技有限公司 | 一种分布式系统快速更新验证方法 |
WO2017182788A1 (en) * | 2016-04-18 | 2017-10-26 | R3, Ltd. | System and method for managing transactions in dynamic digital documents |
US20170317834A1 (en) * | 2016-04-30 | 2017-11-02 | Civic Technologies, Inc. | Methods and systems of providing verification of information using a centralized or distributed ledger |
CN107395353A (zh) * | 2017-04-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及装置 |
CN107392611A (zh) * | 2017-03-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种发送交易信息和共识验证的方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017019488A1 (en) * | 2015-07-24 | 2017-02-02 | Castor Pollux Holdings SARL | Device, system, and method for transfer of commodities |
US10204341B2 (en) * | 2016-05-24 | 2019-02-12 | Mastercard International Incorporated | Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees |
GB201613174D0 (en) * | 2016-07-29 | 2016-09-14 | Eitc Holdings Ltd | Computer-implemented system and method |
CN106603698A (zh) * | 2016-12-28 | 2017-04-26 | 北京果仁宝科技有限公司 | 基于dpos的区块链共识方法和节点 |
CN107196900B (zh) * | 2017-03-24 | 2020-04-24 | 创新先进技术有限公司 | 一种共识校验的方法及装置 |
CN107368507B (zh) * | 2017-03-28 | 2020-03-27 | 创新先进技术有限公司 | 一种基于区块链的共识方法及装置 |
CN107395659B (zh) * | 2017-03-28 | 2021-08-24 | 创新先进技术有限公司 | 一种业务受理及共识的方法及装置 |
EP3489874A1 (en) * | 2017-11-27 | 2019-05-29 | Wipro Limited | System and method for dual blockchain based validation of instrument reference data and transaction reporting |
US11139979B2 (en) * | 2017-12-18 | 2021-10-05 | Koninklijke Kpn N.V. | Primary and secondary blockchain device |
CN108537525B (zh) | 2018-03-09 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种共识验证方法、装置及设备 |
-
2018
- 2018-03-09 CN CN201810196464.2A patent/CN108537525B/zh active Active
- 2018-11-21 TW TW107141397A patent/TWI679597B/zh active
-
2019
- 2019-03-05 SG SG11202004566QA patent/SG11202004566QA/en unknown
- 2019-03-05 CA CA3084078A patent/CA3084078C/en active Active
- 2019-03-05 WO PCT/US2019/020830 patent/WO2019173395A1/en active Application Filing
- 2019-03-05 AU AU2019232751A patent/AU2019232751B2/en active Active
- 2019-03-07 US US16/295,771 patent/US10985923B2/en active Active
- 2019-12-23 US US16/725,266 patent/US10887108B2/en active Active
-
2021
- 2021-03-19 US US17/207,278 patent/US11240036B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017182788A1 (en) * | 2016-04-18 | 2017-10-26 | R3, Ltd. | System and method for managing transactions in dynamic digital documents |
US20170317834A1 (en) * | 2016-04-30 | 2017-11-02 | Civic Technologies, Inc. | Methods and systems of providing verification of information using a centralized or distributed ledger |
CN106327173A (zh) * | 2016-08-22 | 2017-01-11 | 布比(北京)网络技术有限公司 | 网络支付方法及装置 |
CN106845210A (zh) * | 2017-01-19 | 2017-06-13 | 布比(北京)网络技术有限公司 | 事件认证方法和装置 |
CN107392611A (zh) * | 2017-03-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种发送交易信息和共识验证的方法及装置 |
CN107395353A (zh) * | 2017-04-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及装置 |
CN107194008A (zh) * | 2017-06-19 | 2017-09-22 | 无锡井通网络科技有限公司 | 一种分布式系统快速更新验证方法 |
Also Published As
Publication number | Publication date |
---|---|
SG11202004566QA (en) | 2020-06-29 |
CN108537525A (zh) | 2018-09-14 |
CA3084078C (en) | 2021-02-23 |
US20210211295A1 (en) | 2021-07-08 |
CN108537525B (zh) | 2020-06-09 |
US20200136830A1 (en) | 2020-04-30 |
US10985923B2 (en) | 2021-04-20 |
TW201939386A (zh) | 2019-10-01 |
AU2019232751A1 (en) | 2020-06-18 |
CA3084078A1 (en) | 2019-09-12 |
US11240036B2 (en) | 2022-02-01 |
AU2019232751B2 (en) | 2022-02-03 |
US10887108B2 (en) | 2021-01-05 |
US20190280873A1 (en) | 2019-09-12 |
WO2019173395A1 (en) | 2019-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI679597B (zh) | 共識驗證方法、裝置及設備 | |
TWI671699B (zh) | 一種事務請求的處理方法及裝置 | |
TWI660617B (zh) | 區塊鏈共識方法及設備 | |
KR102201844B1 (ko) | 서비스 처리 방법 및 장치 | |
WO2018177235A1 (zh) | 一种区块链共识方法及装置 | |
TWI679547B (zh) | 區塊鏈業務受理及業務共識方法及裝置 | |
TWI767106B (zh) | 配置支付流程、執行支付流程的方法、裝置及設備 | |
EP3547168A1 (en) | Block chain based data processing method and device | |
EP3565219B1 (en) | Service execution method and device | |
TWI694342B (zh) | 一種資料快取方法、裝置及系統 | |
US9600618B2 (en) | Implementing system irritator accelerator FPGA unit (AFU) residing behind a coherent attached processors interface (CAPI) unit | |
TWI684944B (zh) | 記帳的方法及裝置 | |
JP7048738B2 (ja) | 仮想カード開設方法およびシステム、決済システム、ならびにカード発行システム | |
TWI679581B (zh) | 任務執行的方法及裝置 | |
CN110737608B (zh) | 一种数据操作方法、装置及系统 | |
CN109002357A (zh) | 资源分配方法、装置及物联网系统 | |
WO2021239087A1 (zh) | 一种数据处理方法、装置、设备及介质 | |
CN108563693A (zh) | 一种事务的处理方法、装置及设备 | |
WO2024001025A1 (zh) | 一种预执行缓存数据清理方法和区块链节点 | |
CN109901914A (zh) | 事务处理方法、装置及设备 | |
CN109598511B (zh) | 一种账户风险识别方法、装置及设备 | |
US9424073B1 (en) | Transaction handling between soft logic and hard logic components of a memory controller | |
CN116204335A (zh) | 区块生成方法及装置 |