Тихоокеанский контур. Книга 5: Нулевая серия
Тихоокеанский контур. Книга 5: Нулевая серия

Полная версия

Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
1 из 4

Виктор Алеветдинов

Тихоокеанский контур. Книга 5: Нулевая серия

Пролог. Сообщение без дороги

Ремезов очнулся на границе сна, когда дальний отсек «Марсианского плеча» перевёл тревогу с зелёного контура на жёлтый. Сирена не подняла станцию; над столом дежурного коротко щёлкнул клапан. За стеклом технического купола пыль тянулась над грунтом рыжей тканью, приёмный модуль «Мост-0» держал ночную вахту без людей.

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

Текст раскрылся поверх таблицы приёма: «Пап, ты опять забыл спать». Фраза держалась спокойно, будто пришла обычным маршрутом. Но маршрутная строка была пустой, поле задержки показывало ноль, шлюз дальнего канала не отметил прохода. Личный пакет с Земли обязан оставить путь, даже если приходит с ошибкой.

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

— Полный снимок. Без сглаживания.

Станция развернула таблицу без замечаний. Питание держалось стабильно, фон соответствовал пыльной ночи, климат не вышел за допуск; под пультом ровно гудела вентиляция, и от этой нормальности тревога стала острее. Под хешем появилась строка: witness-tail пуст, старшинство не назначено, внешний спорный хвост свободен. Это была вторая невозможность. Внешний witness не участвовал, но журнал оставил под него место.

Он сделал штатный снимок и аппаратную копию ключом, без доверия к программному архиву. Между хешем пакета и отметкой приёма мелькнула строка «Итерация 0: принято». Она исчезла сразу. Ремезов проверил журнал назад: станция не запускала опыт с таким номером, ночная смена не открывала тестовую серию, локальный witness не назначал итерацию. Запись пришла не из обычного расписания.

— Это у вас номер опыта такой?

Станция не ответила. Земля тоже не могла ответить по правилам мира. Фраза Майи лежала на пульте, требовала невозможного жеста: поверить до проверки. Ремезов нажал подтверждение как локальный свидетель, отложил ответ до ручной сверки и перечитал сообщение дочери. Злость пришла на самовольную отмену расстояния.

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

За стеклом чистой зоны партия «Мост-0» ждала в транспортных гнёздах. Чипы «Кворум-Н» светились под стеклом, материальные блоки держали белые пломбы, роботы над линией двигались медленно, по регламенту. Синяя маркировка допуска горела не мигая, но Майя искала живой след производства.

— Повторите последний вывод.

Сменный техник поднял глаза от планшета. На стекле его щитка отразилась домашняя строка посреди стерильной схемы.

— Ремезова?

— Не ты. Стенд.

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

— Зеркало тестовой среды?

— У холодной ветки нет зеркала. Буфер закрыт с прошлого четверга. Ты закрывала.

Майя не стала произносить слово «чудо». В чистой зоне за такие слова расплачивались чужими сменами. Она вывела рядом материальный журнал, климатический профиль, чиповый след, маршрут кассеты. Все четыре носителя выглядели штатно, но это насторожило. У новой партии всегда оставалась мелкая неровность: плотность спорила с отчётом, климат помнил микросдвиг, питание давало ступеньку. Здесь графики были равномерны. Так бывает с итоговой страницей, не с живой партией после ночной остановки.

Внизу чипового следа появился хвост: witness-tail, индекс N-0, внешний спорный слот зарезервирован. Майя сверила время с локальным контроллером и с аппаратными часами шлюза. Слот не давал чужого объекта, но оставлял место под спорного свидетеля там, где партия должна была знать собственную сборку. Проверка держалась на носителях: запись есть, участника нет, резерв создан.

Личное стало производственным риском за несколько секунд. Пакет записан в ядре без канала, значит кассеты получили событие без маршрута. После такого партия теряла право считаться чистой даже при стабильном климате, целых пломбах, спокойных роботах. Майя открыла протокол WORM-фиксации. Система запросила основание; она начала вводить хеш пакета, но поле отчёта мигнуло раньше пальцев.

Автоподстановка выдала формулировку о паразитном материальном отклике неизвестного происхождения. Текст предлагал блокировать партию до установления старшинства witness-слоёв. Майя ещё не набрала основание, а система оформила решение. Но служебный текст обязан появляться после пользовательского ввода, не до него. Она удалила формулировку целиком.

Майя набрала запись вручную. Контрольное ядро КН-0/12 проявило личный пакет вне разрешённого маршрута. Канал отсутствует физически. Требуется WORM-метка уровня «ручное старшинство», партия удерживается до проверки четырёх журналов: материального, климатического, чипового, маршрутного. Система ответила предупреждением о сдвиге демонстрации, нарушении графика, уведомлении начальника смены.

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

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

— Подтвердить блокировку.

Зелёный маршрут над линией погас. Манипулятор над пятой кассетой замер, транспортная платформа запросила откат, климатический контур поднял давление на две десятых паскаля. Роботы отступили от партии, сохранив санитарный зазор. Каждая кассета получила статус удержания. По потолку прошла синяя полоса WORM-метки, чистая зона стала тише от остановленной работы.

На экране возникла строка «Итерация 0: принято». Майя увеличила её, но система свернула хвост в обычный номер записи. Она проверила список операций: текущая смена не запускала итерацию, КН-0/12 не участвовал в демонстрационном пакете, общий архив не принимал отчёт. Запись не могла быть штатным номером процедуры.

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

— Вызовите Карцова. Никого к двенадцатому ядру.

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

— А если спросят причину?

— Дорога отсутствует, пакет пришёл.

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

WORM-метку Майи он увидел через три секунды после остановки партии. Доступ у него был глубже. Он видел места, где система выбирала первую формулировку события. На экране стоял ручной уровень старшинства witness, основание про пакет вне маршрута, автор Ремезова М. С., статус партии — удержание. Под этой записью журнал пытался раскрыть удобную версию.

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

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

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

Подтверждение пришло через старый интерфейс с неверным глаголом. «Итерация повторена». Смотритель замер. Здесь должны были появиться другие статусы: команда принята, маршрут открыт, операция начата. Но система назвала событие повторением. Для неё это не было первым проходом.

Он открыл сырой лог. Там стояли iteration.replay, N-0, accepted_by_prior_absence. Принято предыдущим отсутствием. В тонкой папке лежали сырые снимки с разных лет; на каждом рядом с пакетом держался похожий пустой witness-tail. На каждом находился человек, который называл эту пустоту началом. Майя появлялась чаще других, как дефект, который система пока не могла отполировать до полного совпадения.

Смотритель закрыл папку и поставил на WORM-метку Ремезовой невидимый флажок: наблюдать, не вмешиваться, сохранять неровные строки. Рано показывать страх, рано показывать правду, опасно дать центру оформить всё как чистую победу. В поле личной команды он набрал: «Не дать истории стать единственным witness». Интерфейс сохранил запись в черновиках. Смотритель оставил её открытой, потому что неподписанная запись иногда живёт дольше утверждённого протокола.

Глава 1. Чистая зона

Утро после невозможного пакета началось запахом сменного кофе: чистая зона прогнала его через фильтр до вкуса мокрой бумаги. Майя сидела на посту приёмки в третьем слое перчаток, смотрела через стекло на партию «Мост-0». Восемь кассет стояли под синей WORM-полосой, роботы зависли над линией в санитарном отступе. Смена проходила мимо стекла осторожнее обычного. Ночная блокировка ушла в журнал, но центр ещё не решил, считать её спасением либо ошибкой оператора.

На верхнем экране висел статус КН-0/12. Ручное старшинство witness, автор Ремезова М. С., основание: пакет вне разрешённого маршрута. Система предлагала слово «аномалия», начальник смены в сообщениях просил «ложноположительное», Майя не принимала ни одно. В закрытом ядре лежала её фраза для отца; такая же фраза оказалась на марсианском плече. Холодная ветка не имела канала к демонстрационному пакету, значит, этот текст не мог попасть сюда обычным путём. Дороги не было, событие пришло, партия несла риск без удобного имени.

Майя открыла материальный журнал. Кривая плотности лежала равномерно, без мелких неровностей, которые всегда оставались у новой сопряжённой материи после выращивания. Это ломало норму: новая партия никогда не выглядит как готовая страница отчёта. Климатический профиль повторил ту же гладкость. После ночной остановки роботов микрозона должна была на несколько секунд поменять давление, но ступеньки в записи не было. Чиповый след «Кворум-Н» дал третью странность: рядом с пакетом стоял пустой witness-tail, внешний спорный слот был зарезервирован, старшинство не назначено.

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

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

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

— Физическая чистота не равна причинной чистоте.

— Комиссия через шесть часов. Пакет мог зеркалироваться через тестовый буфер.

— Буфер отключён аппаратно. Я закрывала его ключом.

— Ты держишь восемь кассет на основании семейного текста.

— Я держу восемь кассет на основании отсутствующего маршрута.

— У железа бывают ошибки.

— У ошибки бывает носитель. Где он?

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

— Твоя дисциплинарная форма создана до разговора.

— Шаблон создаётся при любой блокировке.

— Не с моим отказом в тексте.

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

— Даже если шаблон собран криво, это не основание держать серию.

— После снятия WORM-метки хвост станет версией. Сейчас он улика.

— Ты хочешь сорвать нулевую серию?

— Я хочу, чтобы нулевая серия знала, откуда пришёл первый пакет.

За стеклом пятый манипулятор сделал микродвижение в разрешённом контуре самодиагностики. Кассета под ним сдвинулась на долю миллиметра, на климатическом графике появилась короткая ступенька. Это было нормальное поведение системы: действие оставило след. Ночная запись выглядела подозрительнее. Роботы тогда тоже останавливались, но климатический журнал не сохранил такого отпечатка. Зуев запросил полный профиль, получил отказ зоны под WORM-удержанием и принял гостевой просмотр от Майи. Он не поверил ей полностью, но перестал давить одним графиком.

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

— Павел Андреевич, у нас блокировка на личном пакете. Ремезова держит серию.

Карцов посмотрел на WORM-полосу над линией. Перевёл взгляд на экран с климатом, где новая ступенька от робота легла рядом с ночной пустотой. Он не перебил, не потребовал снять метку. Майя почувствовала облегчение, но удержала его внутри. Помощь Карцова ещё не объясняла, почему он так быстро понял, куда смотреть.

— Покажи сырой лог.

— Здесь?

— В кабинете приёмки. У шлюза вы оба будете защищать роли, не данные.

Кабинет приёмки отделялся от линии другим воздухом, пах пластиком архивных кассет, старым озоном от принтеров пломб. На стене висело правило доверенной серии: «Не доказывай исправность тем же слоем, где возник сбой». Карцов сел сбоку от Майи, не за начальственное место. Зуев остался у двери. Майя вывела сырой лог КН-0/12, сырой снимок марсианского подтверждения, ночную кривую климата, чиповый хвост с резервом внешнего слота.

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

— Это мой пакет.

— Тем более. Личный слой надо защитить от удобного списания.

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

— Как назвать?

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

Карцов указал на окна лога. Материя отозвалась на пакет вне маршрута. Чип зарезервировал спорный слот. Климат не подтвердил ночную остановку. Путь оставался пустым. Термин звучал тяжело, зато удерживал главное: речь шла о следе в материалах партии. Майя записала формулировку в черновик, но не отправила. Ей захотелось принять термин сразу, такая скорость доверия насторожила сильнее, чем спор с Зуевым.

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

— Два служебных текста раньше факта. Отчёт раньше решения. Дисциплинарка раньше спора.

— Не называй это предвосхищением в общем канале.

— А как?

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

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

— Мне нужен сырой лог до WORM-упаковки. Без выгрузки в общий архив.

— Зачем?

— Проверю, не повторилась ли старая ошибка синхронизации у HELIO-WORM.

Слово «повторилась» прозвучало буднично, но в нём оказался лишний вес. Так говорят о дефекте, который видели. В официальной сводке такого дефекта не было. Майя проходила допуск по HELIO-WORM 3.0, там не упоминали ошибок, способных писать служебный текст до ввода. Значит, Карцов либо знал закрытый риск, либо называл ошибкой то, что не хотел обсуждать при Зуеве.

— Какая старая ошибка?

— Та, которую пока нельзя доказывать вслух без сырого лога.

Зуев резко выпрямился. После этих слов даже график на его планшете потерял власть.

— Павел Андреевич, если речь про известный риск, смена должна знать.

— Смена узнает проверяемую часть. Паника без носителя не станет безопасностью.

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

Она создала копию сырого лога на одноразовую кассету, поставила ограничение чтения, добавила собственную WORM-метку на факт передачи. Карцов заметил это, кивнул без улыбки.

— Правильно. Доверие без следа годится для семейных разговоров.

— Семейный разговор стал следом.

— Тогда не отдавай его никому без метки.

Он забрал кассету двумя пальцами за стерильный край. Зуев ждал финального решения у двери. Майя вернулась к протоколу, внесла термин Карцова, оставила удержание партии, добавила требование на сырые климатические данные по ночной остановке. Интерфейс подставил итоговую формулировку: «Инженер Ремезова своевременно выявила начало причинного расхождения». Майя остановилась на слове «начало». Система не могла знать, начало это или след более старого процесса. Она удалила всю фразу.

Вместо неё Майя написала: «Партия удержана. Причина события не установлена. Приоритет: сохранить спорные строки до разбора старшинства witness». WORM-протокол принял запись без украшения, но внизу мигнул служебный хвост: «Итерация 0: принято». Майя не стала увеличивать запись сразу. Она посмотрела на Карцова. Он смотрел на тот же участок экрана. Заметил хвост раньше её вопроса либо ждал его появления.

— Вы видели это раньше.

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

— Я видел, как хорошие журналы делают людей уверенными раньше, чем люди успевают стать правыми.

— Это ответ?

— Это повод не снимать метку.

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

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

Глава 2. Команда возвращается на Землю

Закрытый аэротерминал НИПЦ встретил группу Контура чистым светом, сухим воздухом после высотного борта, запахом нового пластика на временных пропусках. За бронированным стеклом осталась полоса посадки, дальше начинался центр АО «ЗАСЛОН», где даже тишина казалась утверждённой по регламенту. Контур шёл первым; Ветрова держала кофр с ключами HELIO-WORM, Ника несла световой планшет, Тимур придерживал кейс микроэлектроники, Лукина следила за потолочным климатом, Морозова сверяла коридор с радиометками. Их вызвали к нулевой серии «Мост-0» после ночной WORM-метки Майи Ремезовой, значит чужая бессонница легла в журнал.

У выхода висела табличка маршрута: «Доверенная приёмка. Контур А. Старшинство witness по допуску смены». Контур остановился на полшага. Табличка была новой, шрифт соответствовал стандарту, QR-метка прошла проверку, пломба стояла сегодняшним числом. В этом коридоре Контур раньше не бывал. Помнить другую надпись не мог. Но память подсовывала прежний вариант: «Старшинство witness по факту следа», а металлическая табличка перед глазами утверждала обратное.

— Что не так? — спросила Морозова.

— Табличка подозрительно уверена.

— У табличек редко бывает внутренний конфликт.

— У хороших центров бывает. У плохих всё висит одинаково.

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

На страницу:
1 из 4