TW201909613A - 區塊鏈共識網路中處理共識請求的方法、裝置和電子設備 - Google Patents

區塊鏈共識網路中處理共識請求的方法、裝置和電子設備 Download PDF

Info

Publication number
TW201909613A
TW201909613A TW107115874A TW107115874A TW201909613A TW 201909613 A TW201909613 A TW 201909613A TW 107115874 A TW107115874 A TW 107115874A TW 107115874 A TW107115874 A TW 107115874A TW 201909613 A TW201909613 A TW 201909613A
Authority
TW
Taiwan
Prior art keywords
consensus
sub
collection
pending
stage
Prior art date
Application number
TW107115874A
Other languages
English (en)
Other versions
TWI714847B (zh
Inventor
陳銳
國飛 蔣
杜華兵
王虎森
Original Assignee
香港商阿里巴巴集團服務有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW201909613A publication Critical patent/TW201909613A/zh
Application granted granted Critical
Publication of TWI714847B publication Critical patent/TWI714847B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本發明公開了一種區塊鏈共識網路中處理共識請求的方法,包括:確定待處理請求集合,待處理請求集合中包含待處理的共識請求;確定已處於共識階段的子集合的數量,子集合由從待處理請求集合中獲取到的待處理的共識請求構成;當已處於共識階段的子集合的數量小於共識網路的預設併發數時,向共識網路發起對新的子集合的共識提議,使得新的子集合進入共識階段進行共識請求的處理;其中,預設併發數為共識網路中允許同時處於共識階段的子集合的數量上限。

Description

區塊鏈共識網路中處理共識請求的方法、裝置和電子設備
本發明涉及電腦技術領域,尤其涉及一種區塊鏈共識網路中處理共識請求的方法、裝置和電子設備。
隨著電腦技術的發展,區塊鏈技術(又稱分散式帳本技術)以其去中心化、公開透明、不可篡改、可信任等優點,備受青睞,在智能合約、證券交易、電子商務、物聯網、社交通訊、文件儲存、存在性證明、身份驗證、股權眾籌等眾多領域得到廣泛應用。   在區塊鏈的應用中,區塊鏈的共識網路中的多個副本往往需要就多個備選方案最終達成一致確定的、唯一的選擇結果,進行這一選擇的過程,就可稱為共識。然而,現有技術中的共識過程存在性能瓶頸,在共識請求的處理效率上難以提升。   因此,極需一種能夠提高處理效率的方案,以提升共識網路的處理性能。
本發明實施例提供區塊鏈共識網路中處理共識請求的方法、裝置和電子設備,旨在提高共識網路對共識請求的處理效率。   本發明實施例採用下述技術方案:   第一方面,本發明實施例提供一種區塊鏈共識網路中處理共識請求的方法,包括:   確定待處理請求集合,所述待處理請求集合中包含待處理的共識請求;   確定已處於共識階段的子集合的數量,所述子集合由從所述待處理請求集合中獲取到的待處理的共識請求構成;   當已處於共識階段的子集合的數量小於共識網路的預設併發數時,向所述共識網路發起對新的子集合的共識提議,使得所述新的子集合進入所述共識階段進行共識請求的處理;其中,所述預設併發數為所述共識網路中允許同時處於所述共識階段的子集合的數量上限。   優選地,在本發明實施例第一方面提供的方法中,在確定待處理請求集合之後,所述方法還包括:   從所述待處理請求集合中獲取待處理的共識請求,構成所述子集合。   優選地,在本發明實施例第一方面提供的方法中,從所述待處理請求集合中獲取待處理的共識請求,構成所述子集合之後,所述方法還包括:   為所述子集合分配序列號,所述序列號為連續單調遞增的自然數。   優選地,在本發明實施例第一方面提供的方法中,確定已處於共識階段的子集合的數量,包括:   依據已結束共識階段的子集合的序列號,確定第一序列號;依據已進入共識階段的子集合的序列號,確定第二序列號;   依據所述第一序列號和所述第二序列號,確定已處於共識階段的子集合的數量。   優選地,在本發明實施例第一方面提供的方法中,依據已結束共識階段的子集合的序列號,確定第一序列號,包括:將已結束共識階段的多個子集合的序列號中的最大者,確定為所述第一序列號;   依據已進入共識階段的子集合的序列號,確定第二序列號,包括:將已進入共識階段的多個子集合的序列號中的最大者,確定為所述第二序列號;   則依據所述第一序列號和所述第二序列號,確定已處於共識階段的子集合的數量,包括:   將所述第一序列號和所述第二序列號的差值,確定為處於共識階段的子集合的數量。   優選地,在本發明實施例第一方面提供的方法中,當處於共識階段的子集合的數量小於共識網路的預設併發數時,向所述共識網路發起對新的子集合的共識提議,使得所述新的子集合進入所述共識階段,包括:   當處於共識階段的子集合的數量小於共識網路的預設併發數時,依據所述第二序列號確定所述新的子集合及其序列號;   向所述共識網路發起對所述新的子集合的共識提議,使得所述新的子集合進入所述共識階段。   優選地,在本發明實施例第一方面提供的方法中,依據所述第二序列號確定所述新的子集合及其序列號,包括:   從所述待處理請求集合中獲取待處理的共識請求,構成所述新的子集合;   依據所述第二序列號,將所述第二序列號的數值加一,作為所述新的子集合的序列號。   優選地,在本發明實施例第一方面提供的方法中,依據所述第二序列號確定所述新的子集合及其序列號,包括:   依據所述第二序列號,將所述第二序列號的數值加一,作為所述新的子集合的序列號;   依據所述新的子集合的序列號,確定所述新的子集合。   優選地,在本發明實施例第一方面提供的方法中,確定已處於共識階段的子集合的數量,包括:   在向所述共識網路發起對新的子集合的共識提議,使得所述新的子集合進入所述共識階段之後,重新確定已處於共識階段的子集合的數量。   優選地,在本發明實施例第一方面提供的方法中,在向所述共識網路發起對新的子集合的共識提議之後,所述方法還包括:   對所述新的子集合中包含的待處理的共識請求進行共識;   當滿足預設條件時,將對所述新的子集合中包含的待處理的共識請求的共識結果寫入所述區塊鏈,結束所述共識階段。   優選地,在本發明實施例第一方面提供的方法中,滿足預設條件包括:   序列號在所述新的子集合的序列號之前的子集合已結束所述共識階段。   優選地,在本發明實施例第一方面提供的方法中,確定已處於共識階段的子集合的數量,包括:   在將對所述新的子集合中包含的待處理的共識請求的共識結果寫入所述區塊鏈之後,重新確定已處於共識階段的子集合的數量。   優選地,在本發明實施例第一方面提供的方法中,將對所述新的子集合中包含的待處理的共識請求的共識結果寫入所述區塊鏈,包括:   將對所述新的子集合中包含的待處理的共識請求的共識結果,按照接收到所述待處理的共識請求的時間順序,寫入所述區塊鏈。   第二方面,本發明實施例還提供一種區塊鏈共識網路中處理共識請求的方法,包括:   確定待處理請求集合,所述待處理請求集合中包含待處理的共識請求;   在接收到對新的子集合的共識提議之後,判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數;其中,所述子集合由主節點從所述待處理請求集合中獲取到的待處理的共識請求構成;   若已處於共識階段的子集合的數量小於共識網路的預設併發數,則所述新的子集合進入所述共識階段,進行共識請求的處理。   優選地,在本發明實施例第二方面提供的方法中,在判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數之前,所述方法還包括:   確定已處於共識階段的子集合的數量。   優選地,在本發明實施例第二方面提供的方法中,所述新的子集合進入所述共識階段,進行共識請求的處理,包括:   對所述新的子集合中包含的待處理的共識請求進行共識;   當滿足預設條件時,將對所述新的子集合中包含的待處理的共識請求的共識結果寫入所述區塊鏈,結束所述共識階段。   優選地,在本發明實施例第二方面提供的方法中,滿足預設條件,包括:   序列號在所述新的子集合的序列號之前的子集合已結束所述共識階段。   第三方面,本發明實施例提供一種區塊鏈共識網路中處理共識請求的裝置,包括:   集合確定模組,確定待處理請求集合,所述待處理請求集合中包含待處理的共識請求;   數量確定模組,確定已處於共識階段的子集合的數量,所述子集合由從所述待處理請求集合中獲取到的待處理的共識請求構成;   判斷模組,判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數。   優選地,在本發明實施例第三方面提供的裝置中,還包括:   共識提議發起模組,當已處於共識階段的子集合的數量小於共識網路的預設併發數時,向所述共識網路發起對新的子集合的共識提議,使得所述新的子集合進入所述共識階段進行共識請求的處理;其中,所述預設併發數為所述共識網路中允許同時處於所述共識階段的子集合的數量上限。   優選地,在本發明實施例第三方面提供的裝置中,還包括:   共識模組,對所述新的子集合中包含的待處理的共識請求進行共識;   入鏈模組,當滿足預設條件時,將對所述新的子集合中包含的待處理的共識請求的共識結果寫入所述區塊鏈,結束所述共識階段。   第四方面,本發明實施例提供一種電子設備,包括:   處理器;以及   被安排成儲存電腦可執行指令的記憶體,所述可執行指令在被執行時使所述處理器執行以下操作:   確定待處理請求集合,所述待處理請求集合中包含待處理的共識請求;   確定已處於共識階段的子集合的數量,所述子集合由從所述待處理請求集合中獲取到的待處理的共識請求構成;   當已處於共識階段的子集合的數量小於共識網路的預設併發數時,向所述共識網路發起對新的子集合的共識提議,使得所述新的子集合進入所述共識階段進行共識請求的處理;其中,所述預設併發數為所述共識網路中允許同時處於所述共識階段的子集合的數量上限。   第五方面,本發明實施例提供一種電子設備,包括:   處理器;以及   被安排成儲存電腦可執行指令的記憶體,所述可執行指令在被執行時使所述處理器執行以下操作:   確定待處理請求集合,所述待處理請求集合中包含待處理的共識請求;   在接收到對新的子集合的共識提議之後,判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數;其中,所述子集合由主節點從所述待處理請求集合中獲取到的待處理的共識請求構成;   若已處於共識階段的子集合的數量小於共識網路的預設併發數,則所述新的子集合進入所述共識階段,進行共識請求的處理。   本發明實施例採用的上述至少一個技術方案能夠達到以下有益效果:   一方面,從待處理請求集合中獲取一批待處理的共識請求構成子集合,並以子集合為單位,發起對這一批請求的共識提議,有利於提高對共識請求的處理效率。   再一方面,在共識網路中設定預設併發數,允許多個子集合處於共識階段進行共識請求的處理,使得共識網路可以並行的處理多條待處理的共識請求,從而有利於提高對共識請求的處理效率,提升了共識網路的處理性能。
為使本發明的目的、技術方案和優點更加清楚,下面將結合本發明具體實施例及相應的圖式對本發明技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域具有通常知識者在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。   以下結合圖式,詳細說明本發明各實施例提供的技術方案。   參見圖1所示,本發明實施例提供一種區塊鏈共識網路中處理共識請求的方法,包括:   S101:確定待處理請求集合,待處理請求集合中包含待處理的共識請求;   S103:確定已處於共識階段的子集合的數量,子集合由從待處理請求集合中獲取到的待處理的共識請求構成;   S105:當已處於共識階段的子集合的數量小於共識網路的預設併發數時,向共識網路發起對新的子集合的共識提議,使得新的子集合進入共識階段進行共識請求的處理;其中,預設併發數為共識網路中允許同時處於共識階段的子集合的數量上限。   上述實施例中的共識網路,可以理解為是區塊鏈系統中能夠參與共識過程的多個節點所構成的網路。在共識網路中,同一時刻只有一個主節點,負責撈取待處理的共識請求以構成子集合,對這些子集合進行編號、排序,進而依次發起對這些子集合的共識提議,以便進一步完成對待處理的共識請求的共識。圖1所示的實施例適用於共識網路中的主節點,主要體現了主節點如何發起共識提議進而完成共識請求處理的方法。   在本發明實施例所稱的共識網路中,可以參考例如三階段共識(包括預準備階段pre-prepare、準備階段prepare和確認階段commit)等機制進行共識請求的處理。待處理的共識請求所在的子集合被提議共識後,該子集合將進入共識階段;在該子集合處於共識階段時,共識網路對該子集合中的待處理的共識請求進行共識;當滿足預設條件時,如當該子集合中的所有待處理的共識請求都已得到確定的共識結果時,將對該子集合中包含的待處理的共識請求的共識結果寫入區塊鏈,至此,該子集合結束共識階段,該子集合中的待處理的共識請求也都處理完畢。   具體地,區塊鏈系統的一個或多個客戶端(又可稱作Client)將待執行的共識請求發送到區塊鏈中提供共識服務的節點,這些提供共識服務的節點構成共識網路,在共識網路中又可以稱為副本節點(又可稱作replicas)。待執行的共識請求用於請求共識網路中的副本節點對相應的事項進行共識,形成共識結果並將共識結果寫入區塊鏈。在共識網路中的每個副本節點(replicas)都會收到客戶端(Client)發送來的待處理的共識請求。各副本節點,包括當前時刻的主節點(又可稱作primary)和備份節點(又可稱作backups,為共識網路中主節點以外的副本節點),可以對接收到的待處理的共識請求進行格式檢查,若格式檢查通過,則將待處理的共識請求存入待處理請求集合,可記為P。更具體地,待處理請求集合可以快取在主節點的快取池中。   需要說明的是,共識網路中的主節點並非一成不變的,而可以採用視圖切換協議(又可稱作view change協議)在各共識節點(即副本節點)中進行切換。例如,協議可以約定每一副本節點充當主節點的時間,定期進行主節點的切換。協議也可以由當前時刻充當備份節點的副本節點在一定條件下提出切換視圖的申請,例如,當認為主節點作惡,出現錯誤,或藉由timeout機制檢測到主節點已經當機時,備份節點可以觸發view change協議選舉出新的主節點。當共識網路中針對這一切換視圖的申請達成一致意見時,即可進行視圖的切換,改變主節點。視圖與主節點之間的對應關係可以由視圖切換協議確定,例如,可以約定,編號為1的視圖對應編號為1的副本節點,編號為2的視圖對應編號為2的副本節點,依此類推;則當切換到編號為1的視圖時,編號為1的副本節點充當主節點,等等。   主節點執行步驟S101確定待處理請求集合後,可以進一步執行步驟S103,確定已處於共識階段的子集合的數量。其中,子集合由從待處理請求集合中獲取到的待處理的共識請求構成的,可以是主節點在執行步驟S101之後,從待處理請求集合P中獲取(也可稱作撈取)一批待處理的共識請求,構成子集合。在撈取時,可遵循一定的預設規則,例如,可約定撈取請求的條數,每次撈取100條待處理共識請求;可約定從多個快取池中平均的撈取待處理的共識請求等。在撈取時的具體規則可以藉由對副本節點的配置進行調整,本發明實施例對此不做限定。   還可以理解到的是,當某條待處理的共識請求從待處理請求集合中被撈取構成子集合後,可以將該條待處理的共識請求從待處理請求集合中刪除,也可以對其置以標識資訊以便不再被撈取構成其他子集合,從而避免對待處理的共識請求進行重複處理。   在執行步驟S103,確定已處於共識階段的子集合的數量時,有多種可行的具體方案。例如,可以設置一計數器,當某一子集合進入共識階段時,該計數器的值加1;當某一子集合結束共識階段時,該計數器的值減1。因此,藉由讀取該計數器的值,就能夠確定已處於共識階段的子集合的數量,進而可以進行後續步驟確定是否可以發起共識提議。   在本發明實施例中,優選對子集合進行連續遞增編號,並根據編號的數值大小確定已處於共識階段的子集合的數量。具體的,在從待處理請求集合中獲取待處理的共識請求,構成子集合之後,還進一步為子集合分配序列號,序列號為連續單調遞增的自然數,即稠密自然數。   需要說明的是,從待處理請求集合中撈取待處理的共識請求構成子集合的過程,可以在確定了待處理請求集合後按照一定的規則直接撈取待處理的共識請求,構成多個子集合,可以存在快取中供讀取。此時,可以為多個子集合分配連續單調遞增的自然數作為子集合的序列號,在對新的子集合發起新的共識提議時,也依據序列號的先後順序發起,即在後發起共識提議的子集合的序列號比在先發起共識提議的子集合的序列號多1。那麼相應地,在要發起新的共識提議時,可以在當前時刻最後被提議共識的子集合的序列號(即稍後將要介紹的第二序列號)的基礎上加1,作為新的子集合的序列號;再依據新的子集合的序列號,確定新的子集合。   從待處理請求集合中撈取待處理的共識請求構成子集合的過程,也可以在滿足發起新的共識提議的條件時,再進行待處理共識請求的撈取,構成新的子集合併對該新的子集合發起共識提議。此時,可以在構成新的子集合後,在當前時刻最後被提議共識的子集合的序列號(即稍後將要介紹的第二序列號)的基礎上加1,作為新的子集合的序列號。相對於前文所述的撈取請求構成子集合的方式,這種方式因實現複雜度更低而可作為優選。   在對子集合進行連續單調遞增的編號後,上述步驟S103的實現,可以具體包括:   依據已結束共識階段的子集合的序列號,確定第一序列號;依據已進入共識階段的子集合的序列號,確定第二序列號;   依據第一序列號和第二序列號,確定已處於共識階段的子集合的數量。   進一步地,依據已結束共識階段的子集合的序列號,確定第一序列號,可以包括:將已結束共識階段的多個子集合的序列號中的最大者,確定為第一序列號;   依據已進入共識階段的子集合的序列號,確定第二序列號,可以包括:將已進入共識階段的多個子集合的序列號中的最大者,確定為第二序列號;   則依據第一序列號和第二序列號,確定已處於共識階段的子集合的數量,包括:將第一序列號和第二序列號的差值,確定為處於共識階段的子集合的數量。   需要說明的是,第一序列號和第二序列號的確定過程,在順序上不做要求,可以同時並行進行,也可以以任意順序串行進行。   還需要說明的是,已結束共識階段的子集合,表示該子集合中的待處理的共識請求已經過成功共識,並且,共識的結果已成功入鏈,即表示該子集合中的待處理的共識請求已處理完畢。此時,為保證區塊鏈資料的一致性,在將某子集合的共識結果寫入區塊鏈之前,需要進行預設條件的判斷,如共識網路的各副本節點需要確保序列號在該子集合的序列號之前的子集合已結束共識階段,完成共識結果的入鏈。因此,可以將已結束共識階段的多個子集合的序列號中的最大者,確定為第一序列號,使得第一序列號代表主節點所知的最新被成功共識且共識結果已成功入鏈的子集合的序列號。   還需要說明的是,已進入共識階段的子集合,表示該子集合中的待處理的共識請求已被發起共識提議,正處於共識階段。如前所述,由於按照序列號的大小順序依次對相應的子集合發起共識提議,因此,可以將已進入共識階段的多個子集合的序列號中的最大者,確定為第二序列號,使得第二序列號代表主節點所知的最新發起了共識提議的子集合的序列號。   因此,上述第一序列號和第二序列號的差值,就表示已經被發起共識提議但尚未完成共識請求處理的子集合的數量,從而可以將該差值確定為處於共識階段的子集合的數量。   在執行步驟S103確定已處於共識階段的子集合的數量之後,主節點進一步判斷處於共識階段的子集合的數量是否小於共識網路的預設併發數。若處於共識階段的子集合的數量等於共識網路的預設併發數,表示共識網路已無法接納新的子集合進入共識階段,則主節點將等待條件滿足時再對新的子集合發起共識提議。而若處於共識階段的子集合的數量小於共識網路的預設併發數,則表示共識網路還能夠接納新的子集合進入共識階段,則主節點可以依據上述的第二序列號確定新的子集合及其序列號,進而向共識網路發起對新的子集合的共識提議,使得新的子集合進入共識階段。本領域技術人員能夠理解的是,正常情況下,共識網路中不會出現“處於共識階段的子集合的數量大於共識網路的預設併發數”這一情況。而一旦出現,則表示主節點可能出現序列號分配錯誤等異常狀態,或者表示共識網路已經存在某種異常,則共識網路中的各副本節點可以觸發視圖切換協議以進行主節點的切換,也可以採取其他救濟措施。   特別說明的是,對於其他作為備份節點的副本節點而言,也可以對主節點發起的共識提議是否進行驗證。在驗證時,也需要判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數。具體實現時,備份節點可以根據自己所知的最新發起了共識提議的子集合的序列號(相當於第二序列號)和最新被成功共識且共識結果已成功入鏈的子集合的序列號(相當於第一序列號)進行判斷和驗證。   還需說明的是,主節點在發起共識提議時,應以合法的共識提議消息的形式向共識網路中所有副本節點廣播,從而發起針對新的子集合的這輪共識。主節點發送的共識提議中,可以包括主節點的簽名資訊,子集合的序列號,子集合的消息摘要等內容,供接收到共識提議的副本節點對該提議進行檢查。   以上闡述從不同角度介紹了本發明實施例在發起新的共識提議時多種可選的具體實施方式。事實上,在待處理請求集合中的請求尚未全部處理完畢時,可以循環執行上述步驟S103和步驟S105,即在執行S105向共識網路發起對新的子集合的共識提議,使得新的子集合進入共識階段之後,若待處理請求集合中仍然有未發起共識提議的待處理的共識請求,則主節點可返回執行步驟S103,重新確定已處於共識階段的子集合的數量,以便判斷是否可對新的子集合發起新的共識提議。依此類推,直至所有的待處理共識請求全部處理完畢,成功取得共識結果且共識結果成功入鏈。類似地,在將對新的子集合中包含的待處理的共識請求的共識結果寫入區塊鏈之後,也需要重新確定已處於共識階段的子集合的數量,以便確定共識網路是否可接納新的子集合,進而確定是否可對新的子集合發起新的共識提議。   現進一步舉例說明主節點在判斷是否可以針對新的子集合發起新的共識提議時的具體過程。假設預設併發數(記為w)取為5,最新被成功共識且共識結果被成功入鏈(可以理解為該子集合中所有待處理的共識請求被成功執行)的子集合的序列號(記為e)取為91,最新被發起共識提議的子集合的序列號記為p,則“處於共識階段的子集合的數量小於共識網路的預設併發數”這一條件,可以表示為:e≤p<(e+w)。在w=5,e=91的情況下,若要滿足“e≤p<e+w”的條件,p的可能取值有91, 92, 93, 94, 95,說明此時共識網路允許發起的共識提議可以為序列號為以下數值的子集合:92, 93, 94, 95, 96。假設共識網路確實同時發起了對這5個序列號所對應的子集合的共識提議,且序列號為93, 94, 95, 96的子集合的共識提議都已共識成功,但序列號為92的子集合因處理較慢尚處在共識階段中進行共識,則此時序列號為93~96的子集合需要等待序列號為92的子集合被成功共識且共識結果被成功入鏈之後,才可按照序列號的順序依次將共識結果寫入區塊鏈。而在此之前,e的值仍然取為91,而序列號為97的子集合仍然無法被發起共識提議,需要等待。   進一步地,在將對新的子集合中包含的待處理的共識請求的共識結果寫入區塊鏈時,為了確保區塊鏈資料的一致性,需要按照接收到待處理的共識請求的時間順序,將共識結果寫入區塊鏈。換言之,在將多個子集合所包含待處理的共識請求的共識結果寫入區塊鏈時,若採用以上舉例的方式(連續單調遞增)進行序列號的分配,則應先寫入序列號在先的子集合所對應的共識結果,後寫入序列號在後的子集合所對應的共識結果;而對每一子集合而言,應按照待處理的共識請求在其子集合內的時間順序,將請求所對應的共識結果寫入區塊鏈。   在上述本發明實施例中,一方面,從待處理請求集合中獲取一批待處理的共識請求構成子集合,並以子集合為單位,發起對這一批請求的共識提議,有利於提高對共識請求的處理效率。再一方面,在共識網路中設定預設併發數,允許多個子集合同時處於共識階段進行共識請求的處理,使得共識網路可以並行的處理多條待處理的共識請求,從而分屬於不同子集合的待處理的共識請求之間允許並行亂序處理,有利於提高對共識請求的處理效率,提升了共識網路的處理性能。   本發明實施例還提供了一種區塊鏈共識網路中處理共識請求的方法,適用於參與共識的各副本節點,具體流程參見圖2所示,包括:   S201:確定待處理請求集合,待處理請求集合中包含待處理的共識請求;   S203:在接收到對新的子集合的共識提議之後,判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數;   S205:若已處於共識階段的子集合的數量小於共識網路的預設併發數,則新的子集合進入共識階段,進行共識請求的處理。   對於各參與共識服務的副本節點而言,與前述主節點類似地,都會接收到客戶端發送來的待處理的共識請求。各副本節點對接收到的請求消息進行格式檢查後,將格式檢查通過的待處理的共識請求放入待處理請求集合中。   各副本節點可檢查自己是否為共識網路當前時刻的主節點,若為主節點,則可進一步參照圖1所示的方法確定是否發起新的共識提議;若不是主節點,則作為備份節點的副本節點將等待主節點發起的共識提議。   當副本節點接收到主節點對新的子集合發起的共識提議之後,副本節點將執行步驟S203,判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數,即副本節點在接收到新的共識提議後,也會對該共識提議的發起是否合法、是否正確進行驗證,這就有利於保證共識網路的正確性。而在此之前,還需確定已處於共識階段的子集合的數量,具體的確定方法可以與主節點在發起共識提議前對已處於共識階段的子集合的數量的確認方法一樣,區別僅在於,各副本節點均依據自己所知的情況進行計算,此處不再贅述。   需要說明的是,副本節點在接收到主節點發送的共識提議之後,還可以檢查接收到的共識提議格式上是否合法,該共識提議是否滿足接受該提議的三階段共識協議的條件,例如主節點的簽名是否合法、是否已接受序列號相同但消息摘要不同的共識提議等。若各項檢查均通過,新的子集合進入共識階段,進行共識請求的處理。   更具體地,新的子集合進入共識階段,進行共識請求的處理,可包括:   對新的子集合中包含的待處理的共識請求進行共識;   當滿足預設條件時,如序列號在新的子集合的序列號之前的子集合已結束時,共識階段將對新的子集合中包含的待處理的共識請求的共識結果寫入區塊鏈,結束共識階段。   更具體地,對新的子集合中包含的待處理的共識請求進行共識的過程,可以採用三階段共識機制來進行。需要特別說明的是,對每一條待處理的共識請求所進行的三階段共識,需按照三個階段的順序串行進行,以便保證共識結果的正確性。   以上本發明實施例所提供的區塊鏈共識網路中處理共識請求的方法,適用於拜占庭容錯的狀態機複製(State Machine Replication)演算法。通用的拜占庭容錯狀態機副本實現,其最重要的組件是一套拜占庭容錯的全序廣播(Total Order Broadcast)協議的實現。這是因為,狀態機副本模型需要滿足四個基本性質:   1、對於任意兩個正確的副本r和r',若它們都對狀態s應用操作o,則r與r'都將到達狀態s'。   2、任意兩個正確的副本r和r'的狀態都始於s0 。   3、任意兩個正確的副本r和r'都執行相同的操作序列:o0 , o1 , ..., oi 。   4、來自正確客戶端的操作請求總是會被執行。   而性質3與性質4就要求區塊鏈共識網路實現全序廣播協議。   採用本發明實施例即可實現滿足要求的全序廣播協議,具體方法大致如下:   1、對每一個從待處理請求集合中撈取出的、由正確的待處理的共識請求構成的子集合,分配一個唯一的序列號,該序列號為稠密自然數,滿足連續單調遞增的條件;   2、對每一個<子集合,序列號>對,在滿足共識網路的預設併發數條件的情況下,依次發起一個三階段共識,保證所有正確的副本節點就該<子集合,序列號>對中的每一條待處理的共識請求達成共識;   3、對所有已達成共識的<子集合、序列號>對,所有正確的副本節點根據序列號依次順序的執行對應的請求,將共識的結果寫入區塊鏈。   更具體地,本發明實施例中,被發起共識提議的子集合中的每一條待處理的共識請求可採用以下三階段共識的過程,得到共識的結果。具體過程可簡述如下:   1、預準備階段(pre-prepare階段)   客戶端向全網的副本節點廣播待處理的共識請求。當前主節點針對客戶端發送的請求,分配子集合,並相應的分配子集合的序列號。進一步地,當前主節點向全網的副本節點廣播預準備消息(PRE-PREPARE消息),相當於本發明實施例中所述的共識提議。   2、準備階段(prepare階段)   副本節點收到當前主節點發送的預準備消息後,按照一定規則驗證該消息並選擇是否接受。若接受,則該副本節點向全網廣播相應的準備消息(PREPARE消息);同時該副本等待並收集全網其他副本的準備消息。當副本收集到滿足一定數量的合法的準備消息時,則稱該副本獲得了“已準備證書”(prepared certificate)。   3、確認階段(commit階段)   獲得“已準備證書”的副本,立刻向全網廣播相應的確認消息;同時等待並收集全網其他副本的確認消息。當副本收集到滿足一定數量且合法的確認消息,則稱該副本獲得了“已確認證書”(committed certificate),相應的客戶端請求此時可被該副本執行。   本發明實施例採用以上所述的方法和手段,實現了對區塊鏈共識網路中共識請求的處理,並提高了對共識請求的處理效率,提升了共識網路的處理性能。   本發明實施例還提供一種區塊鏈共識網路中處理共識請求的裝置,參見圖3所示,包括:   集合確定模組101,確定待處理請求集合,待處理請求集合中包含待處理的共識請求;   數量確定模組103,確定已處於共識階段的子集合的數量,子集合由從待處理請求集合中獲取到的待處理的共識請求構成;   判斷模組105,判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數。   進一步地,上述裝置還可包括,參見圖4所示:   共識提議發起模組107,當已處於共識階段的子集合的數量小於共識網路的預設併發數時,向共識網路發起對新的子集合的共識提議,使得新的子集合進入共識階段進行共識請求的處理;其中,預設併發數為共識網路中允許同時處於共識階段的子集合的數量上限。   進一步地,上述裝置還可包括,參見圖4所示:   共識模組109,對新的子集合中包含的待處理的共識請求進行共識;   入鏈模組111,當滿足預設條件時,將對新的子集合中包含的待處理的共識請求的共識結果寫入區塊鏈,結束共識階段。   由於上述裝置與前文實施例中所介紹的方法相對應,因此,前文實施例中的相關描述均適用於此處所稱的區塊鏈共識網路中處理共識請求的裝置,不再贅述。   圖5是本發明的一個實施例電子設備的結構示意圖。請參考圖5,在硬體層面,該電子設備包括處理器,可選地還包括內部匯流排、網路介面、記憶體。其中,記憶體可能包含內部記憶體,例如高速隨機存取記憶體(Random-Access Memory,RAM),也可能還包括非易失性記憶體(non-volatile memory),例如至少1個磁碟記憶體等。當然,該電子設備還可能包括其他業務所需要的硬體。   處理器、網路介面和記憶體可以藉由內部匯流排相互連接,該內部匯流排可以是ISA(Industry Standard Architecture,工業標準架構)匯流排、PCI(Peripheral Component Interconnect,週邊組件互連)匯流排或EISA(Extended Industry Standard Architecture,延伸工業標準架構)匯流排等。匯流排可以分為位址匯流排、資料匯流排、控制匯流排等。為便於表示,圖5中僅用一個雙向箭頭表示,但並不表示僅有一根匯流排或一種類型的匯流排。   記憶體,用於存放程式。具體地,程式可以包括程式碼,程式碼包括電腦操作指令。記憶體可以包括內部記憶體和非易失性記憶體,並向處理器提供指令和資料。   處理器從非易失性記憶體中讀取對應的電腦程式到內部記憶體中然後運行,在邏輯層面上形成區塊鏈共識網路中處理共識請求的裝置。處理器,執行記憶體所存放的程式,並具體用於執行以下操作:   確定待處理請求集合,待處理請求集合中包含待處理的共識請求;   確定已處於共識階段的子集合的數量,子集合由從待處理請求集合中獲取到的待處理的共識請求構成;   當已處於共識階段的子集合的數量小於共識網路的預設併發數時,向共識網路發起對新的子集合的共識提議,使得新的子集合進入共識階段進行共識請求的處理;其中,預設併發數為共識網路中允許同時處於共識階段的子集合的數量上限。   上述如本發明圖1所示實施例揭示的區塊鏈共識網路中處理共識請求的裝置執行的方法可以應用於處理器中,或者由處理器實現。處理器可能是一種集成電路晶片,具有信號的處理能力。在實現過程中,上述方法的各步驟可以藉由處理器中的硬體的集成邏輯電路或者軟體形式的指令完成。上述的處理器可以是通用處理器,包括中央處理器(Central Processing Unit,CPU)、網路處理器(Network Processor,NP)等;還可以是數位信號處理器(Digital Signal Processor,DSP)、專用集成電路(Application Specific Integrated Circuit,ASIC)、現場可程式閘陣列(Field-Programmable Gate Array,FPGA)或者其他可程式邏輯裝置、分立閘或者電晶體邏輯裝置、分立硬體組件。可以實現或者執行本發明實施例中的公開的各方法、步驟及邏輯方塊圖。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。結合本發明實施例所公開的方法的步驟可以直接體現為硬體解碼處理器執行完成,或者用解碼處理器中的硬體及軟體模組組合執行完成。軟體模組可以位於隨機記憶體,快閃記憶體、唯讀記憶體,可程式唯讀記憶體或者電可擦寫可程式記憶體、暫存器等本領域成熟的儲存媒體中。該儲存媒體位於記憶體,處理器讀取記憶體中的資訊,結合其硬體完成上述方法的步驟。   該電子設備還可執行圖1中區塊鏈共識網路中處理共識請求的裝置執行的方法,並實現區塊鏈共識網路中處理共識請求的裝置在圖1所示實施例的功能,本發明實施例在此不再贅述。   本發明實施例還提出了一種電腦可讀儲存媒體,該電腦可讀儲存媒體儲存一個或多個程式,該一個或多個程式包括指令,該指令當被包括多個應用程式的電子設備執行時,能夠使該電子設備執行圖1所示實施例中區塊鏈共識網路中處理共識請求的裝置執行的方法,並具體用於執行:   確定待處理請求集合,待處理請求集合中包含待處理的共識請求;   確定已處於共識階段的子集合的數量,子集合由從待處理請求集合中獲取到的待處理的共識請求構成;   當已處於共識階段的子集合的數量小於共識網路的預設併發數時,向共識網路發起對新的子集合的共識提議,使得新的子集合進入共識階段進行共識請求的處理;其中,預設併發數為共識網路中允許同時處於共識階段的子集合的數量上限。   圖6是本發明的一個實施例電子設備的結構示意圖。請參考圖6,在硬體層面,該電子設備包括處理器,可選地還包括內部匯流排、網路介面、記憶體。其中,記憶體可能包含內部記憶體,例如高速隨機存取記憶體(Random-Access Memory,RAM),也可能還包括非易失性記憶體(non-volatile memory),例如至少1個磁碟記憶體等。當然,該電子設備還可能包括其他業務所需要的硬體。   處理器、網路介面和記憶體可以藉由內部匯流排相互連接,該內部匯流排可以是ISA(Industry Standard Architecture,工業標準架構)匯流排、PCI(Peripheral Component Interconnect,週邊組件互連)匯流排或EISA(Extended Industry Standard Architecture,延伸工業標準架構)匯流排等。匯流排可以分為位址匯流排、資料匯流排、控制匯流排等。為便於表示,圖6中僅用一個雙向箭頭表示,但並不表示僅有一根匯流排或一種類型的匯流排。   記憶體,用於存放程式。具體地,程式可以包括程式碼,程式碼包括電腦操作指令。記憶體可以包括內部記憶體和非易失性記憶體,並向處理器提供指令和資料。   處理器從非易失性記憶體中讀取對應的電腦程式到內部記憶體中然後運行,在邏輯層面上形成區塊鏈共識網路中處理共識請求的裝置。處理器,執行記憶體所存放的程式,並具體用於執行以下操作:   確定待處理請求集合,待處理請求集合中包含待處理的共識請求;   在接收到對新的子集合的共識提議之後,判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數;其中,子集合由主節點從待處理請求集合中獲取到的待處理的共識請求構成;   若已處於共識階段的子集合的數量小於共識網路的預設併發數,則新的子集合進入共識階段,進行共識請求的處理。   上述如本發明圖2所示實施例揭示的區塊鏈共識網路中處理共識請求的裝置執行的方法可以應用於處理器中,或者由處理器實現。處理器可能是一種集成電路晶片,具有信號的處理能力。在實現過程中,上述方法的各步驟可以藉由處理器中的硬體的集成邏輯電路或者軟體形式的指令完成。上述的處理器可以是通用處理器,包括中央處理器(Central Processing Unit,CPU)、網路處理器(Network Processor,NP)等;還可以是數位信號處理器(Digital Signal Processor,DSP)、專用集成電路(Application Specific Integrated Circuit,ASIC)、現場可程式閘陣列(Field-Programmable Gate Array,FPGA)或者其他可程式邏輯裝置、分立閘或者電晶體邏輯裝置、分立硬體組件。可以實現或者執行本發明實施例中的公開的各方法、步驟及邏輯方塊圖。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。結合本發明實施例所公開的方法的步驟可以直接體現為硬體解碼處理器執行完成,或者用解碼處理器中的硬體及軟體模組組合執行完成。軟體模組可以位於隨機記憶體,快閃記憶體、唯讀記憶體,可程式唯讀記憶體或者電可擦寫可程式記憶體、暫存器等本領域成熟的儲存媒體中。該儲存媒體位於記憶體,處理器讀取記憶體中的資訊,結合其硬體完成上述方法的步驟。   該電子設備還可執行圖2中區塊鏈共識網路中處理共識請求的裝置執行的方法,並實現區塊鏈共識網路中處理共識請求的裝置在圖2所示實施例的功能,本發明實施例在此不再贅述。   本發明實施例還提出了一種電腦可讀儲存媒體,該電腦可讀儲存媒體儲存一個或多個程式,該一個或多個程式包括指令,該指令當被包括多個應用程式的電子設備執行時,能夠使該電子設備執行圖2所示實施例中區塊鏈共識網路中處理共識請求的裝置執行的方法,並具體用於執行:   確定待處理請求集合,待處理請求集合中包含待處理的共識請求;   在接收到對新的子集合的共識提議之後,判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數;其中,子集合由主節點從待處理請求集合中獲取到的待處理的共識請求構成;   若已處於共識階段的子集合的數量小於共識網路的預設併發數,則新的子集合進入共識階段,進行共識請求的處理。   本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。   本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式資料處理設備的處理器以產生一個機器,使得藉由電腦或其他可程式資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。   這些電腦程式指令也可儲存在能引導電腦或其他可程式資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。   這些電腦程式指令也可裝載到電腦或其他可程式資料處理設備上,使得在電腦或其他可程式設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。   在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和內部記憶體。   內部記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性內部記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。內部記憶體是電腦可讀媒體的示例。   電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變隨機存取記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式唯讀記憶體(EEPROM)、快閃記憶體或其他內部記憶體技術、唯讀光碟(CD-ROM)、數位化多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁碟儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。   還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。   本領域技術人員應明白,本發明的實施例可提供為方法、系統或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。   以上所述僅為本發明的實施例而已,並不用於限制本發明。對於本領域技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本發明的申請專利範圍之內。
S101~S105‧‧‧步驟
S201~S205‧‧‧步驟
101‧‧‧集合確定模組
103‧‧‧數量確定模組
105‧‧‧判斷模組
107‧‧‧共識提議發起模組
109‧‧‧共識模組
111‧‧‧入鏈模組
此處所說明的圖式用來提供對本發明的進一步理解,構成本發明的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在圖式中:   圖1為本發明實施例提供的一種區塊鏈共識網路中處理共識請求的方法的流程示意圖;   圖2為本發明實施例提供的另一種區塊鏈共識網路中處理共識請求的方法的流程示意圖;   圖3為本發明實施例提供的一種區塊鏈共識網路中處理共識請求的裝置的結構示意圖;   圖4為本發明實施例提供的第二種區塊鏈共識網路中處理共識請求的裝置的結構示意圖;   圖5為本發明實施例提供的一種電子設備的結構示意圖;   圖6為本發明實施例提供的另一種電子設備的結構示意圖。

Claims (22)

  1. 一種區塊鏈共識網路中處理共識請求的方法,包括:   確定待處理請求集合,該待處理請求集合中包含待處理的共識請求;   確定已處於共識階段的子集合的數量,該子集合由從該待處理請求集合中獲取到的待處理的共識請求構成;   當已處於共識階段的子集合的數量小於共識網路的預設併發數時,向該共識網路發起對新的子集合的共識提議,使得該新的子集合進入該共識階段進行共識請求的處理;其中,該預設併發數為該共識網路中允許同時處於該共識階段的子集合的數量上限。
  2. 如申請專利範圍第1項所述方法,在確定待處理請求集合之後,該方法還包括:   從該待處理請求集合中獲取待處理的共識請求,構成該子集合。
  3. 如申請專利範圍第2項所述方法,從該待處理請求集合中獲取待處理的共識請求,構成該子集合之後,該方法還包括:   為該子集合分配序列號,該序列號為連續單調遞增的自然數。
  4. 如申請專利範圍第3項所述方法,確定已處於共識階段的子集合的數量,包括:   依據已結束共識階段的子集合的序列號,確定第一序列號;依據已進入共識階段的子集合的序列號,確定第二序列號;   依據該第一序列號和該第二序列號,確定已處於共識階段的子集合的數量。
  5. 如申請專利範圍第4項所述方法,依據已結束共識階段的子集合的序列號,確定第一序列號,包括:將已結束共識階段的多個子集合的序列號中的最大者,確定為該第一序列號;   依據已進入共識階段的子集合的序列號,確定第二序列號,包括:將已進入共識階段的多個子集合的序列號中的最大者,確定為該第二序列號;   則依據該第一序列號和該第二序列號,確定已處於共識階段的子集合的數量,包括:   將該第一序列號和該第二序列號的差值,確定為處於共識階段的子集合的數量。
  6. 如申請專利範圍第5項所述方法,當處於共識階段的子集合的數量小於共識網路的預設併發數時,向該共識網路發起對新的子集合的共識提議,使得該新的子集合進入該共識階段,包括:   當處於共識階段的子集合的數量小於共識網路的預設併發數時,依據該第二序列號確定該新的子集合及其序列號;   向該共識網路發起對該新的子集合的共識提議,使得該新的子集合進入該共識階段。
  7. 如申請專利範圍第6項所述方法,依據該第二序列號確定該新的子集合及其序列號,包括:   從該待處理請求集合中獲取待處理的共識請求,構成該新的子集合;   依據該第二序列號,將該第二序列號的數值加一,作為該新的子集合的序列號。
  8. 如申請專利範圍第6項所述方法,依據該第二序列號確定該新的子集合及其序列號,包括:   依據該第二序列號,將該第二序列號的數值加一,作為該新的子集合的序列號;   依據該新的子集合的序列號,確定該新的子集合。
  9. 如申請專利範圍第1~8項之任一所述方法,確定已處於共識階段的子集合的數量,包括:   在向該共識網路發起對新的子集合的共識提議,使得該新的子集合進入該共識階段之後,重新確定已處於共識階段的子集合的數量。
  10. 如申請專利範圍第1~8項之任一所述方法,在向該共識網路發起對新的子集合的共識提議之後,該方法還包括:   對該新的子集合中包含的待處理的共識請求進行共識;   當滿足預設條件時,將對該新的子集合中包含的待處理的共識請求的共識結果寫入該區塊鏈,結束該共識階段。
  11. 如申請專利範圍第10項所述方法,滿足預設條件包括:   序列號在該新的子集合的序列號之前的子集合已結束該共識階段。
  12. 如申請專利範圍第10項所述方法,確定已處於共識階段的子集合的數量,包括:   在將對該新的子集合中包含的待處理的共識請求的共識結果寫入該區塊鏈之後,重新確定已處於共識階段的子集合的數量。
  13. 如申請專利範圍第10項所述方法,將對該新的子集合中包含的待處理的共識請求的共識結果寫入該區塊鏈,包括:   將對該新的子集合中包含的待處理的共識請求的共識結果,按照接收到該待處理的共識請求的時間順序,寫入該區塊鏈。
  14. 一種區塊鏈共識網路中處理共識請求的方法,包括:   確定待處理請求集合,該待處理請求集合中包含待處理的共識請求;   在接收到對新的子集合的共識提議之後,判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數;其中,該子集合由主節點從該待處理請求集合中獲取到的待處理的共識請求構成;   若已處於共識階段的子集合的數量小於共識網路的預設併發數,則該新的子集合進入該共識階段,進行共識請求的處理。
  15. 如申請專利範圍第14項所述方法,在判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數之前,該方法還包括:   確定已處於共識階段的子集合的數量。
  16. 如申請專利範圍第14項所述方法,該新的子集合進入該共識階段,進行共識請求的處理,包括:   對該新的子集合中包含的待處理的共識請求進行共識;   當滿足預設條件時,將對該新的子集合中包含的待處理的共識請求的共識結果寫入該區塊鏈,結束該共識階段。
  17. 如申請專利範圍第16項所述方法,滿足預設條件,包括:   序列號在該新的子集合的序列號之前的子集合已結束該共識階段。
  18. 一種區塊鏈共識網路中處理共識請求的裝置,包括:   集合確定模組,確定待處理請求集合,該待處理請求集合中包含待處理的共識請求;   數量確定模組,確定已處於共識階段的子集合的數量,該子集合由從該待處理請求集合中獲取到的待處理的共識請求構成;   判斷模組,判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數。
  19. 如申請專利範圍第18項所述裝置,還包括:   共識提議發起模組,當已處於共識階段的子集合的數量小於共識網路的預設併發數時,向該共識網路發起對新的子集合的共識提議,使得該新的子集合進入該共識階段進行共識請求的處理;其中,該預設併發數為該共識網路中允許同時處於該共識階段的子集合的數量上限。
  20. 如申請專利範圍第18項所述裝置,還包括:   共識模組,對該新的子集合中包含的待處理的共識請求進行共識;   入鏈模組,當滿足預設條件時,將對該新的子集合中包含的待處理的共識請求的共識結果寫入該區塊鏈,結束該共識階段。
  21. 一種電子設備,包括:   處理器;以及   被安排成儲存電腦可執行指令的記憶體,該可執行指令在被執行時使該處理器執行以下操作:   確定待處理請求集合,該待處理請求集合中包含待處理的共識請求;   確定已處於共識階段的子集合的數量,該子集合由從該待處理請求集合中獲取到的待處理的共識請求構成;   當已處於共識階段的子集合的數量小於共識網路的預設併發數時,向該共識網路發起對新的子集合的共識提議,使得該新的子集合進入該共識階段進行共識請求的處理;其中,該預設併發數為該共識網路中允許同時處於該共識階段的子集合的數量上限。
  22. 一種電子設備,包括:   處理器;以及   被安排成儲存電腦可執行指令的記憶體,該可執行指令在被執行時使該處理器執行以下操作:   確定待處理請求集合,該待處理請求集合中包含待處理的共識請求;   在接收到對新的子集合的共識提議之後,判斷已處於共識階段的子集合的數量是否小於共識網路的預設併發數;其中,該子集合由主節點從該待處理請求集合中獲取到的待處理的共識請求構成;   若已處於共識階段的子集合的數量小於共識網路的預設併發數,則該新的子集合進入該共識階段,進行共識請求的處理。
TW107115874A 2017-07-14 2018-05-10 區塊鏈共識網路中處理共識請求的方法、裝置和電子設備 TWI714847B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
??201710573527.7 2017-07-14
CN201710573527.7A CN107528882B (zh) 2017-07-14 2017-07-14 区块链共识网络中处理共识请求的方法、装置和电子设备
CN201710573527.7 2017-07-14

Publications (2)

Publication Number Publication Date
TW201909613A true TW201909613A (zh) 2019-03-01
TWI714847B TWI714847B (zh) 2021-01-01

Family

ID=60749064

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107115874A TWI714847B (zh) 2017-07-14 2018-05-10 區塊鏈共識網路中處理共識請求的方法、裝置和電子設備

Country Status (6)

Country Link
US (4) US10693994B2 (zh)
EP (1) EP3652691A1 (zh)
CN (2) CN112804349B (zh)
SG (1) SG11202000346YA (zh)
TW (1) TWI714847B (zh)
WO (1) WO2019014531A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI709063B (zh) * 2019-03-18 2020-11-01 開曼群島商創新先進技術有限公司 用於結束視域變換協定的系統和方法
TWI740423B (zh) * 2019-05-31 2021-09-21 開曼群島商創新先進技術有限公司 在基於區塊鏈的私有交易中提供隱私和安全保護的系統和方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170011460A1 (en) * 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
CN108512775A (zh) * 2018-04-16 2018-09-07 杭州秘猿科技有限公司 一种排序交易队列的方法及装置
CN108769150B (zh) * 2018-05-14 2021-11-12 百度在线网络技术(北京)有限公司 区块链网络的数据处理方法、装置、集群节点和存储介质
CN111899005A (zh) * 2018-05-29 2020-11-06 创新先进技术有限公司 基于区块链的交易处理方法及装置、电子设备
CN108805569A (zh) 2018-05-29 2018-11-13 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
US10862908B2 (en) * 2018-08-09 2020-12-08 Hrl Laboratories, Llc System and method for consensus ordering of broadcast messages
CN109462631B (zh) * 2018-08-31 2021-11-19 腾讯科技(深圳)有限公司 数据处理方法、装置、存储介质及电子装置
CN112492006B (zh) * 2018-10-31 2023-12-05 创新先进技术有限公司 一种基于区块链的节点管理方法和装置
SG11201906834SA (en) 2018-12-13 2019-08-27 Alibaba Group Holding Ltd Achieving consensus among network nodes in a distributed system
BR112019014815A2 (pt) 2018-12-13 2020-02-27 Alibaba Group Holding Limited Método implementado por computador, meio de armazenamento legível por computador não transitório e sistema
KR102134549B1 (ko) * 2018-12-13 2020-07-27 알리바바 그룹 홀딩 리미티드 분산 시스템에서 프라이머리 노드의 체인지 수행
US11934425B1 (en) * 2019-02-04 2024-03-19 Harbor Technologies, LLC Synchronizing a centralized state on a distributed chain database with an off-chain state to improve trade authorization practices
US10938750B2 (en) 2019-03-18 2021-03-02 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
US11347598B2 (en) 2019-03-18 2022-05-31 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
CA3058233C (en) * 2019-03-18 2023-03-07 Alibaba Group Holding Limited Consensus system downtime recovery
EP3596888B1 (en) * 2019-03-18 2022-08-03 Advanced New Technologies Co., Ltd. System and method for ending view change protocol
WO2019170169A2 (en) * 2019-06-05 2019-09-12 Alibaba Group Holding Limited Consensus system and method
CN110730204B (zh) * 2019-09-05 2022-09-02 创新先进技术有限公司 区块链网络中删除节点的方法和区块链系统
CN110728515A (zh) * 2019-09-28 2020-01-24 北京瑞卓喜投科技发展有限公司 基于区块链的业务处理方法及装置
CN110766552B (zh) * 2019-09-28 2023-10-20 北京瑞卓喜投科技发展有限公司 基于区块链的业务处理方法及装置
WO2021073756A1 (en) * 2019-10-18 2021-04-22 DFINITY Stiftung Read access for computational results of a distributed network
CN110784461B (zh) * 2019-10-23 2020-05-12 北方工业大学 一种基于区块链的安全6LoWPAN通信方法及系统
CN111274313B (zh) * 2020-01-12 2023-05-30 杭州复杂美科技有限公司 分段共识方法、设备和存储介质
CN111277645B (zh) * 2020-01-16 2023-02-10 深圳市迅雷网络技术有限公司 主备节点热切换方法、区块链系统、区块链节点及介质
US20210279727A1 (en) * 2020-03-06 2021-09-09 Guardtime Sa Verifiably Unique Transfer of Exclusive Control of Data Units
CN111510484B (zh) * 2020-04-10 2023-07-04 金蝶软件(中国)有限公司 区块链处理方法、系统、装置、计算机设备和存储介质
CN113301002B (zh) * 2020-04-24 2023-05-09 阿里巴巴集团控股有限公司 一种信息处理方法、装置、电子设备以及存储介质
CN111556133B (zh) * 2020-04-26 2023-03-14 布比(北京)网络技术有限公司 区块链共识方法、系统及计算机存储介质、电子设备
CN111522822A (zh) 2020-07-03 2020-08-11 支付宝(杭州)信息技术有限公司 一种区块链共识方法、装置及电子设备
CN111522683B (zh) * 2020-07-03 2020-10-02 支付宝(杭州)信息技术有限公司 蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置
CN111526165B (zh) 2020-07-03 2020-10-09 支付宝(杭州)信息技术有限公司 联盟链中的共识方法和系统
CN111523899B (zh) * 2020-07-03 2021-09-07 支付宝(杭州)信息技术有限公司 联盟链的共识方法、数据校验方法、装置及系统
CN112202933B (zh) * 2020-12-08 2021-03-05 腾讯科技(深圳)有限公司 区块链网络的信息处理方法、装置及节点设备
CN113204432A (zh) * 2021-02-03 2021-08-03 支付宝(杭州)信息技术有限公司 区块链中的交易处理方法、装置及电子设备
CN113395165B (zh) * 2021-05-28 2022-08-16 网易(杭州)网络有限公司 共识流程处理方法、装置、存储介质及计算机设备
KR102652737B1 (ko) * 2021-09-29 2024-04-01 한양대학교 산학협력단 블록체인 네트워크를 위한 효율적인 듀얼모드 합의 프로토콜
CN116095090A (zh) * 2021-11-08 2023-05-09 华为技术有限公司 一种通信方法及通信装置
CN114726514B (zh) * 2022-03-21 2024-03-22 支付宝(杭州)信息技术有限公司 数据的处理方法和装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8849971B2 (en) * 2008-05-28 2014-09-30 Red Hat, Inc. Load balancing in cloud-based networks
CN101958804B (zh) * 2010-09-20 2014-05-28 中兴通讯股份有限公司 提升告警处理效率的方法、服务器及系统
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
CN103218455B (zh) * 2013-05-07 2014-04-16 中国人民解放军国防科学技术大学 Key-Value数据库用户请求的高速并发处理方法
US9270617B2 (en) * 2013-06-05 2016-02-23 Sap Se Load controller framework
US9853819B2 (en) 2013-08-05 2017-12-26 Guardtime Ip Holdings Ltd. Blockchain-supported, node ID-augmented digital record signature method
US9608829B2 (en) 2014-07-25 2017-03-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
US20160098723A1 (en) 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
US10409827B2 (en) 2014-10-31 2019-09-10 21, Inc. Digital currency mining circuitry having shared processing logic
US9436923B1 (en) 2015-02-26 2016-09-06 Skuchain, Inc. Tracking unitization occurring in a supply chain
US9397985B1 (en) 2015-04-14 2016-07-19 Manifold Technology, Inc. System and method for providing a cryptographic platform for exchanging information
TWI676943B (zh) 2015-05-06 2019-11-11 現代財富控股有限公司 加密貨幣的電子交易系統及其方法
US10812274B2 (en) 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US10635471B2 (en) * 2015-05-15 2020-04-28 Joshua Paul Davis System and method for an autonomous entity
US20170011460A1 (en) * 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
EP3362965A4 (en) 2015-10-13 2019-08-07 Transactive Grid Inc. USING A DISTRIBUTED CONSENSUS CONTROL BASED ON A BLOCK CHAIN
US20170132615A1 (en) 2015-11-11 2017-05-11 Bank Of America Corporation Block chain alias for person-to-person payments
US9786737B2 (en) 2015-12-03 2017-10-10 International Business Machines Corporation FinFET with reduced parasitic capacitance
CA3018326A1 (en) * 2016-03-21 2017-09-28 Mastercard International Incorporated Method and system for recording point to point transaction processing
CN106060036B (zh) 2016-05-26 2019-07-16 布比(北京)网络技术有限公司 去中心化共识方法及装置
CN105976231A (zh) 2016-06-24 2016-09-28 深圳前海微众银行股份有限公司 基于区块链智能合约的资产管理方法及节点
CN106445711B (zh) * 2016-08-28 2019-04-30 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
CN106406896B (zh) * 2016-09-27 2020-03-17 北京天德科技有限公司 一种并行PipeLine技术的区块链建块方法
US20180216946A1 (en) * 2016-09-30 2018-08-02 Mamadou Mande Gueye Method and system for facilitating provisioning of social activity data to a mobile device based on user preferences
EP3281115B1 (en) * 2016-10-04 2019-06-19 Nec Corporation Method and system for byzantine fault-tolerance replicating of data on a plurality of servers
US10862959B2 (en) 2016-11-28 2020-12-08 Keir Finlow-Bates Consensus system and method for adding data to a blockchain
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
CN106878396B (zh) * 2017-01-19 2020-12-15 布比(北京)网络技术有限公司 贸易信息的处理方法、装置和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI709063B (zh) * 2019-03-18 2020-11-01 開曼群島商創新先進技術有限公司 用於結束視域變換協定的系統和方法
TWI740423B (zh) * 2019-05-31 2021-09-21 開曼群島商創新先進技術有限公司 在基於區塊鏈的私有交易中提供隱私和安全保護的系統和方法

Also Published As

Publication number Publication date
US10693994B2 (en) 2020-06-23
CN107528882A (zh) 2017-12-29
US20190020729A1 (en) 2019-01-17
US10897522B2 (en) 2021-01-19
US20200244764A1 (en) 2020-07-30
CN112804349B (zh) 2023-07-04
US10721326B2 (en) 2020-07-21
SG11202000346YA (en) 2020-02-27
CN107528882B (zh) 2020-12-25
CN112804349A (zh) 2021-05-14
EP3652691A1 (en) 2020-05-20
US20210058486A1 (en) 2021-02-25
US20200162579A1 (en) 2020-05-21
TWI714847B (zh) 2021-01-01
US11095750B2 (en) 2021-08-17
WO2019014531A1 (en) 2019-01-17

Similar Documents

Publication Publication Date Title
TWI714847B (zh) 區塊鏈共識網路中處理共識請求的方法、裝置和電子設備
US11368317B2 (en) Consensus method of consortium blockchain, and consortium blockchain system
CN107392608B (zh) 基于区块链系统的数字资产交易方法及区块链系统
CN106406896B (zh) 一种并行PipeLine技术的区块链建块方法
CN109815373B (zh) 数据存储的控制方法、装置、服务器及可读存储介质
US10382380B1 (en) Workload management service for first-in first-out queues for network-accessible queuing and messaging services
AU2018430192A1 (en) Blockchain system and method
JP2021529378A (ja) ブロックチェーンの分散台帳を実装する分散調整エンジンベースの取引方法、装置、及びシステム
US10387307B2 (en) Lock-free raid implementation in multi-queue architecture
WO2021036253A1 (zh) 在区块链中并发执行交易的方法和装置
WO2021036258A1 (zh) 在区块链中并发执行交易的方法和装置
WO2023231336A1 (zh) 执行交易的方法和区块链节点
WO2021051782A1 (zh) 区块链的共识方法、装置及设备
WO2023184881A1 (zh) 提案共识执行方法、区块链系统、设备和存储介质
CN114244835A (zh) 基于区块链的去中心化自适应协同训练方法和装置
WO2023040453A1 (zh) 一种交易信息处理方法及装置
CN108206839A (zh) 一种基于多数派数据存储方法、装置及系统
WO2021045829A1 (en) Byzantine consensus without centralized ordering
WO2021036259A1 (zh) 在区块链中并发执行交易的方法和装置
CN109919768B (zh) 区块生成方法、装置、介质和计算设备
TWI677220B (zh) 應用分片機制之區塊網的區塊產生方法及區塊網系統
US11734230B2 (en) Traffic redundancy deduplication for blockchain recovery
US11960502B2 (en) Byzantine fault tolerance protocol for backing up blockchains
WO2021057165A1 (zh) 在区块链中并发执行交易的方法和装置
CN112150286A (zh) 基于区块链的交易处理方法、装置、电子设备及存储介质