TWI761879B - 用於在區塊鏈網路中刪除節點的系統和方法 - Google Patents
用於在區塊鏈網路中刪除節點的系統和方法 Download PDFInfo
- Publication number
- TWI761879B TWI761879B TW109123390A TW109123390A TWI761879B TW I761879 B TWI761879 B TW I761879B TW 109123390 A TW109123390 A TW 109123390A TW 109123390 A TW109123390 A TW 109123390A TW I761879 B TWI761879 B TW I761879B
- Authority
- TW
- Taiwan
- Prior art keywords
- node
- consensus
- nodes
- blockchain
- blockchain network
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 230000008859 change Effects 0.000 claims abstract description 75
- 238000012795 verification Methods 0.000 claims abstract description 57
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000003860 storage Methods 0.000 claims abstract description 19
- 238000004422 calculation algorithm Methods 0.000 claims description 23
- 230000015654 memory Effects 0.000 claims description 19
- 230000000977 initiatory effect Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 abstract 1
- 238000012217 deletion Methods 0.000 description 33
- 230000037430 deletion Effects 0.000 description 33
- 230000008569 process Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 18
- 238000002360 preparation method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 241000282344 Mellivora capensis Species 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000036962 time dependent Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241001673391 Entandrophragma candollei Species 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- 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/2379—Updates performed during online database operations; commit processing
-
- 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
- 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/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/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/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- 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
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
提供了用於在區塊鏈網路中刪除節點的方法、系統和裝置,包括編碼在電腦儲存媒體上的電腦程式。方法之一包括:區塊鏈網路的第一共識節點獲得交易,交易包括用於刪除區塊鏈網路中的第二共識節點的請求;回應於對交易的共識驗證成功,執行交易並在節點列表中對區塊鏈網路中除第二共識節點以外的多個剩餘共識節點順序編號;以及施行視圖改變以使剩餘共識節點參與未來的共識驗證。
Description
本發明總體上涉及用於在區塊鏈網路中刪除節點的系統和方法。
相關申請的交叉引用
本發明要求於2019年9月5日向中華人民共和國國家知識產權局(SIPO)提交的申請號為CN201910838733.5的中國申請的優先權和權益,其全部內容通過引用包含於此。
區塊鏈技術可以構建在傳輸網路(例如,點對點網路)上。傳輸網路中的網路節點可以基於鏈式資料結構來認證和儲存資料,並基於分散式共識演算法來生成和更新資料。在一些情況下,可能需要刪除這種區塊鏈網路的節點。因此,期望提供一種用於在區塊鏈網路中刪除節點的方法。
用於刪除節點的現有技術通常會導致區塊鏈正常運行中斷。在一個範例中,用於在區塊鏈網路中刪除節點的當前方法需要停止整個區塊鏈系統以刪除節點,並且需要在刪除之後重啟系統。結果,整個系統必須經歷停機時間。
本文的各種實施例包括但不限於用於在區塊鏈網路中刪除節點的系統、方法和非暫態電腦可讀媒體。
根據一些實施例,一種電腦實現的用於在區塊鏈網路中刪除節點的方法,包括:區塊鏈網路的第一共識節點獲得包括用於刪除區塊鏈網路中的第二共識節點的請求的交易;回應於對交易的共識驗證成功,執行交易並在節點列表中對區塊鏈網路中除第二共識節點外的多個剩餘共識節點順序編號;以及施行視圖改變以使剩餘共識節點參與未來的共識驗證。在一些實施例中,待刪除的節點可以是在節點刪除之前的區塊鏈網路的啟用共識節點,並且通過節點刪除,節點變成區塊鏈網路的未啟用共識節點。在一些實施例中,待刪除的節點可以是在節點刪除之前的區塊鏈網路的一部分,並且通過節點刪除,節點被從區塊鏈網路中移除。
在一些實施例中,交易被配置為調用部署在由區塊鏈網路維護的區塊鏈中的區塊鏈合約。
在一些實施例中,區塊鏈合約包括創始合約或系統合約。
在一些實施例中,第一共識節點獲得交易,包括:從客戶端設備或控制器的命令控制台獲得交易。
在一些實施例中,第一共識節點在本地維護節點列表,節點列表包括以下一項或多項:共識節點標識、共識節點IP位址和共識節點埠號;並且在節點列表中對區塊鏈網路中除第二共識節點外的多個剩餘共識節點順序編號之前,在節點列表中對區塊鏈網路中包括第二共識節點的所有共識節點順序編號。
在一些實施例中,節點列表處於由區塊鏈網路維護的區塊鏈的世界狀態。
在一些實施例中,執行交易包括:從節點列表中刪除第二共識節點; 或者在節點列表中將第二共識節點配置為未啟用狀態。
在一些實施例中,施行視圖改變包括回應於檢測到以下任何條件而發起視圖改變:節點列表中共識節點的數量與當前視圖中共識節點的數量不一致;節點列表中的共識節點標識與當前視圖中的共識節點標識不一致;節點列表中啟用共識節點的數量與當前視圖中共識節點的數量不一致;以及節點列表中啟用共識節點的標識與當前視圖中共識節點的標識不一致。
在一些實施例中,施行視圖改變包括:回應於接收到第二共識節點廣播的、用於發起視圖改變的訊息,來發起視圖改變。
在一些實施例中,視圖改變中的副本數是除第二共識節點之外的剩餘共識節點的總數。
在一些實施例中,獲得交易包括:從第二共識節點、區塊鏈網路的第三共識節點或外部設備獲得交易。
在一些實施例中,方法還包括:在沒有第二共識節點的情況下參與共識驗證。
根據其他實施例,一種用於在區塊鏈網路中刪除節點的系統,包括一個或多個處理器以及耦接至一個或多個處理器、並且在其上儲存有可由一個或多個處理器執行以施行前述實施例中任一個的方法的指令的一個或多個電腦可讀記憶體。
根據又一些實施例,一種非暫態電腦可讀儲存媒體,配置有可由一個或多個處理器執行以使得一個或多個處理器施行前述實施例中任一個的方法的指令。
根據又一些實施例,一種用於在區塊鏈網路中刪除節點的裝置,包括用於施行前述實施例中的任一個的方法的多個模組。
根據一些實施例,一種用於在區塊鏈網路中刪除節點的系統,在區塊鏈網路的第一共識節點中實施,並且包括一個或多個處理器以及耦接至一個或多個處理器並且其上儲存有指令的一個或多個電腦可讀記憶體,所述所述指令可由一個或多個處理器執行以施行包括以下的操作:獲得包括用於刪除區塊鏈網路中的第二共識節點的請求的交易;回應於對交易的共識驗證成功,執行交易並在節點列表中對區塊鏈網路中除第二共識節點外的多個剩餘共識節點順序編號;以及施行視圖改變以使剩餘共識節點參與未來的共識驗證。
根據其他實施例,一種非暫態電腦可讀儲存媒體,在區塊鏈網路的第一共識節點中實施,並且被配置有可由一個或多個處理器執行以使得一個或多個處理器施行包括以下操作的指令:獲得包括用於刪除區塊鏈網路中的第二共識節點的請求的交易;回應於對交易的共識驗證成功,執行交易並在節點列表中對區塊鏈網路中除第二共識節點外的多個剩餘共識節點順序編號;並施行視圖改變以使剩餘共識節點參與未來的共識驗證。
根據又一其他實施例,一種用於在區塊鏈網路中刪除節點的裝置,在區塊鏈網路的第一共識節點中實施,並且包括:獲得模組,獲得包括用於刪除區塊鏈網路中的第二共識節點的請求的交易;執行模組,回應於對交易的共識驗證成功,執行交易並在節點列表中對區塊鏈網路中除第二共識節點外的多個剩餘共識節點順序編號;以及施行模組,施行視圖改變以使剩餘共識節點參與未來的共識驗證。
本文公開的實施例具有一種或多種技術效果。在一些實施例中,在區塊鏈網路中刪除節點移除了惡意或故障(例如,異常、離線)節點。故障狀態可能是由例如配置錯誤、機器故障、網路故障、軟體故障等導致的。因此,在區塊鏈網路中刪除節點可提高區塊鏈網路的穩健性和可靠性。在一些實施例中,通過動態地執行用於刪除節點的交易,可以在不中斷區塊鏈網路運行的情況下刪除節點。在一個實施例中,在節點刪除處理期間避免了系統停機時間,並且區塊鏈網路維持其正常運行。在一些實施例中,通過視圖改變,區塊鏈網路的剩餘共識節點(除刪除的節點外)均獲得包括剩餘共識節點編號的相同的節點列表拷貝。因此,剩餘節點可以繼續執行共識驗證並維護區塊鏈。
本文公開的系統、方法和非暫態電腦可讀媒體的這些和其他特徵,以及結構的相關元件的功能和操作方法以及零件的組合及製造的經濟性,在參考附圖考慮以下描述和所附請求項時將變得更加明顯,所有這些附圖、描述和請求項均形成本文的一部分,其中,相似的附圖標記指代各個附圖中的相應部分。然而,應明確地理解,附圖僅是出於說明和描述的目的,而並非意於進行限制。
區塊鏈可分為三種類型:公有區塊鏈、私有區塊鏈、聯盟區塊鏈。此外,在三種類型的區塊鏈之間可能存在各種組合,例如私有區塊鏈+聯盟區塊鏈、聯盟區塊鏈+公有區塊鏈等。其中,公有區塊鏈是最去中心化的(decentralized)。對於由比特幣和以太坊表示的公有區塊鏈,公有區塊鏈的參與者(區塊鏈節點,或簡稱為節點)可以從區塊鏈中讀取資料記錄、參與交易並競爭新區塊的記帳(bookkeeping)權等。此外,每個參與者可以自由加入和退出區塊鏈網路以及施行相關操作。然而,對於私有區塊鏈,區塊鏈網路的資料寫入權限可由某個實體或組織所控制,而資料讀取權限由實體或組織確定。因此,私有區塊鏈可被認為是弱中心化系統,其中參與的節點受約束並且數量受限制。聯盟區塊鏈介於公有區塊鏈與私有區塊鏈之間,並且可以實現“部分去中心化”。聯盟區塊鏈的每個節點可以對應於實體或組織。參與者可以通過授權加入聯盟區塊鏈網路,從而形成具有共同利益的聯盟,並共同維護區塊鏈網路的運行。對於上述各種類型的區塊鏈中的任何一種,可能存在在區塊鏈網路中動態刪除節點的需求。
在一些實施例中,具有一定層級投票權的節點可以被稱為共識節點,其形成區塊鏈網路並通過共識協定維持其運行。例如,共識節點可以承擔對區塊鏈交易(或簡稱交易)施行共識驗證的責任。相比之下,未啟用節點(其可能是也可能不是區塊鏈網路的一部分)不參與這種共識驗證。通過共識驗證,共識節點可以就將新生成的區塊添加到區塊鏈中達成共識(協定)。新生成的區塊可以包括由共識節點進行共識驗證的一個或多個交易。共識節點還可以對區塊鏈做出其他共識決策,例如,為區塊鏈設置服務費。
公有區塊鏈、私有區塊鏈和聯盟區塊鏈中的每一個可以提供智慧合約。可以通過區塊鏈交易將智慧合約部署在區塊鏈中,接著由另一個區塊鏈交易來調用。例如,以太坊支援用戶創建和調用複雜演算法。作為可程式化的區塊鏈,以太坊的核心在於以太坊虛擬機(EVM)。每個以太坊節點可以運行EVM。EVM是圖靈完備的,這意味著甚至可以通過它們來實施複雜的演算法。可以在EVM中執行智慧合約的部署和調用。
如圖1中所示,Bob可以將包括智慧合約創建的區塊鏈交易發送到以太坊網路。區塊鏈節點1的EVM可以執行區塊鏈交易以生成智慧合約的相應實例。在圖1中,“0x6f8ae93…”表示智慧合約的位址。區塊鏈交易的“資料(data)”欄位可以儲存位元組碼。區塊鏈交易的“至(to)”欄位可以是空(null)的區塊鏈帳戶。在區塊鏈節點通過共識機制達成共識後,智慧合約被成功創建並部署在區塊鏈中,未來的用戶可以調用部署的智慧合約。
創建智慧合約後,將在區塊鏈中創建與智慧合約相對應的合約帳戶,並且合約帳戶具有特定的位址。合約代碼和帳戶資料將被儲存在合約帳戶下。智慧合約的行為由合約代碼控制,並且合約帳戶儲存智慧合約的狀態。換句話說,智慧合約使能在區塊鏈中創建包括合約代碼和帳戶儲存的虛擬帳戶。
如圖2中所示,仍以以太坊為例,Bob將包括用於調用智慧合約的資訊的區塊鏈交易發送到以太坊網路。區塊鏈節點1的EVM可以執行區塊鏈交易以生成智慧合約的相應實例。對於圖2中的區塊鏈交易,“從(from)”欄位可以包括調用智慧合約的區塊鏈帳戶的位址,“至”欄位中的“0x6f8ae93…”可以表示要被調用的智慧合約的位址,“值(value)”欄位可以表示以太幣的值,“資料”欄位可以儲存用於調用智慧合約的方法和參數。調用智慧合約後,區塊鏈帳戶所持有的以太幣餘額可能會改變。此外,某個用戶客戶端可以通過區塊鏈節點(例如,圖2中的區塊鏈節點6)來查看餘額。
智慧合約可以根據規定的方式在區塊鏈網路的每個區塊鏈節點中獨立執行。所有執行記錄和資料可以儲存在區塊鏈中。因此,在執行這樣的區塊鏈交易之後,防篡改並且永久的交易證明被保存到區塊鏈中。
圖3顯示了智慧合約的創建和調用。在以太坊中創建智慧合約涉及諸如編寫智慧合約、編譯為位元組碼以及部署在區塊鏈中等步驟。在以太坊中調用智慧合約可以指發起指向已部署的智慧合約的位址的區塊鏈交易,以使合約代碼在以太坊網路中每個節點的EVM中執行。
除了用戶創建智慧合約之外,還可以在區塊鏈的創始區塊(genesis block)中由系統配置智慧合約。這種類型的合約可以稱為創始合約。在創始合約中,可以配置區塊鏈網路的資料結構、參數、屬性和方法。此外,具有系統管理員權限的帳戶可以創建或修改系統級智慧合約(簡稱“系統合約”)。除了EVM之外,不同的區塊鏈網路可以採用不同的虛擬機,本文不做限制。
區塊鏈技術與傳統的去中心化技術之間的一個區別是在每個節點上進行記帳,或稱為分散式記帳,而不是傳統的集中式記帳。在各種區塊鏈網路中,可以實施共識演算法(即上述共識機制),以確保在進行記帳的節點之間的記錄一致性。當節點生成新區塊時,如果新區塊被其他節點接受,則其他節點將記錄相同的新區塊。其他節點確認新區塊的處理是共識機制。共識機制是這樣的機制:區塊鏈節點就區塊資訊達成全網共識,以確保將新區塊正確地添加到區塊鏈中。當前,主流共識機制包括:工作量證明(POW)、權益證明(POS)、委託權益證明(DPOS)、實用拜占庭容錯(PBFT)演算法、HoneyBadger BFT演算法等。
圖4顯示了傳統的PBFT演算法的流程圖。演算法由米格爾•卡斯特羅(Miguel Castro)和芭芭拉•利斯科夫(Barbara Liskov)於1999年提出,解決了PBFT的低效率問題,將複雜度從指數級降低到多項式級,使PBFT在實際系統中的應用變得可行。論文發表在第三屆作業系統設計與實現研討會(1999)論文集上。演算法假定,如果多達f個備份副本(即節點)是惡意的或故障的,則總共有3f+1個或更多的副本可以保證異步系統內的安全性和活性。為確保所有副本的資料一致並滿足容錯要求,需要一定數量的副本(例如包括分散式系統中大多數節點的集合)來形成法定數量(Quorum)。例如,如果副本總數n為3f+1,則Quorum為2f+1。換句話說,基於PBFT的區塊鏈網路對惡意或故障(例如,異常、離線)節點的容忍度,PBFT系統可以容忍的惡意或故障節點的最大數量f表示,為(n-1)/3下舍入到最接近的整數,其中n是副本總數。因此,對於包括四個節點的分散式系統,它們中的任何三個都可以形成Quorum。
此外,所有副本都經過稱為視圖(view)的一系列配置(succession of configurations)。在視圖中,一個副本是主節點,其他副本是備份節點。視圖的主節點是副本p,使得p=v mod | R |,其中v是視圖編號,視圖被連續編號,並且| R |是副本數。當主節點故障時,需要觸發視圖改變協定以在系統故障時做出調整,來改變主節點。
PBFT演算法如下。
1.客戶端設備c向主節點0(副本0)發送請求;
2.主節點0向每個備份節點廣播請求;
3.所有副本中的每一個執行請求,並將相應的結果發送到客戶端設備c;
4.客戶端設備c分別從f+1個不同副本中收集相同的結果,作為操作的最終結果。
以下討論了PBFT(結合著名的拜占庭將軍問題)的範例。在此,假設n=4且f=1,即總共有四個節點,其中故障節點的數量是1。假設節點編號分別為0、1、2和3,並且故障節點為節點3。處理如下。
1.(請求階段)客戶端設備c將請求發送到主節點0;
2.(預準備階段)主節點0接收來自客戶端設備c的請求(或來自客戶端設備組的請求),對請求排序(在客戶端設備組的情況下),並將請求打包為訊息m。接著,主節點0向節點1、2和3(即備份節點1、2和3,也稱為副本或節點1、2和3)廣播預準備訊息。預準備訊息包括訊息m。
3.(準備階段)在接收到預準備訊息之後,如果節點1、2和3成功驗證了訊息m,則節點1、2和3中的每個節點將重新廣播訊息m。例如,節點1將向節點0、2和3廣播準備訊息;節點2將向節點0、1和3廣播準備訊息,節點3可能會經歷停機時間並且無法廣播。此外,每個節點接收由其他節點廣播的準備訊息。每個節點可以將自身廣播的準備訊息(指示自身認可的準備訊息)和接收到的準備訊息(指示其他節點認可的準備訊息)添加到本地日誌中。如果節點接收到同一訊息的Quorum -1個確認(具有預準備訊息和Quorum -1個準備訊息,則本地日誌將具有Quorum個確認),則節點轉換到準備階段。
4.(提交階段)已進入準備階段的每個參與的共識節點向其他共識節點廣播提交訊息,並將自身廣播的提交訊息(指示自身認可的提交訊息)添加到本地日誌中。接著,每個節點接收其他節點廣播的提交訊息。如果節點接收到Quorum -1個有效的提交訊息,則節點將提交訊息添加到本地日誌中(具有自身廣播的提交訊息和Quorum -1個提交訊息,則本地日誌將具有Quorum個提交訊息)並轉換到提交狀態。
5.(回復階段)參與共識驗證的所有節點中的每個節點在其本地虛擬機中依次執行預準備訊息的訊息m中的請求或一組有序請求,接著將回復發送到客戶端設備c。
如果客戶端設備c接收到f+1個相同的回復訊息,則這指示客戶端設備c提出的請求已達成全網共識。否則,客戶端設備c可能需要確定是否將請求重新發送到主節點0。
以上關於圖4的處理和描述是傳統的PBFT演算法。處理可以由客戶端設備發起,使得客戶端設備發起的請求訊息中的一個或多個交易經歷共識驗證,並在共識驗證結束時將共識驗證的結果傳回到客戶端設備。
在聯盟區塊鏈場景中,可以由任何節點發起共識驗證(例如,上圖4的預準備、準備和提交處理)。在聯盟區塊鏈場景中,客戶端設備是可選的。如果不包括客戶端設備,則圖4的請求和回復階段變為可選,並且主節點可以在獲得一定數量的區塊鏈交易後發起PBFT共識驗證。如果包括客戶端設備,則共識驗證可以不由客戶端設備發起,而是可以由主節點在主節點獲得一定數量的區塊鏈交易後發起。即,圖4中的預準備階段可能不由請求階段直接觸發。
如果主節點行為惡意或故障(例如,異常、離線),並且未能廣播客戶端設備的請求,則客戶端設備可以配置逾時機制。如果發生逾時,則客戶端設備可以將請求廣播到所有副本。如果副本檢測到主節點行為惡意或故障(例如異常、離線),則副本可以發起視圖改變協定階段以改變主節點。
此外,主節點提出的錯誤提議可能會導致預準備、準備和提交三個階段的共識驗證失敗。替代地,在準備和提交階段,可能無法達成一致的Quorum,這也無法完成共識驗證。在這些情況下,也可以發起視圖改變以改變主節點。
在視圖改變協定階段,需要解決先前節點與其他節點之間的異步問題,以使節點在視圖改變(VC)之後恢復。例如,如圖5中所示,在視圖改變之前的視圖v處,主節點副本0已經提交並執行了與<v,n,d>相對應的提議(propose)m5(例如,訊息m5),其中v是視圖編號,n是節點總數,並且d是提議m5的訊息摘要。然而,副本1可能由於網路延遲而沒有提交提議m5,並且仍然處於預準備階段。副本2(和副本3)也可以處於對提議m5的預準備階段。此後,副本0經歷停機時間。因此,不同的節點處於不同的狀態。改變主節點後,副本0可以通過重啟來恢復。主節點可能已改變為副本1,並且副本1-3需要在訊息處理進度上趕上副本0。因此,新的主節點副本1需要重新發送處於準備狀態的提議m5以供副本1-3執行並與副本0的狀態同步。否則,在新的視圖v+1處,副本1-3可能會完成新訊息m6的三個階段的共識驗證,但只有副本0已經執行了m5,而副本1-3尚未執行m5。即,在新視圖v+1處,副本1-3對新訊息m6的執行從與副本0不同的狀態啟動。這可能導致不同節點的虛擬機之間出現不一致,並導致分叉。另外,在上述處理中,如果副本0針對m5處於準備狀態,也就是說,如果副本0尚未在其虛擬機上執行m5,而其他副本在處理上落後於副本0,則副本0的準備狀態可以被刪除而不影響整個系統的一致性。
視圖改變協定階段可以包括視圖改變協定處理和新視圖協定處理。執行完兩個協定處理後,完成主節點的改變。主節點改變後,視圖編號將加1,改變為v+1。根據p=(v+1)%n,圖4的主節點副本0改變為副本1。
例如,如圖6中所示,檢測到主節點惡意或故障(例如,異常、離線)的備份節點可以將訊息<視圖改變, v+1, n, C, P, i>廣播到其他備份節點。如圖6中所示,副本1檢測到原始主節點副本0行為惡意或故障(例如,異常、離線),則副本1向副本0、副本2和副本3發送訊息<視圖改變,v+1,n,C,P,i>。類似地,副本2向副本0、副本1和副本3發送訊息<視圖改變,v+1,n,C,P,i>,並且副本3向副本0、副本1和副本2發送訊息<視圖改變,v+1,n,C,P,i>。
對於廣播訊息,“視圖改變”是協定標識,指示協定是視圖改變協定。下一個視圖編號是v+1,並且“n”是最新的穩定檢查點的數量,“C”是已驗證的2f+1個檢查點訊息的集合。“P”是可選的,並且如果存在,則指示對於發送視圖改變訊息(對應於準備狀態中的每個<v,n,d>,預準備訊息和包括2f個不同節點的簽署)的備份節點已達到準備狀態的一個或多個訊息的集合。
在例如圖6中的副本1的新的主節點p=(v+1)mod |R|接收到2f個有效的視圖改變訊息後,新的主節點向其他節點廣播訊息<新視圖,v+1,V,O,p>。“新視圖”是協定標識,指示協定是新的視圖協定。下一個視圖編號是v+1。“V”包括視圖改變訊息和新的主節點從2f個不同節點接收到的簽署,以及由新的主節點自身已發送或待發送的針對v+1的視圖改變訊息。“O”是由主節點重新發送的未執行的預準備訊息集,而“p”是當前節點的簽署。預準備訊息集的選擇規則包括:
1.從V獲得具有最小編號min-s的穩定檢查點,從V獲得具有最大編號max-s的準備訊息。
2.在min-s與max-s之間,如果存在訊息集P,則創建訊息<<預準備,v+1,n,d>,m>。否則,創建空的預準備訊息<<預準備,v+1,n,d(null)>,m(null)>,其中m(null)是空訊息,d(null)是空訊息的摘要。
當備份節點從主節點接收到新的視圖訊息時,備份節點驗證V和O中的簽署和視圖改變訊息。如果有效,則備份節點進入v+1狀態並啟動處理O中的預準備訊息。
在聯盟區塊鏈的範例中,在聯盟區塊鏈場景中,節點可能對應於一個或多個帳戶。類似地,節點可能不對應任何帳戶,而僅充當共識節點。另外,聯盟區塊鏈可以包括可以如上所述生成的創始合約或系統合約。創始合約/系統合約可以配置聯盟區塊鏈的共識節點列表(節點列表,或簡稱列表),例如,配置共識節點的公開金鑰集,並根據預定順序排列集中的公開金鑰。聯盟區塊鏈的每個共識節點可以根據創始合約中的共識節點列表在本地儲存本地節點列表。在本地節點列表中,每個共識節點可以根據創始合約/系統合約中指定的順序,根據對應的公開金鑰來排列共識節點。因此,每個共識節點的本地列表都包含以相同的順序排列的相同的共識節點。另外,在創始合約/系統合約中,可以添加用於共識節點的方法和參數配置。因此,基於創始合約/系統合約,每個節點可以通過改變本地節點列表中的節點來完成節點刪除的操作。
當帳戶發起刪除共識節點的請求時,請求例如是交易請求,第一共識節點可以接收請求。例如,請求可以是客戶端設備提出的節點刪除請求,從而觸發節點刪除處理。替代地,請求可以是第一共識節點從控制器的命令控制台接收到的節點刪除請求,從而觸發節點刪除處理。控制器可以由控制相應節點的管理員例如通過圖形化或代碼化指令來操作。對於例如PBFT的具有主節點的共識演算法,第一共識節點可以是主節點。第一共識節點可以直接從客戶端設備或控制器、或者從轉發交易請求的其他共識節點來獲得交易請求。對於諸如HoneyBadger BFT之類的無主節點的共識演算法,不存在主節點,則第一共識節點是多個共識節點之一。
圖7顯示了根據各種實施例的用於在區塊鏈網路中刪除節點的流程圖。以下呈現的操作意於說明。取決於實施方式,範例性步驟可以包括以各種順序或並行施行的附加的、更少的或替代的步驟。圖7提供了在包括多個共識節點的區塊鏈網路中刪除節點(節點X)的範例。區塊鏈網路維護區塊鏈。可以刪除作為基於PBFT的區塊鏈網路的主節點或備份節點的節點X。
在區塊鏈網路中刪除節點可以至少包括以下實施例。在一些實施例中,節點X可以是在節點刪除之前的區塊鏈網路的啟用的共識節點,並且通過節點刪除,節點X變為區塊鏈網路的未啟用的共識節點。啟用的共識節點可以參與共識驗證。然而,未啟用的共識節點不可以參與共識驗證,並且因此可能是非共識節點。在一些實施例中,節點X可以是在節點刪除之前的區塊鏈網路的一部分(例如,作為啟用的共識節點),並且通過節點刪除,節點X被從區塊鏈網路移除。
圖7顯示兩個平行的時間軸,頂部時間軸承載節點X的本地區塊鏈拷貝的時間依賴狀態,並且底部時間軸承載剩餘共識節點(節點Y)之一的本地區塊鏈拷貝的時間依賴狀態。每個剩餘共識節點可以施行由節點Y所施行的步驟。在軸之間,存在訊息通訊和資料同步態樣的各種互動。在一些實施例中,區塊鏈網路的每個共識節點在本地維護節點列表,節點列表包括以下一項或多項:共識節點標識、共識節點IP位址和共識節點埠號。在節點列表中對區塊鏈網路的共識節點順序編號。由於節點刪除,區塊鏈網路的共識節點總數可能減少,並且節點列表中的共識節點的編號可能會改變。在一個實施例中,節點列表處於由區塊鏈網路維護的區塊鏈的世界狀態。
沿著頂部軸,節點X從作為區塊鏈網路的啟用共識節點變為不作為區塊鏈網路的啟用共識節點。沿著底部軸,節點Y經歷從正常階段到視圖改變階段接著傳回到正常階段。同樣,沿著頂部軸和底部軸,當添加一個或多個新區塊時,區塊鏈會改變其狀態,因此,區塊鏈狀態會從B_1更新為B_2以及B_3。每個軸上的“區塊”框表示由節點X或節點Y所看見或所儲存的區塊鏈。
在一些實施例中,在步驟701,管理帳戶、外部帳戶或替代帳戶可以發起交易“刪除節點(DeleteNode)”以在區塊鏈網路中刪除節點X。交易可以由節點X、節點Y或耦接到區塊鏈網路的外部設備發起,並廣播到所有共識節點。節點Y可以從客戶端設備或控制器的命令控制台來獲得交易。例如,節點Y可以從節點X、區塊鏈網路的另一共識節點或外部設備獲得交易。此時,節點X的本地區塊鏈拷貝位於B_1。共識節點(例如,節點X、節點Y)可以對交易施行共識驗證。在一些實施例中,交易被配置成調用部署在由區塊鏈網路維護的區塊鏈中的區塊鏈合約。在一些實施例中,區塊鏈合約包括創始合約或系統合約。
在一些實施例中,回應於對交易的共識驗證成功,共識節點(例如,節點X、節點Y)可以各自執行交易並且在節點列表中將區塊鏈網路的除節點X外的多個剩餘共識節點。
在一些實施例中,為了執行交易,節點Y可以從節點Y的節點列表中刪除節點X,或者在節點Y的節點列表中將節點X配置為未啟用狀態。
在一些實施例中,每個共識節點(例如,節點X、節點Y)在本地維護節點列表,節點列表包括以下一項或多項:共識節點標識、共識節點IP位址和共識節點埠號。在節點列表中對區塊鏈網路中除節點X外的多個剩餘共識節點順序編號之前,在節點列表中對區塊鏈網路中包括節點X和節點Y的所有共識節點順序編號。例如,在節點刪除前,節點列表指示區塊鏈網路包括節點A(編號0)、節點B(編號1)、節點C(編號2)、節點X(編號3)和節點Y(編號4);而在節點刪除後,節點列表指示區塊鏈網路包括節點B(編號0)、節點A(編號1)、節點C(編號2)以及節點Y(編號3)。
在一些實施例中,在步驟702,共識節點(例如,節點X、節點Y)可以發起視圖改變。例如,共識節點可以回應於檢測到以下任何條件而發起視圖改變:節點列表中共識節點的數量與當前視圖中共識節點的數量不一致;節點列表中共識節點標識與當前視圖中共識節點標識不一致;節點列表中啟用共識節點的數量與當前視圖中共識節點的數量不一致;以及節點列表中啟用共識節點的標識與當前視圖中共識節點的標識不一致。在一個實施例中,共識節點可以回應於接收到由節點X廣播的、用於發起視圖改變的訊息來發起視圖改變。
在一些實施例中,剩餘共識節點(例如,節點Y)可以施行視圖改變,以使剩餘共識節點參與未來的共識驗證。視圖改變中的副本數是除第二共識節點之外的剩餘共識節點的總數。在一些實施例中,剩餘共識節點可以在沒有節點X的情況下參與共識驗證。在一些實施例中,在步驟703和704,雖然並未作為啟用共識節點,然而節點X可以同步到區塊鏈以更新其本地區塊鏈拷貝。
這樣,在刪除節點期間不會中斷區塊鏈運行。在節點刪除處理期間仍然可以施行共識驗證。無需停止區塊鏈系統即可實現節點刪除,從而消除了系統停機時間。
圖8顯示了根據各種實施例的用於在區塊鏈網路中刪除節點的方法800的流程圖。在一些實施例中,區塊鏈網路可以基於聯盟區塊鏈。在一些實施例中,區塊鏈網路可以基於PBFT。
S801包括:區塊鏈網路的第一共識節點獲得用於刪除節點的交易請求,並對用於刪除節點的交易請求發起共識驗證;共識驗證成功後,剩餘共識節點執行用於刪除節點的交易並在本地節點列表中將除待刪除節點外的剩餘共識節點編號。
在一些實施例中,交易請求可以是用於調用合約的交易請求。在交易請求中,可以指定被調用的智慧合約的位址、調用方法和輸入參數。例如,被調用的合約可以是上述的創始合約/系統合約,調用方法可以是用於刪除節點的方法,以及輸入參數可以包括待刪除節點的以下中的一個或多個:標識、IP位址以及埠號。
在一些實施例中,第一共識節點可以通過接收用於刪除節點的交易請求來觸發節點刪除處理。例如,如上所述,第一共識節點可以通過從客戶端設備接收用於刪除節點的交易請求來觸發節點刪除處理,或者第一共識節點可以通過從控制器的命令控制台接收用於刪除節點的交易請求來觸發節點刪除處理。控制器可以由控制相應節點的管理員例如通過圖形化或代碼化的指令來操作。替代地,第一共識節點可以從待刪除節點接收待刪除節點的相關資訊,以觸發刪除節點處理。
在一些實施例中,將用於刪除節點的交易請求傳播到基於底層點對點(P2P)網路的區塊鏈網路中的各個共識節點。在第一共識節點接收到用於刪除節點的交易請求後,第一共識節點可以作為與具有主節點的共識演算法關聯的主節點、或者作為與不具有主節點的共識演算法關聯的共識節點,發起共識驗證處理。以例如PBFT的具有主節點的共識演算法為例,第一共識節點可以是主節點,並且可以針對用於刪除節點的交易請求發起共識驗證處理,即主要包括上圖4中的預準備、準備以及提交處理。替代地,第一共識節點可以是備份節點,其接收並將交易請求轉發給主節點以發起共識驗證處理。
在一些實施例中,在完成共識驗證之後,區塊鏈網路中的節點在本地具有針對待刪除節點的交易請求中的訊息內容,並且達成共識。此外,如果用於刪除節點的交易請求中的訊息內容與其他訊息一起形成共識結果,則用於刪除節點的交易請求中的訊息內容在不同節點上具有相同的訊息序列,即,至少Quorum的共識節點已經針對節點刪除請求中的訊息內容和與訊息相關聯的順序達成共識。
在一些實施例中,在S801之後,如前所述,至少Quorum的共識節點已經針對包括節點刪除的交易請求中的訊息內容達成共識。此外,剩餘共識節點可以在本地執行相應的合約。例如,剩餘共識節點可以調用上述創始合約/系統合約,在例如EVM的虛擬機中執行創始合約/系統合約的調用中指定的方法,並輸入相應的參數。在一個範例中,輸入的參數可以包括例如待刪除節點的標識、待刪除節點的IP位址、待刪除節點的埠號等。在執行合約期間,剩餘共識節點可以從本地節點列表中刪除待刪除節點的資訊,並在本地節點列表中對剩餘共識節點順序編號。這樣,至少由Quorum的剩餘共識節點維護的共識節點列表具有相同的剩餘共識節點,且所述相同的剩餘共識節點以相同的順序編號。
在一些實施例中,如上所述,共識節點可以在本地維護共識節點列表,即上述本地節點列表,其記錄當前區塊鏈網路中所有共識節點的基本資訊。在一個範例中,基本資訊可以包括例如以下中的一項或多項:共識節點標識、IP位址、埠號等。其中,可以在本地節點列表中對共識節點順序編號。共識節點可以具有標識(ID),其可以是唯一地標識節點的標識,例如節點的公開金鑰、IP位址+埠號等。在某些區塊鏈項目中,共識節點列表可以在邏輯上存在於世界狀態。以以太坊、紡布克(Fabric)和聯盟區塊鏈為例,每個節點在本地維護世界狀態,其中所有帳戶的最新狀態可用。例如,在以太坊中,節點可以基於區塊中的狀態樹、交易樹和收據樹的內容來維護所有帳戶的最新狀態。
在一些實施例中,由於共識節點已經施行了數個共識,因此理論上,在共識節點之間已經維護了共識節點列表的一致性。例如,共識節點a、b、c、d和m具有儲存在其各自世界狀態中的本地節點列表,並且儲存在各個節點a、b、c、d和m的本地節點列表中的共識節點為五個節點a、b、c、d和m,並且順序為a-b-c-d-m。接著,a、b、c、d和m的編號分別為0、1、2、3和4。這樣,對於刪除的節點m,每個共識節點基於在本地維護的共識節點列表來施行S801,並且共識節點的本地節點列表中的節點包括節點a、b、c和d,總共四個節點,並且對剩餘節點配置相同的序列號(例如0-1-2-3)。
在一些實施例中,共識節點可以包括兩種類型:啟用的和未啟用的。啟用的共識節點可以參與共識驗證,並且可以以順序編號儲存到本地節點列表中。未啟用共識節點可能不參與共識驗證,因此不會在本地節點列表中與啟用共識節點一起編號。因此,代替上述從本地節點列表中刪除待刪除的節點,可以將待刪除的節點設置為未啟用狀態。結果,待刪除的節點可以在不被從區塊鏈網路中刪除的情況下被凍結,並且因此不再充當共識節點。
S803包括剩餘共識節點施行視圖改變。
在S801中,剩餘共識節點執行用於刪除節點的交易後,剩餘共識節點可以更新本地節點列表。在當前視圖中,原始節點參與了共識驗證,但尚未執行節點刪除並且其次序保留。這樣,在剩餘共識節點施行了刪除節點的交易後,它們可以檢測到本地共識節點列表中的共識節點的數量與當前視圖中的共識節點的數量不一致,或者檢測到本地共識節點列表中的共識節點標識與當前視圖中的共識節點標識不一致。因此,剩餘共識節點可以發起視圖改變。
在一些實施例中,視圖改變處理中的R(即視圖改變處理中的副本數)是除待刪除節點外的共識節點的總數,即,本地節點列表中的除待刪除節點外的節點數。
在一些實施例中,類似於前述,剩餘共識節點可以向其他副本節點廣播訊息<視圖改變,v+1,n,C,P,i>,其中n是最新的穩定檢查點的數量,C是2f+1個經驗證的檢查點訊息的集合,以及P是副本節點尚未完成處理的預準備和準備訊息集。
在一些實施例中,共有五個共識節點,編號為a、b、c、d和m,假設剩餘節點包括節點a、b、c和d,而待刪除節點是節點m。節點a例如是PBFT中的主節點,而節點b、c、d和m例如是PBFT中的備份節點。可以通過p=(v)mod | R |來計算新的主節點編號。例如,如果p=1,則新的主節點是節點b。這裡,R是本地節點列表中除待刪除節點外的節點數。每個共識節點在本地節點列表中記錄五個節點a、b、c、d和m的編號。在這種情況下,R等於5。在執行S801至S803的範例中,每個共識節點可以對除待刪除節點外的剩餘共識節點順序編號,即,剩餘節點a、b、c和d可以順序編號為0、1、2和3。在這種情況下,R變為4。如上所述,在視圖改變處理中視圖編號增加,即,從v增加到v+1。
在另一範例中,共有五個共識節點,編號為a、b、c、d和m,假設待刪除的節點是節點c,則剩餘節點包括節點a、b、d和m。在執行步驟S801-S803之後,每個共識節點可以基於節點刪除之前共識節點的編號,對剩餘共識節點(除待刪除節點外)編號。因此,剩餘共識節點a、b、d和m被重新編號為0、1、2和3。
此外,對於將共識節點配置為未啟用狀態以凍結共識節點的方法,剩餘共識節點可以回應於檢測到以下任何條件而發起視圖改變:本地共識節點列表中的啟用共識節點的數量與當前視圖中的共識節點的數量不一致,或者本地共識節點列表中的啟用共識節點的標識與當前視圖中的共識節點的標識不一致。
S805包括:在視圖改變完成之後,剩餘共識節點參與共識驗證。
在一些實施例中,在視圖改變完成之後,除被刪除節點之外的剩餘共識節點各自在本地具有相同的節點編號列表並且具有相同的區塊資料,從而剩餘共識節點可以正常地參與共識驗證。這樣,節點刪除處理完成。
圖9顯示了根據各種實施例的用於在區塊鏈網路中刪除節點的方法900的流程圖。方法900可以由用於刪除例如區塊鏈網路的共識節點(例如,圖1-3的區塊鏈節點、圖7或圖10的剩餘共識節點)的區塊鏈網路中的節點的設備、裝置或系統來施行。方法900可以由區塊鏈網路的第一共識節點來施行。第一共識節點可以是基於PBFT的區塊鏈網路的主節點或備份節點。可以由包括各種硬體機器和/或軟體的系統或設備(例如,電腦、伺服器)來實施第一共識節點。例如,系統或設備可以包括一個或多個處理器以及一個或多個非暫態電腦可讀儲存媒體(例如,一個或多個記憶體),電腦可讀儲存媒體耦接到一個或多個處理器並且配置有可由一個或多個處理器執行以使得系統或設備(例如,處理器)施行方法900的指令。
下面呈現的方法900的操作意於說明。取決於實施方式,方法900可以包括以各種順序或並行施行的附加的、更少的或替代的步驟。方法900的更多細節可以參考圖1至圖8和圖10以及相關的描述。參考圖1至圖8和圖10描述的用於在區塊鏈網路中刪除節點的步驟被包括在方法900中。
在區塊鏈網路中刪除節點可以至少包括以下實施例。在一些實施例中,待刪除的節點(例如,第二共識節點)可以是在節點刪除之前的區塊鏈網路的啟用共識節點,並且通過節點刪除,節點成為區塊鏈網路的未啟用共識節點。啟用共識節點可以參與共識驗證。但是,未啟用共識節點不能參與共識驗證,並且因此可能是非共識節點。在一些實施例中,待刪除的節點可以是在節點刪除之前的區塊鏈網路的一部分(例如,作為啟用共識節點),並且通過節點刪除,節點被從區塊鏈網路移除。
方塊S901包括:區塊鏈網路的第一共識節點獲得包括用於刪除區塊鏈網路中的第二共識節點的請求的交易。在一些實施例中,第一共識節點獲得交易包括:從客戶端設備或控制器的命令控制台獲得交易。在一些實施例中,獲得交易包括:從第二共識節點、區塊鏈網路的第三共識節點或外部設備獲得交易。
在一些實施例中,交易被配置為調用部署在由區塊鏈網路維護的區塊鏈中的區塊鏈合約。在一些實施例中,區塊鏈合約包括創始合約或系統合約。
方塊S902包括:回應於對交易的共識驗證成功,執行交易並且在節點列表中對區塊鏈網路中除第二共識節點外的多個剩餘共識節點順序編號。在一些實施例中,執行交易包括:從節點列表中刪除第二共識節點;或者將節點列表中的第二共識節點配置為未啟用狀態。
在一些實施例中,節點列表處於由區塊鏈網路維護的區塊鏈的世界狀態。在一些實施例中,第一共識節點在本地維護節點列表,節點列表包括以下一項或多項:共識節點標識、共識節點IP位址和共識節點埠號;並且在節點列表中對區塊鏈網路中除第二共識節點外的多個剩餘共識節點順序編號之前,在節點列表中對區塊鏈網路中包括第二共識節點的所有共識節點順序編號。
方塊S903包括:施行視圖改變以使剩餘共識節點參與未來的共識驗證。在一些實施例中,施行視圖改變包括:回應於接收到由第二共識節點廣播的、用於發起視圖改變的訊息而發起視圖改變。
在一些實施例中,施行視圖改變包括:回應於檢測到以下任何條件而發起視圖改變:節點列表中共識節點的數量與當前視圖中共識節點的數量不一致;節點列表中的共識節點標識與當前視圖中的共識節點標識不一致;節點列表中啟用共識節點的數量與當前視圖中共識節點的數量不一致;以及節點列表中啟用共識節點的標識與當前視圖中共識節點的標識不一致。
在一些實施例中,視圖改變中的副本數是除第二共識節點之外的剩餘共識節點的總數。
在一些實施例中,方法進一步包括:在沒有第二共識節點的情況下參與共識驗證。
圖10顯示了根據各種實施例的用於實施區塊鏈網路的方塊圖。如圖所示,在節點刪除之前,區塊鏈網路可以包括多個共識節點1002,其中要從區塊鏈網路中刪除的節點是1003,並且剩餘節點是1004。共識節點1004中的任何一個可以是用於接收交易的第一共識節點。在此,將節點1001指定為第一共識節點。在一些實施例中,區塊鏈網路可以基於PBFT,並且在每個視圖中,其節點之一可以是主節點而剩餘節點可以作為備份節點。
在一些實施例中,第一共識節點1001被配置為用於獲得用於在區塊鏈網路中刪除節點1003的交易請求,並對用於刪除節點1003的交易請求發起共識驗證。共識驗證成功後,每個共識節點1002被配置為執行用於刪除節點1003的交易,並對除待刪除節點1003外的剩餘共識節點1004順序編號。剩餘共識節點1004被配置為用於施行視圖改變,並且在視圖改變完成之後,針對區塊鏈參與共識驗證。
在一些實施例中,用於刪除節點的交易請求包括用於調用合約的交易請求。在一些實施例中,被調用的合約包括創始合約或系統合約。在一些實施例中,第一共識節點1001獲得用於刪除節點的交易請求包括:第一共識節點1001從客戶端設備獲得用於刪除節點的交易請求;第一共識節點1001從控制器的命令控制台獲得用於刪除節點的交易請求。
在一些實施例中,每個共識節點1002被配置為在本地維護節點列表,節點列表包括共識節點1002的以下一個或多個:標識、IP位址和埠號,其中,在節點列表中對共識節點1002順序編號。在一個實施例中,由共識節點1002在本地維護的節點列表處於世界狀態。
在一些實施例中,共識節點1002執行用於刪除節點1003的交易包括:共識節點1002從節點列表中刪除共識節點1003;或者在節點列表中將共識節點1003配置為未啟用狀態。
在一些實施例中,任何共識節點1002可以被配置為回應於檢測到以下任何條件而發起視圖改變:節點列表中共識節點的數量與當前視圖中共識節點的數量不一致;節點列表中的共識節點標識與當前視圖中的共識節點標識不一致;節點列表中啟用共識節點的數量與當前視圖中共識節點的數量不一致;以及節點列表中啟用共識節點的標識與當前視圖中共識節點的標識不一致。
在一些實施例中,共識節點1002可以回應於接收到由共識節點1003廣播的、用於發起視圖改變的訊息來發起視圖改變。
在一些實施例中,視圖改變中的副本數是除共識節點1003之外的剩餘共識節點1004的總數。
圖11顯示了根據一些實施例的用於在區塊鏈網路中刪除節點的裝置1100的方塊圖。裝置1100可以是節點(例如,圖1-3的區塊鏈節點、圖7或圖10的剩餘共識節點)的一個或多個組件的實施範例。節點可以是基於PBFT的區塊鏈網路的主節點或備份節點。方法800和方法900的一個或多個步驟可以由裝置1100來實施。
裝置1100可以在電腦系統或設備中實施,電腦系統或設備包括一個或多個處理器以及耦接到一個或多個處理器並配置有可由一個或多個處理器執行以使系統或設備(例如,處理器)施行上述方法(例如,方法800或900)的步驟的指令的一個或多個非暫態電腦可讀儲存媒體(例如,一個或多個記憶體)。裝置1100可以包括與指令(例如,軟體指令)相對應的各種單元/模組。
在一些實施例中,裝置1100可以包括:獲得模組1101,獲得包括用於刪除區塊鏈網路中的第二共識節點的請求的交易;執行模組1102,回應於對交易的共識驗證成功,執行交易並在節點列表中對區塊鏈網路中除第二共識節點外的多個剩餘共識節點順序編號;以及施行模組1103,施行視圖改變以使剩餘共識節點參與未來的共識驗證。
這裡描述的技術可由一個或多個專用計算設備實現。專用計算設備可以是桌上型電腦系統、伺服器電腦系統、可攜式電腦系統、手持設備、網路設備或包含硬連線和/或程式邏輯以實現這些技術的任何其他設備或設備的組合。專用計算設備可以被實現為個人電腦、膝上型電腦、蜂巢式電話、照相電話、智慧型電話、個人數位助理、媒體播放器、導航設備、電子郵件設備、遊戲控制台、平板電腦、可穿戴設備或其組合。計算設備通常可由作業系統軟體控制和協調。傳統的作業系統控制和排程用於執行的電腦進程,施行記憶體管理,提供檔案系統、網路、I/O服務,以及提供用戶介面功能,例如圖形用戶介面(“GUI”)等。這裡描述的各種系統、裝置、儲存媒體、模組和單元可以在專用計算設備或者一個或多個專用計算設備的一個或多個計算晶片中實現。在一些實施例中,這裡描述的指令可以在專用計算設備上的虛擬機中實現。當被執行時,指令可以促使專用計算設備施行本文描述的各種方法。虛擬機可以包括軟體、硬體或其組合。
圖12顯示了其中可以實施本文描述的任何實施例的電腦系統的方塊圖。系統1200可以在圖1-7、圖10和圖11中所示的環境、系統或設備的任何組件中實施。可以通過電腦系統1200的一個或多個實施方式來施行圖8和圖9所示的一個或多個方法。
電腦系統1200可以包括匯流排1202或用於通訊資訊的其他通訊機制、與匯流排1202耦接的用於處理資訊的一個或多個硬體處理器1204。硬體處理器1204可以是例如一個或多個通用微處理器。
電腦系統1200還可包括耦接到匯流排1202的、用於儲存資訊和可由處理器1204執行的指令的主記憶體1206,例如隨機存取記憶體(RAM)、高速快取和/或其他動態儲存設備。主記憶體1206還可以用於在可由(多個)處理器1204執行的指令的執行期間儲存臨時變量或其他中間資訊。當儲存在可由(多個)處理器1204存取的儲存媒體中時,這樣的指令將電腦系統1200呈現到為被定制以施行指令中指定的操作的專用機器中。電腦系統1200可以進一步包括唯讀記憶體(ROM)1208或耦接到匯流排1202的用於儲存用於處理器1204的靜態資訊和指令的其他靜態儲存設備。可以提供例如磁碟、光碟、USB拇指驅動器(快閃記憶體驅動器)等的儲存設備1210並將其耦接到匯流排1202以儲存資訊和指令。
電腦系統1200可使用定制的硬接線邏輯、一個或多個ASIC或FPGA、韌體和/或程式邏輯,其與電腦系統結合而使得電腦系統1200成為專用機器或將電腦系統1200程式化成為專用機器,來實現本文描述的技術。根據一個實施例,本文描述的操作、方法和過程由電腦系統1200回應於處理器1204執行主記憶體1206中包含的一個或多個指令的一個或多個序列來施行。這些指令可以從諸如儲存設備1210的另一儲存媒體讀取到主記憶體1206中。執行主記憶體1206中包含的指令序列可使得處理器1204施行本文描述的處理步驟。在替代實施例中,可以使用硬連線電路代替軟體指令或與軟體指令組合。
主記憶體1206、ROM 1208和/或儲存設備1210可包括非暫時性儲存媒體。這裡使用的術語“非暫時性媒體”和類似術語是指儲存促使機器以特定方式操作的資料和/或指令的媒體,所述媒體不包括暫時性訊號。這種非暫時性媒體可以包括非揮發性媒體和/或揮發性媒體。例如,非揮發性媒體包括光碟或磁碟,諸如儲存設備1210。揮發性媒體包括動態記憶體,諸如主記憶體1206。常規形式的非暫時性媒體包括,例如,軟磁碟、軟碟、硬碟、固態硬碟、磁帶或任何其他磁資料儲存媒體、CD-ROM、任何其他光學資料儲存媒體、具有孔圖案的任何實體媒體、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他記憶體晶片或盒式磁帶以及它們的網路版本。
電腦系統1200可包括耦接到匯流排1202的網路介面1218。網路介面1218可為連接到一個或多個本地網路的一個或多個網路鏈接提供雙向資料通訊耦接。例如,網路介面1218可以是綜合業務數位網路(ISDN)卡、電纜調制解調器、衛星調制解調器、或者向相應類型的電話線提供資料通訊連接的調制解調器。作為另一範例,網路介面1218可以是區域網路(LAN)卡以提供資料通訊連接至兼容的LAN(或與WAN通訊的WAN組件)。還可以實現無線鏈路。在任何這種實施中,網路介面1218可發送和接收攜帶表示各種類型資訊的數位資料流的電訊號、電磁訊號或光訊號。
電腦系統1200可通過網路、網路鏈接和網路介面1218來發送訊息和接收包括程式代碼的資料。網際網路範例中,伺服器可通過網際網路、ISP、本地網路和網路介面1218來傳送應用程式的請求代碼。
接收到的代碼可在接收時由處理器1204執行,和/或儲存在儲存設備1210或其他非揮發性記憶體中,用於以後執行。
前面部分中描述的每個處理、方法和演算法可以體現在由包括電腦硬體的一個或多個電腦系統或者電腦處理器執行的代碼模組中並且被其完全或部分自動化地實現。處理和演算法可以部分或全部地在專用電路中實現。
上述各種特徵和處理可彼此獨立地使用,或者可以各種方式組合。所有可能的組合和子組合都意於落入本文的範圍內。另外,在一些實施方式中可以省略某些方法或處理框。本文描述的方法和處理也不限於任何特定順序,與其相關的框或狀態可以以適當的其他順序執行。例如,所描述的框或狀態可以以不同於具體公開的順序執行,或者多個框或狀態可以在單一框或狀態中組合。框或狀態的範例可以串列、並行或以某種其他方式執行。可以將框或狀態從所公開的實施例中刪除或移除。這裡描述的系統和組件的範例可以與所描述的不同地被配置。例如,與所公開的實施例相比,可以刪除、移除或重新佈置元件。
本文描述的方法的各種操作可以至少部分地由被臨時配置(例如,通過軟體)或被永久配置為執行相關操作的一個或多個處理器執行。無論是臨時配置還是永久配置,這樣的處理器可以構成處理器實現的引擎,所述處理器實現的引擎用於執行本文描述的一個或多個操作或功能。
類似地,這裡描述的方法可以至少部分地由處理器實現,其中特定處理器是硬體的範例。例如,所述方法的至少一些操作可以由一個或多個處理器或處理器實現的引擎執行。此外,一個或多個處理器還可操作以支援“雲端計算”環境中的相關操作的性能,或作為“軟體即服務”(SaaS)操作。例如,至少一些操作可以由一組電腦(作為包括處理器的機器的範例)執行,這些操作可以經由網路(例如,網際網路)經由一個或多個適當的介面(例如,應用程式介面(API))被存取。
某些操作的性能可以在處理器之間分配,不僅駐留在單一機器中,而且跨多個機器被部署。在一些實施例中,處理器或處理器實現的引擎可以位於單一地理位置(例如,在家庭環境、辦公室環境或伺服器群內)。在其他實施例中,處理器或處理器實現的引擎可以分佈在多個地理位置。
在本文中,多個實例可以實現作為單一實例所描述的組件、操作或結構。儘管一個或多個方法的各個操作被顯示並描述為獨立的操作,但是可以同時執行一個或多個獨立的操作,並且不需要以所示的順序執行所述操作。在配置中作為獨立組件呈現的結構和功能可以實現為組合結構或組件。類似地,作為單一組件呈現的結構和功能可以實現為獨立的組件。這些和其他變化、修改、刪除和改進都落入本文中的主題的範圍內。
儘管已經參考具體實施例描述了主題的概述,但是在不脫離本文的實施例的較寬範圍的情況下,可以對這些實施例進行各種修改和改變。具體實施方式不應被視為具有限制意義,並且各種實施例的範圍僅由所附請求項以及這些請求項所賦予的等同物的全部範圍限定。此外,這裡使用的相關術語(諸如“第一”、“第二”、“第三”等)不表示任何順序、高度或重要性,而是用於將一個元件與另一元件區分開。此外,術語“一”、“一個”和“多個”在本文中並不表示對數量的限制,而是表示存在至少一個所述的物品。另外,在本文中,“或”是包括性的而不是排他性的,除非另外明確指出或通過上下文另外指出。因此,在本文中,“A或B”表示“A、B或兩者”,除非另外明確指出或通過上下文另外指出。而且,“和”既是連詞又是數個,除非另外明確指出或通過上下文另外指出。因此,在本文中,“A和B”是指“A和B,共同地或分別地”,除非另外明確指出或通過上下文另外指出。
701:步驟
702:步驟
703:步驟
704:步驟
800:方法
S801:步驟
S803:步驟
S805:步驟
900:方法
S901:步驟
S902:步驟
S903:步驟
1001:第一共識節點
1002:共識節點
1003:待刪除節點
1004:剩餘共識節點
1100:裝置
1101:獲得模組
1102:執行模組
1103:施行模組
1200:系統
1202:匯流排
1204:硬體處理器
1206:主記憶體
1208:ROM
1210:儲存設備
1218:網路介面
[圖1]顯示了根據各種實施例的用於創建區塊鏈合約的圖。
[圖2]顯示了根據各種實施例的用於調用區塊鏈合約的圖。
[圖3]顯示了根據各種實施例的用於創建和調用區塊鏈合約的圖。
[圖4]顯示了用於實用拜占庭容錯(PBFT)演算法的流程圖。
[圖5]顯示了用於在執行PBFT演算法的視圖改變之後進行恢復的流程圖。
[圖6]顯示了用於執行PBFT演算法的視圖改變的流程圖。
[圖7]顯示了根據各種實施例的用於在區塊鏈網路中刪除節點的流程圖。
[圖8]顯示了根據各種實施例的用於在區塊鏈網路中刪除節點的方法的流程圖。
[圖9]顯示了根據各種實施例的用於在區塊鏈網路中刪除節點的方法的流程圖。
[圖10]顯示了根據各種實施例的用於實施區塊鏈網路的方塊圖。
[圖11]顯示了根據一些實施例的用於在區塊鏈網路中刪除節點的裝置的方塊圖。
[圖12]顯示了其中可以實施本文描述的任何實施例的範例性電腦系統的方塊圖。
Claims (14)
- 一種電腦實現的用於在區塊鏈網路中刪除主節點或備份節點的方法,其透過所述區塊鏈網路的第一共識節點執行,其中,所述區塊鏈網路係基於實用拜占庭容錯(PBFT)演算法作為共識演算法,用於透過共識驗證就區塊資訊達成全網共識,所述方法包括:獲得包括用於刪除所述區塊鏈網路中的第二共識節點的請求的交易,其中,在節點列表中對所述區塊鏈網路中包括所述第一共識節點和所述第二共識節點的所有共識節點各自順序編號,所述所有共識節點中的一個被指定為用於發起所述共識驗證的主節點,並且所述第一共識節點在本地維護所述節點列表的副本;回應於對所述交易的共識驗證成功,執行所述交易並在所述節點列表中對所述區塊鏈網路中除所述第二共識節點外的多個剩餘共識節點順序重新編號;回應於檢測到任何多個條件而發起PBFT的視圖改變協定包括:所述節點列表中共識節點的數量與當前視圖中共識節點的數量不一致;所述節點列表中的共識節點標識與所述當前視圖中的共識節點標識不一致;所述節點列表中啟用共識節點的數量與所述當前視圖中共識節點的數量不一致;以及所述節點列表中啟用共識節點的標識與所述當前視圖 中所述共識節點的標識不一致;以及至少基於所述節點列表中所述重新編號的多個剩餘共識節點施行所述PBFT的視圖改變協定以改變所述主要節點的名稱,其中所述主要節點的名稱的改變使所述剩餘共識節點在沒有所述第二共識節點的情況下參與未來的共識驗證。
- 根據請求項1所述的方法,其中,所述交易被配置為調用部署在由所述區塊鏈網路維護的區塊鏈中的區塊鏈合約。
- 根據請求項2所述的方法,其中,所述區塊鏈合約包括創始合約或系統合約。
- 根據請求項1所述的方法,其中,所述第一共識節點獲得所述交易,包括:從客戶端設備或控制器的命令控制台獲得所述交易。
- 根據請求項1所述的方法,其中:所述節點列表包括以下一項或多項:共識節點標識、共識節點IP位址和共識節點埠號。
- 根據請求項1所述的方法,其中,所述節點列表處於由所述區塊鏈網路維護的區塊鏈的世界狀態。
- 根據請求項1所述的方法,其中,執行所述交易包括:從所述節點列表中刪除所述第二共識節點;或者在所述節點列表中將所述第二共識節點配置為未啟用狀態。
- 根據請求項1所述的方法,其中,所述施行PBFT的視圖改變協定包括:回應於接收到所述第二共識節點廣播的、用於發起所述PBFT的視圖改變協定的訊息,而發起所述PBFT的視圖改變協定。
- 根據請求項1所述的方法,其中,所述PBFT的視圖改變協定中的副本數是除所述第二共識節點之外的所述剩餘共識節點的總數。
- 根據請求項1所述的方法,其中,所述獲得交易包括:從所述第二共識節點、所述區塊鏈網路的第三共識節點或外部設備獲得所述交易。
- 根據請求項1所述的方法,還包括:在沒有所述第二共識節點的情況下參與共識驗證。
- 一種用於在區塊鏈網路中刪除節點的系統,包括:一個或多個處理器;以及一個或多個電腦可讀記憶體,其耦接到所述一個或多個處理器並且其上儲存有指令,所述指令能夠由所述一個或多個處理器執行以施行請求項1至11中任一項所述的方法。
- 一種用於在區塊鏈網路中刪除節點的裝置,包括用於施行請求項1至11中任一項所述方法的多個模組。
- 一種非暫態電腦可讀儲存媒體,其配置有能夠由一個或多個處理器執行以使得所述一個或多個處理器施行根據請求項1至11中任一項所述方法的指令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910838733.5 | 2019-09-05 | ||
CN201910838733.5A CN110730204B (zh) | 2019-09-05 | 2019-09-05 | 区块链网络中删除节点的方法和区块链系统 |
PCT/CN2019/109400 WO2020011283A2 (en) | 2019-09-05 | 2019-09-30 | System and method for deleting node in blockchain network |
WOPCT/CN2019/109400 | 2019-09-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202112115A TW202112115A (zh) | 2021-03-16 |
TWI761879B true TWI761879B (zh) | 2022-04-21 |
Family
ID=69143332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109123390A TWI761879B (zh) | 2019-09-05 | 2020-07-10 | 用於在區塊鏈網路中刪除節點的系統和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10740325B2 (zh) |
EP (1) | EP3701666B1 (zh) |
CN (3) | CN110730204B (zh) |
SG (1) | SG11202004815RA (zh) |
TW (1) | TWI761879B (zh) |
WO (2) | WO2020011283A2 (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2019203861B2 (en) * | 2019-03-18 | 2020-07-02 | Advanced New Technologies Co., Ltd. | System and method for ending view change protocol |
EP3596888B1 (en) | 2019-03-18 | 2022-08-03 | Advanced New Technologies Co., Ltd. | System and method for ending view change protocol |
CN110730204B (zh) * | 2019-09-05 | 2022-09-02 | 创新先进技术有限公司 | 区块链网络中删除节点的方法和区块链系统 |
JP6993587B2 (ja) * | 2019-09-30 | 2022-01-13 | ダイキン工業株式会社 | フロン管理システム、管理者ノード及びフロン管理方法 |
KR102363271B1 (ko) * | 2019-11-06 | 2022-02-14 | 알리페이 (항저우) 인포메이션 테크놀로지 씨오., 엘티디. | 에러 정정 코드에 기초한 공유 블록체인 데이터 저장의 데이터 보안 |
JP6852776B1 (ja) * | 2019-11-26 | 2021-03-31 | ダイキン工業株式会社 | ブロックチェーンシステム、プログラム及びネットワーク接続装置 |
CN111314151B (zh) * | 2020-02-27 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 节点管理方法、装置、电子设备及计算机可读存储介质 |
US20210279255A1 (en) * | 2020-03-04 | 2021-09-09 | Vmware, Inc. | Synchronous state machine replication for achieving consensus |
CN111404928B (zh) * | 2020-03-13 | 2021-07-06 | 电子科技大学 | 一种适用于实时交易场景的区块链节点共识方法 |
CN111461886B (zh) * | 2020-04-01 | 2022-02-01 | 杭州溪塔科技有限公司 | 区块链上不依赖智能合约的系统配置的管理方法和装置 |
CN111507840B (zh) * | 2020-04-15 | 2024-03-26 | 财付通支付科技有限公司 | 区块链共识方法、装置、计算机以及可读存储介质 |
US11250021B2 (en) | 2020-04-17 | 2022-02-15 | International Business Machines Corporation | Faster view change for blockchain |
CN111444216A (zh) * | 2020-06-15 | 2020-07-24 | 支付宝(杭州)信息技术有限公司 | 一种基于中心化块链式账本的数据块删除方法 |
CN111901388B (zh) * | 2020-06-30 | 2022-12-20 | 达闼机器人股份有限公司 | 区块链多链系统、用于区块链多链系统的方法、电子设备 |
CN111917572B (zh) * | 2020-07-12 | 2022-10-25 | 中信银行股份有限公司 | 交易请求的处理方法、装置、电子设备及可读存储介质 |
CN112272092B (zh) * | 2020-08-30 | 2021-07-27 | 河南大学 | 一种应用于区块链的数据编辑方法 |
CN112037873B (zh) * | 2020-08-31 | 2022-09-13 | 合肥工业大学 | 一种基于集群选主和共识机制的单点优化方法 |
CN112398908B (zh) * | 2020-10-20 | 2023-04-07 | 杭州云象网络技术有限公司 | 一种区块链网络节点删除方法、系统、存储介质和装置 |
CN112507019A (zh) * | 2020-11-20 | 2021-03-16 | 南京航空航天大学 | 一种基于智能合约的pbft共识系统及方法 |
CN112200680B (zh) * | 2020-12-03 | 2021-03-05 | 腾讯科技(深圳)有限公司 | 区块链节点管理方法、装置、计算机以及可读存储介质 |
CN113157709B (zh) * | 2021-01-29 | 2024-09-13 | 百果园技术(新加坡)有限公司 | 分布式系统节点动态变更方法、装置、设备及存储介质 |
KR102574890B1 (ko) * | 2021-04-02 | 2023-09-06 | 주식회사 헤세그 | 장애 노드에 내성을 갖는 블록체인 시스템 및 그 동작 방법 |
CN113592639B (zh) * | 2021-05-21 | 2023-10-13 | 上海简苏网络科技有限公司 | 一种区块链交易删除方法及系统 |
CN113067895B (zh) * | 2021-06-02 | 2021-08-31 | 支付宝(杭州)信息技术有限公司 | 组建区块链子网的方法和区块链系统 |
CN113067894B (zh) * | 2021-06-02 | 2021-09-24 | 支付宝(杭州)信息技术有限公司 | 节点退出区块链子网的方法 |
US11809453B2 (en) * | 2021-06-04 | 2023-11-07 | Vmware, Inc. | Two-round byzantine fault tolerant (BFT) state machine replication (SMR) protocol with linear authenticator complexity and optimistic responsiveness |
US11983161B2 (en) | 2021-06-23 | 2024-05-14 | Bank Of America Corporation | System for mitigating data loss in an edge computing environment using machine learning and distributed ledger techniques |
CN113379422B (zh) * | 2021-08-12 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 基于智能合约的数据处理方法、设备以及可读存储介质 |
CN113656499B (zh) * | 2021-08-16 | 2024-04-02 | 工银科技有限公司 | 基于区块链的价值转移方法及装置 |
JP2024535784A (ja) * | 2021-09-07 | 2024-10-02 | ジャラルザイ,モハマド | 分散台帳内の高速コンセンサスのための方法及びシステム |
CN114205233B (zh) * | 2021-11-30 | 2022-07-12 | 北京大学 | 一种面向数据管控的智能合约自适应配置与执行的系统 |
KR20230090027A (ko) * | 2021-12-14 | 2023-06-21 | 한국전자통신연구원 | 블록체인 네트워크에서의 합의 노드 정보 동기화 장치 및 방법 |
US11960502B2 (en) * | 2021-12-17 | 2024-04-16 | VMware LLC | Byzantine fault tolerance protocol for backing up blockchains |
CN114064343B (zh) * | 2022-01-13 | 2022-04-08 | 北京溪塔科技有限公司 | 一种区块链的异常处置方法及装置 |
CN114070733B (zh) * | 2022-01-17 | 2023-01-31 | 清华大学 | 一种基于区块链网络的共识方法、装置及系统 |
CN114760198B (zh) * | 2022-01-17 | 2023-03-24 | 清华大学 | 一种基于区块链网络的共识方法、装置及系统 |
CN114726866B (zh) * | 2022-04-07 | 2024-07-16 | 网易(杭州)网络有限公司 | 联盟链的共识节点维护方法、电子设备、存储介质 |
CN115001809A (zh) * | 2022-05-31 | 2022-09-02 | 深圳壹账通智能科技有限公司 | 区块链网络共识方法、装置、设备及介质 |
CN115185972B (zh) * | 2022-09-13 | 2022-12-16 | 北京大学 | 一种数字对象的存证副本的管理方法与装置 |
US11973666B1 (en) * | 2022-10-11 | 2024-04-30 | Verizon Patent And Licensing Inc. | Systems and methods for using blockchain to manage service-level agreements between multiple service providers |
CN115314369A (zh) * | 2022-10-12 | 2022-11-08 | 中国信息通信研究院 | 区块链节点共识的方法和装置、设备和介质 |
CN118337790A (zh) * | 2023-01-12 | 2024-07-12 | 腾讯云计算(北京)有限责任公司 | 一种数据处理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN107528882A (zh) * | 2017-07-14 | 2017-12-29 | 阿里巴巴集团控股有限公司 | 区块链共识网络中处理共识请求的方法、装置和电子设备 |
US20190188086A1 (en) * | 2017-12-14 | 2019-06-20 | International Business Machines Corporation | Redundancy reduction in blockchains |
US20190327097A1 (en) * | 2017-05-22 | 2019-10-24 | Alibaba Group Holding Limited | Blockchain service acceptance and consensus method and devices |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594624B1 (en) * | 1999-06-22 | 2003-07-15 | The United States Of America As Represented By The National Security Agency | Method of identifying all minimum-cost cutsets in a network |
US20140149715A1 (en) * | 2012-11-28 | 2014-05-29 | Los Alamos National Security, Llc | Scalable and programmable computer systems |
US9372892B1 (en) * | 2015-12-28 | 2016-06-21 | International Business Machines Corporation | Bloom filter construction method for use in a table join operation portion of processing a query to a distributed database |
US10720232B2 (en) | 2016-04-13 | 2020-07-21 | Accenture Global Solutions Limited | Distributed healthcare records management |
WO2018006072A1 (en) | 2016-06-30 | 2018-01-04 | Clause, Inc. | Systems and method for forming, storing, managing,and executing contracts |
US10360191B2 (en) | 2016-10-07 | 2019-07-23 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
US10158527B2 (en) | 2016-10-28 | 2018-12-18 | International Business Machines Corporation | Changing an existing blockchain trust configuration |
CN107040585B (zh) * | 2017-02-22 | 2020-06-19 | 创新先进技术有限公司 | 一种业务校验的方法及装置 |
EP3593482B1 (en) * | 2017-03-06 | 2022-01-19 | Nokia Technologies Oy | Secure de-centralized domain name system |
US10521604B2 (en) * | 2017-03-17 | 2019-12-31 | Labyrinth Research Llc | Unified control of privacy-impacting devices |
CN110445619B (zh) * | 2017-03-30 | 2020-10-16 | 腾讯科技(深圳)有限公司 | 区块链系统、消息处理方法及存储介质 |
CN107171829B (zh) * | 2017-04-24 | 2019-12-24 | 杭州趣链科技有限公司 | 一种基于bft共识算法实现的动态节点管理方法 |
US10896169B2 (en) | 2017-05-12 | 2021-01-19 | International Business Machines Corporation | Distributed system, computer program product and method |
US10740733B2 (en) | 2017-05-25 | 2020-08-11 | Oracle International Corporaton | Sharded permissioned distributed ledgers |
CN107332701A (zh) * | 2017-06-26 | 2017-11-07 | 中国人民银行数字货币研究所 | 管理节点的方法和系统 |
US10567359B2 (en) | 2017-07-18 | 2020-02-18 | International Business Machines Corporation | Cluster of secure execution platforms |
US11281644B2 (en) | 2017-07-28 | 2022-03-22 | Hitachi, Ltd. | Blockchain logging of data from multiple systems |
US20190058709A1 (en) | 2017-08-16 | 2019-02-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Tenant management method and system in a cloud computing environment |
CN107579848B (zh) * | 2017-08-30 | 2020-08-25 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
US10528551B2 (en) * | 2017-09-29 | 2020-01-07 | Oracle International Corporation | System and method for providing a representational state transfer proxy service for a blockchain cloud service |
US10949511B2 (en) | 2017-11-30 | 2021-03-16 | Bank Of America Corporation | Multicomputer processing for data authentication using a blockchain approach |
US11159537B2 (en) | 2017-11-30 | 2021-10-26 | Bank Of America Corporation | Multicomputer processing for data authentication and event execution using a blockchain approach |
US10567156B2 (en) | 2017-11-30 | 2020-02-18 | Bank Of America Corporation | Blockchain-based unexpected data detection |
US11243945B2 (en) | 2017-12-11 | 2022-02-08 | International Business Machines Corporation | Distributed database having blockchain attributes |
US10896418B2 (en) | 2017-12-29 | 2021-01-19 | Ebay Inc. | Secure management of data files using a blockchain |
US11296863B2 (en) | 2018-01-04 | 2022-04-05 | Bank Of America Corporation | Blockchain enterprise data management |
US20190207751A1 (en) | 2018-01-04 | 2019-07-04 | Bank Of America Corporation | Blockchain enterprise data management |
CN108365993B (zh) * | 2018-03-09 | 2020-04-28 | 深圳前海微众银行股份有限公司 | 区块链节点动态变更方法、系统和计算机可读存储介质 |
CN108390891A (zh) * | 2018-03-28 | 2018-08-10 | 电子科技大学天府协同创新中心 | 基于私有区块链的信息保护方法 |
CN108616596B (zh) * | 2018-05-09 | 2020-12-25 | 南京邮电大学 | 基于动态授权和网络环境感知的区块链自适应共识方法 |
US10542046B2 (en) | 2018-06-07 | 2020-01-21 | Unifyvault LLC | Systems and methods for blockchain security data intelligence |
US10713133B2 (en) * | 2018-06-11 | 2020-07-14 | Vmware, Inc. | Linear view-change BFT |
CA3046020A1 (en) | 2018-06-14 | 2019-12-14 | Zero31Skytech Inc. | Apparatus, system and method to limit access to open networks by requiring the consensus of pre-existing nodes to admit candidate nodes |
CN109150598B (zh) * | 2018-08-10 | 2021-09-03 | 上交所技术有限责任公司 | 一种基于块片的bft共识算法带宽使用率改进方法 |
US10992455B2 (en) * | 2018-08-14 | 2021-04-27 | International Business Machines Corporation | Consensus based ad-hoc group creation |
BR112019008172B1 (pt) * | 2018-11-07 | 2022-01-25 | Advanced New Technologies Co., Ltd | Método implementado por computador para facilitar um processo de consenso em uma rede de protocolo de confiança baseada na tolerância a falhas bizantinas práticas, meio de armazenamento não transitório legível por computador e sistema |
WO2019072285A2 (en) * | 2018-11-30 | 2019-04-18 | Alibaba Group Holding Limited | PLATFORM FOR ATOMIC TRANSFER OF INTELLIGENT RESOURCES IN BLOCK CHAIN NETWORKS |
SG11201903527QA (en) * | 2018-11-30 | 2019-05-30 | Alibaba Group Holding Ltd | Platform for atomic transfer of smart assets within blockchain networks |
CN109784916A (zh) * | 2018-12-12 | 2019-05-21 | 广东工业大学 | 一种改进pbft的以太坊共识机制应用于联盟链的方法 |
CN109859047A (zh) * | 2019-01-31 | 2019-06-07 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法和区块链更新系统 |
AU2019203865B2 (en) * | 2019-03-18 | 2021-01-21 | Advanced New Technologies Co., Ltd. | Consensus system downtime recovery |
CN110730204B (zh) * | 2019-09-05 | 2022-09-02 | 创新先进技术有限公司 | 区块链网络中删除节点的方法和区块链系统 |
-
2019
- 2019-09-05 CN CN201910838733.5A patent/CN110730204B/zh active Active
- 2019-09-30 CN CN201980003412.1A patent/CN111183625B/zh active Active
- 2019-09-30 WO PCT/CN2019/109400 patent/WO2020011283A2/en unknown
- 2019-09-30 CN CN202310574312.2A patent/CN116527696A/zh active Pending
- 2019-09-30 EP EP19833612.5A patent/EP3701666B1/en active Active
- 2019-09-30 SG SG11202004815RA patent/SG11202004815RA/en unknown
- 2019-12-16 US US16/715,963 patent/US10740325B2/en active Active
-
2020
- 2020-06-03 US US16/891,793 patent/US20200293516A1/en not_active Abandoned
- 2020-07-10 TW TW109123390A patent/TWI761879B/zh active
- 2020-07-16 WO PCT/CN2020/102350 patent/WO2021042880A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
US20190327097A1 (en) * | 2017-05-22 | 2019-10-24 | Alibaba Group Holding Limited | Blockchain service acceptance and consensus method and devices |
CN107528882A (zh) * | 2017-07-14 | 2017-12-29 | 阿里巴巴集团控股有限公司 | 区块链共识网络中处理共识请求的方法、装置和电子设备 |
US20190188086A1 (en) * | 2017-12-14 | 2019-06-20 | International Business Machines Corporation | Redundancy reduction in blockchains |
Also Published As
Publication number | Publication date |
---|---|
CN110730204B (zh) | 2022-09-02 |
TW202112115A (zh) | 2021-03-16 |
WO2021042880A1 (zh) | 2021-03-11 |
US10740325B2 (en) | 2020-08-11 |
CN116527696A (zh) | 2023-08-01 |
EP3701666B1 (en) | 2024-05-08 |
CN111183625B (zh) | 2023-06-06 |
CN110730204A (zh) | 2020-01-24 |
CN111183625A (zh) | 2020-05-19 |
EP3701666A4 (en) | 2020-12-23 |
SG11202004815RA (en) | 2020-06-29 |
US20200117657A1 (en) | 2020-04-16 |
WO2020011283A2 (en) | 2020-01-16 |
US20200293516A1 (en) | 2020-09-17 |
EP3701666A2 (en) | 2020-09-02 |
WO2020011283A3 (en) | 2020-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI761879B (zh) | 用於在區塊鏈網路中刪除節點的系統和方法 | |
TWI743881B (zh) | 用於在區塊鏈網路中添加節點的系統和方法 | |
TWI724678B (zh) | 共識系統停機時間恢復 | |
TWI709063B (zh) | 用於結束視域變換協定的系統和方法 | |
TWI729609B (zh) | 共識系統停機時間恢復 | |
TWI717135B (zh) | 用於結束視域變換協定的系統和方法 | |
CN111630826A (zh) | 共识系统和方法 | |
JP2022523217A (ja) | 投票集計を伴うトポロジードリブンビザンチンフォールトトレラント合意プロトコル |