18.
После того, как все бумаги были у нас, мы вернулись в офис Бонтена.
Лифт медленно поднимается на верхний этаж — я чувствую, как напряжение нарастает с каждым метром. Риндо стоит справа, Ран — слева; оба молчаливы, сосредоточены.
Двери лифта разъезжаются. Какучо у входа кивает:
— Майки ждёт вас.
Я сглатываю, пытаясь унять дрожь в пальцах. Находиться в кабинете Майки и отчитываться перед ним мне не очень нравилось. Он внушал страх.
Ран коротко стучит в дверь.
— Войдите, — раздаётся низкий, властный голос.
Мы входим. Майки сидит за массивным столом из чёрного дерева, пальцы переплетены, взгляд — холодный, оценивающий. За его спиной — панорамное окно с видом на город, огни которого мерцают, как далёкие звёзды.
Ран подходит к столу главы и кладёт перед ним все папки, которые я смогла найти в кабинете Изао.
Майки быстро пробежался взглядом по документам, проверяя, актуальны ли они и вообще то ли это, или мы привезли не то. Переворачивает страницы, скользит глазами по схемам и таблицам, изредка хмурится, отмечая что‑то в уме.
— Всё верно, — тихо произнёс он, не отрывая взгляда от бумаг. — Нана, что там с защитой?
Я вздрагиваю, когда он обращается ко мне. В его голосе — сталь, в глазах — ожидание, от которого сжимается всё внутри. Он не любит ждать. И не прощает ошибок.
— Мне нужно ещё немного времени, — проглотив ком в горле, я отвечаю ему неуверенно.
Майки откладывает папку, откидывается на спинку кресла и скрещивает пальцы. Его взгляд — тяжёлый, изучающий — упирается прямо в меня. По спине пробегают мурашки.
— Почему ты никак не можешь поставить защиту? На свои данные ты всё поставила. В чём проблема сделать то же самое с нашей базой данных? — его голос звучит ровно, но я чувствую нарастающее давление. — Ты создала систему, которая защищает твои личные файлы от любого взлома. Почему та же технология не работает для Бонтена?
В комнате повисает тишина. Я делаю глубокий вдох, собираясь с мыслями. Нельзя показывать слабость. Нельзя дать ему повод усомниться.
— Проблема не в технологии, — отвечаю я, стараясь, чтобы голос звучал твёрдо. — Проблема в масштабе. Моя личная система рассчитана на один узел, на ограниченные данные. База Бонтена — это сеть из десятков серверов, распределённых по всей Японии, с постоянным потоком информации.
Он сверлит меня взглядом, словно ожидая продолжения моих оправданий. В его глазах — холодный расчёт, в воздухе — напряжение, от которого перехватывает дыхание. Он не верит на слово. Ему нужны факты, сроки, гарантии.
— Я уже закончила с переписью части ядра системы и начала разрабатывать коды для связи всех городов, — выдыхаю я, опуская взгляд в пол, ведь не могу смотреть ему в глаза. — Скоро закончу, и останется только протестировать. Уже написала модули синхронизации — они учитывают задержки сигнала между серверами в Токио, Осаке и Фукуоке. Осталось доработать обработчик ошибок и...
Майки резко поднимает ладонь, прерывая меня:
— Мне не нужны детали процесса. Мне нужен результат. У тебя три дня, — произносит Майки твёрдо, чеканя каждое слово. — Через Семьдесят два часа защита должна быть активирована. Полностью. Без исключений.
Я сглатываю, но заставляю себя поднять голову и встретиться с ним взглядом:
— Три дня... — повторяю тихо, прикидывая в уме объём работы. Семьдесят два часа. Четыре тысячи триста двадцать минут. — Я успею.
Он кивает, обозначая, что дальнейшего разговора не будет. Я выхожу из кабинета первой, буквально вылетаю оттуда — будто за спиной распахнулись крылья, толкающие прочь от этого гнетущего места. Воздух в коридоре кажется чище, дыхание — свободнее, но в висках стучит одно: 72 часа. 72 часа.
— Попала ты, — усмехается Ран, пристраиваясь сбоку. В его голосе — странная смесь иронии и... чего‑то ещё. Не злорадства, нет. Скорее — вызова. Будто он проверяет, сломаюсь ли я под грузом задачи.
— Да пошёл ты, — шепчу я, не оборачиваясь. Плечи сами расправляются, шаг становится жёстче. Не время на разборки. Время — ресурс. И его почти нет.
Я быстрым шагом направляюсь в свой кабинет. Пока я отдыхала, я многое надумала и поняла, что от меня требуется, чтобы связать все базы данных в одну огромную систему. В голове уже сложилась общая архитектура — чёткая, логичная, почти осязаемая. Три узла: Токио, Осака, Фукуока. Единый протокол. Резервные каналы. Автоматическое перераспределение нагрузки.
Дверь кабинета открывается с тихим щелчком. Опускаюсь в кресло, включаю компьютер — экран загорается, высвечивая рабочий стол с десятком ярлыков и открытой схемой сети.
***
Мне потребовался день, чтобы связать три города в одну систему. Долгое время я вводила различные коды, переписывала их — при каждом запуске система выдавала ошибку: то конфликт протоколов, то переполнение буфера, то сбой синхронизации. Я исправляла, тестировала, отлаживала — строка за строкой, блок за блоком. Ещё немного. Ещё один цикл проверок.
Наконец экран мигнул, и на нём появилась долгожданная надпись: «Синхронизация узлов: успешна. Задержка в пределах нормы. Ошибок не обнаружено». Получилось.
Я откинулась на спинку кресла, растирая уставшие глаза. Монитор мерцал перед лицом, отображая схему сети: три узла — Токио, Осака, Фукуока — соединены с центральным хабом, резервные каналы подсвечены зелёным. Система работает. Но это только каркас.
Дело оставалось за малым — наложить код на саму защиту и проверить её. Я понимала, что защита, которая стояла на моих данных, несовершенна. Она блокировала доступ по паролю и IP‑адресам, но этого мало. Нужно сильнее.
В планах было поставить код, который не будет показывать базу данных Бонтена тем, у кого нет доступа к ней. А доступ будет только у тех, кто находится в этой базе. Принцип невидимости: если тебя нет в списке — ты не видишь саму систему.
И именно тут я застряла. Написать код, который сотрёт базу со всех устройств, — задача почти нереальная. Но и свою защиту я поставить не могу: слишком она хрупкая. Действительно достойный хакер сможет взломать её, а я не успею переписать код для неё.
Оставался всего лишь один день. А у меня не было совершенно никаких мыслей о том, что этот код должен содержать. Мне казалось, что я перепробовала уже всё, что только можно и нельзя, но система вечно выдавала ошибку: то конфликт версий, то сбой аутентификации, то переполнение стека. Снова. И снова. И снова.
Я откинулась на спинку кресла, уставившись в экран. Строки кода сливались в одну неразборчивую массу. В висках стучала мысль: провал. Майки не простит срыва сроков. Бонтен не простит уязвимости. А я... я не прощу себе, что не справилась.
Встаю с кресла, чтобы заварить себе ещё одну чашку кофе. Спать нельзя. Ни за что. Каждая минута на счету — завтра крайний срок сдачи системы, а финальные тесты ещё не пройдены. Пока кофе заваривается, дверь в кабинет открывается.
Свет тут же озарил весь кабинет, заставляя меня зажмуриться. Я была больше чем уверена, что это Риндо, ведь только он, если заходит ко мне, то включает свет. Остальные либо довольствуются подсветкой экрана, либо ждут, пока глаза привыкнут к полумраку.
— Как успехи? — произносит он, опускаясь на диван.
— Даже не спрашивай, — коротко произношу я, ставя чашку с кофе на стол. Аромат горького эспрессо слегка бодрит, но усталость всё равно давит на плечи, словно свинцовая плита.
— Всё настолько плохо? — в голосе собеседника звучит неподдельное участие.
Я коротко киваю, начиная вводить новый код. Пальцы едва слушаются, глаза слезятся от многочасового всматривания в экран. Уже начинаю соединять некоторые коды в один, лишь бы хоть что‑то подошло — комбинирую фрагменты, которые раньше не работали по отдельности, меняю порядок блоков, добавляю временные переменные. Хоть бы одна комбинация сработала...
— Намного хуже, — отвечаю, не отрываясь от монитора. — Я целый день сижу над кодом, но у меня даже нет представления, что мне нужно ввести, чтобы он заработал. Он просто не хочет принимать входные данные — будто я говорю с ним на разных языках.
Дописываю неизвестный мне код — последнюю отчаянную комбинацию из шести строк, которую буквально сочинила на ходу. Нажимаю Enter. Секунда тишины — курсор мигает, экран замирает... И вдруг:
Строка состояния меняет цвет с красного на жёлтый. Пошла загрузка! Прогресс‑бар ползёт слева направо: 10 %, 25 %, 50 %...
Я громко вздыхаю, откидываюсь на спинку кресла, прижимаю ладони к глазам:
— Подошло! Боже, наконец‑то.
