Разъяснение Задач Византийских Генералов |часть 2|

  • ❗️Уважаемые форумчане, ознакомьтесь с правилами форума. Все сообщения и темы должны быть опубликованы в разделах, которые соответствуют их тематике и с четким соблюдением правил форматирования. Нарушение этих правил приведет к блокировке вашего аккаунта.

    Для благодарности на форуме существует кнопка "LIKE", а все сообщения с благодарностями - флуд и захламление тем. Так вы только усложняете поиск информации на форуме. Все кто будут оставлять подобные сообщения - будут восприняты как спам и приведут к блокировке.

    Прежде чем создавать тему с вопросом или добавлять новый вопрос в теме - используйте поиск по форуму, с вероятностью 99% ответ на данный вопрос уже есть на форуме. В противном случае флуд с вопросами будет воспринят как накрутка сообщений и ваш аккаунт будет заблокирован.

  • 🤝 Партнерская программа. Пригласи друга и получи 500 баллов. Подробнее
  • 🤑 Общайся на форуме за деньги. На форуме существует оплата за создание тем и сообщений. За публикацию полезной информации, пользователи получают баллы, которые можно обменять на криптовалюту
Всем привет! Рад вас видеть в этой части, если вы не читали 1 часть, то просвещайтесь) Ну а мы начинаем

Вступление

Разъяснение Задач Византийских Генералов


Византийская отказоустойчивость​

Византийские сбои практически неизбежны в любой распределенной компьютерной системе. Допустим, произошло отключение электроэнергии, и узлы внезапно отключились. Способна ли сеть по-прежнему функционировать в обычном режиме и продолжать поддерживать надежную связь? Или вся система вдруг перестает работать или становится уязвимой для атак?

В умеренно защищенной сети такая простая вещь, как отключение нескольких узлов, не оказывает заметного влияния на сеть. Способность защищаться от таких сценариев известна как византийская отказоустойчивость. Сети, которые могут обрабатывать больше византийских сбоев, считаются более устойчивыми, что означает, что они более безопасны, чем те, которые не могут справляться с византийскими сбоями.

Разъяснение Задач Византийских Генералов


Достижение византийской отказоустойчивости

Достижение византийской отказоустойчивости исторически было сложной задачей. Это связано с тем, что ученым-компьютерщикам предстоит рассмотреть широкий спектр проблем безопасности. Кроме того, необходимо создавать практические решения, направленные на борьбу с кажущимися абстрактными теоретическими угрозами. Вот несколько решений, которые были разработаны на протяжении многих лет для различных распределенных системных приложений..

Ранние решения​

Исследование византийской отказоустойчивости началось в 1950-х и в основном вращались вокруг авиационной промышленности. Несколько решений Byzantine Fault Tolerance для самолетов и космических аппаратов были разработаны в конце 1970-х - начале 1980-х годов.

В 1978 году исследователи из лаборатории Дрейпера опубликовали технический отчет о Отказоустойчивый мультипроцессор (FTMP) - многопроцессорный компьютер, исключающий единичную уязвимость авиационных модулей. Это исследование продолжалось на протяжении 1980-х годов.

В конце 1970-х годов Honeywell Labs разработала Микропроцессорная система управления полетом (MMFCS), что позволило точно обнаруживать византийские сбои и различать другие типы сбоев. В 1981 году SRI International, та же организация, которая ввела термин "Проблема византийских генералов", опубликовала технический документ по компьютеру управления самолетом под названием Программно реализованная отказоустойчивость (SIFT).

Паксосский протокол и временный парламент

В 1989 году Лесли Лэмпорт впервые опубликовала протокол Paxos. В 1998 году Лэмпорт опубликовал журнальную статью под названием, “Неполный парламент” описать это решение проблемы византийских генералов. Еще раз, простая аналогия может быть использована для понимания сложной проблемы.

В древние времена островом Паксос в Эгейском море управлял парламент, работающий неполный рабочий день. Поскольку торговля была важнее управления, никто на Паксосе не хотел становиться полноправным членом парламента острова. Это означало, что правительство должно было найти способ непрерывно функционировать, даже когда его должностные лица то вступали, то покидали свои должности. Поскольку многие детали того, как работал парламент, были утеряны для истории, Лэмпорт сделал некоторые предположения о том, как работала система управления. Лэмпорт обнаружил, что эта система похожа на проблемы, которые должны решать современные распределенные системы.

Основываясь на этой аналогии, Лэмпорт и другие ученые-компьютерщики разработали протокол Paxos, который на самом деле представляет собой семейство согласованных протоколов, которые легли в основу подхода репликации конечного автомата. В то время как предыдущие системы требовали, чтобы узлы были подключены к сети одновременно и обменивались данными синхронно для достижения консенсуса, протокол Paxos был асинхронным. По сути, репликация конечного автомата предоставила узлам в распределенной системе эффективный способ выполнять независимую проверку и обмениваться данными асинхронно или полусинхронно.

Это включает в себя четыре основных шага.
  1. Устройство хранит состояние сети (известное как конечный автомат) и определяет начальное состояние.
  2. Сервер реплицируется несколько раз.
  3. Реплики сервера получают одни и те же входные данные в одном и том же порядке, что позволяет им генерировать одинаковые выходные данные.
  4. Реплики серверов голосуют за выходные данные реплик, чтобы проверить правильность данных и обеспечить отказоустойчивость.
Протокол Paxos стал значительным достижением в области компьютерных наук, поскольку он представил способ гарантировать согласованность данных в распределенной системе и позволил сетям стать более защищенными от возможных византийских сбоев.

Перейти к следующей части вы можете по этой ссылке


Заключение

Спасибо за прочтение статьи, увидимся на форуме)