Propagation Rules Specification
Version: 0.1.0-draftOverview
This document specifies how signals route through the NTL network topology.Core Rules
Rule 1: TTL Enforcement
A node MUST NOT propagate a signal with TTL = 0. Before propagating, the node MUST decrement the TTL by 1.Rule 2: Loop Prevention
A node MUST NOT propagate a signal if its own Node ID appears in the signal’s trace. This prevents infinite loops in cyclic topologies.Rule 3: Weight Floor
A node MUST NOT propagate a signal with weight belowmin_propagation_weight (default: 0.01). Signals that attenuate below this floor are effectively absorbed.
Rule 4: Deduplication
A node MUST maintain a deduplication cache of recently seen signal IDs. If a signal ID is already in the cache, the signal MUST be silently dropped. The cache MUST retain entries for at leastmax_ttl * avg_propagation_time duration.
Rule 5: Signature Verification
A node MUST verify the signal’s cryptographic signature before processing or propagating. Invalid signatures MUST result in the signal being dropped and the originating synapse’s weight being reduced.Propagation Scopes
Flood (scope = 0)
The signal MUST be propagated to ALL active synapses (excluding the synapse it arrived on). Used for discovery and emergency signals. Constraints:- Flood signals SHOULD have low TTL (≤ 3) to prevent network saturation
- Nodes MAY rate-limit flood propagation
Weighted (scope = 1) — Default
The signal is propagated to synapses selected by the path scoring function, ordered by score descending. The number of synapses selected is bounded bymax_propagation_fanout (default: 5).
Targeted (scope = 2)
The signal is directed toward a specific destination node. The propagation engine selects the synapse most likely to reach the destination, based on topology knowledge and signal trace history. If the destination is a direct synapse, the signal MUST be sent directly. If not, the signal is forwarded to the synapse with the highest affinity for the destination’s region of the topology.Gradient (scope = 3)
The signal follows the gradient of type affinity — propagating toward nodes that have historically processed similar signal types. This creates emergent specialization pathways.Path Scoring Function
For Weighted and Gradient propagation, synapses are scored:latency_score = 1.0 / (1.0 + normalized_latency)type_affinity = historical_success_rate_for_signal_typerecency_score = 1.0 / (1.0 + hours_since_last_active)
W_weight = 0.4, W_latency = 0.2, W_affinity = 0.3, W_recency = 0.1
Attenuation
When propagating a signal, the node MUST attenuate the signal’s weight:Trace Management
When a node propagates a signal:- The node MUST append its Node ID to the signal’s trace
- The trace MUST NOT exceed 64 entries
- Nodes MAY truncate the oldest entries if the trace exceeds 64