Serirq что за сигнал
ISA умер! Да здравствует LPC?
Сегодня в персональном компьютере осталось только одно функциональное устройство, по которому можно проследить его генеалогию, — это интерфейс ISA, доставшийся ему по наследству от IBM PC AT. Большинство карт расширения выполняется по стандарту PCI, многие видеокарты подключаются по AGP. Однако производители карт расширения и материнских плат кивают друг на друга: если стандарт существует, то под него должны выпускаться карты; если выпускаются карты с интерфейсом ISA, то материнские платы должны его поддерживать. В спецификации PC98 наличие разъемов расширения стандарта ISA признается нежелательным. Однако для подсоединения таких устройств, как параллельные и последовательные порты, клавиатура, флоппи-диск, какой-нибудь интерфейс все же необходим. Поэтому разработчики микросхем для материнских плат вынуждены разводить ISA на кристалле, а чтобы добро не пропадало зря, — и выводить его наружу. Что же придет ему на смену?
Наименование | Направление | Назначение | |
---|---|---|---|
Периферия | Основной задатчик | ||
LAD[3:0] | I/O | I/O | Мультиплексированные команды, адреса и данные |
LFRAME# | I | O | Фрейм, указывает на начало новой команды |
LRESET# | I | I | Сброс, те же функции, что PCI Reset. При наличии PCIRST# необязателен |
LCLC | I | I | Тактовая частота 33 МГц, те же функции, что PCICLK |
Для подключения перечисленных выше устройств Intel предлагает новый стандарт — LPC (Low Pin Count, Малое Количество Контактов). Этот интерфейс, по утверждению представителей корпорации, будет встраиваться в будущие чипсеты для материнских плат. Такие намерения Intel означают, что, вероятнее всего, мы вскоре сможем в добровольно-принудительном порядке ознакомиться со стандартом LPC. Попробуем сделать это заранее и по собственной воле.
Введение нового стандарта преследует следующие цели:
Контактов действительно очень мало: семь обязательных (для передачи информации) и шесть дополнительных (для подключения устройств, выполняющих функцию задатчика и управления мощностью). Названия и функции обязательных сигналов интерфейса LPC приведены в табл. 1. Команды, адреса и данные передаются по линиям LAD[3:0] тетрадами-нибблами последовательно по четыре бита за один раз. Подобно PCI интерфейс синхронный, каждый цикл состоит из нескольких полей, каждое из которых имеет длительность в один период тактовой частоты 33 МГц. Любой цикл обмена по интерфейсу LPC начинается с того, что основной задатчик на шине (обычно чипсет) устанавливает активный уровень на линии LFRAME#. При этом все периферийные устройства переходят в состояние «начало цикла» и анализируют состояние линий LAD[3:0]. Если устройства передавали информацию по линиям LAD[3:0], то они немедленно их освобождают. Таким образом, этот сигнал может использоваться для прекращения затянувшихся циклов, например, при сбоях и зависаниях. То есть при достаточно интеллектуальном основном задатчике зависшее периферийное устройство не сможет подвесить всю систему. Сигнал LFRAME# может быть активным более одного периода тактовой частоты 33 МГц. В этом случае действительной считается информация, имевшаяся на LAD[3:0] во время последнего периода тактовой частоты. Первое поле — START — определяет тип операции, его возможные значения приведены в табл. 2.
Значение LAD[3:0] | Тип операции |
---|---|
0 | Начало ввода/вывода или чтения/записи |
1 | Зарезервировано для последующего расширения |
10 | Разрешение для задатчика номер 1 |
11 | Разрешение для задатчика номер 2 |
0100-1110 | Зарезервировано для последующего расширения |
1111 | Принудительное прекращение цикла |
Следующее поле — CYCTYPE + DIR (Cycle Type / Direction, тип цикла и направление передачи), определяется текущим задатчиком. Это поле может иметь значения, указанные в табл. 3. Значение бита LAD[0] зарезервировано, и он всегда должен быть равен 0.
Поле SIZE (Размер) может принимать значения 00 при передаче 1 байта, 01 при передаче 2 байт и 11 при передаче 4 байт. Значение 10 зарезервировано. Это поле используется только при операциях прямого доступа; ввод/вывод и чтение/запись осуществляются побайтно. Поле ADDR имеет длину четыре периода тактовой частоты для операций ввода/вывода и восемь периодов для циклов обращения к памяти. Адреса передаются начиная со старшей тетрады, то есть при обращении к памяти первыми передаются биты 31:28, а последними — 3:0.
LAD[3:2] | LAD[1] | Тип операции |
---|---|---|
0 | 0 | Чтение из внешнего устройства |
0 | 1 | Запись во внешнее устройство |
1 | 0 | Чтение из памяти |
1 | 1 | Запись в память |
10 | 0 | Прямой доступ к памяти для чтения |
10 | 1 | Прямой доступ к памяти для записи |
11 | Х | Зарезервировано. Периферия должна игнорировать это значение, а основной задатчик, обнаружив его, прерывает цикл установкой LFRAME# в активное состояние |
Поле CHANNEL используется в операциях прямого доступа к памяти и содержит в битах 0:2 номер канала, а в бите 3 — аналог сигнала Terminal Count шины ISA.
Поле DATA (Данные) имеет длину два периода тактовой частоты и содержит данные, передаваемые младшей тетрадой вперед. В одном цикле может содержаться одно, два или четыре поля DATA.
Поле передачи управления Turn Around, TAR, используется для передачи контроля над линиями LAD [3:0] второму участнику данного цикла, что необходимо при операциях чтения. Оно имеет продолжительность два периода тактовой частоты, на первом периоде текущий задатчик устанавливает на линиях LAD[3:0] значение 1111, на втором отключается, ожидая информацию от второго участника диалога.
Поле SYNC служит для синхронизации источника и приемника данных. Его вставляет ведомый участник цикла для того, чтобы подготовить для передачи запрошенные данные, или для размещения полученной информации. Полей SYNC в одном цикле может быть несколько, фактически столько, сколько нужно для подготовки. Значения поля SYNC приведены в табл. 4.
LAD[3:0] | |
---|---|
0 | Синхронизация достигнута |
0001-0100 | Зарезервировано |
101 | Короткое ожидание |
110 | Длительное ожидание, будет добавлено много полей SYNC |
0111-1000 | Зарезервировано |
1001 | Синхронизация достигнута, передача будет продолжена в следующем цикле (только при прямом доступе к памяти) |
1010 | Ошибка. В переданных данных содержится ошибка |
1011 — 1111 | Зарезервировано |
Значение 1010 — Ошибка необходимо потому, что все циклы должны иметь определенную длину, так что периферийное устройство обязано передать требуемое для данного цикла количество данных, но перед этим оно честно предупреждает задатчика о том, что эти данные имеют чисто фиктивный характер.
Ознакомившись с типами полей, можно более подробно рассмотреть механизмы начала, окончания и принудительного прекращения цикла. Цикл начинается с того, что основной задатчик устанавливает активный уровень на линии LFRAME#. С этого момента периферийные устройства только анализируют состояние линий LAD[3:0], прервав любую операцию на шине (если она проводилась). Задатчик может удерживать LFRAME# в активном состоянии более одного периода частоты синхронизации, при этом он даже может произвольно менять состояние LAD[3:0]. Действительным значением поля START будет то, которое имелось на этих линиях перед переходом LFRAME# в пассивное состояние. Если считанное поле START распознается периферийными устройствами, то они должны декодировать весь цикл, а в противном случае — просто дожидаться следующей активации LFRAME# (например, устройства ввода/вывода, не использующие циклы прямого доступа или захвата шины, могут их просто игнорировать). Принудительное прекращение цикла является специальным циклом, так как начинается с установки LFRAME# в активное состояние, а заканчивается установкой поля START со значением 1111. При этом для более уверенного распознавания линия LFRAME# находится в активном состоянии не менее четырех периодов тактовой частоты.
Поле | Значение | Источник | Число тактов |
---|---|---|---|
START | 0 | Основной задатчик | 1 |
CYCTYPE+DIR | 100 | Основной задатчик | 1 |
ADDR | ХХХХ | Основной задатчик | 8 |
TAR | 1111 | Основной задатчик | 2 |
SYNC | 101 | Периферийное устройство | 3 |
SYNC | 0 | Периферийное устройство | 1 |
DATA | ХХХХ | Периферийное устройство | 2 |
TAR | 1111 | Периферийное устройство | 2 |
Всего тактов | 20 | ||
Время доступа | 0,66 мкс | ||
Скорость передачи | 1,5 Мбайт/с |
В табл. 5 приведены последовательность и характеристики полей в цикле чтения из памяти. Основной задатчик инициирует цикл, определяет тип цикла и направление передачи (чтение из памяти), адрес памяти и информирует об освобождении линий LAD[3:0]. Периферийное устройство во время подготовки данных передает поля SYNC со значением 0101. Когда данные готовы для передачи, устройство передает поле SYNC со значением 0000, две тетрады данных и информирует основного задатчика об освобождении линий LAD[3:0].
Количество полей синхронизации соответствует быстродействию памяти и может изменяться. В данном примере предполагалось наличие ППЗУ с временем доступа 120 нс (4*33 нс = 132 нс). Цикл записи построен примерно так же, но данные передает основной задатчик, а периферийное устройство — только поля SYNC и TAR. В поле SYNC устройство помещает значение либо 0000 (успешная запись), либо 1010 (ошибка при записи). Соответственно возможны варианты, когда устройство не буферизует данные, а выдает поля SYNC до момента реальной записи.
Поле | Значение | Источник | Число тактов |
---|---|---|---|
START | 0 | Основной задатчик | 1 |
CYCTYPE+DIR | 110 | Основной задатчик | 1 |
ADDR | ХХХХ | Основной задатчик | 8 |
DATA | ХХХХ | Основной задатчик | 2 |
TAR | 1111 | Основной задатчик | 2 |
SYNC | 0 | Периферийное устройство | 1 |
TAR | 1111 | Периферийное устройство | 2 |
Всего тактов | 17 | ||
Время доступа | 0,56 мкс | ||
Скорость передачи | 1,8 Мбайт/с |
В табл. 6 приведены последовательность и характеристики полей в цикле чтения из памяти. Совершенно аналогично происходит ввод/вывод при работе с портами, отличие состоит лишь в других значениях полей CYCTYPE+DIR. Для ознакомления с функциями работы с прямым доступом к памяти и управления потребляемой мощностью в табл. 7 приведены необязательные линии интерфейса LPC.
Наименование | Направление | Назначение | |
---|---|---|---|
Периферия | Основной задатчик | ||
LDRQ# | O | I | Запрос на прямой доступ к памяти или захват шины. Каждому устройству, обладающему этими функциями, требуется отдельная линия LDRQ# |
SERIRQ | I/O | I/O | Последовательный запрос на прерывание |
CLKRUN# | OD I/OD | OD I/OD | То же, что и PCI CLKRUN# |
PME# | OD | I/OD | То же, что и PCI PME# |
LPCPD# | I O | I O | Отключение, указывает, что периферия должна подготовиться к отключению |
LSMI# | O/D I | O/D I | Как и PCI SMI#, нужен для повторных попыток |
При запросе прямого доступа к памяти (ПДП) или захвата шины используется линия LDRQ#. В первом случае по ней передается номер канала ПДП, во втором — зарезервированное значение 100. При благоприятном для данного запроса исходе арбитража основной задатчик начинает производить циклы ПДП. Бит LAD[3] в поле CHANNEL играет специальную роль и соответствует линии шины ISA TC (Terminal Count). В случае передачи последней порции данных (1, 2, 4 байт) этот бит устанавливается в 1, сигнализируя о том, что текущий сеанс ПДП закончен. Также сеанс ПДП может быть завершен установкой поля SYNC=0000 (синхронизация достигнута) или SYNC=1010 (ошибка), так как при циклах ПДП для индикации готовности данных используется значение SYNC=1001 (синхронизация достигнута; в следующем цикле будут еще данные). Последовательность полей и другие характеристики цикла ПДП при 8-битном чтении внешним устройством из основной памяти приведены в табл. 8. В зависимости от типа ПДП (8, 16 или 32 разряда) последние четыре поля передаются один, два или четыре раза соответственно. Соответственно будут меняться время доступа и скорость передачи.
Цикл захвата шины, как и все остальные, инициируется основным задатчиком после получения запроса по линии LDRQ#. Основной задатчик, как и при всех других циклах, формирует поле START, имеющее значение 0010 или 0011 (разрешение для задатчика 1 или задатчика 2; в настоящее время поддерживается не более двух задатчиков). После этого основной задатчик передает управление шиной при помощи поля TAR. Далее все протекает как при описанных выше циклах, за одним исключением: поля SYCTYPE+DIR и последующие, которые определяют тип цикла и направление передачи, формируются устройством, получившим право на захват шины.
Наименование | Направление | Назначение | |
---|---|---|---|
Периферия | Основной задатчик | ||
LDRQ# | O | I | Запрос на прямой доступ к памяти или захват шины. Каждому устройству, обладающему этими функциями, требуется отдельная линия LDRQ# |
SERIRQ | I/O | I/O | Последовательный запрос на прерывание |
CLKRUN# | OD I/OD | OD I/OD | То же, что и PCI CLKRUN# |
PME# | OD | I/OD | То же, что и PCI PME# |
LPCPD# | I O | I O | Отключение, указывает, что периферия должна подготовиться к отключению |
LSMI# | O/D I | O/D I | Как и PCI SMI#, нужен для повторных попыток |
Для работы с устройствами, использующими прерывания, используется линия SERIRQ# и одноименный протокол, описанный в спецификации шины PCI «PCI Local Bus Specification, Rev 2.1». Управление включением/выключением периферийных устройств осуществляется при помощи линий LPCPD# и LRST#. При выключении первая из них устанавливается основным задатчиком в низкий уровень, при этом в течение еще не менее 30 мкс на шину подается сигнал тактовой частоты LCLC. Все периферийные устройства при обнаружении низкого уровня на линии LPCPD# обязаны прекратить любую активность на шине и перейти в режим пониженного энергопотребления. Переход к работе происходит при подаче основным задатчиком на линию LPCPD# высокого уровня. Подача тактового сигнала осуществляется заранее, не менее чем за 100 мкс перед установкой высокого уровня LPCPD#. Для правильного перехода внешних устройств в начальное состояние на линии LRST# поддерживается низкий (активный) уровень еще в течение 60 мкс.
Serirq что за сигнал
6. Так же на новых платформах ставят гибридные мосты вроде северо-юг (хотя это не совсем правильный жаргон), а если по другому то у AMD это FCH (Fusion Controller Hub), а у INTEL PCH (Platform Controller Hub).
Ну я думаю этого будет вполне достаточно и я не стану перечислять что такое оперативная память или например периферию какую нибудь ибо вам наверняка надоест читать
[align=center] «Диагностика» [/align]
Теперь приступим к рассмотрению принципов диагностики! Прежде всего хочу заметить что после того как вы разобрали ноутбук и добрались таки до материнской платы в первую очередь надо внимательно осмотреть её на предмет окислов, потемневших участков, следов пайки, нагара, вздутий текстолита и других повреждений, так же внимательно осмотреть все разьёмы (чтобы нигде ничего не коротило) и исходя из этого вполне можно строить определённые выводы.
Далее конечно же надо смотреть по ситуации, то есть если у вас к примеру окисления в каком либо участке, то надо поснимать с платы всё что снимается и хорошенько промыть плату, я например промываю под водой с фейри и зубной щёткой, а затем выдуваем всю воду с платы (особенно из под чипов) с помощью компрессора, досушиваем основательно желательно на «печке» нижним подогревом с температурой 60 градусов по цельсию, но без фанатизма, потом смотрим отгнившие элементы под микроскопом и восстанавливаем! Так же стоит обратить внимание на то место куда «протекло», ибо часто бывает что жидкость попадает к примеру под ЮГ и в итоге под ним начинают отгнивать контакты, в данном случае надо снимать юг, чистить посадочное место и не редко восстанавливать пятаки, затем на ваше усмотрение либо ребоулить чип и ставить на место, либо ставить новый.
Если же вы не обнаружили ничего подозрительного на плате, то далее стоит проверить на наличие короткого замыкания (КЗ) на плате, как же это делается, для начала если вы ДОСКОНАЛЬНО не знаете эту платформу, то лучше скачать схему и в ней смотреть цепи питаний, схему мы ищем не по названию ноутбука, а по платформе, подробно об определении платформ тут http://notebook1.ru/forma1/viewtopic.php?f=89&t=34166
Начинаем с проверки первички «19 вольтовая линия» (вообще если быть точным то первичка на некоторых моделях может быть не 19в, а к примеру 15в или же наоборот 20в и надо смотреть что написано на корпусе, для того чтобы узнать параметры совместимого ЗУ), ищем по схеме где они проходят и так же меряем сопротивление относительно земли, оно должно быть очень большое!
Если же у вас заниженное сопротивление по высокому (19в), то для начала вам надо понять в каких цепях оно присутствует, то есть в обвязке чаржера (Сharger в переводе с англиского «зарядное устройство») или в нагрузке, чтобы понять как это сделать давайте рассмотрим принцип работы чаржера:
Для наглядного примера я возьму даташит от микросхемы чаржера BQ24753A
[align=center] Питания не поднимаются либо поднимаются, но не все. [/align]
Это и есть наш Power on sequence и ещё :
Первым делом нам нужно убедится что на плату поступает +3VA_EC и наш мультиконтролер запитан, так же смотрим запитана ли флешка биоса. Кстате сказать на разным платформах это питание формируется по разному (не обязательно его должен формировать шим дежурки), это на заметку тем кто спрашивает, а откуда запитан мульт если дежурка не работает, смотрите вашу схему товарищи!
[align=center] Все питания поднялись, но нет «изо». [/align]
[align=center] Удачи вам в ремонтах. [/align]
Почему Signal — не идеальный мессенджер. Нам нужна децентрализация
Федеративная система Matrix поддерживает связь с другими сетями через мосты. Это пример инфраструктуры, к которой нужно стремиться Signal
4 января 2021 года WhatsApp внёс изменения в пользовательское соглашение. Теперь каждый пользователь обязан согласиться на отправку личных данных в материнскую компанию Facebook, иначе его аккаунт WhatsApp просто заблокируют. Эффект от изменений был вполне предсказуем — миллионы человек массово ушли из WhatsApp. Прежде всего, в Telegram и Signal.
Павел Дуров назвал это «крупнейшей цифровой миграцией в истории»: всего за трое суток у Telegram появилось 25 млн новых пользователей, абсолютный рекорд. Илон Маск в твиттере прокомментировал события просто: «Используйте Signal», — написал он. То же самое советует Эдвард Сноуден. Мессенджер Signal для многих стал настоящим открытием.
После изменения политики WhatsApp популярность Signal взлетела на 4200%: если говорить по-русски, это значит в 43 раза, а Telegram вышел на второе место по количеству скачиваний в США. В итоге они примерно сравнялись по количеству загрузок: 7,5 млн и 9 млн за первую неделю после той новости от WhatsApp.
Скачок количества установок Signal в Google Play
С точки зрения шифрования, приватности и защиты информации Signal предпочтительнее, чем Telegram. Криптографические протоколы Telegram в старой версии не выдерживают никакой критики, они просто ужасны, а в новой версии протокол до сих пор не прошёл независимый аудит. С другой стороны, у Signal всё в порядке: надёжность и безопасность подтверждены независимыми экспертами, код открыт и доступен для проверки всеми желающими.
Таким образом, если пользователи бегут от драконовской политики WhatsApp в области приватности, то логично переходить на более защищённый и приватный мессенджер, то есть на Signal. Это лучшее, что у нас есть.
Граффити, сделанное во время массовых протестов в Калифорнии в 2017 году. Фото: Elijah Nouvelage, Getty Images
Как клиенты заддосили собственный сервер
К сожалению, инфраструктура Signal не справилась с наплывом миллионов новых людей. Причём случилось довольно забавно: клиентское программное обеспечение Signal фактически заддосило собственный сервер.
В коде клиента под Android была ошибка по обработке таймаута. С наплывом десятков миллионов новых пользователей серверы начали иногда возвращать ошибку HTTP 508, но клиент не обрабатывал эту ошибку должным образом. Он снова и снова повторял попытки. Хотя в алгоритме и реализована экспоненциальная выдержка, но не был предусмотрен вариант, когда сервер специально отказывает клиенту в соединении. При этом экспоненциальная выдержка работала без джиттера (элемента случайности).
В итоге получилось так, что все начинали стучаться к серверу одновременно — и не было никакой возможности отключить эти «волны» DDoS’а.
Примечание. Строго говоря, здесь не совсем DDoS. В компьютерной науке для данной проблемы существует специальный термин thundering herd problem. Это можно перевести как «проблема грохочущего стада» — имеется в виду стадо, которое начинает орать одновременно.
Хотя код клиента для Android открыт и опубликован на GitHub, никто так и не заметил эту ошибку во время предыдущих аудитов и проверок. Вероятно, аудиторы сконцентрировали внимание на правильной реализации криптографии, а не на всяких интерфейсах, которые не угрожают безопасности. Хотя нужно заметить, что некорректную реализацию повторения попыток коннекта часто допускают начинающие программисты.
16 января для исправления ситуации в код Android-клиента внесли следующие изменения. «Флаги функций» означают, что соответствующий параметр в клиентской программе может быть установлен сервером:
Для таких ситуаций Mozilla предлагает принять новый код ошибки HTTP 429 Too Many Requests, чтобы определить ситуацию более ясно. Он сопровождается заголовком Retry-After с указанием предпочтительного таймаута. Например:
Возможно, такой код ошибки будет проще обрабатывать на клиенте.
Signal никогда не сделает ничего подобного. Но поэтому вынужден страдать от недостатка финансирования и связанных с этим технических проблем.
Кстати, мессенджер WhatsApp до покупки компанией Facebook нормально выдерживал более 100 млн пользователей. Но у него были деньги на инфраструктуру.
Централизованная инфраструктура — всегда плохо
Дело не только в недостатке инвестиций. Организацию Signal и ведущего разработчика Мокси Марлинспайка ещё упрекают в выборе не самого корректного технологического стека, который не позволил внезапно масштабироваться в десять раз. Никто не знал, что WhatsApp выкинет такой фокус и произойдёт массовый наплыв пользователей в Signal, это было совершенно неожиданно, но инфраструктура оказалась не готова.
Вообще, Мокси Марлинспайк выступает принципиально против федеративной системы, которая предусматривает сосуществование произвольного количества серверов Signal, принадлежащих третьим лицам. Например, такую модель предусматривает протокол коммуникации XMPP (Jabber), на котором отлично работает служба обмена сообщениями.
Другой пример федеративной системы — электронная почта, которая основана на инфраструктуре из миллиона почтовых серверов от третьих лиц. Кто угодно может поднять собственный почтовый сервер — и он станет частью общей почтовой экосистемы.
Ещё один пример федеративной системы — социальная сеть Mastodon, свободная альтернатива Facebook.
Инстансы Mastodon
Матрица
Сквозное шифрование в любом случае делает невозможным перехват сообщений Signal на сервере, поэтому никто не мешает реализовать федеративную систему. Например, такая система реализована в сети Matrix, которая поддерживает любые виды коммуникаций, в том числе разработаны мосты в Slack, IRC, XMPP, Gitter, Telegram, Discord, WhatsApp, Facebook, Hangouts, Signal и другие.
Нативный клиент для Matrix называется Element, он выпускается в версиях для Windows, macOS, Android, iOS, а также работает в вебе, то есть просто в браузере.
Веб-версия Element
Matrix поддерживает сквозное шифрование, причём фактически на том же протоколе Signal, что и сам Signal. Но это система иного типа. В реальности Matrix — это инфраструктура для сторонних сервисов, некий промежуточный слой, его называют «универсальной коммуникационной шиной». Используя все вышеперечисленные мосты, можно интегрировать все сторонние мессенджеры, приложения для групповой работы и социальные сети в едином интерфейсе Matrix.
Как выяснилось сейчас, это были инвестиции с дальним прицелом: в январе 2021 года этот предприниматель запустил новый стартап: платный универсальный мессенджер Beeper с интеграцией 15 мостов из Matrix.
Тем временем разработчики Matrix рассматривают дальнейшую эволюцию проекта. Вместо федеративной системы с определённым количеством серверов они планируют внедрить полноценный P2P. На пиринговой инфраструктуре работает демонстрационная версия мессенджера Riot P2P.
Демо Riot P2P
Несколько лет назад разработчики Matrix даже предлагали Мокси подключить Signal (тогда он назывался TextSecure) к Matrix.
Мокси вежливо отказался, а через несколько месяцев опубликовал пост «Экосистема движется» с объяснением, почему он «больше не верит в возможность разработки конкурентного мессенджера на федеративной основе».
Аргументом Мокси Марлинспайка является то, что децентрализованную систему сложнее корректно спроектировать и запрограммировать. Программиста можно понять по-человечески, но сложность в реализации — это всё-таки недостаточное оправдание.
С каждым новым даунтаймом централизованная инфраструктура выглядит всё менее подходящей для Signal, да и для любого другого веб-сервиса, который ставит главным приоритетом надёжность работы. Даунтайм 16 января 2021 года продолжался почти сутки!
Даунтайм на сутки — уже достаточный аргумент против централизации. Есть и другие. Например, Signal использует инфраструктуру AWS, а это уже определённый риск, как мы знаем по печальной истории изгнания сервиса Parler, который тоже рискнул положиться на AWS.
Хотя исходный код Signal открыт, но тот же серверный код не обновлялся с апреля 2020 года. Это не значит, что там нет багов, а скорее указывает на недостаток внимания.
Если Мокси по-прежнему будет игнорировать федеративные системы, то в будущем есть смысл посмотреть в сторону альтернативных приложений со сквозным шифрованием. Кроме Matrix, например, есть приложение Session. Оно не полагается на центральные серверы и не требует номер телефона для регистрации (это ещё один повод для критики Signal).
Мессенджер Session
Судя по whitepaper, одним из разработчиков Session является Максим Шишмарёв из проекта Loki Project. Эта организация занимается разработкой инструментов приватности и анонимных коммуникаций.
Session и Riot выглядят более стабильно, хотя по функциональности и удобству использования уступают Signal. Но они показывают, в каком направлении нужно двигаться Signal с точки зрения инфраструктуры. Федеративная система без центральных серверов — это отсутствие единой точки отказа, что означает более стабильную и надёжную работу.
По крайней мере, такое приложение не заддосит само себя.
На правах рекламы
Эпичные серверы — это виртуальные серверы для любых задач. Вы можете создать собственный тарифный план, максимальная конфигурация — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe!