NDDI节点结构

3. NDDI 节点的结构

组件 · D-区 · 值 · 活动 · 连接器 · 面

3. 1. 一般原则

NDDI 是 GNET 网络中唯一的实体类型。网络中存在的一切都是 NDDI 及其之间的关系。运营网络(OPNT)、管理员(ANOD)、D-组件仓库、传感器、执行器——所有这些都是 NDDI,仅在组件组成上有所不同。

NDDI 由组件组成。组件是节点的基本单位,具有值、状态,并通过连接器参与关系的能力。组件不仅仅是变量。它是节点的特征:值 + 状态 + 连接器 + 元数据。同类型组件可以分组以用于可视化——NDDI 多面体的面(v-面、a-面、d-面等)。

并非每个 NDDI 中都存在所有类型的组件。组件集合由 D-区定义——而 D-区 是第一个需要考虑的组件,因为它创建 NDDI 作为实体。

组件出现顺序。 D-组件是首要的。在 D-组件被组装和链接之前,NDDI 不作为活实体存在。当 D-组件被链接并执行所得代码时,出现 V-组件(值)和 A-组件(活动)。D + V + A 集合提供了最小活节点,能够存储值并对输入做出反应。这足以创建 SERN 级别的网络。

随着新的 D-组件(基因)的添加和重新链接,出现更高级别的组件:

级别

新组件

新增内容

SERN (DOM0)

D, V, A

基础节点:代码、值、反应

DOM1

+ L

空间地图中的位置

DOM2

+ R

对象的不变识别

DOM3

+ T, B

目标状态和拼接向量

DOM6

+ S

符号组件

DOM8

+ N, P

叙事和谓词

DOMA

+ C

概念

DOMB

+ W

矛盾向量

第一册(GTOM)中 DOM 的进化层级反映在 NDDI 的组件组成上:每个新的 DOM 级别都是新的 D-组件(基因),链接后在节点中产生新的组件类型。

持久性。 NDDI 一旦创建就永远存在,不会删除——类似于人脑中的神经元。创建的节点及其所有组件和已生长的连接器被放置在永久存储器上,这是其主要存储位置。

要执行活动(对传入关系的反应、计算、通过连接器传输值),NDDI 必须在 RAM 中被激活。但主要存储仍是永久存储器。

关键数据——具有外部连接器的组件、带有反名称的连接器、D-区——始终与永久存储器同步。关键数据的写入是同步操作,类似于具有严格 ACID 模型的 DBMS 中的事务。这会引起延迟——但保证在任何故障下都不会丢失任何关系,也不会损坏任何关键值。

非关键数据——内部变量、中间计算、缓存——只能存在于 RAM 中,并在节点停用时丢失。重新激活时,它们会从关键数据重新计算。

传统模型:程序驻留在 RAM 中,有时保存到磁盘。GNET 模型:NDDI 驻留在永久存储器中,有时在 RAM 中激活以进行计算。永久存储器是真理之源。RAM 是缓存。

3. 2. D-组件(节点 DNA)

D-组件是首要的——没有它们,NDDI 就不作为实体存在。所有其他组件(V、A、L、R、B、T、S、N、P、C、W)都是 D-组件链接和执行的结果。

D-组件的本质。 D-组件是 ELF 格式的已编译目标代码(可重定位 .o 文件)。类比生物学,D-组件是基因:独立的模块,孤立时仅是一条记录,但与其他基因组装时会产生活的有机体。

D-组件存储在两个地方:

  1. 在仓库节点中。 这些是专门的 NDDI,包含 D-组件库——系统的“基因库”。仓库是创建新节点的基因来源。OPNT 访问仓库,选择所需的 D-组件并从中组装新的 NDDI

  2. 在特定 NDDI 的 D-区中。 节点创建后,其 D-组件存储在永久存储器的 D-区中。它们是节点的首要描述,可随时从中重新组装可执行代码。

D-区的组成。 NDDI 的 D-区 包含:

  1. D-组件(基因) —— 一组 ELF 对象文件。每个实现特定功能:一个基因可能负责 v-关系处理,另一个计算 b-向量,第三个处理内部激活逻辑。基因数量决定了节点的复杂性。

  2. 链接器脚本 (.ld) —— 将基因组装成可执行代码的规则。主要功能:为具有外部连接器的组件固定绝对 LOCN 地址。链接器脚本指示链接器:“变量 v_component_1 必须位于地址 0x00001000”。这保证了任何重新链接后伙伴的外部连接器仍有效。

  3. 已链接程序的 ELF 表 —— 符号表、全局偏移表 (GOT)、重定位表和其他服务结构。用于已链接代码的运行和后续重新链接。

链接。 创建 NDDI 时(或通过 d-关系接收新 D-组件时),执行链接:链接器取 D-组件和链接器脚本并组装可执行代码。在链接过程中,所有对具有外部连接器的组件的引用都被硬绑定到其绝对 LOCN 地址。

重新链接。 通过来自其他节点的 d-关系接收新 D-组件时,基因被添加到 D-区。重新链接不会立即发生——它在节点不活动期间执行(类似于生物睡眠和默认模式网络)。新代码在备用区域组装,仅在成功组装后才原子切换到新代码。如果组装错误——节点继续使用旧代码运行。数据(V-组件)不受影响——它们的 LOCN 地址是固定的,并在重新链接期间保留。

D-组件的传输(d-关系)。 D-组件可以通过 d-关系从一个 NDDI 传输到另一个。这是“水平基因转移”机制。d-关系始终使用确认交付模式——即使丢失一个字节的目标代码也是不可接受的。

3. 3. V-组件(值)

V-组件是冯·诺伊曼架构中变量的类似物,但结构更复杂。V-组件是写入内存单元的值,加上其状态、连接器和元数据。

值。 特定格式的数值:整数(int32, int64)、浮点数(float32, float64)或数组。格式由在链接期间创建该 V-组件的 D-组件确定。

状态。 V-组件可以处于以下状态:

  1. 当前 —— 值已计算且为最新。

  2. 已更改 —— 值已被传入关系更新,但尚未被 A-组件处理。

  3. 未定义 —— 值未初始化(冷启动后)。

状态更改为“已更改”是激活 A-组件的触发器。

连接器 V-组件可以具有任意数量的传入和传出连接器POCN)。通过传入连接器,节点从其他 NDDI 接收值。通过传出连接器,它将自己的值传输给他人。V-组件的所有连接器仅参与 v-关系。

关键性。 具有至少一个外部连接器的 V-组件是关键的:其 LOCN 永远固定,其值与永久存储器同步。没有外部连接器的 V-组件是非关键的。

3. 4. A-组件(活动)

A-组件是一对(事件 + 处理程序)。事件 = 通过传入 连接器 更改 V-组件。处理程序 = 来自代码区的函数。A-组件定义行为:节点在接收新值时做什么。

A-组件的本质。 A-组件是指向可执行代码中函数的指针。当 V-组件变为“已更改”状态时,关联的 A-组件被触发:控制权转移到相应函数,该函数处理新值、计算结果并可能更新其他 V-组件。

两种类型的 A-组件。

A-组件分为两种类型,决定所执行工作的性质:

活动包(APAK — Activity PAcKage)。 顺序代码块:从头到尾线性执行的一条或多条指令。APAK 接收 V-组件的值作为输入,执行计算并将结果写入其他 V-组件。类似物:C/C++/Rust 中的函数体、代码块 { ... }、处理器指令序列。可视化为粉色矩形。

活动伊奥塔(AIOT — Activity IOTa)。 逻辑跳转:分支点,根据条件将执行流导向其中一个包。AIOT 不执行计算——它仅评估条件并选择路径。类似物:C/C++/Rust 中的 if/elseswitch/case,汇编中的条件跳转 jne/jmp。可视化为黄色六边形。

APAKAIOT 共同在 NDDI 内形成执行图:包执行计算,伊奥塔控制流。这类似于流程图,其中矩形是操作,六边形是条件跳转。

示例:传入 v-关系将新温度写入 V-组件“sensor_temp”。此事件激活 AIOT,检查温度是否高于阈值?如果是——控制权传递给 APAK “alarm”,它更新 V-组件“alarm_state”并触发通过传出连接器发送。如果不是——控制权传递给 APAK “normal”,它更新 V-组件“status”。

反应链。 更新一个 V-组件会激活 A-组件(APAKAIOT),它可能更新另一个 V-组件,从而激活下一个 A-组件——以此类推。链持续直到所有更新的 V-组件都被处理。这类似于神经网络中兴奋的传播。

传出关系。 如果在反应链中更新了具有传出连接器的 V-组件——则为每个连接器形成拼接数据报并传输到网络。节点的内部活动产生网络事件。

与 D-组件的联系。 A-组件指向的函数(APAKAIOT)在 D-组件(基因)中定义。在重新链接期间,A-组件被更新——指针重定向到新代码。V-组件(数据)保持在其位置。

3. 5. 最小节点:D + V + A

D + V + A 集合是最小活节点。它能够:

  1. 存在于永久存储器中(D-区 存储代码)

  2. 在 RAM 中被激活

  3. 接收传入 v-关系(值被写入 V-组件)

  4. 对变化做出反应(A-组件处理新值)

  5. 通过传出连接器传输结果(拼接数据报)

这足以创建 SERN 级别的网络——传感器-反射网络,其中节点存储值并对输入做出反应。“传感器 → 处理 → 执行器”的闭环由通过 v-关系连接的 NDDI 链实现。

最小节点 D + V + A 是最简单神经元的数字类似物:接收信号、处理、传输。更高层次的所有复杂性通过添加新的 D-组件——产生新类型组件的基因——而出现。

3. 6. 更高级别组件

随着 D-组件(基因)添加到 D-区并重新链接,节点中出现更高级别组件。每个更高级别组件类型继承 V-组件的属性(值 + 状态 + 连接器 + 关键性),但添加特定的值格式和特定类型的关系。

L-组件(位置,DOM1)。 对象在空间地图 MAP1 中的位置。值:坐标向量。L-关系链接不同节点的 L-组件以构建空间的异我中心模型。

R-组件(识别,DOM2)。 对象的不变识别。值:特征向量——卷积神经网络 CNN1 的产物。R-关系在节点之间传输特征向量。

T-组件(目标,DOM3)。 对象的目标状态。值:目标状态的坐标或参数。T-关系在目标设定背景下链接节点。

B-组件(行为,DOM3)。 物理级别的拼接向量(b-向量)。值:状态对——初始和目标。B-关系传输行为脉冲——物理空间中的定向变化。

S-组件(符号,DOM6)。 没有空间绑定的符号组件。值:语义空间中的向量,卷积神经网络 CNN2 的产物。S-关系在节点之间链接符号。

N-组件(叙事,DOM8)。 叙事结构。值:KLEN 三元组图的元素。N-关系在节点之间传输叙事结构。

P-组件(谓词,DOM8)。 符号级别的谓词拼接向量。值:KLEN 三元组标识符 + 关系权重。P-关系在符号之间建立语义连接。

C-组件(概念,DOMA)。 概念。值:MAPA 空间中的向量,卷积神经网络 CNN3 的产物。C-关系在节点之间传输概念。

W-组件(矛盾,DOMB)。 矛盾向量。值:两个 C-组件之间的距离(C_是 → C_应)。W-关系传输动机脉冲。

每种组件类型仅参与其自身类型的关系。这是严格类型化:拼接数据报包含关系类型,接收方检查数据包类型与目标组件类型的一致性。

3. 7. 连接器(POCN)

连接器POCN — Point Of CoNnection)是确保组件能与另一节点建立关系的数据结构。在可视化中,连接器 显示为组件上的插针(传出)或插座(传入)。

每个 连接器 都是具有自己 LOCN 的独立数据结构,包含:

字段

大小

描述

LOCN

32 位

连接器自身的地址。永远固定。

反名称:UNON

64 位

伙伴节点的全局名称

反名称:LOCN

32 位

伙伴组件/连接器的地址

关系类型

16 位

继承自组件(v, l, d, r, b, s, n, p, c, w)

交付模式

8 位

带确认 / 不带确认

加密

8 位

无 / 对称 / 非对称

密钥

可变

加密密钥(如果适用)

动态创建。 连接器在节点生命周期中通过 SYGN 协议(第 4 章)创建。新的 连接器 是一个新的“突触”:创建数据结构,分配 LOCN,写入反名称。

方向性。 连接器 要么是传入的(插座——接收值),要么是传出的(插针——传输值)。两个节点之间的一个关系由一侧的传出连接器和另一侧的传入连接器组成。双向交换需要两个关系。

多重性。 一个组件可以具有任意数量的连接器。具有三个传出连接器的 V-组件同时向三个不同节点传输其值。具有五个传入连接器的 V-组件从五个来源接收值。

关键性。 所有连接器都是关键数据:它们的 LOCN 固定,反名称保存到永久存储器。丢失连接器意味着关系中断。

传输机制。 当组件被触发(其值改变)时,节点的代码遍历该组件的所有传出连接器,并为每个连接器形成包含伙伴反名称(UNON+LOCN)和新值的拼接数据报。拼接数据报传递给路由系统,该系统确定交付级别(G1/G2/G3)并发送数据包。

类比:组件——神经元。连接器——突触。一个神经元可以有数千个突触,每个通向另一个神经元。当神经元兴奋时,信号同时通过所有突触传输。

3. 8. 传感器和执行器组件

某些 NDDI 包含不通过连接器与其他节点相连,而是与物理设备相连的组件。

传感器组件 —— 其值不由传入关系确定,而是由物理信号确定:光、声音、压力、温度、电压。传感器组件是 GNET 网络的入口点:物理现实通过传感器组件的值进入网络。

执行器组件 —— 其值变化不会形成拼接数据报,而是导致物理作用:电机运动、声音生成、电压变化。执行器组件是网络的出口点。

在 GNET 规范层面,传感器和执行器组件与普通 V-组件无法区分。其他节点仅看到 UNON+LOCN 和组件类型。差异仅存在于 GATE 平台层面,其中特定 LOCN 绑定到硬件寄存器。

3. 9. 多面体的面

为了可视化 NDDI,使用了多面体隐喻。每个面包含一种类型的组件:

  1. D-面 —— D-组件(代码、基因、链接器脚本)

  2. V-面 —— V-组件(值)

  3. A-面 —— A-组件(活动)

  4. L-面 —— L-组件(位置)

  5. R-面 —— R-组件(识别)

  6. T-面 —— T-组件(目标)

  7. B-面 —— B-组件(行为)

  8. S-面 —— S-组件(符号)

  9. N-面 —— N-组件(叙事)

  10. P-面 —— P-组件(谓词)

  11. C-面 —— C-组件(概念)

  12. W-面 —— W-组件(矛盾)

连接器可视化为组件体上的插针和插座,突出于面表面之外。两个节点之间的关系是一根连接一个节点插针与另一个节点插座的导线。

对于立方体——同时可见三个面,这在大多数情况下足以显示主要组件类型。对于更复杂的节点,可以使用具有更多面的多面体。

可视化是开发和调试工具,不是 GNET 规范的一部分。

3. 10. NDDI 生命周期

创建。 NDDI 由运营网络(OPNT)创建。OPNT 从仓库节点选择 D-组件,组装 D-区,并在 GATE 平台上启动节点创建。平台分配 GANN,执行 D-组件的链接,并将节点放置在永久存储器上。OPNT 通过 SYGN 建立初始关系。

活动。 当传入关系到达处于非活动状态的节点时,GATE 平台在 RAM 中激活节点:加载代码和关键数据,将接收到的值传递到目标组件,并启动 A-组件反应链。处理完成后,节点可以保持活动(如果预期有新关系)或被停用。

停用。 在没有活动的情况下,GATE 平台可以停用节点:关键数据已在永久存储器上(通过 ACID 同步),非关键数据可以丢弃,代码无需保存(它从 D-区重新组装)。重新激活时——代码从 D-区重新链接,关键数据从永久存储器加载。

重新链接(进化)。 通过 d-关系接收新 D-组件时,基因被添加到 D-区。重新链接在不活动期间执行。新代码在备用区域组装。成功组装后——原子切换到新代码。出错时——节点保留旧代码。数据不受影响:LOCN 地址固定,并在重新链接期间保留。

不活动期间的重新链接类似于生物睡眠和默认模式网络。系统在活动期间积累新的 D-组件,并在休息期间重建其架构。“晨昏胜于暮昏”——因为夜间 D-区 已被重新链接。

不可删除性。 NDDI 无法以常规方式删除。仅在特殊情况下由特权管理员(ANOD)删除,并伴随通知所有与被删除 NDDI连接器的节点,以便正确断开关系。

3. 11. 过渡到第 4 章

本章定义了 NDDI 的内部结构:组件作为节点的基本单位,D-组件作为首要(创建 NDDI 作为实体),V 和 A 作为活节点的最小集合,更高级别组件,连接器作为参与关系的点,以及持久性作为基本属性。

第 4 章定义拼接数据报的格式——实现节点之间关系的包——以及每种关系类型的详细规范。

目录

3. NDDI 节点的结构