一区二区三区无码免费网站_国产日韩中文字幕在线_乱伦三级中文综合_欧美日韩中文字幕国产_国产色播av在线_翘臀美女XX00后进式片_正品蓝导航福利找AV导航_131少妇爱做高清免费视频_久久精品影视少妇_爆乳美女午夜视频精品

聰明屋視角

關(guān)注互聯(lián)網(wǎng),關(guān)注技術(shù)開發(fā),透析與分享移動互聯(lián)網(wǎng)行業(yè)最新動態(tài)

分布式系統(tǒng)中的容錯形成區(qū)塊鏈

時間:2019-02-20 12:07:18    閱讀:77323次 分類:行業(yè)新聞
分布式系統(tǒng)是實現(xiàn)高可伸縮性,局部性和可用性的基本概念。但是,另一方面,從客戶端查看時,整個系統(tǒng)需要很多原創(chuàng)才能看起來一致。另外,據(jù)說構(gòu)建具有完整功能的分布式系統(tǒng)幾乎是不可能的,并且有必要選擇應用程序應...

分布式系統(tǒng)是實現(xiàn)高可伸縮性,局部性和可用性的基本概念。但是,另一方面,從客戶端查看時,整個系統(tǒng)需要很多原創(chuàng)才能看起來一致。另外,據(jù)說構(gòu)建具有完整功能的分布式系統(tǒng)幾乎是不可能的,并且有必要選擇應用程序應該強調(diào)哪些屬性。 

除了描述這些分布式系統(tǒng)的特性外,我們還描述了具有高性能的區(qū)塊鏈的特征。最后,通過總結(jié)容錯屬性,我們將進一步探索區(qū)塊鏈的更大潛力,并希望通過討論每個高級區(qū)塊鏈項目(如Tendermint)來充分解釋MOLD應該瞄準的系統(tǒng)。 

1.簡介(容錯概述和整體流程)

與單個系統(tǒng)不同,分布式系統(tǒng)存在部分故障。單個系統(tǒng)的整體故障通常會導致整個系統(tǒng)崩潰。另一方面,在部分故障中,系統(tǒng)可以在從部分故障恢復的同時繼續(xù)運行而不會嚴重影響整體性能。 

在本文中,我們將按以下順序解釋容錯;即使系統(tǒng)的一部分發(fā)生故障,系統(tǒng)也可以繼續(xù)處理。 

·什么樣的屬性是容錯的
·什么樣的失敗以及如何歸類
如何在分布式系統(tǒng)中實現(xiàn)容錯
·關(guān)于溝通失敗
·“可靠的多播”增加了過程的阻力
·關(guān)于分布式提交問題

2.什么是容錯? 

容錯

容錯定義如下

即使發(fā)生故障也能忍受服務

此外,具有容錯性的系統(tǒng)有時被稱為高可靠性系統(tǒng),并且與可靠性系統(tǒng)相關(guān)的要求分為以下四種。

分布式系統(tǒng)中的容錯形成區(qū)塊鏈

失敗模型

分布式系統(tǒng)中進程的典型故障如下:

分布式系統(tǒng)中的容錯形成區(qū)塊鏈

通信鏈路的故障也被分類。

分布式系統(tǒng)中的容錯形成區(qū)塊鏈

例如,對于分布式故障,可能會發(fā)生虛假消息的傳遞,因此最難處理。 

冗余可以隱藏故障。這很容易理解,例如考慮到哺乳動物有兩只眼睛,耳朵和肺部。即使這些分布式器官中的一些失效,您也可以在隱藏故障的同時使用該系統(tǒng)。這稱為物理冗余。冗余有三種類型:信息冗余,時間冗余和物理冗余。 

3.流程靈活性

在描述容錯之后,我們考慮如何實現(xiàn)容錯。 

流程復制

典型的方法是進程復制。在組中創(chuàng)建(復制)相同的進程稱為復制。通過在分布式系統(tǒng)中復制,即使在部分故障的情況下,也可以通過正常過程提供服務。我們將復制過程稱為副本。 

有兩種方法可以重用(復制)。 

·主要基礎(chǔ)協(xié)議(被動副本)
·重復寫協(xié)議(PositiveReplication)

在前者中,只有主副本處理來自客戶端的消息,而另一個副本備份主進程。盡管復制品之間的處理結(jié)果不一致并且更容易實現(xiàn)通信功能,但是主復制品的故障需要選擇算法,并且處理有些復雜。 

在后一種情況下,所有副本都從客戶端接收和處理消息。此時,基于消息的處理需要總排序和原子性兩個屬性。因此,原子多播需要更復雜的通信功能。

分布式系統(tǒng)中的容錯形成區(qū)塊鏈

kFault容忍度

在重復寫入?yún)f(xié)議中,據(jù)說存在k個容錯,即使它們失敗,k個分量也可以正常移動。如果您有分布式故障,則至少需要2k + 1個進程才能具有k容錯能力。 

原子多播問題

作為上述復制模型的前提,存在所有請求必須以相同順序到達所有服務器的條件。這稱為原子多播問題。這將在第5章中詳細討論。

流程之間的協(xié)議

進程之間的協(xié)議問題對于為分布式系統(tǒng)提供容錯至關(guān)重要。分布式協(xié)議算法的目的是在有限數(shù)量的步驟中達成共識以實現(xiàn)彼此之間不會失敗的過程,并且在代表性過程中存在一般分布式問題。 

分布式一般問題

在具有k個錯誤過程的系統(tǒng)中,僅當存在2k + 1個或更多個正常過程并且整體上存在N=< 3k + 1個過程時才達到協(xié)議。換句話說,只有超過三分之二的流程能夠正常運作才能達成協(xié)議。 (如果小于此值,則可能因過程失敗而受騙。)

附錄:容錯所需的正常節(jié)點數(shù)

對于許多協(xié)議,具有分布式阻塞的最大允許節(jié)點數(shù)稱為1/3。原因?qū)⒃谙旅婧喴枋觥?nbsp;

設(shè)“N”為節(jié)點總數(shù),“F”為分布式節(jié)點,“T”為正常共識所需的節(jié)點數(shù)。 

例如,假設(shè)“N-F”的正常節(jié)點被分成相同的數(shù)字,并且數(shù)字如下。 

(N-F)/2 

由于“F”的分布式節(jié)點具有任意行為,為了正常達成共識,必須滿足以下表達式。 

T> (N-F)/2 + F···1 

另外,考慮到F的所有分布式節(jié)點都是離線的,其他正常節(jié)點可以采用一致性,因此以下表達式成立。 

N-F≥T···2 

從1·2,

N-F> (N-F)/2 + F 
∴F< N3 

基于上述,當總節(jié)點中的分布式節(jié)點的數(shù)量小于1/3時,通??梢赃_到一致。 

4.可靠的客戶端 - 服務器通信

到目前為止,我們已經(jīng)討論了分布式系統(tǒng)中進程的容錯能力并了解了復制。本章討論在通信鏈路上引入容錯。 

P2P通信

分布式系統(tǒng)中的通信基礎(chǔ)是將一個進程連接到另一個進程的對等通信(一對一通信)。 

TCP 

TCP:用于可靠通信的點對點通信

TCP具有序列號,定時器,校驗和,確認,重傳控制,擁塞控制等機制。例如,可以通過包括TCP序列號和基于確認的重傳控制的確認來處理由于丟失消息而導致的遺漏失敗。 

失敗時的RPC(遠程過程調(diào)用)

RPC的目的是以本地過程調(diào)用的形式實現(xiàn)進程間通信,而無需了解通信部分。在使用RPC的分布式系統(tǒng)中可能會發(fā)生五個障礙。 

1.客戶端找不到服務器。 
2.從客戶端到服務器的請求消息將丟失。 
3.服務器收到請求后崩潰。 
4.從服務器到客戶端的響應消息將丟失。 
5.客戶端發(fā)送請求消息后發(fā)生故障。 

作為針對每個的對策,存在設(shè)置異常處理和計時器(時間限制)的方法。 

5.可靠的團隊溝通

我們在前一章重點介紹了一對一通信,因此我們在此解釋一對多組播通信的高可靠性。在分布式系統(tǒng)中,重要的是在不泄漏的情況下發(fā)送消息,包括向彼此的服務器發(fā)送訂單。 

可靠的組播無故障

考慮按順序向每個成員發(fā)送消息。 

發(fā)送方首先將多播消息保存在手頭的歷史存儲器中。此外,發(fā)送方從接收方接收傳輸確認通知(A高仿CK)。在A高仿CK中,最后一個消息標識符的輸入和返回已完成。如果由于消息丟失等原因而無法接收包含預期標識符的A高仿CK,則發(fā)送方重新發(fā)送該消息。 

確保來自發(fā)件人的郵件以相同的順序傳遞到所有進程。 

在分布式系統(tǒng)中,不是“過程”

具有“何時”發(fā)送方“在發(fā)送期間失敗,傳遞給所有剩余進程或被忽略”的屬性的可靠多播稱為虛擬同步。 

此外,虛擬同步并以整體順序執(zhí)行消息傳遞的通信稱為原子多播。 

Isis實現(xiàn)虛擬同步的一個例子。 Isis保留并轉(zhuǎn)移mmessageM進行處理,直到它知道所有成員都收到了消息M. 

6.分發(fā)提交

促進原子多播問題的問題稱為分布式提交。

分布式系統(tǒng)中的容錯形成區(qū)塊鏈

原子提交

有必要在最后判斷是否始終提交或暫停不同類似網(wǎng)站的流程。這種類型的操作稱為原子提交。 

6-1。兩階段提交協(xié)議(2PC)

兩階段提交協(xié)議(2PC)是實現(xiàn)原子提交的典型方法。顧名思義,每個階段包括兩個步驟,組織如下。 

(第1階段[投票階段])

組織者向所有參與者發(fā)送VOTE_REQUEST消息

2.收到VOTE_REQUEST消息的參與者如果能夠提交交易并通過發(fā)送VOTE_ABORT消息進行投票(如果需要中止),則會向組織者發(fā)送VOTE_COMMT消息。 

(第2階段[提交階段])

3.主辦方收集所有參與者的投票。如果所有投票都是COMMIT,我們承諾并向所有參與者發(fā)送GLOBAL_COMMIT消息。如果有多個ABORT,它決定中止事務并發(fā)送GLOBAL_ABORT消息。 

4.參與者等待來自組織者的消息,如果它是GLOBAL_COMMIT本地則提交,如果是GLOBAL_ABORT則丟棄該事務。 

在整個過程中,組織者和參與者執(zhí)行以下狀態(tài)轉(zhuǎn)換。 

分布式系統(tǒng)中的容錯形成區(qū)塊鏈


阻止提交協(xié)議

上述兩階段提交協(xié)議存在很大問題。當組織者在第3階段失敗并且所有參與者都在等待來自組織者的消息時。參與者不能合作確定最終應采取的行動決定。因此,兩階段提交被稱為阻止提交協(xié)議。 

事實上,在兩階段提交中很少發(fā)生阻塞,因此它沒有被大量使用,但是三階段提交協(xié)議被設(shè)計為避免阻塞的解決方案。 

6-2。三階段提交

與兩階段提交協(xié)議不同,三階段提交協(xié)議滿足以下兩個條件。 [Skeen和Stonebraker,1983]指出這兩個條件對于非阻塞提交協(xié)議是必要和充分的。 

1.沒有直接訪問COMMIT狀態(tài)或ABORT狀態(tài)。 
2.無法做出最終決定或過渡到COMMIT狀態(tài)。 

SKEEN,D.andSTONEBRAKER,M“AFormalModelofCrashRecoveryinaDistributedSystem?!?IEEE Trans.Softw.Eng。,1983年3月

具體地,PRECOMMIT狀態(tài)在兩階段提交的兩個階段之間提供。 

整個參與者和組織者改變了狀態(tài)如下。

分布式系統(tǒng)中的容錯形成區(qū)塊鏈

兩階段提交之間的最大區(qū)別是所有進程都返回INIT,ABORT和PRECOMMIT狀態(tài)。由于它永遠不會處于READY狀態(tài),因此剩余的進程總是做出最終決定,并且可以充當非阻塞協(xié)議。 
三階段提交只是一個概念表示,即使組織者失敗,也沒有正常工作的機制。然而,在區(qū)塊鏈出現(xiàn)后,其歷史將發(fā)生很大變化。 Tendermint項目通過在區(qū)塊鏈中使用三階段提交來實現(xiàn)非阻塞協(xié)議。 

7.區(qū)塊鏈中的容錯性

最后,基于上述內(nèi)容,我們還將參考分布式區(qū)塊鏈系統(tǒng)中的容錯。 

7-1。區(qū)塊鏈容錯

區(qū)塊鏈具有高度容錯能力。讓我們根據(jù)第2章中分類的四個可靠性要求,仔細研究區(qū)塊鏈的性質(zhì)。

停止運行的區(qū)塊鏈系統(tǒng)的時間和數(shù)量很少。特別是在比特幣網(wǎng)絡(luò)中,可以說高可用性和可靠性非常低,因為即使某些節(jié)點發(fā)生故障,也可以實現(xiàn)零停機并繼續(xù)正常運行。 

接下來,關(guān)于安全性,當系統(tǒng)在區(qū)塊鏈網(wǎng)絡(luò)中不能正常工作時,會出現(xiàn)“事務未處理和阻塞”,“網(wǎng)絡(luò)中的信息不共享信息和分叉分區(qū)”類問題。后者很可能會造成重大麻煩。 

關(guān)于可維護性,可以說社區(qū)很容易劃分,比如像比特幣這樣的公共區(qū)塊鏈,很難從中恢復。比特幣網(wǎng)絡(luò)受到高度贊賞,因為它們具有高可用性和可靠性,因此無需恢復,但如果您希望可維護,則應考慮選擇私有鏈或聯(lián)合鏈。 

此外,區(qū)塊鏈非常有意義,因為它為分布式故障提供了有效的解決方案,這被認為是最難處理的。具體而言,它是由PoW等代表的相干算法......通過形成激勵結(jié)構(gòu)來處理分布的一般問題;礦工通過維持/貢獻而不是基于博弈論破壞網(wǎng)絡(luò)來獲得更多利潤。算法。應該指出的是,諸如硬叉之類的新問題正在發(fā)生,然而,可以說它已經(jīng)取得了一些成功。另外,
Hyperledger采用的PBFT還通過設(shè)置領(lǐng)導節(jié)點來確認投票,從而實現(xiàn)高分布式容錯。 

7-2 .Blcokchain流程的靈活性

考慮如何在容錯描述后實現(xiàn)容錯。 

首先,有兩種方法可以處理復制。 

1.主要的基礎(chǔ)協(xié)議
2.重復寫協(xié)議

使用1的主基礎(chǔ)協(xié)議的主協(xié)議是基于PoW一致性算法的區(qū)塊鏈。在PoW的情況下,它是主基中的本地寫協(xié)議的規(guī)范。成功找到PoW的nonce值作為獨占控件(領(lǐng)導者選擇算法)的礦工獲得了將塊添加為主服務器的權(quán)利。但是,當有權(quán)成為主服務器的節(jié)點同時出現(xiàn)時,區(qū)塊鏈將分叉。 

另一方面,2的重復寫協(xié)議是基于PBFT的區(qū)塊鏈。各種基于PBFT的共識算法(包括Tendermint)沒有主服務器首先負責執(zhí)行每個數(shù)據(jù)的更新,并且所有參與節(jié)點可以同時執(zhí)行寫操作。也就是說,可以說PBFT類型一致性協(xié)議類似于重復寫入類型的主動拷貝協(xié)議。


7-3。區(qū)塊鏈高可靠性通信

我已經(jīng)提到了區(qū)塊鏈過程,但這次我將重點關(guān)注通信鏈接。 

在區(qū)塊鏈中,參與網(wǎng)絡(luò)的每個節(jié)點執(zhí)行P2P通信并共享數(shù)據(jù)。另外,由領(lǐng)導者選擇算法選擇的主服務器執(zhí)行多播,例如,當找到隨機數(shù)時,將新添加的塊的信息共享給每個參與節(jié)點。此時,考慮到在通信鏈路或節(jié)點中發(fā)生故障的情況,重要的是實現(xiàn)原子多播,其是虛擬同步并且以整體順序執(zhí)行消息傳遞。 

那么,區(qū)塊鏈中的原子多播問題和分布式提交問題是如何解決的? 

在像比特幣這樣的PoW公共鏈中,原子組播尚未實現(xiàn)。因此,可能會發(fā)生頻繁的貨叉。由于每個節(jié)點隨時間正確共享數(shù)據(jù),因此建立了一致性,但確認事務存儲在塊中需要10分鐘以上。 

在這里,我們應該注意Tendermint一致性算法。通常,存在2PC(兩階段提交)作為實現(xiàn)原子提交的方法,并且已經(jīng)提出了作為改進版本的3PC方法,但兩者都是不完整的。因此,Tendermint通過將區(qū)塊鏈與3PC方法混合并在循環(huán)方法下的節(jié)點上添加約束來實現(xiàn)原子提交。下一章將解釋這種創(chuàng)新的分布式提交問題的方法。 

7-4。 Tendermint分布式提交(創(chuàng)新三階段提交模型)

首先,Tendermint是PBFT類型。在Hyperledger中,作為領(lǐng)導者的驗證者始終是相同的過程,但Tendermint具有領(lǐng)導者選擇算法,并通過循環(huán)方法確定性地確定領(lǐng)導者。領(lǐng)導者共同提出存儲在mempool中的下一個事務塊。通過此提議,Tendermint Consensus實施了3PC(三階段提交)并實施了原子多播。 Tendermint一致性算法可以大致分為三種狀態(tài)。 

1.提議
基于基于基于領(lǐng)導的選擇算法基于樁數(shù)通過循環(huán)方法確定性地選擇的一組驗證者的提議。在這種狀態(tài)下開始投票。 

2.預先投票
擬議區(qū)塊的第一次投票。一旦我們獲得三分之二或更多的批準,我們將繼續(xù)進行下一步,但要等到收集所有選票的時間限制。由于這個時間限制,可以說Tendermint是一種部分異步一致性算法。此外,投票算法具有1/3k的容錯能力。 

3.預先承諾
超過2/3的投票前同意第二次投票。此時,如下所述,Tendermint的智能部分是未收集2/3或更多票數(shù)的衡量標準。 

如前所述,通過為三階段提交設(shè)置PRECOMMIT階段,如果滿足以下條件,則可以實現(xiàn)阻塞協(xié)議。 

1.沒有狀態(tài)直接轉(zhuǎn)換為COMMIT狀態(tài)或ABORT狀態(tài)
2.無法做出最終決定或過渡到COMMIT狀態(tài)。 

在Tendermint中,在第二個投票階段投票的核查員預先提交被鎖定,并且只能在投票前投票超過鎖定塊數(shù)或塊數(shù)的2/3。通過鎖定過程,滿足上述兩個條件。換句話說,由于每個驗證器只能在預提交中對塊進行投票,因此它不實現(xiàn)fork機制。 

換句話說,“Tendermint的共識是確保在網(wǎng)絡(luò)中的所有節(jié)點上完成添加塊的操作,或者根本不完成任何節(jié)點;實現(xiàn)最終結(jié)果的下一代共識協(xié)議。

分布式系統(tǒng)中的容錯形成區(qū)塊鏈


蕪湖市聰明屋智能科技有限公司(原中江網(wǎng)絡(luò)),成立于2005年,經(jīng)過10多年定制開發(fā)經(jīng)驗,積累了大量技術(shù)儲備和定制開發(fā)經(jīng)驗,率先創(chuàng)建安徽省內(nèi)自主研發(fā)的云計算平臺,具有大數(shù)據(jù)、高并發(fā)等高強度計算能力,為眾多政府、學校、公安部門、中小企業(yè)解決數(shù)據(jù)計算與管理難題。2013年公司內(nèi)部專門創(chuàng)建電商服務部,為企業(yè)提供全方位電商解決方案與配套服務。多次獲得國家、省市級領(lǐng)導接見,被國內(nèi)近20家電視臺、報紙媒體爭相報道。至今,聰明屋智能科技服務過上市公司、大型國企、各類私企超800家,為多家公司提供各類政務系統(tǒng)、app開發(fā)定制、微信小程序開發(fā)定制、智能家居、電商系統(tǒng)、連鎖收銀等技術(shù)解決方案服務。同時,聰明屋智能科技在智能硬件方面、區(qū)塊鏈應用方面持續(xù)投入關(guān)注及創(chuàng)新。

聰明屋智能科技