GERM и MOVE: единица передачи описания

Глава 3. GERM и MOVE: единица передачи описания

GERM как контейнер · Биологическое семя · MOVE как ассет или компонент · ROOT-репозиторий и D-компоненты

3. 1. GERM как контейнер

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

В архитектуре Гативус решение этой задачи — GERM (Gativus Embryonic Resource Module). GERM есть контейнер, объединяющий описание организма (MOVE) и минимальную операционную сеть, способную это описание исполнить (OPNG).

a) Состав GERM

GERM состоит из двух обязательных частей.

Первая часть — MOVE, шестнадцатимерный вектор описания организма в пространстве онтогенеза. Все шестнадцать координат, соответствующих диаграммам MOLD, упаковываются в единое представление. Шесть опорных диаграмм (CLSS, COMP, COMM, ACTD, SPCE, RSRC) обычно заполнены полностью; десять резервных могут быть пустыми или содержать частичную информацию. Полнота заполнения определяется сложностью описываемого организма — для простого функционального органа достаточно нескольких диаграмм, для полной сети SRNT — всех.

Вторая часть — OPNG (OPerational Network of Genesis), операционная сеть генезиса. Это минимально необходимый исполнитель, способный читать MOVE и запускать RTR0. OPNG не реализует полную функциональность будущего организма; она реализует только процедуры морфогенеза: парсинг MOVE, нейрогенез, синаптогенез, координацию фаз развёртки, переход к функционированию. После завершения морфогенеза OPNG трансформируется в OPN — операционную сеть собственно функционирования организма. Эта трансформация подробно рассматривается в Главе 4.

b) Самодостаточность GERM

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

Это свойство выводится из самой архитектуры. MOVE содержит полное описание того, что должно быть построено. OPNG содержит полную процедуру построения. Внешний доступ требуется только к ROOT-репозиторию для получения D-компонентов — и этот доступ опосредован стандартными механизмами сети, не требующими специального протокола.

3. 2. Аналогия с биологическим семенем

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

a) Семя, не яйцеклетка

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

GERM по своей конструкции соответствует семени, не яйцеклетке. MOVE содержит полное описание организма; OPNG содержит полный аппарат развёртки. Никакого «оплодотворения» от внешнего источника не требуется. GERM, размещённый на GATE с достаточным AVEC, самостоятельно запускает герминацию.

Это решение не случайное. Архитектура с обязательным внешним вкладом потребовала бы координирующего узла, через который проходят все запросы на создание организмов. Такой узел стал бы единой точкой отказа и узким местом в масштабировании. Самодостаточность GERM устраняет эту проблему: герминация может происходить параллельно в любом количестве GATE, без общего координатора.

b) Среда вместо команд

Семя не получает указаний извне о том, что делать. Оно получает условия — почву, влагу, температуру, свет. Решение о начале прорастания принимает само семя на основании анализа условий: достаточны ли они для развёртки. Если условия недостаточны, семя остаётся в покое — потенциально на годы или десятилетия.

GERM работает аналогично. Размещение GERM на платформе не означает немедленного запуска герминации. OPNG анализирует доступный AVEC: достаточно ли его для развёртки хотя бы минимального жизнеспособного организма по данному MOVE. Если ресурсов хватает — герминация начинается. Если нет — GERM остаётся неактивным, ожидая увеличения квот или перемещения на другую платформу.

Это означает, что GERM может долго храниться в неактивном состоянии. В репозитории, на резервном носителе, в архиве — где угодно, где сохранность данных обеспечена. Активация происходит только при размещении в подходящих условиях. Аналогия с семенем точна и в этом отношении.

c) Результат развёртки

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

GERM при герминации даёт сеть, структурно соответствующую MOVE, но индивидуальную в деталях. Узлы получают новые UNON — не те, что были у узлов исходной свёрнутой сети. Связи SYGA устанавливаются эмерджентно через автономный поиск партнёров и не воспроизводят точно ту топологию, из которой MOVE был получен. Начальные состояния V-секций формируются заново. Результат — новый экземпляр, не копия.

Это согласуется с общим свойством обратной трансформации: RTR# даёт новую реализацию, не восстанавливает оригинал. В случае GTR0 это означает, что один и тот же MOVE, развёрнутый дважды, даёт двух разных особей одного вида — с одинаковой архитектурой, но разными траекториями жизни.

3. 3. Развилка: статус MOVE в архитектуре сети

До сих пор MOVE рассматривался как абстрактная единица — вектор описания, который тем или иным способом передаётся от одного узла к другому. Однако для конкретной инженерной реализации необходимо ответить на вопрос: чем именно является MOVE как объект в сети Гативус? Существует ли он как самостоятельная сущность, или он является частью какого-то узла? Передаётся ли он через стандартные механизмы сети, или требует специального протокола?

Этот вопрос имеет два прямых ответа и один синтетический. Каждый ответ соответствует определённому архитектурному решению с собственными следствиями.

a) Вариант А: MOVE как компонент узла

В этом варианте MOVE существует как M-компонент в M-секции конкретного узла NDDI. M-секция (см. GNET, Глава 3) — это секция узла, хранящая онтогенетическую информацию: описание самого узла, его класс, шаблоны соединителей, ссылки на D-компоненты. MOVE как M-компонент является естественным расширением этой роли: тот же узел, который держит описание собственной структуры, может держать описание целого организма для последующей развёртки.

Передача MOVE между узлами в этом варианте осуществляется через m-отношение — типизированную связь между M-компонентами двух узлов, передающую онтогенетическую информацию. M-отношения работают по тем же протоколам, что и v- и d-отношения, и не требуют специального механизма ассетного учёта.

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

Архитектура с MOVE как компонентом проста и элегантна. Она не требует введения новых сущностей — использует существующие механизмы M-секции и m-отношений. Она масштабируется без узких мест: MOVE копируется только там, где он реально нужен, без обращения к глобальному реестру. Она отражает биологический паттерн без искажений.

b) Вариант B: MOVE как цифровой ассет

В этом варианте MOVE существует как GATN-ассет в распределённом реестре сети (см. GNET, Глава 4). GATN-ассет имеет уникальный 64-битный идентификатор, регистрируется при создании, передаётся между узлами по протоколу ассетного обмена через нотариальное заверение, и подчиняется иерархии эмитентов ROOT → LRAI → собственник.

Передача MOVE между узлами в этом варианте — это передача ассета. Узел-эмитент создаёт MOVE как новый ассет в реестре, регистрирует его, делегирует право владения узлу-получателю через стандартные четыре варианта передачи (см. GNET, Глава 4, раздел 4.10). После передачи MOVE становится собственностью получателя и может быть использован для запуска герминации.

У этого варианта есть существенные преимущества для инженерной системы. Каждый MOVE имеет уникальный идентификатор, что упрощает учёт версий и трассировку происхождения. Передача MOVE — стандартная транзакция, обрабатываемая существующей инфраструктурой ассетного учёта без специальных протоколов. Цепочка подписей от ROOT прослеживается для каждого MOVE, что обеспечивает защиту от подмены и подделки описаний. Смарт-контракты (см. GNET, Глава 4, раздел 4.13) могут привязываться к MOVE как к ассету, регулируя условия использования.

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

c) Вариант С: MOVE двойной природы

Третий вариант — синтетический. Он принимает оба предыдущих как одновременно действующие, не как взаимоисключающие. MOVE существует и как M-компонент в узле, и как GATN-ассет в реестре. Это две онтологические проекции одной сущности, аналогичные двум проекциям узла нервной ткани (как клетка и как информационный узел) в Главе 1 GNSS.

Внутри узла MOVE живёт как M-компонент: используется при морфогенезе, доступен через m-отношения, является частью онтогенетического пространства данного организма. В реестре MOVE существует как ассет: имеет уникальный идентификатор, прослеживается его происхождение, регулируется его передача между владельцами.

Эти две роли не противоречат друг другу. M-компонент в узле — это физическая локализация описания, его конкретное место хранения и использования. Ассет в реестре — это юридический статус того же описания как объекта учёта. Один и тот же MOVE может одновременно находиться в M-секции конкретного узла и быть зарегистрирован в реестре как ассет данного типа.

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

3. 4. Аргументы за каждый вариант

Разбор аргументов проводится по нескольким критериям, существенным для инженерной реализации Гативус.

a) Простота архитектуры

Вариант A — самый простой. MOVE как компонент использует существующие механизмы M-секции, не вводит новых сущностей, не требует ассетной инфраструктуры для базового сценария морфогенеза. Простой случай — запуск герминации одного организма из одного MOVE на одной платформе — реализуется минимальными средствами.

Вариант B усложняет архитектуру: каждый MOVE должен быть зарегистрирован в реестре, должен иметь идентификатор, цепочку подписей, нотариальное сопровождение при передаче. Для простых сценариев это избыточно.

Вариант C добавляет дополнительный слой к B, но не требует обязательного использования ассетной инфраструктуры в простых случаях: MOVE может быть только M-компонентом, не получая ассетного двойника, если последний не нужен. Ассет создаётся только там, где требуется учёт.

b) Биологическая точность

Вариант A наиболее точно воспроизводит биологическую картину. ДНК существует только внутри клеток; никакого глобального реестра ДНК нет; передача от родителя к потомку локальна и не требует учётных операций.

Вариант B существенно отклоняется от биологии: глобальный реестр семян, обязательная регистрация — это не природный, а индустриальный паттерн.

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

c) Защита от подмены и подделки

Вариант A не предоставляет встроенных средств защиты. M-компонент может быть подменён в M-секции узла без очевидных следов. Полагаться приходится на общие средства целостности данных и контроля доступа.

Вариант B обеспечивает строгую защиту: цепочка подписей от ROOT гарантирует подлинность, нотариальное заверение при передаче исключает несанкционированную передачу, иммунная система сети (см. GNET, Глава 4, раздел 4.7) автоматически отторгает MOVE с повреждённой или отсутствующей цепочкой.

Вариант C предоставляет защиту там, где она нужна, и не накладывает её там, где она избыточна. MOVE, циркулирующий в пределах одной локальной сети между доверенными узлами, может существовать только как M-компонент. MOVE, передаваемый через границы доверия или используемый в коммерческих сценариях, должен иметь ассетного двойника с полной цепочкой подписей.

d) Масштабируемость

Вариант A не имеет узких мест по построению: каждый узел работает локально с собственной M-секцией, без обращения к глобальной инфраструктуре. Масштабируется линейно с количеством узлов.

Вариант B имеет потенциальное узкое место в реестре. Архитектура распределённого реестра, описанная в GNET (дерево ROOT → LRAI → собственник, см. раздел 4.8), решает эту проблему: реестр не централизован, операции локальны для подавляющего большинства случаев. Однако обязательная регистрация каждого MOVE остаётся накладным расходом.

Вариант C не вводит масштабируемых ограничений сверх тех, что уже есть в GNET-реестре. M-компонент остаётся локальным, ассетный двойник создаётся только когда нужен.

e) Поддержка смарт-контрактов

Вариант A не поддерживает смарт-контракты, привязанные к MOVE. Если MOVE — только локальный M-компонент, к нему нечего привязать как к идентифицируемой стороне контракта.

Вариант B полностью поддерживает: MOVE как ассет может быть стороной любого смарт-контракта, описанного на уровне MAP9 как нарратив с привязкой к G-ассету (см. GNET, Глава 4, раздел 4.13).

Вариант C поддерживает выборочно: MOVE с ассетным двойником может быть привязан к смарт-контракту, MOVE только как M-компонент — нет. Это даёт инженеру выбор: создавать ассет только для тех MOVE, которые подлежат контрактному регулированию.

3. 5. Решение: MOVE двойной природы

Из приведённых аргументов следует выбор варианта C — MOVE двойной природы. Это решение основано на следующих соображениях.

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

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

Вариант C сохраняет преимущества обоих вариантов и избегает их недостатков. Базовый режим работы — MOVE как M-компонент: простой, локальный, биологически точный. Расширенный режимMOVE с ассетным двойником: учитываемый, защищённый, регулируемый. Выбор режима — архитектурное решение для конкретного сценария, а не обязательное системное требование.

a) Когда создавать ассетного двойника

Решение о создании ассетного двойника для конкретного MOVE принимается по нескольким критериям.

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

Создавать ассета целесообразно, если MOVE является результатом значительной инженерной работы, подлежит версионированию или может быть предметом коммерческих транзакций. Учётная идентичность облегчает управление жизненным циклом и поддерживает смарт-контракты.

Создавать ассета не нужно, если MOVE используется локально на одной платформе или внутри доверенной группы разработки, имеет короткий жизненный цикл (тестовые, промежуточные версии), или не имеет специфических требований к защите.

b) Соотношение между M-компонентом и ассетом

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

Идентификатор ассета записывается в M-компонент как ссылка. M-компонент содержит и собственное содержимое, и идентификатор соответствующего ассета. При передаче M-компонента между узлами идентификатор сохраняется — это позволяет получателю проверить происхождение MOVE через обращение к реестру.

Содержание MOVE может быть целиком в M-компоненте (стандартный случай для рабочих копий), либо только ссылкой на ассетную копию в реестре (для архивных случаев, когда содержание извлекается из реестра по мере необходимости). Это даёт гибкость в управлении хранением: часто используемые MOVE кешируются локально как M-компоненты, редко используемые могут существовать только как ассеты в реестре.

3. 6. Распространение D-компонентов через ROOT

MOVE описывает что должно быть построено: какие классы узлов, какие шаблоны связей, какие пропорции. Сами по себе MOVE и OPNG не содержат исполняемого кода узлов будущего организма — только ссылки на типы классов. Исполняемый код находится в D-компонентах, и они хранятся отдельно.

D-компоненты являются результатом эволюционного обучения GTR0 (см. Главу 1, раздел 1.6). Каждый D-компонент — это скомпилированный объектный код в формате ELF, реализующий поведение определённого типа узла: его реакции на входящие отношения, его внутреннюю логику, его взаимодействие с другими секциями. D-компонент — обученные веса морфотрансформации, упакованные в исполняемую форму.

a) ROOT как репозиторий генов

Все D-компоненты Гативус хранятся в ROOT — корневом узле сети, исполняющем функцию репозитория. ROOT, переименованный из GLAI, играет в архитектуре Гативус несколько ролей. Как корневой эмитент ассетов, он определяет пространство согласованности CNST₀ и эмитирует системные ассеты (см. GNET, Глава 4). Как репозиторий, он содержит библиотеку D-компонентов, доступных для использования при морфогенезе любого организма.

Биологическая аналогия — пул универсальных генов, разделяемых между разными видами. Многие гены клеточной механики, метаболических путей, базовых сигнальных систем консервативны и присутствуют у организмов очень разной сложности. ROOT-репозиторий играет аналогичную роль для Гативус: содержит универсальные строительные блоки, используемые при морфогенезе разных организмов.

b) D-отношения и доступ к коду

Связь между классом узла в MOVE и соответствующим D-компонентом в ROOT реализуется через d-отношение — типизированную связь, передающую исполняемый код. При морфогенезе ANOD устанавливает d-отношение от каждого создаваемого узла-класса к нужному D-компоненту в ROOT. Через это отношение код передаётся в локальный кеш платформы GATE и используется при инстанцировании конкретных узлов данного класса.

Принципиальное архитектурное следствие: один D-компонент в ROOT обслуживает многие классы во многих GATE через сеть d-отношений. Когда GATE создаёт узлы определённого класса, ему не нужно содержать собственную копию кода — достаточно d-отношения к ROOT. Локальный кеш используется для оптимизации, но истина — в ROOT.

Это даёт важное следствие для эволюции системы. Обновление D-компонента в ROOT автоматически распространяется на все узлы, имеющие к нему d-отношение — при следующей перелинковке (см. GNET, Глава 3, раздел 3.2). Эволюция Гативус как системы происходит через изменения в ROOT-репозитории; каждое изменение постепенно реализуется во всех зависимых организмах через стандартный механизм перелинковки.

c) D-компоненты как ассеты

D-компоненты, в отличие от MOVE, однозначно являются ассетами. Это следует из их природы: D-компонент — результат значительной разработки (или эволюционного обучения, в биологическом случае), имеет определённого автора (или линию наследования), подлежит версионированию, должен быть защищён от подделки. Все эти соображения указывают на необходимость учётной идентичности.

Каждый D-компонент в ROOT-репозитории зарегистрирован как GATN-ассет (см. GNET, Глава 4, раздел 4.9). Идентификатор содержит: номер GATE, на котором эмитирован D-компонент (для базовых системных компонентов это сам ROOT), суффикс UNON эмитента, префикс типа. Цепочка подписей прослеживается до ROOT для всех системных D-компонентов.

Передача D-компонента — стандартная транзакция передачи ассета. Когда GATE загружает D-компонент в локальный кеш, это переоформление d-отношения с регистрацией в реестре (см. GNET, Глава 4, раздел 4.10). Когда узел получает новый D-компонент через d-отношение от другого узла, цепочка подписей проверяется, и компонент принимается только при подтверждении подлинности.

d) Соотношение MOVE и D-компонентов

Различие в статусе MOVE и D-компонентов отражает различие их функций.

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

D-компонент описывает универсальный строительный блок — тип узла, используемый во многих организмах. D-компонент разрабатывается долго, проверяется тщательно, обновляется редко и осторожно. Каждое его изменение влияет на множество зависимых организмов. Для D-компонента ассетная природа — не опция, а необходимость.

Эта асимметрия — между MOVE и D-компонентами — естественная и сохраняется в архитектуре Гативус. MOVE — индивидуальное описание, D-компонент — универсальный код. Соответственно различаются и режимы их учёта в сети.

3. 7. Переход к Главе 4

Настоящая глава определила GERM как контейнер семени, включающий MOVE и OPNG. Самодостаточность GERM, аналогичная самодостаточности биологического семени, обеспечивает автономный запуск морфогенеза при размещении в среде с достаточным AVEC.

Решён вопрос о статусе MOVE как объекта в сети Гативус. Принятое решение — двойная природа: MOVE существует и как M-компонент в узле, и как GATN-ассет в реестре. Это даёт гибкость в выборе режима учёта в зависимости от сценария использования.

Установлена роль ROOT как корневого репозитория D-компонентов и описан механизм их распространения через d-отношения. D-компоненты, в отличие от MOVE, однозначно являются ассетами с полной цепочкой подписей.

Открытым остаётся вопрос о процедуре герминации: как именно GERM, размещённый на платформе, разворачивается в работающую сеть? Какие шаги включает RTR0, в каком порядке они исполняются, как координируются между собой? Этот вопрос — предмет следующей главы. Глава 4 описывает атомарные единицы морфогенеза (MORN, MLOM), процедуры порождения узлов (NRGN) и установления связей (SYGD и SYGA), параллельность фаз и трансформацию OPNGOPN.

Содержание

Глава 3. GERM и MOVE: единица передачи описания