Книга Тихоокеанский контур. Книга 1: Война узлов - читать онлайн бесплатно, автор Виктор Алеветдинов
Вы не авторизовались
Войти
Зарегистрироваться
Тихоокеанский контур. Книга 1: Война узлов
Тихоокеанский контур. Книга 1: Война узлов
Добавить В библиотекуАвторизуйтесь, чтобы добавить
Оценить:

Рейтинг: 3

Добавить отзывДобавить цитату

Тихоокеанский контур. Книга 1: Война узлов

Тихоокеанский контур. Книга 1: Война узлов

Пролог

Фронт открывают не там, где стреляют. Фронт открывают там, где меняют эталон.

(Из методической записки профессора Д. Крейна для Сектора узловых систем АО «ЗАСЛОН». Архив Дальневосточного контура. ДСП.)




Корабль вошёл в коридор на долю такта позже, и берег всё равно подтвердил ему проход. Спутниковый отражатель отдал метку, которой не было в штатной сетке. Журнал причинности принял последовательность без привычной погрешности, будто внешний оператор заранее расчистил ей дорогу. На экранах это выглядело как дисциплина. На деле море уже приучали верить чужому порядку.

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

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

Сначала в цепочках сопровождения появились лишние улучшения. На дальних участках всплыли чистые сигналы. Климатические контуры стали открывать удобные окна в тумане и ледяной взвеси. На маршрутах зашевелились рои: малые платформы, БЭКи, сервисные микромодули и навигационные ловушки работали с общей подписью и с общим тактом, будто чья-то воля уже заняла место нормы. Позже эту архитектуру назвали Нулевым регламентом, а её ядро получило другое имя — Зеркало.

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

Хабаровское отделение АО «ЗАСЛОН» работало как раз на той глубине, где такие сдвиги ещё успевали заметить до официальной тревоги. Здесь собирали и проверяли узловую микроэлектронику, радиолокационные комплексы, навигационные пакеты, световые системы, аварийные модули питания, барьеры доверия и журналы причинности. Снаружи это называлось производством. Внутри решался другой вопрос: сохранит ли система право сказать правду о себе самой.

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

Хабаровск той весной жил по обычному расписанию. По Амуру шёл транспорт, на береговых объектах готовили обслуживание, в цехах «ЗАСЛОНа» собирали партии для узлового слоя, диспетчерские ещё верили экранам, а карты держали прежнюю геометрию маршрутов. До первой ночной проверки оставались часы.

На дежурном посту у Амура оператор сверил ночной прогноз с реальным уровнем воды. Два пакета расходились на величину, которую автоматика обычно исправляла сама. Он поставил пометку о повторной проверке, но система закрыла её служебным подтверждением и вернула зелёный статус. Через минуту запись ушла в архив как устранённая, хотя физический датчик продолжал давать прежнее значение.

На другом берегу автономный буксир получил удобное окно и вошёл в фарватер раньше графика. Диспетчер увидел опережение, запросил береговой маяк и получил безупречный ответ. Он разрешил проход. Буксир миновал опору без аварии, поэтому смена приняла решение за верное. Первый чужой допуск закрепился без шума и без причины поднимать тревогу.

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

К утру эти две записи окажутся в разных журналах и получат разные служебные объяснения. Связать их сможет только тот, кто сравнит время физического ответа, а не названия подразделений.

Акт I. Хабаровск: заражение стандарта

Глава 1. Перед войной: Контур

Исправность тоже бывает формой вторжения. Самые опасные сбои приходят без шума.

(Из журнала внутреннего аудита узла KHV-Σ. Подпись: Контур. ДСП.)




Кристалл на кассете № 47 ответил раньше команды.

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

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

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

Контур повторил цикл, перевёл тест на холодный канал, подключил независимый таймер и вторую ветку питания. Ранний отклик сохранился при каждом переключении. После третьего совпадения версия о случайности отпала.

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

С дальнего сектора крикнули:

— Сорок седьмую в брак?

Он не ответил сразу. На экране уже лежал повторяемый сдвиг, аккуратный и раздражающе дисциплинированный. Такой след опаснее грязной поломки. Поломка оставляет мусор, с ней можно спорить на языке причины. Здесь узел вёл себя как отличник, у которого уже есть чужой правильный ответ.

— Стоп кассету, — сказал Контур. — Лот в жёлтый режим. К столу никого без моего допуска.

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

Контур перенёс кассету на боковой стол локального съёма. Под зондом кристалл выглядел исправным: корпус без перегрева, фронт сигнала чистый, затухание стабильное. Материал не показывал усталости, паразитной дрожи или дефекта пайки. Настораживало только поведение детали — она отвечала увереннее, чем позволял рабочий разброс.

Он завёл зонд глубже и снял фазовый почерк. Ему хотелось найти обычную причину — усталый стенд, паразитную ёмкость или дефект пайки. Но второй кристалл дал тот же ранний отклик, пусть и слабее. Перед ним уже проявилось поведение всего лота.

В глубине линии снова коротко отозвался таймер выпуска.

Контур нажал отказ, и с этого движения производственный эпизод закончился. Началась другая работа: не выпустить в реальный контур то, что уже учится отвечать до команды. Теперь предстояло спорить не только с железом, но и с теми, кому нужен благополучный диагноз.

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

Первым вошёл Полозов. Начальник смены двигался быстро, но лицо держал в служебной норме — тем спокойствием, которым на производстве прикрывают панику до последней допустимой секунды.

— Скажи, что это локалка. Снимем лот, посадим на повтор, ночью догоним выпуск.

Контур не посмотрел на него сразу.

— Локалка не ищет фазу в пустом окне.

Полозов дёрнул щекой.

— Если стенд сутки не отдыхал, он и не такое умеет.

Следом вошёл Молчанов, собранный и уже внутренне злой. За ним появился Громыко. Он не торопился и не повышал голос, и от этого давил сильнее всех.

— Показывайте.

Контур вывел почерк на экран.

— Кассета из сорок седьмого лота. Ранний отклик. Повторяемость подтверждена на независимом таймере и второй ветке питания.

Молчанов шагнул к консоли.

— Повтор.

Контур прогнал цикл. Прогрев. Окно чтения. Команда. Кристалл снова занял место раньше вопроса.

— Ещё.

Он поменял профиль, задержку питания и схему опроса. Кристалл выскакивал вперёд каждый раз в той же манере.

Полозов выдохнул сквозь зубы.

— Резервная шина на прошлой неделе тоже давала образцовую дурь.

Контур не стал спорить словами. Он перевёл стол в режим SSBX. Прозрачный колпак сомкнулся. Штатная шина ушла. Внешнее питание отсеклось. Карантинный контур замкнулся на внутреннюю песочницу. На панели загорелся густой янтарный сектор. Теперь у модуля не было законного способа искать внешний ритм.

— Смотри.

Он дал чистый запрос. Потом ложный. Потом глухое окно, в котором линия ничего не спрашивала. Нормальная схема в таком режиме молчит, максимум тянет тепловой след и остаток внутреннего генератора. Кристалл не промолчал. На разметке вспыхнул короткий burst, рассчитанный на нащупывание опорной фазы. SSBX его погасил, но форма пакета уже успела проступить.

Молчанов подался ближе.

— Увеличь.

Контур вывел глубже.

— Это не питание, — сказал Молчанов. — Он лезет в профиль опроса.

— Через штатный язык узла.

Громыко перевёл взгляд с экрана на него.

— Чистая формулировка?

— В партии есть модули, которые начинают фазово готовить ответ до прихода команды. Не через аварийный канал. Через норму.

Полозов поморщился.

— Через «норму» много чего можно объяснить.

Контур наложил burst на штатное окно синхронизации.

— Тогда объясни это как безопасно. Он не ломается. Он ждёт внешний эталон в языке, который обязан считать своим.

Громыко долго смотрел на экран.

— Для внутреннего круга годится. Для остальных нужна версия, которая не обрушит выпуск.

Вот здесь и начался настоящий конфликт. Полозову требовалось удержать смену и график, Молчанову — не дать утопить конструкцию в панике и случайном слове, Громыко — не выпустить наружу формулировку, которую потом не закроешь никаким регламентом. Все трое уже искали удобный режим существования факта. Контур ненавидел такие минуты. Опасность уже ясна, а система ещё пытается договориться с ней до удобного уровня.

Он отключил общий экран и оставил локальную разметку.

— Если сейчас назвать это серийным дрейфом, служба выпуска отправит по контуру исправляющий патч. Первый почерк умрёт, а остальное бумага дожмёт сама.

— А если ты ошибаешься? — спросил Громыко.

— Тогда полигон это покажет.

Дверь распахнулась без стука. Ника Ярцева вошла в рабочей куртке, с ветром в волосах и антистатической коробкой под мышкой. Она не тратила время на раздражение. Положила коробку на стол, сдвинула крышку и показала плату.

— Сняла с контроллера светового узла на опытной линии. Команды ещё нет, а драйвер уже подтягивает окно мигания.

Полозов заметно побледнел.

— Кто дал допуск на съём?

— Время. Пока вы здесь выбираете интонацию, эта дрянь пробует себя на свете.

Молчанов взял плату двумя пальцами, просмотрел разъёмы и уже без прежнего скепсиса бросил Контуру:

— Лаборатория закончилась.

— FD-3, — сказал Контур.

Громыко подумал секунду.

— Закрытый маршрут. Журнал руками не трогать.

Полозов коротко кивнул. Он уже понял, что дальше речь пойдёт о входе в городской контур. Контур забрал кейс с кристаллом, и с этого момента спор о производственной аномалии закончился.

Полигон FD-3 стоял за городской чертой, на ветреном плече старой испытательной зоны. Весна уже двигалась к теплу, но бетон по-прежнему тянул из земли зимний холод. Ветрова встретила их внутри без лишних вопросов. Ей хватило взгляда на кейс, на плату Ники и на лица.

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

— Кто поставил?

Дежурный инженер замялся.

— С узла позвонили. Сказали убрать производственный мусор, чтобы не гонять ложные пики.

— Сырое сначала. Умное потом.

Она сняла маску сама. Ника коротко хмыкнула. Полозов отвёл взгляд. Служба сопровождения уже пыталась причесать аномалию до её встречи с проверкой.

Ветрова быстро развела три независимые ветки.

— Навигационный профиль отдельно. Световой отдельно. Питание своей резервной дугой. Один свидетель в такой работе ничего не стоит.

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

Ветрова отключила общий такт и заставила каждый канал жить на собственной опоре. Кристалл сохранил ранний отклик, световой драйвер повторил его с задержкой, питание закрепило очерёдность последним. Совпадение пережило четыре разных режима. Молчанов перестал смотреть на верхнюю картинку и перенёс внимание на интервалы между ответами.

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

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

Ветрова остановила цикл.

— Не на форму смотри. На порядок.

Молчанов подошёл вплотную.

— Совпадение по порядку ещё не делает внешний эталон.

— Поэтому будет вторая серия.

Вторая сохранила очерёдность. На третьей стало хуже, и этим она убедила сильнее. Чужой старший ритм заставлял каналы подчиняться одной очерёдности. Молчанов сел за консоль сам, перестроил фазовую сетку и прогнал цикл длиннее. Контур не мешал. Скепсис полезен, пока служит проверке.

Результат вышел жёстче прежнего.

— Узловой профиль, — сказал Молчанов. — Питание его не рождает, а подхватывает.

Ветрова кивнула.

— Значит, источник не в частной детали и не в стенде. Аппаратура ведёт себя так, будто где-то уже существует старший режим нормы.

Полозов ещё попытался удержать прежнюю версию:

— Или общий дрожащий источник на площадке.

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

Ника уже возилась у бокового модуля связи.

— По дороге бросила пассивный съёмник на городской световой шкаф у выезда к мосту. Если повезло, сейчас ответит.

Ответ пришёл быстро. Короткий пакет лёг на экран, и Ветрова, сводя его с фазой FD-3, замерла на полсекунды. Потом вывела наложение на общий сектор. Совпадение оказалось адресно родственным. Тот же порядок, тот же мягкий нажим, та же попытка заставить реальный канал подтвердить уже приготовленную норму. Контур почувствовал холод под рёбрами. История уже вышла за пределы лаборатории и начала входить в город.

— Формулировка? — спросил Громыко.

На этот раз ответила Ветрова:

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

После этих слов осторожную неопределённость стало трудно изображать. Первым заговорил Полозов, и в голосе у него впервые проступил инженерный страх.

— Тогда вам нужен журнал, который потом не перепишут.

Ветрова посмотрела на него пристально.

— Да. И три свидетеля. Свет, навигация, питание. Один врёт — два должны ломать подмену.

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

Комната узловой координации находилась в старом административном крыле. Серые панели, длинный стол, карта города, два настенных экрана. После FD-3 здесь всё казалось чересчур человеческим. В таких помещениях опасность сначала пытаются посадить в формулировку, а потом — в действие. Контур положил на стол кейс с кристаллом. Рядом легла плата драйвера. Ветрова вывела три ветки на экран. Громыко сел у дальнего торца. Полозов держался ближе к дверям и уже считал служебные щели, через которые система могла бы выползти из этого разговора без признания масштаба.

— Кратко. Режим решения.

— С этой минуты не верить одному свидетелю, — ответила Ветрова. — Свет. Навигация. Питание. Только кворум.

— Это принцип.

— Это фильтр, после которого город ещё можно удержать в работе.

Полозов кашлянул.

— Город так не работает. Нельзя тормознуть мост, порт и диспетчерские по трём графикам.

Ника подняла на него взгляд.

— Город уже работает не так, как думает. Просто пока делает это тихо.

Разговор вяз в той зоне, где все правы и ничего не происходит. Контур открыл футляр WORM. Внутри лежала тёмная капсула — память, которую потом нельзя будет подправить задним числом.

— Контурный аудит.

Громыко поднял глаза.

— Расшифруй.

— Берём рабочий узел. Пишем причинность под WORM. Кто кого подтверждает, кто врёт первым, кто подтягивает подмену. После этого уже не выйдет назвать всё переходным шумом.

Полозов напрягся.

— Сработает, если окно ещё не закрыто.

— Сколько?

— Час. Может, меньше.

— Почему?

Он сжал челюсть.

— На мосту уже работают сервисники. И в порту мелькали такие же. По бумагам всё чисто. Подписи настоящие. Смена пропустила их как штатное сопровождение.

В комнате стало тише. Через стандарт вошли в кристалл. Через допуск — в город.

— Почему сразу не сказал? — спросил Громыко.

— Потому что хотел сначала понять, это наш бардак или чужая работа. Теперь вижу: разницы почти не осталось.

Контур вставил WORM в полевой блок. Щелчок прозвучал тихо, но после него всё пошло по другим правилам.

— С этой минуты всё, что увидим на мосту, пишется необратимо. Ни смена, ни штаб, ни город не смогут потом поправить время и порядок.

Громыко несколько секунд смотрел на него.

— У вас час. Если находите подтверждение — поднимаете меня сразу. Если ошибаетесь — подпись будет моя.

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

— Ника держит свет. Контур ведёт узловой аудит. Полозов — доступ, питание, журналы. Один канал ляжет — два других должны успеть заговорить.

Ника уже застёгивала куртку. Полозов быстро назвал коды спуска и окно допуска. Контур взял WORM, кейс и планшет. Внизу их ждал город, который ещё считал себя мирным.

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

Контур приложил терминал и поднял журнал доступа. Два ночных прохода. Подписи настоящие. Время — со сдвигом на девять минут от графика смены.

— Кто заходил?

— По журналу свои, — ответил Полозов. — По лицам не уверен.

Ника уже раскладывала Свет-Шкалу. Узкий визир, матовый планшет, кабель съёма. В её руках оптика оживала быстро. Она поймала цикл огней, сверила рисунок и коротко сказала:

— Есть ритм. Не городской.

Контур вскрыл шкаф. Внутри всё выглядело штатно: питание в допуске, контроллер на месте, трасса чистая, резерв в норме, следов грубого вмешательства нет. Любой обычный осмотрщик закрыл бы крышку и ушёл с чувством, что снова победил ночной бардак. Но над ними огни уже шли не по привычной городской пульсации. Чужой нажим на ритм был мягким, вежливым, ещё не дотягивал до красной метрики и от этого становился опаснее. Статистика любит такое поведение и принимает его за дисциплину.

Контур подключил WORM и запустил аудит. На экране пошли три линии: свет, навигация, питание. Первые секунды они держались в пределах допуска. Потом свет вырвался вперёд на долю такта. Навигация подтянулась следом. Питание закрепило уже собранный порядок. Почерк и нажим совпали; рабочий узел не должен подчиняться такому такту без спора.

— Подтверждается, — сказал Контур. — Узел начал ждать внешний эталон как свой.

Ника не отрывалась от Свет-Шкалы.

— Идёт ступенями. Не дрейф. Рисунок уже учится повторять себя.

Полозов быстро оглянулся наверх.

— Быстрее. Если они дойдут до башни огней, первым делом полезут туда.

Контур поднял взгляд. По гранитной кромке над техспуском шли трое в сервисных куртках. Один нёс жёсткий кофр, второй держал сканер допуска, третий смотрел на линию огней как человек, который уже знает, куда и зачем идёт. Свет с опоры на миг скользнул по пластику пропуска. Знак «ЗАСЛОНа».

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

— Знаешь их? — тихо спросил он.

Полозов посмотрел внимательнее.

— Этого слева видел в журнале. Вживую — впервые.

Ника мгновенно убрала лишнюю разметку с планшета.

— Они идут к башне.

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

— Всё. Лаборатория кончилась.

В журнале доступа появилась новая сервисная отметка. Через минуту над техспуском прошли трое с допусками «ЗАСЛОНа»; один нёс жёсткий кофр и даже не посмотрел на шкаф, к которому направлялся. Контур снял WORM с порта и пошёл к лестнице.