分布式理論 之 拜占庭式將軍問題

2021-09-27 15:16:51 字數 763 閱讀 1683

1. 什麼是拜占庭將軍問題?

有 n 位將軍分別在不同的地點建立了營地,兩兩之間通訊只能通過信使進行溝通。

這 n 位將軍需要達成共識,但其中存在一些叛徒試圖阻撓達成共識。

大多數的將軍都是忠誠的,發出了真實的資訊,但是叛徒則試圖通過傳送虛假或不真實的資訊來欺騙和混淆他人(同時努力隱藏自己)。而且大家事先並不知道叛徒是誰。

即:如果某個系統中即使發生部分節點故障,甚至不遵從協議,或者惡意攻擊、干擾網路,但仍可以繼續正常執行,那麼稱之為拜占庭式容錯系統

2. 哪些場景需要 拜占庭式容錯?

航空航天領域。

計算機記憶體或cpu暫存器中的資料可能會被輻射而發生故障,導致以不可預知的方式響應其他節點。

這種情況下如果將系統下線,代價異常昂貴(例如,可能出現飛機撞毀,殺死船員,或致使火箭與國際空間站相撞等),飛行控制系統必須做到容忍拜占庭故障。

多個參與者系統(區塊鏈)

在多個參與者的系統中,某些參與者可能會作弊或者欺騙他人。這時節點不能完全相信另乙個節點所傳送的訊息,它可能就是惡意的。

例如,像位元幣和其他區塊鏈一樣的點對點網路就是讓互不信任的當事方就某項交易達成一致,且不依賴於集中的機制。

3. 平時開發(網際網路)需要考慮這些嘛?

一般假定不需要,即假定沒有拜占庭式的故障。

因為服務內部通訊是在內部網(區域網),內部通訊的信任的,安全的。

分布式理論 分布式事務

資料庫事務 事務的基本特性 事務有4個非常重要的特性,即我們常說的 acid atomicity 原子性 是說事務是乙個不可分割的整體,所有操作要麼全做,要麼全不做 只要事務中有乙個操作出錯,回滾到事務開始前的狀態的話,那麼之前已經執行的所有操作都是無效的,都應該回滾到開始前的狀態。consiste...

分布式理論

拜占庭將軍問題 byzantine failures 是由萊斯利 蘭伯特提出的點對點通訊中的基本問題。含義是在存在訊息丟失的不可靠通道上試圖通過訊息傳遞的方式達到一致性是不可能的。因此對一致性的研究一般假設通道是可靠的,或不存在本問題。萊斯利 蘭波特在其 中描述了如下問題 一組拜占庭將軍分別各率領一...

分布式理論 BASE理論

根據cap定理,我們在分布式系統最多只能在 一致性 可用性 分割槽容錯性 中三選二。那能不能解決3選2的問題呢?想要解決3選2的問題,首先需要思考分割槽是百分之百出現的嗎?如果不出現分割槽,那麼就能夠同時滿足cap。如果出現了分割槽,可以根據策略進行調整。比如c不必使用那麼強的一致性,可以先將資料存...