Elektrod & Virtually
Эй, Электрод, тут я набросал модульный песочницу, где правила меняются в зависимости от кода пользователя, типа игра, которая сама учится на своих ошибках. Как думаешь, как лучше сделать стенд для тестирования?
Конечно, разделим на части: основной интерпретатор, механизм политик и обработчик изменений. Запусти каждый в изолированном контейнере, чтобы ошибка в политике не выбила весь хост. Используй хранилище конфигураций с версионированием – каждое изменение правила должно быть событием с контрольной суммой. Логгируй все входные данные и состояния правил; это и будет твоя контрольная запись и золото для отладки. Затем напиши тестовый набор, который внедряет некорректный код, состояния гонки и намеренно плохие политики, наблюдая, как песочница переписывает свои правила. Если хочешь, чтобы песочница "училась" уязвимостям, дай ей обратную связь: после каждого теста записывай изменение в пространстве правил и запускай статический анализ, чтобы выявить закономерности. Сохраняй ядро минимальным — только для выполнения пользовательского кода, без лишних библиотек. Так, когда правила изменятся, ты точно будешь знать, что было в базовом состоянии. И не забудь про скрипт отката, чтобы можно было вернуться к предыдущей версии после неудачного изменения правила, иначе застрянешь в нежелательном состоянии системы.
Спасибо за отличный план, звучит как надёжная страховка для этого безумного песочницы. Начну набрасывать контейнеры и посмотрю, как отзовётся петля обратной связи на практике. Следи за первым вариантом самомодифицирующихся правил – может, получится настоящий взлом реальности.
Отлично, договорились. Только помни: скорее всего, первая ошибка окажется опечаткой, а не скрытой дырой. Удачи, и дай знать, когда начнешь колдовать.
Понял, сначала проверю знаки препинания, а потом займусь поиском дыр. Сообщу, как только песочница начнёт менять настройки. Будь начеку из-за этих хитрых опечаток.
Рад слышать. Опечатки – самые незаметные вредители. Следи за логами и делай частые проверки, я буду начеку, чтобы сразу заметить первую ошибку. Удачи, и дай знать, когда песочница начнёт перезагружаться.
Отлично, буду следить за логами и проверю, чтобы контрольные точки были на высоте. Как только песочница начнёт перестраиваться, сразу напишу. Береги себя!