18+
реклама
18+
Бургер менюБургер меню

Андрей Северский – Осколки «Галилея» (страница 10)

18

— Между нами есть три ретранслятора, поворот «Сада» и очередь приоритетов. Свет быстрый. Наша сеть — нет.

Сергей уже закреплял шлем. Он включил внешнюю камеру ещё в шлюзе, направил её в маленький иллюминатор и повёл вдоль чёрного края корпуса. Изображение дрогнуло. За бликом показалась тонкая металлическая плоскость.

Панель не была убрана. Она торчала поперёк маршрута к антенне, почти невидимая ребром.

— Вот тебе ноль, — тихо сказал Сергей.

Юна закрыла разрешение на выход. В ту же секунду из «Сада» пришёл старый пакет: ОТРАЖАТЕЛЬ «МАЯКА» УБРАН, ВНЕШНИЕ РАБОТЫ ДОПУСТИМЫ.

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

Сергей медленно снял шлем.

— Теперь утешила, — сказал он без улыбки.

Юна вывела старый пакет в общий канал рядом с кадром из шлюза.

— У нас ложная синхронность, — сказала она. — Интерфейс сортирует сообщения по пересчитанным часам и выдаёт старые состояния за новые ответы. До исправления запрещаю действия по подтверждению, в котором нет ссылки на конкретный запрос и наблюдение.

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

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

Несколько секунд канал молчал.

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

Это было ближе к согласию, чем Юна ожидала.

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

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

— Вы хотите превратить разговор в родословную, — сказала Ника с «Сада».

— Именно. Каждый пакет должен знать своих родителей.

— А если родители неизвестны?

— Тогда это сирота. Его можно читать, но нельзя использовать как разрешение.

— Наконец-то термин, понятный биологу.

Лена подключилась с «Фермы»:

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

— Сделаю список.

— И запрет слияния, если наборы различаются.

Юна вспомнила, как исчез красный флаг Тимура у пустого импульса.

— Уже делаю.

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

Затем «Ковчег» запросил теплообмен. Его пакет опирался на старый график температуры и автоматически получил жёлтый статус: исходное измерение просрочено.

— Сеть отказывается выполнять приказ, — сказал врач Дамир Хольм.

— Не приказ. Она отказывается притворяться, что знает нынешнюю температуру, — ответила Юна. — Обновите датчик.

Через минуту пришёл новый график. Температура оказалась на четыре градуса выше. Запрос изменили, и «Сад» уменьшил поток. Маленькая разница, но она впервые возникла не из доверия к говорящему, а из видимой цепочки.

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

— Запрос выхода МАЯК-СВ-22, — произнёс он нарочито торжественно. — Родители: кадр, положение манипулятора, давление в шлюзе и моё необъяснимое желание работать снаружи.

— Последнее не является измерением.

— Тогда пометь как свидетельство оператора.

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

Когда привод антенны освободили, прямой канал к «Ферме» усилился вдвое. Юна начала переносить причинные метки на остальные маршруты. Старые пакеты не удаляла: заключила их в серую рамку и подписала ПОРЯДОК НЕ ДОКАЗАН.

— Мы утонем в заголовках, — предупредил Олег Шац с командной секции. — На каждый килобайт данных будет килобайт происхождения.

— Пока у нас больше энергии, чем общей реальности.

— Энергия тоже кончается.

— Тогда сжимайте содержание. Происхождение не трогайте.

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

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

— Таль, — вызвал Тимур. — Мне нужен канал на «Линзу». Мы подходим к расчётному окну.

— Прямая видимость через семь минут. Антенна готова.

— Дай непрерывную несущую и очередь аварийных вызовов.

Юна назначила «Вектору» полосу. Сергей уже вернулся в шлюз и отстёгивал страховку. Его дыхание звучало в локальном канале громче голоса.

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

— Есть что-то, — сказала Юна.

— Где? — спросил Тимур.

— Не в голосовой полосе. Ниже несущей.

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

— Аварийный маяк? — спросил Саранов.

— Не похоже. У маяка период две секунды и пакет с идентификатором. Здесь только импульс.

— Может быть биение преобразователя «Линзы», — предположила Лена.

Юна отключила поток от «Вектора». Импульс остался.

— Не «Линза».

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

Арсен Климов с командной секции попросил сырые отсчёты.

— Это может быть хвост навигационного передатчика, — сказал он.

— Какого?

— Сначала данные.

Юна отправила поток с причинной меткой: внешний вход «Маяка», конфигурация антенны после ремонта, локальная калибровка, отсутствие связи с вызовами «Вектора». Арсен вернул не вывод, а запрос одновременного наблюдения на «Ферме» и «Саду».