TW201837748A - 一種基於區塊鏈的共識方法及裝置 - Google Patents
一種基於區塊鏈的共識方法及裝置 Download PDFInfo
- Publication number
- TW201837748A TW201837748A TW106140511A TW106140511A TW201837748A TW 201837748 A TW201837748 A TW 201837748A TW 106140511 A TW106140511 A TW 106140511A TW 106140511 A TW106140511 A TW 106140511A TW 201837748 A TW201837748 A TW 201837748A
- Authority
- TW
- Taiwan
- Prior art keywords
- consensus
- server
- message
- database
- gateway
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2048—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2041—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/44—Arrangements for executing specific programs
-
- 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/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- 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
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
Abstract
本案實施例公開了一種基於區塊鏈的共識方法及裝置,一個區塊鏈節點包括第一伺服器、第二伺服器和至少一個資料庫,所述方法包括:資料庫儲存執行共識所需的共識資料,供第一伺服器和第二伺服器在執行共識的過程中進行調用,第一伺服器在執行共識前或執行共識過程中出現異常,第二伺服器代替第一伺服器,從資料庫中獲取共識資料,並根據共識資料執行共識,產生共識結果,第二伺服器將共識結果儲存在資料庫中。利用本案實施例,節點中正常的伺服器能夠接替異常的伺服器,從資料庫中獲取共識資料執行共識,從而保證了共識的正常進行,能夠在一定程度上提升共識過程的成功率,進而提升區塊鏈的事務處理效率。
Description
本案關於計算機技術領域,尤其關於一種基於區塊鏈的共識方法及裝置。
目前,區塊鏈技術得到了廣泛應用,其去中心化的模式保證了資料不易被篡改,從而提升了安全性。 在實際應用場景下,區塊鏈能夠為客戶端提供相對應的事務服務,其中的區塊鏈節點可以針對使用者的事務請求進行處理,產生相對應的處理結果。但區塊鏈中可能包含惡意節點或故障節點,這無疑將影響客戶端所獲得的事務服務。為此,區塊鏈中各節點之間可進行諸如拜占庭容錯算法(Practical Byzantine Fault Tolerance,PBFT)的共識過程,以使得各節點能夠共同認可正確的處理結果。 以基於PBFT的共識過程為例,PBFT的共識過程包含預準備階段(pre-prepare)、準備階段(prepare)、確認階段(commit),如圖1所示。接收到客戶端(Client,圖1中以C表示)的事務請求的節點(如圖中編號為0的節點),會將該事務請求發送給其他節點(如圖中編號為1、2、3的節點)進行共識。在每個階段,各節點均會向彼此發送共識訊息,使得各節點進行共識。經過三個階段的共識過程,可視為共識達成,各節點便會分別處理事務請求,並向客戶端反饋處理結果。 在現有技術中的一些場景下,為了能夠處理大量的共識過程,上述區塊鏈的每個節點中,通常設置多個伺服器,不同的伺服器可分別參與不同的共識過程,以提升區塊鏈的處理量及處理效率。 但是,在實際應用中,節點中的伺服器存在下線或重啟等異常現象,以PBFT的共識過程為例,一旦伺服器出現異常現象,將導致伺服器不能繼續參與共識並影響共識達成的概率,若某次共識未達成,則無論區塊鏈處於任何一種共識階段,均會從預準備階段起重新發起共識。顯然,這無疑會影響區塊鏈共識的效率,並進一步影響區塊鏈對事務處理的效率。
本案實施例提供一種基於區塊鏈的共識方法及裝置,用以解決目前節點中的伺服器發生異常時導致共識效率較低的問題。 本案實施例提供的一種基於區塊鏈的共識方法,一個區塊鏈節點包括第一伺服器、第二伺服器和至少一個資料庫構成,所述方法包括: 所述資料庫儲存執行共識所需的共識資料,供所述第一伺服器和所述第二伺服器在執行共識的過程中進行調用; 所述第一伺服器在執行共識前或執行共識時出現異常; 所述第二伺服器代替所述第一伺服器,從所述資料庫中獲取共識資料,並根據所述共識資料執行共識,產生共識結果; 所述第二伺服器將所述共識結果儲存在所述資料庫中。 本案實施例提供的一種基於區塊鏈的共識裝置,一個區塊鏈節點包括第一伺服器、第二伺服器和至少一個資料庫,其中, 所述資料庫儲存執行共識所需的共識資料,供所述第一伺服器和所述第二伺服器在執行共識的過程中進行調用; 所述第一伺服器在執行共識前或執行共識時出現異常; 所述裝置包括: 獲取模組,根據所述共識訊息,從所述資料庫中獲取與所述共識訊息對應的共識資料; 共識執行模組,根據所述共識資料執行共識,產生共識結果; 儲存模組,將所述共識訊息及所述共識結果儲存在所述資料庫中。 本案實施例提供一種基於區塊鏈的共識方法及裝置,對於區塊鏈節點中的每一伺服器而言,參與了某次共識過程的伺服器,會將不同共識階段的共識訊息或自身所產生的當前階段的共識結果,進行“公開”保存,即,儲存在該區塊鏈節點內的資料庫中,而該資料庫對於該區塊鏈節點內的所有伺服器均可使用,這樣一來,如果參與某次共識的伺服器出現下線或重啟等異常現象,該伺服器的共識資料可被該區塊鏈節點內的其他伺服器使用,並可代替出現異常現象的伺服器繼續執行相對應的共識過程。 顯然,相較於現有技術,區塊鏈節點中的各伺服器將共識資料儲存在該區塊鏈節點內資料庫的方式,即使在某一伺服器出現異常時,其他正常運行的伺服器也能夠從資料庫中獲取到相對應的共識資料,接替異常的伺服器完成共識,也就保證了共識過程的正常進行,在減少重新發起共識次數的同時,能夠在一定程度上提升共識過程的成功率,進而提升區塊鏈的事務處理效率。
為使本案的目的、技術方案和優點更加清楚,下面將結合本案具體實施例及相對應的附圖對本案技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本案一部分實施例,而不是全部的實施例。基於本案中的實施例,本領域普通技術人員在沒有做出進步性勞動前提下所獲得的所有其他實施例,都屬本案保護的範圍。 正如前述,在任意一次區塊鏈內各節點之間的共識過程中,任一節點內參與本次共識的伺服器可能會出現下線或重啟等異常現象,導致該伺服器不能繼續參與共識,從而有可能會降低共識成功率,特別是在採用PBFT共識的情況下,一定次數的共識失敗,便可能觸發PBFT下的垃圾回收機制,清除各伺服器中的共識資料,顯然,這無疑將影響區塊鏈的事務處理。 基於此,本案實施例中提供一種基於區塊鏈的共識方法,透過將共識資料儲存在區塊鏈節點中的資料庫,使得當伺服器出現異常(下線或重啟)時,該區塊鏈節點中其他正常運行的伺服器也能夠讀取已儲存在資料庫中的共識資料,代替出現異常現象的伺服器繼續執行共識。當然,本案實施例中的基於區塊鏈的共識方法並不僅限於基於PBFT的共識過程,還可用於諸如Paxos等共識算法的共識過程。 需要說明的是,在本案實施例中,基於區塊鏈的共識方法所採用的架構如圖2a所示,從圖2a中可見,區塊鏈中包含多個區塊鏈節點,為了便於後續描述,以下將區塊鏈節點簡稱為:節點。 多個客戶端可與該區塊鏈進行事務交互,其中,項之區塊鏈,可以是聯盟鏈和/或私有鏈,能夠向使用者提供事務服務。項之客戶端,可包括瀏覽器、應用等,客戶端可以運行在諸如終端、伺服器、資料庫中,這裡不作具體限定。 基於圖2a所示的架構,對於任一節點而言,其架構可如圖2b所示。在圖2b中可見,節點中包含n個伺服器以及一個共用於各伺服器的資料庫。不同的伺服器可參與不同的共識過程,各伺服器之間可以彼此獨立運行。項之資料庫用於為該節點中的各伺服器提供資料儲存服務。也就是說,各伺服器在共識過程中,可將相對應的共識資料儲存在該資料庫中。當然,圖2b所示的節點中的資料庫的數量僅是一種通用數量,在實際應用中,節點中的資料庫的數量可以根據實際應用中的需要進行調整。此外,在一些場景下,節點中的伺服器可替換為計算機等具有計算處理功能的設備。 還需要說明的是,為了便於描述,在下文中,將可能在運行中出現異常的伺服器稱為:第一伺服器。將能夠正常運行的伺服器稱為:第二伺服器。那麼,在圖2b所示的架構中,也就可視為包含了兩類伺服器,即,第一伺服器和第二伺服器。以上內容並不應作為對本案的限定。 基於圖2b中所示的關係架構,本案實施例提供的一種基於區塊鏈的共識過程,如圖2c所示,該過程具體包括以下步驟: S201:所述資料庫儲存執行共識所需的共識資料,供所述第一伺服器和所述第二伺服器在執行共識的過程中進行調用。 基於如圖2b中的架構,項之資料庫設置於該伺服器所在的節點中,且共用於該節點中的所有伺服器,該節點中的任一伺服器在接收到共識訊息或產生了共識結果後,會儲存在資料庫中。那麼,伺服器便可從該資料庫中獲取執行共識所需的共識資料。其中,項之共識資料,可包括伺服器所接收到的來自於其他節點中伺服器發送的共識訊息、伺服器自身所產生的共識結果、由客戶端發送的能夠觸發共識過程的事務請求等。 這裡需要說明的是,正是採用將共識資料儲存在資料庫中的方式,保證了共識資料對節點中的所有伺服器可用。也就是說,如果第一伺服器出現異常,雖然第一伺服器不能繼續參與共識,但節點中的其他第二伺服器可基於資料庫中儲存的共識資料,代替出現異常的伺服器執行共識。 S202:所述第一伺服器在執行共識前或執行共識過程中出現異常時,所述第二伺服器代替所述第一伺服器,從所述資料庫中獲取共識資料,並根據所述共識資料執行共識,產生共識結果。 在實際運行中,參與共識的第一伺服器可能會出現異常(如:宕機、重啟等)。發生異常的時機通常是隨機的,但無論異常發生在執行共識前或執行共識時,都將會影響共識過程的完成。此時,為了保證共識過程不受影響,故區塊鏈節點內的其他正常運行的第二伺服器便可以代替該異常的第一伺服器執行共識。 正是由於第一伺服器出現了異常,不能繼續執行共識,所以,第二伺服器可代替第一伺服器接收共識訊息,參與到原本由第一伺服器所參與的共識過程。 如前所述,節點中的任一伺服器均會將共識資料儲存在資料庫中,所以,第二伺服器便可以在資料庫中查找並獲取共識過程所需的共識資料,以代替出現異常的第一伺服器執行共識,並進一步產生相對應的共識結果。 顯然,由正常運行的伺服器代替異常的伺服器執行共識,保證了共識過程不受影響。 S203:所述第二伺服器將所述共識結果儲存在所述資料庫中。 在本案實施例中,代替第一伺服器執行共識的第二伺服器,同樣會按照本案中的資料儲存機制,將共識結果作為一種共識資料,儲存在資料庫中。 透過上述步驟,對於區塊鏈節點中的每一伺服器而言,參與了某次共識過程的伺服器,會將不同共識階段的共識訊息或自身所產生的當前階段的共識結果,進行“公開”保存,即,儲存在該節點內的資料庫中,而該資料庫對於該節點內的所有伺服器均可使用,這樣一來,如果參與某次共識的伺服器出現下線或重啟等異常現象,該伺服器的共識資料可被節點內的其他伺服器使用,並可代替出現異常現象的伺服器繼續執行相對應的共識過程。 顯然,相較於現有技術,節點中的各伺服器將共識資料儲存在節點內資料庫的方式,即使在某一伺服器出現異常時,其他正常運行的伺服器也能夠從資料庫中獲取到相對應的共識資料,接替異常的伺服器完成共識,也就保證了共識過程的正常進行,在減少重新發起共識次數的同時,能夠在一定程度上提升共識過程的成功率,進而提升區塊鏈的事務處理效率。 這裡需要說明的是,在共識時,對於節點中的任一伺服器而言,將會接收到參與同一共識過程的其他設備所發送的共識訊息。其中,項之其他設備包括但不限於:參與共識過程的其他節點和/或客戶端。項之共識訊息,可以包括客戶端發送的、能夠觸發共識的事務請求,也可以包括其他節點在共識過程中發送的共識資料。 顯然,針對某一次共識過程,如果第一伺服器出現了異常,則第二伺服器將會代替該第一伺服器接收共識訊息,以便參與到第一伺服器的共識過程中。 所以,所述第一伺服器在執行共識前出現異常時,所述第二伺服器代替所述第一伺服器,從所述資料庫中獲取共識資料,可包括:當所述第一伺服器在執行共識前出現異常時,所述第二伺服器代替所述第一伺服器,接收參與共識過程的其他設備發送的共識訊息,根據所述共識訊息,從所述資料庫中獲取與所述共識訊息對應的共識資料。 此外,在本案實施例中,存在一種重試機制,具體而言,參與共識過程的其他設備,在發送了某一共識訊息或事務請求後,若在設定的時間內為接收到對方的響應,則會再次發送相同的共識訊息或事務請求。可見,如果第一伺服器在執行共識過程中出現了異常,便不能夠在設定的時間向其他設備做出響應。 所以,當所述第一伺服器在執行共識過程中出現異常時,所述第二伺服器代替所述第一伺服器,接收參與共識過程的其他設備重試發送共識訊息,根據所述共識訊息,從所述資料庫中獲取與所述共識訊息對應的共識資料。 第二伺服器在從資料庫中獲取共識資料時,通常將基於共識訊息中的相對應標識,下面將說明從資料庫中獲取共識資料的過程: 在PBFT共識中,一個事務請求對應一次共識過程,而接收到客戶端事務請求的節點(也稱為主節點)會針對事務請求進行編號,那麼,也就是說,事務請求的編號可以唯一對應一次共識過程。 具體來說,節點中的任一伺服器所參與的某次共識過程,該共識過程中的事務請求的編號(即,事務請求的標識),能夠唯一地標識一次共識過程,透過事務請求的編號,可以區別於節點中其他伺服器所參與的共識過程。所以,如果伺服器接收到了攜帶有某一事務請求編號的共識訊息,便可根據該事務請求編號在資料庫中獲取具有相同事務請求編號的共識資料(獲取到的這些共識資料與共識訊息屬於同一共識過程)。 例如:在共識過程中,共識訊息的格式可以為:<共識階段標識,視圖編號,事務請求編號,事務請求摘要>。假設,伺服器接收到某一共識訊息為:<commit,v,n,D(m)>,其中,commit表示該節點已進入確認階段,v表示視圖編號,n表示事務請求的編號,D(m)表示發出通知訊息的節點對事務請求的簽名。則伺服器可根據編號“n”,在資料庫中查找該編號“n”對應的所有共識資料。 基於此,第二伺服器從所述資料庫中獲取與所述共識訊息對應的共識資料的過程為:第二伺服器根據所述共識訊息中包含的事務請求的標識,從所述資料庫中查找並獲取與所述標識對應的共識資料。 除了上述內容,在實際應用時,為了避免共識訊息發送給已出現異常的第一伺服器的情況,故在本案實施例中,可透過節點上的閘道器實現共識訊息的調配。也即,所述區塊鏈節點還包括閘道器,此時,節點的架構可如圖2d所示,可見,閘道器負責為節點中的伺服器調配共識訊息,一旦第一伺服器出現異常,則閘道器便不會將共識訊息發送給該異常的第一伺服器,而是將該共識訊息發發送給正常運行的第二伺服器。 所以,具體而言,對於第二伺服器,接收共識訊息的過程可以為: 當所述閘道器確定出所述第一伺服器在執行共識前出現異常時,所述閘道器將接收到的、參與共識過程的其他設備發送的共識訊息,轉發給正常運行的第二伺服器。那麼,所述第二伺服器接收所述閘道器轉發的、參與共識過程的其他設備發送的共識訊息。 而當所述閘道器確定出所述第一伺服器在執行共識過程中出現異常時,所述閘道器將接收到的、參與共識過程的其他設備重試發送共識訊息,轉發給正常運行的第二伺服器。相對應地,所述第二伺服器接收所述閘道器轉發的、參與共識過程的其他設備重試發送共識訊息。 可以理解地,在本案實施例中,閘道器會將共識訊息轉發給節點中未出現異常的第二伺服器,換言之,閘道器需要獲知節點中出現異常的伺服器,以及仍保持正常運行的伺服器。 在本案實施例中,節點中的各伺服器可透過與閘道器之間採用心跳機制進行通信,以使得閘道器能夠獲知各伺服器的運行狀態,即,所述閘道器透過以下方式確定所述第一伺服器及第二伺服器的運行狀態: 所述閘道器接收所述第一伺服器及第二伺服器按照預設週期向所述閘道器發送運行狀態訊息,所述閘道器根據所述運行狀態訊息,確定所述第一伺服器及第二伺服器的運行狀態。 也就是說,如果閘道器能夠接收到週期性的運行狀態訊息,則閘道器可以確定發送該運行狀態訊息的伺服器正常工作,而如果閘道器在一定時間內都未接收到某伺服器的運行狀態訊息,則閘道器可以確定該伺服器出現了異常。 下面以一應用實例進行說明: 例如:如圖3a所示,假設在某一次共識過程中,節點1中的伺服器11和節點2中的伺服器21均參與了該次共識過程(圖3a中用灰色表示兩個伺服器處於同一共識過程中)。在此假設,伺服器21下線(即,在節點2中,伺服器21為第一伺服器),此時,伺服器11向伺服器21發送了某一共識訊息,顯然,由於伺服器21下線,致使該伺服器21並不會作出任何反饋,那麼,伺服器11等待了一定時間後,將發起重試(該重試又可看作是節點1發起的重試),即重新發送該共識訊息,當節點2的閘道器接收到了節點1重試的共識訊息後,將選定其內部某一正常工作的伺服器來處理節點1的重試,如圖3b所示,在本示例中,節點2中的伺服器22被選中(即,伺服器22為第二伺服器),也即,閘道器會將重試發送的共識訊息轉發給伺服器22,並由該伺服器22接替伺服器21執行共識。 另外,對於第二伺服器將共識資料儲存至伺服器的過程而言,作為本案實施例中的一種方式,第二伺服器可在接收到共識訊息(該共識訊息可認為是一種共識資料)後立即將接收到的共識訊息儲存在資料庫中,並在執行共識產生了對應於該共識訊息的共識結果(該共識結果同樣也可認為是一種共識資料)後,再將共識結果儲存在資料庫中。 而作為本案實施例中的另一種方式,第二伺服器接收到共識訊息後,將經過前述過程,等待產生了共識結果後,在將共識訊息和共識結果一併儲存在資料庫中。 以上兩種儲存方式並不構成對本案的限定。 以上為本案實施例提供的基於區塊鏈的共識方法,基於同樣的思路,本案實施例還提供一種基於區塊鏈的共識裝置,如圖4所示,其中,一個區塊鏈節點包括多個伺服器和至少一個資料庫,其中,所述資料庫儲存執行共識所需的共識資料,供所述第一伺服器和所述第二伺服器在執行共識的過程中進行調用; 所述第一伺服器在執行共識前或執行共識時出現異常; 所述基於區塊鏈的共識裝置至少包括:接收模組401、獲取模組402、共識執行模組403及儲存模組404,其中: 獲取模組402,從所述資料庫中獲取共識資料; 共識執行模組403,根據所述共識資料執行共識,產生共識結果; 儲存模組404,將所述共識結果儲存在所述資料庫中。 當所述第一伺服器在執行共識前出現異常時,所述接收模組401,接收參與共識過程的其他設備發送的共識訊息;所述獲取模組,根據所述共識訊息,從所述資料庫中獲取與所述共識訊息對應的共識資料。 當所述第一伺服器在執行共識過程中出現異常時,所述接收模組401,接收參與共識過程的其他設備重試發送共識訊息;所述獲取模組,根據所述共識訊息,從所述資料庫中獲取與所述共識訊息對應的共識資料。 其中,當所述其他設備在發送共識訊息並經過設定時間未接收到響應時,則重試發送所述共識訊息。 所述共識訊息中包含事務請求的標識;所述獲取模組402,根據所述共識訊息中包含的事務請求的標識,在所述資料庫中,查找並獲取與所述標識對應的共識資料。 此外,一個區塊鏈節點中還可以包括閘道器,在此情況下,所述裝置至少還包括:閘道器接收模組405、運行狀態確定模組406及轉發模組407。其中: 當所述運行狀態確定模組406確定出所述第一伺服器在執行共識前出現異常時,所述轉發模組407,將接收到的、參與共識過程的其他設備發送的共識訊息,轉發給正常運行的第二伺服器。 當所述運行狀態確定模組406確定出所述第一伺服器在執行共識過程中出現異常時,所述轉發模組407,將接收到的、參與共識過程的其他設備重試發送共識訊息,轉發給正常運行的第二伺服器。 閘道器接收模組405,接收所述第一伺服器及第二伺服器按照預設週期向所述閘道器發送運行狀態訊息; 所述運行狀態確定模組406,根據所述運行狀態訊息,確定所述第一伺服器及第二伺服器的運行狀態。 在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),如調變的資料信號和載波。 還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。 本領域技術人員應明白,本案的實施例可提供為方法、系統或計算機程式產品。因此,本案可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本案可採用在一個或多個其中包含有計算機可用程式代碼的計算機可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的計算機程式產品的形式。 本案可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的例程、程式、對象、組件、資料結構等等。也可以在分布式計算環境中實踐本案,在這些分布式計算環境中,由透過通信網路而被連接的遠距處理設備來執行任務。在分布式計算環境中,程式模組可以位於包括儲存設備在內的局部和遠距計算機儲存媒體中。 本說明書中的各個實施例均採用漸進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。 以上所述僅為本案的實施例而已,並不用於限制本案。對於本領域技術人員來說,本案可以有各種更改和變化。凡在本案的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本案的申請專利範圍之內。
1‧‧‧節點
2‧‧‧節點
n‧‧‧節點
1‧‧‧客戶端
2‧‧‧客戶端
n‧‧‧客戶端
1‧‧‧伺服器
2‧‧‧伺服器
n‧‧‧伺服器
11‧‧‧伺服器
12‧‧‧伺服器
21‧‧‧伺服器
22‧‧‧伺服器
401‧‧‧接收模組
402‧‧‧獲取模組
403‧‧‧共識執行模組
404‧‧‧儲存模組
405‧‧‧閘道器接收模組
406‧‧‧運行狀態確定模組
407‧‧‧轉發模組
S201‧‧‧步驟
S202‧‧‧步驟
S203‧‧‧步驟
此處所說明的附圖用來提供對本案的進一步理解,構成本案的一部分,本案的示意性實施例及其說明用於解釋本案,並不構成對本案的不當限定。在附圖中: 圖1為現有技術中基於PBFT的共識過程; 圖2a為本案實施例提供的基於區塊鏈的共識過程中區塊鏈的架構; 圖2b為本案實施例提供的基於區塊鏈的共識過程中區塊鏈節點的架構。 圖2c為本案實施例提供的在伺服器側的基於區塊鏈的共識過程; 圖2d為本案實施例提供的另一種區塊鏈節點的架構; 圖3a和3b為本案實施例提供的一種同一共識過程中的伺服器變更過程示意圖; 圖4為本案實施例提供的一種在伺服器側的基於區塊鏈的共識裝置結構示意圖。
Claims (10)
- 一種基於區塊鏈的共識方法,其特徵在於,一個區塊鏈節點包括第一伺服器、第二伺服器和至少一個資料庫,該方法包括: 該資料庫儲存執行共識所需的共識資料,供該第一伺服器和該第二伺服器在執行共識的過程中進行調用; 該第一伺服器在執行共識前或執行共識過程中出現異常時,該第二伺服器代替該第一伺服器,從該資料庫中獲取共識資料,並根據該共識資料執行共識,產生共識結果; 該第二伺服器將該共識結果儲存在該資料庫中。
- 如申請專利範圍第1項之方法,其中,該第一伺服器在執行共識前出現異常時,該第二伺服器代替該第一伺服器,從該資料庫中獲取共識資料,具體包括: 當該第一伺服器在執行共識前出現異常時,該第二伺服器代替該第一伺服器,接收參與共識過程的其他設備發送的共識訊息,根據該共識訊息,從該資料庫中獲取與該共識訊息對應的共識資料; 該第一伺服器在執行共識過程中出現異常時,該第二伺服器代替該第一伺服器,從該資料庫中獲取共識資料,具體包括: 當該第一伺服器在執行共識過程中出現異常時,該第二伺服器代替該第一伺服器,接收參與共識過程的其他設備重試發送共識訊息,根據該共識訊息,從該資料庫中獲取與該共識訊息對應的共識資料; 其中,當該其他設備在發送共識訊息並經過設定時間未接收到響應時,則重試發送該共識訊息。
- 如申請專利範圍第2項之方法,其中,該共識訊息中包含事務請求的標識; 根據該共識訊息,從該資料庫中獲取與該共識訊息對應的共識資料,具體包括: 該第二伺服器根據該共識訊息中包含的事務請求的標識,從該資料庫中查找並獲取與該標識對應的共識資料。
- 如申請專利範圍第2項之方法,其中,該區塊鏈節點還包括閘道器; 接收參與共識過程的其他設備發送的共識訊息,具體包括: 當該閘道器確定出該第一伺服器在執行共識前出現異常時,該閘道器將接收到的、參與共識過程的其他設備發送的共識訊息,轉發給正常運行的第二伺服器; 該第二伺服器接收該閘道器轉發的、參與共識過程的其他設備發送的共識訊息; 接收參與共識過程的其他設備重試發送共識訊息,具體包括: 當該閘道器確定出該第一伺服器在執行共識過程中出現異常時,該閘道器將接收到的、參與共識過程的其他設備重試發送共識訊息,轉發給正常運行的第二伺服器; 該第二伺服器接收該閘道器轉發的、參與共識過程的其他設備重試發送共識訊息。
- 如申請專利範圍第4項之方法,其中,該閘道器透過以下方式確定該第一伺服器及第二伺服器的運行狀態: 該閘道器接收該第一伺服器及第二伺服器按照預設週期向該閘道器發送運行狀態訊息; 該閘道器根據該運行狀態訊息,確定該第一伺服器及第二伺服器的運行狀態。
- 一種基於區塊鏈的共識裝置,其特徵在於,一個區塊鏈節點包括第一伺服器、第二伺服器和至少一個資料庫,其中, 該資料庫儲存執行共識所需的共識資料,供該第一伺服器和該第二伺服器在執行共識的過程中進行調用; 該第一伺服器在執行共識前或執行共識時出現異常; 該裝置包括: 獲取模組,從該資料庫中獲取共識資料; 共識執行模組,根據該共識資料執行共識,產生共識結果; 儲存模組,將該共識結果儲存在該資料庫中。
- 如申請專利範圍第6項之裝置,其中,該裝置還包括:接收模組; 當該第一伺服器在執行共識前出現異常時,該接收模組,接收參與共識過程的其他設備發送的共識訊息;該獲取模組,根據該共識訊息,從該資料庫中獲取與該共識訊息對應的共識資料; 當該第一伺服器在執行共識過程中出現異常時,該接收模組,接收參與共識過程的其他設備重試發送共識訊息;該獲取模組,根據該共識訊息,從該資料庫中獲取與該共識訊息對應的共識資料; 其中,當該其他設備在發送共識訊息並經過設定時間未接收到響應時,則重試發送該共識訊息。
- 如申請專利範圍第7項之裝置,其中,該共識訊息中包含事務請求的標識; 該獲取模組,根據該共識訊息中包含的事務請求的標識,從該資料庫中查找並獲取與該標識對應的共識資料。
- 如申請專利範圍第8項之裝置,其中,該區塊鏈節點還包括閘道器; 該裝置還包括:運行狀態確定模組及轉發模組; 當該運行狀態確定模組確定出該第一伺服器在執行共識前出現異常時,該轉發模組,將接收到的、參與共識過程的其他設備發送的共識訊息,轉發給正常運行的第二伺服器; 當該運行狀態確定模組確定出該第一伺服器在執行共識過程中出現異常時,該轉發模組,將接收到的、參與共識過程的其他設備重試發送共識訊息,轉發給正常運行的第二伺服器。
- 如申請專利範圍第9項之裝置,其中,該裝置還包括:閘道器接收模組,接收該第一伺服器及第二伺服器按照預設週期向該閘道器發送運行狀態訊息; 該運行狀態確定模組,根據該運行狀態訊息,確定該第一伺服器及第二伺服器的運行狀態。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710190786.1A CN107368507B (zh) | 2017-03-28 | 2017-03-28 | 一种基于区块链的共识方法及装置 |
??201710190786.1 | 2017-03-28 | ||
CN201710190786.1 | 2017-03-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201837748A true TW201837748A (zh) | 2018-10-16 |
TWI696083B TWI696083B (zh) | 2020-06-11 |
Family
ID=60304778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106140511A TWI696083B (zh) | 2017-03-28 | 2017-11-22 | 一種基於區塊鏈的共識方法及裝置 |
Country Status (15)
Country | Link |
---|---|
US (2) | US10642699B2 (zh) |
EP (1) | EP3547170B1 (zh) |
JP (1) | JP6756924B2 (zh) |
KR (1) | KR102255724B1 (zh) |
CN (2) | CN107368507B (zh) |
AU (1) | AU2018241568B2 (zh) |
BR (1) | BR112019013379B1 (zh) |
CA (1) | CA3048742C (zh) |
MX (1) | MX2019007808A (zh) |
MY (1) | MY192616A (zh) |
PH (1) | PH12019501519A1 (zh) |
RU (1) | RU2731331C1 (zh) |
TW (1) | TWI696083B (zh) |
WO (1) | WO2018177255A1 (zh) |
ZA (1) | ZA201904224B (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10419225B2 (en) | 2017-01-30 | 2019-09-17 | Factom, Inc. | Validating documents via blockchain |
US10411897B2 (en) | 2017-02-17 | 2019-09-10 | Factom, Inc. | Secret sharing via blockchains |
US10817873B2 (en) | 2017-03-22 | 2020-10-27 | Factom, Inc. | Auditing of electronic documents |
CN107368507B (zh) | 2017-03-28 | 2020-03-27 | 创新先进技术有限公司 | 一种基于区块链的共识方法及装置 |
CN110445619B (zh) * | 2017-03-30 | 2020-10-16 | 腾讯科技(深圳)有限公司 | 区块链系统、消息处理方法及存储介质 |
US10685399B2 (en) | 2017-03-31 | 2020-06-16 | Factom, Inc. | Due diligence in electronic documents |
US10270599B2 (en) | 2017-04-27 | 2019-04-23 | Factom, Inc. | Data reproducibility using blockchains |
CN108111604B (zh) * | 2017-12-21 | 2020-08-14 | 广州广电运通金融电子股份有限公司 | 区块链共识方法、装置和系统、标识信息处理方法和装置 |
CN108200208B (zh) * | 2018-02-11 | 2021-01-05 | 南宁师范大学 | 基于云计算的物流区块链共识算法 |
CN108537525B (zh) | 2018-03-09 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种共识验证方法、装置及设备 |
CN108763302A (zh) * | 2018-04-19 | 2018-11-06 | 深圳市网心科技有限公司 | 区块链共识处理方法、电子装置及计算机可读存储介质 |
CN108665363B (zh) * | 2018-05-09 | 2021-08-03 | 合肥达朴汇联科技有限公司 | 一种区块链共识达成装置 |
US11134120B2 (en) | 2018-05-18 | 2021-09-28 | Inveniam Capital Partners, Inc. | Load balancing in blockchain environments |
US10783164B2 (en) * | 2018-05-18 | 2020-09-22 | Factom, Inc. | Import and export in blockchain environments |
US11170366B2 (en) | 2018-05-18 | 2021-11-09 | Inveniam Capital Partners, Inc. | Private blockchain services |
US11328290B2 (en) | 2018-08-06 | 2022-05-10 | Inveniam Capital Partners, Inc. | Stable cryptocurrency coinage |
US20200042982A1 (en) | 2018-08-06 | 2020-02-06 | Factom | Digital Contracts in Blockchain Environments |
CN109144781B (zh) * | 2018-08-13 | 2021-06-18 | 浙商银行股份有限公司 | 一种提升基于区块链技术实现的应用系统单园区部署灾备能力的方法 |
CN110969527B (zh) * | 2018-09-29 | 2023-02-24 | 北京天能博信息科技有限公司 | 一种区块链的数据处理方法及相关设备 |
RU2724181C1 (ru) * | 2018-11-07 | 2020-06-22 | Алибаба Груп Холдинг Лимитед | Упрощение консенсуса в цепочках блоков по принципу практичной отказоустойчивости на основе византийского соглашения и синхронизации узлов |
CN111291110A (zh) * | 2018-12-06 | 2020-06-16 | 中国电信股份有限公司 | 基于区块链网络的共识方法和系统 |
CN110221938A (zh) * | 2019-05-06 | 2019-09-10 | 深圳壹账通智能科技有限公司 | 电子装置、区块链共识的方法及存储介质 |
CN110266765B (zh) * | 2019-05-21 | 2022-03-01 | 西安中星测控有限公司 | 一种基于区块链的物联网在线共识节点实时更新方法和装置 |
CN110492988B (zh) * | 2019-07-03 | 2020-07-21 | 特斯联(北京)科技有限公司 | 一种多路并行复用的大数据系统及其处理方法 |
CN110336707A (zh) * | 2019-08-07 | 2019-10-15 | 卓尔智联(武汉)研究院有限公司 | 区块链共识装置、方法及计算机可读存储介质 |
CN111104282B (zh) * | 2019-11-26 | 2024-01-16 | 众安信息技术服务有限公司 | 一种基于区块链的节点处理方法和装置 |
CN111125131B (zh) * | 2019-12-16 | 2023-06-06 | 武汉大学 | 一种具备状态缓冲能力的两级共识区块链系统及部署方法 |
CN111147261B (zh) * | 2019-12-31 | 2022-07-12 | 南京可信区块链与算法经济研究院有限公司 | 在区块链中使用HotStuff共识算法的方法及系统 |
US11343075B2 (en) | 2020-01-17 | 2022-05-24 | Inveniam Capital Partners, Inc. | RAM hashing in blockchain environments |
JPWO2021166931A1 (zh) * | 2020-02-21 | 2021-08-26 | ||
CN111064813B (zh) * | 2020-03-16 | 2020-06-30 | 支付宝(杭州)信息技术有限公司 | 在区块链共识处理时进行处理消息同步的方法及装置 |
CN111654415B (zh) * | 2020-05-28 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 基于区块链的信息处理方法、装置、设备及可读存储介质 |
CN112286731A (zh) * | 2020-07-03 | 2021-01-29 | 支付宝(杭州)信息技术有限公司 | 区块链共识节点的重启处理方法、共识节点及区块链系统 |
CN111522822A (zh) | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种区块链共识方法、装置及电子设备 |
CN111522696B (zh) * | 2020-07-03 | 2020-12-29 | 支付宝(杭州)信息技术有限公司 | 区块链共识节点的宕机处理方法、数据持久化方法及硬件 |
CN112100234B (zh) * | 2020-08-12 | 2021-09-10 | 北京大学 | 基于随机共识的图式账本的内容寻址方法和系统 |
CN112564902A (zh) * | 2020-12-09 | 2021-03-26 | 苏州市星际云通区块链科技有限公司 | 一种区块链上可验证随机函数的共识方法及其系统 |
CN112738178B (zh) * | 2020-12-23 | 2023-04-07 | 北京米弘科技有限公司 | 区块链共识方法和装置 |
CN113254306B (zh) * | 2021-05-10 | 2022-03-25 | 支付宝(杭州)信息技术有限公司 | 运行状态监控方法、装置、设备和存储介质 |
CN113067895B (zh) * | 2021-06-02 | 2021-08-31 | 支付宝(杭州)信息技术有限公司 | 组建区块链子网的方法和区块链系统 |
CN113572140B (zh) * | 2021-07-15 | 2024-04-12 | 国网上海市电力公司 | 基于可变共识机制的配网故障隔离指令传输方法和设备 |
CN114064343B (zh) * | 2022-01-13 | 2022-04-08 | 北京溪塔科技有限公司 | 一种区块链的异常处置方法及装置 |
CN114640500B (zh) * | 2022-02-14 | 2023-07-28 | 南京邮电大学 | 一种基于服务的联盟链高效共识方法 |
US11881980B2 (en) | 2022-04-22 | 2024-01-23 | Red Hat, Inc. | Byzantine fault prevention in mesh networks |
CN115471301B (zh) * | 2022-11-11 | 2023-04-07 | 浙江云针信息科技有限公司 | 无人驾驶车辆去中心化派单方法及装置、存储介质和终端 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215766B1 (en) * | 1998-01-30 | 2001-04-10 | Lucent Technologies Inc. | Hierarchical rate control of receivers in a communication system transmitting layered video multicast data with retransmission (LVMR) |
US9361311B2 (en) | 2005-01-12 | 2016-06-07 | Wandisco, Inc. | Distributed file system using consensus nodes |
TWI416901B (zh) | 2005-11-30 | 2013-11-21 | Ibm | 故障容忍之異動處理系統 |
US7725764B2 (en) * | 2006-08-04 | 2010-05-25 | Tsx Inc. | Failover system and method |
CN101394306B (zh) * | 2008-07-08 | 2010-10-27 | 国电南瑞科技股份有限公司 | 一种双服务器系统的无缝切换方法 |
CN102724272B (zh) * | 2011-12-30 | 2017-12-29 | 新奥特(北京)视频技术有限公司 | 一种电视台业务发布数据的备份方法 |
RU2510623C2 (ru) * | 2012-04-19 | 2014-04-10 | Государственное казенное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) | Способ репликации информации в распределенных базах данных с конкурентным распределением потоков |
WO2014008495A2 (en) * | 2012-07-06 | 2014-01-09 | Cornell University | Managing dependencies between operations in a distributed system |
CN103220165B (zh) * | 2013-03-20 | 2017-04-19 | 杭州华三通信技术有限公司 | 一种服务器主动宕机的处理方法和装置 |
US9553982B2 (en) * | 2013-07-06 | 2017-01-24 | Newvoicemedia, Ltd. | System and methods for tamper proof interaction recording and timestamping |
CN103744809B (zh) * | 2013-12-23 | 2016-10-05 | 天泽信息产业股份有限公司 | 基于vrrp的车辆信息管理系统双机热备方法 |
US20150310476A1 (en) * | 2014-04-24 | 2015-10-29 | Elizabeth M. Gadwa | System and method for attention based currency |
US20160125403A1 (en) * | 2014-04-28 | 2016-05-05 | Chin-hao Hu | Offline virtual currency transaction |
US9690675B2 (en) * | 2014-07-17 | 2017-06-27 | Cohesity, Inc. | Dynamically changing members of a consensus group in a distributed self-healing coordination service |
US9436923B1 (en) * | 2015-02-26 | 2016-09-06 | Skuchain, Inc. | Tracking unitization occurring in a supply chain |
TWI676943B (zh) * | 2015-05-06 | 2019-11-11 | 現代財富控股有限公司 | 加密貨幣的電子交易系統及其方法 |
US20170048209A1 (en) * | 2015-07-14 | 2017-02-16 | Fmr Llc | Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems |
US10268744B2 (en) * | 2015-09-22 | 2019-04-23 | Walmart Apollo, Llc | System for maintaining consistency across a decentralized database cluster and method therefor |
CN105719185B (zh) * | 2016-01-22 | 2019-02-15 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN105912618B (zh) * | 2016-04-07 | 2019-04-23 | 浙江万马新能源有限公司 | 基于区块链的充电桩充电交易通讯方法及装置 |
KR101701131B1 (ko) | 2016-04-28 | 2017-02-13 | 주식회사 라피 | 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템 |
CN106060036B (zh) | 2016-05-26 | 2019-07-16 | 布比(北京)网络技术有限公司 | 去中心化共识方法及装置 |
CN106101242B (zh) * | 2016-06-24 | 2019-08-06 | 深圳前海微众银行股份有限公司 | 区块链云服务平台的构建方法和装置 |
CN106209877A (zh) * | 2016-07-19 | 2016-12-07 | 井创(北京)科技有限公司 | 一种以区块链后台为认证核心的防伪认证系统 |
CN106296191A (zh) * | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | 一种区块链功耗感知的PoW共识机制 |
CN106445711B (zh) * | 2016-08-28 | 2019-04-30 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106339639A (zh) * | 2016-08-30 | 2017-01-18 | 弗洛格(武汉)信息科技有限公司 | 基于区块链的学分成绩管理方法及系统 |
US20180062831A1 (en) * | 2016-08-31 | 2018-03-01 | Jiangang Zhang | Massively Scalable Blockchain Ledger |
CN106452785B (zh) * | 2016-09-29 | 2019-05-17 | 财付通支付科技有限公司 | 区块链网络、分支节点及区块链网络应用方法 |
CN106528775B (zh) * | 2016-10-28 | 2020-01-03 | 济南大学 | 支持逻辑多链的私有区块链运行支撑系统及其工作方法 |
US10158527B2 (en) * | 2016-10-28 | 2018-12-18 | International Business Machines Corporation | Changing an existing blockchain trust configuration |
CN106341421B (zh) * | 2016-10-31 | 2019-04-02 | 杭州云象网络技术有限公司 | 一种基于区块链技术的数据交换方法 |
CN106534273B (zh) * | 2016-10-31 | 2022-04-15 | 中金云金融(北京)大数据科技股份有限公司 | 区块链元数据存储系统及其存储方法与检索方法 |
US10862959B2 (en) | 2016-11-28 | 2020-12-08 | Keir Finlow-Bates | Consensus system and method for adding data to a blockchain |
WO2018112949A1 (zh) * | 2016-12-23 | 2018-06-28 | 深圳前海达闼云端智能科技有限公司 | 区块链的挖矿方法、装置和节点设备 |
US10291413B2 (en) * | 2017-02-17 | 2019-05-14 | Accenture Global Solutions Limited | Hardware blockchain corrective consensus operating procedure enforcement |
US20180267539A1 (en) * | 2017-03-17 | 2018-09-20 | Jeanne Louise Shih | Distributive networks of groups of moveable autonomous devices |
CN107368507B (zh) * | 2017-03-28 | 2020-03-27 | 创新先进技术有限公司 | 一种基于区块链的共识方法及装置 |
US10984134B2 (en) * | 2017-07-14 | 2021-04-20 | Microsoft Technology Licensing, Llc | Blockchain system for leveraging member nodes to achieve consensus |
-
2017
- 2017-03-28 CN CN201710190786.1A patent/CN107368507B/zh active Active
- 2017-03-28 CN CN202010127440.9A patent/CN111327703B/zh active Active
- 2017-11-22 TW TW106140511A patent/TWI696083B/zh active
-
2018
- 2018-03-26 RU RU2019120077A patent/RU2731331C1/ru active
- 2018-03-26 CA CA3048742A patent/CA3048742C/en active Active
- 2018-03-26 MY MYPI2019003746A patent/MY192616A/en unknown
- 2018-03-26 WO PCT/CN2018/080513 patent/WO2018177255A1/zh unknown
- 2018-03-26 MX MX2019007808A patent/MX2019007808A/es unknown
- 2018-03-26 BR BR112019013379-8A patent/BR112019013379B1/pt active IP Right Grant
- 2018-03-26 EP EP18777158.9A patent/EP3547170B1/en active Active
- 2018-03-26 AU AU2018241568A patent/AU2018241568B2/en active Active
- 2018-03-26 JP JP2019535848A patent/JP6756924B2/ja active Active
- 2018-03-26 KR KR1020197018653A patent/KR102255724B1/ko active IP Right Grant
-
2019
- 2019-06-27 ZA ZA2019/04224A patent/ZA201904224B/en unknown
- 2019-06-27 PH PH12019501519A patent/PH12019501519A1/en unknown
- 2019-07-03 US US16/502,612 patent/US10642699B2/en active Active
-
2020
- 2020-03-02 US US16/806,917 patent/US10846182B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN107368507B (zh) | 2020-03-27 |
PH12019501519A1 (en) | 2020-03-09 |
US20200201719A1 (en) | 2020-06-25 |
CN111327703B (zh) | 2022-05-31 |
KR102255724B1 (ko) | 2021-05-27 |
EP3547170B1 (en) | 2021-09-01 |
US10846182B2 (en) | 2020-11-24 |
CN107368507A (zh) | 2017-11-21 |
ZA201904224B (en) | 2021-05-26 |
JP6756924B2 (ja) | 2020-09-16 |
WO2018177255A1 (zh) | 2018-10-04 |
TWI696083B (zh) | 2020-06-11 |
KR20190099222A (ko) | 2019-08-26 |
MY192616A (en) | 2022-08-29 |
CN111327703A (zh) | 2020-06-23 |
BR112019013379B1 (pt) | 2022-03-15 |
RU2731331C1 (ru) | 2020-09-01 |
AU2018241568B2 (en) | 2020-12-03 |
AU2018241568A1 (en) | 2019-07-18 |
MX2019007808A (es) | 2019-09-04 |
EP3547170A1 (en) | 2019-10-02 |
US10642699B2 (en) | 2020-05-05 |
CA3048742A1 (en) | 2018-10-04 |
CA3048742C (en) | 2021-07-20 |
EP3547170A4 (en) | 2019-11-20 |
BR112019013379A2 (pt) | 2019-12-17 |
US20190324867A1 (en) | 2019-10-24 |
JP2020514865A (ja) | 2020-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201837748A (zh) | 一種基於區塊鏈的共識方法及裝置 | |
TWI686709B (zh) | 業務受理及共識的方法及裝置 | |
WO2018161901A1 (zh) | 一种共识方法及装置 | |
JP6882511B2 (ja) | ブロックチェーンコンセンサスのための方法、装置およびシステム | |
TWI660617B (zh) | 區塊鏈共識方法及設備 | |
JP6949118B2 (ja) | ブロックチェーンサービス受付けおよびコンセンサス方法およびデバイス | |
JP6794551B2 (ja) | トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイス | |
KR20190091484A (ko) | 블록체인 합의 방법 및 디바이스 | |
CN114679457A (zh) | 一种区块链中的节点分组方法及区块链节点 | |
JP2019510306A (ja) | 分散型サービス処理の完全性をチェックする方法及び装置 | |
CN114612238A (zh) | 返回区块链交易执行结果的方法和装置 | |
CN115955504A (zh) | 一种用于有状态服务的状态同步中间件实现方法和装置 |