Византийский разлом - Byzantine fault

А Византийский разлом (также интерактивная согласованность, исходная конгруэнтность, лавина ошибок, Проблема византийского соглашения, Проблема византийских генералов, и Византийский провал[1]) является условием компьютерной системы, в частности распределенных вычислений системы, в которых компоненты могут выйти из строя, и есть неполная информация о том, вышел ли из строя компонент. Термин получил свое название от аллегории «Проблема византийских генералов»,[2] разработан для описания ситуации, в которой, чтобы избежать катастрофического отказа системы, субъекты системы должны согласовать согласованную стратегию, но некоторые из этих субъектов ненадежны.

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

Византийская отказоустойчивость (BFT) - надежность отказоустойчивая компьютерная система таким условиям.

Характеристики

Византийский недостаток - это любой недостаток, который вызывает у разных наблюдателей разные симптомы.[3] Византийский сбой - это потеря системного сервиса из-за византийского сбоя в системах, требующих консенсус.[4]

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

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

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

Термины неисправность и отказ используются здесь в соответствии со стандартными определениями.[5] первоначально созданный объединенным комитетом по «Фундаментальным концепциям и терминологии», сформированным IEEE Технический комитет компьютерного общества по надежным вычислениям и отказоустойчивости и ИФИП Рабочая группа 10.4 по надежным вычислениям и отказоустойчивости.[6] Вариант этих определений также описан в Надежность Страница Википедии.

Предостережение

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

Формальное определение

Параметр:[7]Учитывая систему составные части, из которых являются нечестными и предполагают наличие только двухточечного канала между всеми компонентами.

Когда компонент пытается передать значение , другим компонентам разрешается обсуждать друг с другом и проверять согласованность трансляции, и в конечном итоге остановимся на общем значении .

Свойство:

Считается, что система противостоит византийским ошибкам, если компонент может транслировать значение , а потом:

  1. Если честно, то все честные составляющие согласны с ценностью .
  2. В любом случае, все честные компоненты согласны с одной и той же ценностью. .


Варианты:

Проблема была изучена как для синхронной, так и для асинхронной связи.

Предполагается, что приведенный выше граф связи является полным графом (т.е. каждый компонент может обсуждать друг с другом), но граф связи может быть ограничен.

Его также можно смягчить в более «реалистичной» задаче, когда неисправные компоненты не вступают в сговор, пытаясь соблазнить другие на ошибку. Именно в этой обстановке были разработаны практические алгоритмы.

История

Проблема достижения византийского консенсуса была задумана и формализована Роберт Шостак, который окрестил это интерактивная согласованность проблема. Эта работа была выполнена в 1978 году в рамках программы SIFT, спонсируемой НАСА.[8] проект в Лаборатории компьютерных наук на SRI International. SIFT (для программной реализации отказоустойчивости) был детищем Джона Венсли и был основан на идее использования нескольких компьютеров общего назначения, которые могли бы обмениваться данными посредством попарного обмена сообщениями для достижения консенсуса, даже если некоторые из компьютеров были неисправны. .

В начале проекта было неясно, сколько всего компьютеров необходимо, чтобы гарантировать, что заговор п неисправные компьютеры не могли «помешать» попыткам правильно работающих достичь консенсуса. Шостак показал, что минимум 3п +1 необходимы, и разработал двухходовой 3п + 1 протокол обмена сообщениями, который будет работать для п= 1. Его коллега Маршалл Пиз обобщил алгоритм для любого n> 0, доказав, что 3п+1 одновременно необходимо и достаточно. Эти результаты вместе с более поздним доказательством Лесли Лэмпорт достаточности 3п с использованием цифровых подписей, были опубликованы в основополагающей статье, Достижение соглашения при наличии неисправностей.[9] Авторы награждены грамотой 2005 г. Премия Эдсгера В. Дейкстры для этой статьи.

Чтобы облегчить понимание проблемы интерактивной согласованности, Лэмпорт придумал красочную аллегорию, в которой группа армейских генералов формулирует план нападения на город. В своей первоначальной версии история описывала генералов как командующих албанский армия. Название было изменено, в итоге остановившись на "византийский ", по предложению Джека Голдберга для защиты будущего любого потенциального правонарушения.[10] Эта формулировка проблемы вместе с некоторыми дополнительными результатами была представлена ​​теми же авторами в их статье 1982 г. "Проблема византийских генералов".[11]

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

Проблема осложняется наличием коварных генералов, которые могут не только проголосовать за неоптимальную стратегию, но и сделать это выборочно. Например, если голосуют девять генералов, четверо из которых поддерживают нападение, а четыре других - отступление, девятый генерал может послать этим генералам голосование об отступлении, а остальным - голосование о нападении. Те, кто получил голосование за отступление от девятого генерала, отступят, в то время как остальные будут атаковать (что может не понравиться атакующим). Проблема еще больше усложняется тем, что генералы физически разделены и вынуждены отправлять свои голоса через мессенджеров, которые могут не подавать голоса или могут подделывать ложные голоса.

Византийская отказоустойчивость может быть достигнута, если лояльные (исправные) генералы имеют согласие большинства относительно своей стратегии. Отсутствующим сообщениям может быть присвоено значение голоса по умолчанию. Например, отсутствующим сообщениям можно присвоить значение . Кроме того, если согласие состоит в том, что <Нулевые> голоса составляют большинство, может использоваться заранее назначенная стратегия по умолчанию (например, отступление).[11]

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

Примеры

Несколько примеров византийских неудач приводятся в двух эквивалентных журнальных статьях.[3][4] Эти и другие примеры описаны на НАСА Веб-страницы DASHlink.[12] На этих веб-страницах также описываются некоторые явления, которые могут вызывать византийские ошибки.

Византийские ошибки наблюдались нечасто и в нестандартных точках во время испытаний на выносливость вновь построенных Вирджиния подводные лодки класса, по крайней мере, до 2005 года (когда о проблемах сообщалось публично).[13]

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

Несколько решений были описаны Лэмпортом, Шостаком и Пизом в 1982 году.[11] Они начали с того, что отметили, что проблема генералов может быть сведена к решению проблемы «командир и лейтенанты», где лояльные лейтенанты должны действовать в унисон и что их действия должны соответствовать тому, что приказал командующий в случае, если командир лоялен:

  • Одно решение рассматривает сценарии, в которых сообщения могут быть подделаны, но которые будут Византийский отказоустойчивый до тех пор, пока количество нелояльных генералов будет меньше одной трети генералов. Невозможность справиться с одной третью или более предателей в конечном итоге сводится к доказательству того, что проблема одного командира и двух лейтенантов не может быть решена, если командир предатель. Чтобы убедиться в этом, предположим, что у нас есть предательский командир A и два лейтенанта, B и C: когда A говорит B атаковать и C отступать, а B и C отправляют друг другу сообщения, пересылая сообщение A, ни B, ни C не могут выяснить, кто является предателем, поскольку это не обязательно A - другой лейтенант мог подделать сообщение якобы от A. Можно показать, что если п общее количество генералов, и т количество предателей в этом п, то решения проблемы есть только тогда, когда п > 3т и связь является синхронной (ограниченная задержка).[14]
  • Второе решение требует неподделанных подписей сообщений. За критически важные для безопасности системы, цифровые подписи (в современных компьютерных системах это может быть достигнуто на практике с помощью криптография с открытым ключом ) может обеспечить византийскую отказоустойчивость в присутствии произвольного количества генералов-предателей. Однако для критические системы безопасности (где «безопасность» устраняет интеллектуальные угрозы, а «безопасность» - неотъемлемые опасности деятельности или миссии), простые коды обнаружения ошибок, такие как CRC, обеспечивают более слабое, но часто достаточное покрытие по гораздо более низкой цене. Это верно как для византийских, так и для невизантийских разломов. Кроме того, иногда меры безопасности ослабляют безопасность, и наоборот. Таким образом, методы криптографической цифровой подписи не являются хорошим выбором для систем, критичных к безопасности, если также не существует особой угрозы безопасности.[15] Хотя коды обнаружения ошибок, такие как CRC, лучше криптографических методов, ни один из них не обеспечивает адекватного покрытия активной электроники в критически важных для безопасности системах. Это иллюстрируется Шредингер CRC сценарий, в котором сообщение с защитой CRC с одним византийским ошибочным битом представляет разные данные разным наблюдателям, и каждый наблюдатель видит действительный CRC.[3][4]
  • Также представлен вариант первых двух решений, обеспечивающий отказоустойчивое поведение в некоторых ситуациях, когда не все генералы могут напрямую общаться друг с другом.

Было разработано несколько системных архитектур c. 1980 г., внедривший византийскую отказоустойчивость. К ним относятся: FTMP Дрейпера,[16] MMFCS Honeywell,[17] и SIFT НИИ.[8]

Продвинутые решения

В 1999 году Мигель Кастро и Барбара Лисков представил алгоритм «Практическая византийская отказоустойчивость» (PBFT),[18] который обеспечивает высокопроизводительную репликацию византийского конечного автомата, обрабатывая тысячи запросов в секунду с субмиллисекундным увеличением задержки.

После PBFT было введено несколько протоколов BFT для повышения его надежности и производительности. Например, Q / U,[19] HQ,[20] Зызыва,[21] и РЕФЕРАТЫ,[22] рассмотрены вопросы производительности и стоимости; тогда как другие протоколы, такие как Aardvark[23] и RBFT,[24] рассмотрены вопросы его устойчивости. Кроме того, Adapt[25] попытался использовать существующие протоколы BFT путем адаптивного переключения между ними, чтобы повысить надежность и производительность системы при изменении основных условий. Кроме того, были введены протоколы BFT, которые используют доверенные компоненты для уменьшения количества реплик, например, A2M-PBFT-EA.[26] и MinBFT.[27]

Мотивировано PBFT, Tendermint BFT[28] был введен для частично асинхронных сетей и в основном используется для блокчейнов Proof of Stake.

Реализации BFT

Одним из примеров использования BFT является биткойн, одноранговая система цифровых денег.[29] В сеть биткойнов работает параллельно для создания блокчейн с доказательство работы позволяя системе преодолевать византийские неудачи и достигать целостного глобального представления о состоянии системы.

Некоторые авиационные системы, такие как Boeing 777 Система управления воздушной информацией (через его ARINC 659 SAFEbus сеть),[30][31]система управления полетом Boeing 777,[32] а системы управления полетом Boeing 787 используют византийскую отказоустойчивость; поскольку это системы реального времени, их византийские решения для отказоустойчивости должны иметь очень низкую задержку. Например, SAFEbus может достичь византийской отказоустойчивости в пределах микросекунды дополнительной задержки.

Некоторые системы полета космических кораблей, такие как SpaceX Dragon[33] считают в своей конструкции византийскую отказоустойчивость.

Византийские механизмы отказоустойчивости используют компоненты, которые повторяют входящее сообщение (или только его подпись) другим получателям этого входящего сообщения. Все эти механизмы предполагают, что повторение сообщения блокирует распространение византийских симптомов. Для систем с высокой степенью критичности к безопасности эти допущения должны быть подтверждены до приемлемого уровня. покрытие неисправностей. При предоставлении доказательств посредством тестирования одна трудность заключается в создании достаточно широкого спектра сигналов с византийскими симптомами.[34] Для такого тестирования, вероятно, потребуются специализированные форсунки неисправностей.[35][36]

Программного обеспечения

  • UpRight - это библиотека с открытым исходным кодом для создания сервисов, которые допускают как сбои («вверх»), так и византийское поведение («правильно»), которая включает в себя многие из нововведений этих протоколов.[37]
  • Библиотека BFT-SMaRt - это высокопроизводительная византийская отказоустойчивая библиотека репликации конечного автомата, разработанная на Java. Эта библиотека реализует протокол, очень похожий на PBFT, плюс дополнительные протоколы, которые предлагают передачу состояния и реконфигурацию хостов на лету. BFT-SMaRt - это последняя попытка реализовать репликацию конечного автомата, которая все еще активно поддерживается.[38]
  • Archistar использует тонкий слой BFT для связи. Он является прототипом защищенной многооблачной системы хранения с использованием Java под лицензией LGPLv2. Основное внимание уделяется простоте и удобочитаемости, он призван стать основой для дальнейших исследовательских проектов.[39][40]
  • Askemos - это параллельная платформа постоянного программирования, собирающая мусор, поверх реплицированных конечных автоматов, которая допускает византийские ошибки. Он прототипирует среду выполнения, упрощающую Смарт-контракты.[41]

Смотрите также

Рекомендации

  1. ^ Киррманн, Хуберт (н.о.). «Отказоустойчивые вычисления в промышленной автоматизации» (PDF). Швейцария: Исследовательский центр ABB. п. 94. Архивировано с оригинал (PDF) на 2014-03-26. Получено 2015-03-02.
  2. ^ Лампорт, Л.; Шостак, Р .; Пиз, М. (1982). "Проблема византийских генералов" (PDF). Транзакции ACM по языкам и системам программирования. 4 (3): 382–401. CiteSeerX  10.1.1.64.2312. Дои:10.1145/357172.357176. В архиве (PDF) из оригинала от 13 июня 2018 г.
  3. ^ а б c Driscoll, K .; Холл, Б .; Paulitsch, M .; Zumsteg, P .; Сивенкрона, Х. (2004). «Настоящие византийские генералы». 23-я Конференция по системам цифровой авионики (IEEE Cat. No. 04CH37576). С. 6.D.4–61–11. Дои:10.1109 / DASC.2004.1390734. ISBN  978-0-7803-8539-9. S2CID  15549497.
  4. ^ а б c Дрисколл, Кевин; Холл, Брендан; Сивенкрона, Хакан; Зумстег, Фил (2003). «Византийская отказоустойчивость, от теории к реальности». Компьютерная безопасность, надежность и безопасность. Конспект лекций по информатике. 2788. С. 235–248. Дои:10.1007/978-3-540-39878-3_19. ISBN  978-3-540-20126-7. ISSN  0302-9743. S2CID  12690337.
  5. ^ Avizienis, A .; Laprie, J.-C .; Рэнделл, Брайан; Ландвер, К. (2004). «Основные понятия и таксономия надежных и безопасных вычислений». Транзакции IEEE о надежных и безопасных вычислениях. 1 (1): 11–33. Дои:10.1109 / TDSC.2004.2. HDL:1903/6459. ISSN  1545-5971. S2CID  215753451.
  6. ^ «Надежные вычисления и отказоустойчивость». В архиве из оригинала от 02.04.2015. Получено 2015-03-02.
  7. ^ Обобщенная связь и безопасность Модель Византийского соглашения, Матиас Фитци https://www.crypto.ethz.ch/publications/files/Fitzi03.pdf
  8. ^ а б «SIFT: проектирование и анализ отказоустойчивого компьютера для управления самолетом». Надежность микроэлектроники. 19 (3): 190. 1979. Дои:10.1016/0026-2714(79)90211-7. ISSN  0026-2714.
  9. ^ Пиз, Маршалл; Шостак, Роберт; Лэмпорт, Лесли (апрель 1980 г.). «Достижение соглашения при наличии недостатков». Журнал Ассоциации вычислительной техники. 27 (2): 228–234. CiteSeerX  10.1.1.68.4044. Дои:10.1145/322186.322188. S2CID  6429068.
  10. ^ Лэмпорт, Лесли (2016-12-19). "Проблема византийских генералов". Транзакции ACM по языкам и системам программирования. SRI International. Получено 18 марта 2019.
  11. ^ а б c Лампорт, Л.; Шостак, Р .; Пиз, М. (1982). "Проблема византийских генералов" (PDF). Транзакции ACM по языкам и системам программирования. 4 (3): 387–389. CiteSeerX  10.1.1.64.2312. Дои:10.1145/357172.357176. Архивировано из оригинал (PDF) 7 февраля 2017 г.
  12. ^ Дрисколл, Кевин (2012-12-11). «Реальные сбои системы». DASHlink. НАСА. В архиве из оригинала от 02.04.2015. Получено 2015-03-02.
  13. ^ Уолтер, С .; Ellis, P .; ЛаВэлли, Б. (2005). «Надежная платформа-сервис: отказоустойчивая сервисная архитектура на основе свойств». Девятый международный симпозиум IEEE по системной инженерии с высоким уровнем надежности (HASE'05). С. 34–43. Дои:10.1109 / HASE.2005.23. ISBN  978-0-7695-2377-4. S2CID  21468069.
  14. ^ Feldman, P .; Микали, С. (1997). «Оптимальный вероятностный протокол для синхронного византийского соглашения» (PDF). SIAM J. Comput. 26 (4): 873–933. Дои:10.1137 / s0097539790187084. В архиве (PDF) из оригинала на 2016-03-05. Получено 2012-06-14.
  15. ^ Paulitsch, M .; Моррис, Дж .; Холл, Б .; Driscoll, K .; Latronico, E .; Купман, П. (2005). «Покрытие и использование кодов циклического резервирования в сверхнадежных системах». 2005 Международная конференция по надежным системам и сетям (DSN'05). С. 346–355. Дои:10.1109 / DSN.2005.31. ISBN  978-0-7695-2282-1. S2CID  14096385.
  16. ^ Хопкинс, Альберт Л .; Lala, Jaynarayan H .; Смит, Т. Бэзил (1987). «Эволюция отказоустойчивых вычислений в лаборатории Чарльза Старка Дрейпера, 1955–85». Эволюция отказоустойчивых вычислений. Надежные вычисления и отказоустойчивые системы. 1. С. 121–140. Дои:10.1007/978-3-7091-8871-2_6. ISBN  978-3-7091-8873-6. ISSN  0932-5581.
  17. ^ Дрисколл, Кевин; Пападопулос, Грегори; Нельсон, Скотт; Хартманн, Гэри; Рамохалли, Готэм (1984), Мульти-микропроцессорная система управления полетом (Технический отчет), база ВВС Райт-Паттерсон, штат Огайо 45433, США: AFWAL / FIGL Командование систем ВВС США, AFWAL-TR-84-3076CS1 maint: location (связь)
  18. ^ Castro, M .; Лисков, Б. (2002). «Практическая византийская отказоустойчивость и упреждающее восстановление». ACM-транзакции в компьютерных системах. Ассоциация вычислительной техники. 20 (4): 398–461. CiteSeerX  10.1.1.127.6130. Дои:10.1145/571637.571640. S2CID  18793794.
  19. ^ Abd-El-Malek, M .; Ganger, G .; Хорошая песня.; Reiter, M .; Уайли, Дж. (2005). "Отказоустойчивые византийские отказоустойчивые услуги". Обзор операционных систем ACM SIGOPS. Ассоциация вычислительной техники. 39 (5): 59. Дои:10.1145/1095809.1095817.
  20. ^ Каулинг, Джеймс; Майерс, Дэниел; Лисков, Варвара; Родригес, Родриго; Шрира, Люба (2006). Репликация HQ: протокол гибридного кворума для византийской отказоустойчивости. Труды 7-го USENIX Симпозиум по разработке и внедрению операционных систем. С. 177–190. ISBN  1-931971-47-1.
  21. ^ Котла, Рамакришна; Альвиси, Лоренцо; Далин, Майк; Клемент, Аллен; Вонг, Эдмунд (декабрь 2009 г.). «Зызыва: умозрительная византийская отказоустойчивость». ACM-транзакции в компьютерных системах. Ассоциация вычислительной техники. 27 (4): 1–39. Дои:10.1145/1658357.1658358.
  22. ^ Геррауи, Рашид; Кнежевич, Никола; Вуколич, Марко; Кема, Вивьен (2010). Следующие 700 протоколов BFT. Труды 5-й Европейской конференции по компьютерным системам. EuroSys. В архиве из оригинала от 02.10.2011. Получено 2011-10-04.
  23. ^ Clement, A .; Wong, E .; Alvisi, L .; Далин, М .; Маркетти, М. (22–24 апреля 2009 г.). Обеспечение устойчивости византийских отказоустойчивых систем к византийским сбоям (PDF). Симпозиум по проектированию и внедрению сетевых систем. USENIX. В архиве (PDF) из оригинала от 25.12.2010. Получено 2010-02-17.
  24. ^ Aublin, P.-L .; Бен Мохтар, С .; Quéma, V. (8–11 июля 2013 г.). RBFT: избыточная византийская отказоустойчивость. 33-я Международная конференция IEEE по распределенным вычислительным системам. Международная конференция по распределенным вычислительным системам. Архивировано из оригинал 5 августа 2013 г.
  25. ^ Bahsoun, J. P .; Guerraoui, R .; Шокер, А. (01.05.2015). «Как сделать протоколы BFT действительно адаптивными». Симпозиум по параллельной и распределенной обработке (IPDPS), 2015 IEEE International: 904–913. Дои:10.1109 / IPDPS.2015.21. ISBN  978-1-4799-8649-1. S2CID  16310807.
  26. ^ Чун, Бюнг-Гон; Маниатис, Петрос; Шенкер, Скотт; Кубятович, Джон (01.01.2007). «Подтвержденная память, предназначенная только для добавления: заставляя противников придерживаться своего слова». Материалы двадцать первого симпозиума ACM SIGOPS по принципам операционных систем. СОСП '07. Нью-Йорк, Нью-Йорк, США: ACM: 189–204. Дои:10.1145/1294261.1294280. ISBN  9781595935915. S2CID  6685352.
  27. ^ Veronese, G. S .; Correia, M .; Бессани, А. Н .; Lung, L. C .; Вериссимо, П. (1 января 2013 г.). «Эффективная византийская отказоустойчивость». Транзакции IEEE на компьютерах. 62 (1): 16–30. CiteSeerX  10.1.1.408.9972. Дои:10.1109 / TC.2011.221. ISSN  0018-9340. S2CID  8157723.
  28. ^ Buchman, E .; Kwon, J .; Милошевич, З. (2018). «Последние слухи о консенсусе BFT». arXiv:1807.04938 [cs.DC ].
  29. ^ «Биткойн - P2P деньги с открытым исходным кодом». bitcoin.org. Получено 2019-08-18.
  30. ^ М., Паулич; Дрисколл, К. (9 января 2015 г.). «Глава 48: SAFEbus». В Zurawski, Ричард (ред.). Справочник по технологиям промышленной связи, второе издание. CRC Press. С. 48–1–48–26. ISBN  978-1-4822-0733-0.
  31. ^ Томас А. Хензингер; Кристоф М. Кирш (26 сентября 2001 г.). Встроенное программное обеспечение: Первый международный семинар, EMSOFT 2001, Тахо-Сити, Калифорния, США, 8-10 октября 2001 г. Протоколы (PDF). Springer Science & Business Media. С. 307–. ISBN  978-3-540-42673-8. В архиве (PDF) из оригинала от 22.09.2015. Получено 2015-03-05.
  32. ^ Ага, Y.C. (2001). «Критически важное для безопасности авиационное оборудование для основной системы управления полетом 777». 20-й DASC. 20-я Конференция по системам цифровой авионики (Кат. № 01CH37219). 1. С. 1C2 / 1–1C2 / 11. Дои:10.1109 / DASC.2001.963311. ISBN  978-0-7803-7034-0. S2CID  61489128.
  33. ^ "ELC: извлеченные уроки SpaceX [LWN.net]". В архиве из оригинала на 2016-08-05. Получено 2016-07-21.
  34. ^ Наня, Т .; Гусен, Х.А. (1989). «Византийская модель аппаратной неисправности». IEEE Transactions по автоматизированному проектированию интегральных схем и систем. 8 (11): 1226–1231. Дои:10.1109/43.41508. ISSN  0278-0070.
  35. ^ Мартинс, Роландо; Ганди, Раджив; Нарасимхан, Прия; Pertet, Soila; Казимиро, Антониу; Крейц, Диего; Вериссимо, Пауло (2013). «Опыт внедрения неисправностей в византийском отказоустойчивом протоколе». Промежуточное ПО 2013. Конспект лекций по информатике. 8275. С. 41–61. Дои:10.1007/978-3-642-45065-5_3. ISBN  978-3-642-45064-8. ISSN  0302-9743.
  36. ^ Патент США 7475318, Кевин Р. Дрисколл, «Метод тестирования чувствительного входного диапазона византийских фильтров», выпущенный 06.01.2009, передан компании Honeywell International Inc. 
  37. ^ "Репозиторий Google Code для библиотеки репликации UpRight". Архивировано из оригинал на 2016-04-15.
  38. ^ "Репозиторий Google Code для библиотеки репликации BFT-SMaRt". Архивировано из оригинал на 2017-10-29.
  39. ^ "репозиторий github для проекта Archistar". 2019-05-28. Архивировано из оригинал на 04.02.2015.
  40. ^ "репозиторий github для проекта Archistar". 2019-04-28. Архивировано из оригинал на 2017-06-13.
  41. ^ «Домашняя страница Аскемоса». Архивировано из оригинал на 2016-05-03.

внешняя ссылка