pub struct NodeConfig {Show 51 fields
pub transport_enabled: bool,
pub static_transport_identity: bool,
pub local_hops_delta: bool,
pub identity: Option<Identity>,
pub interfaces: Vec<InterfaceConfig>,
pub share_instance: bool,
pub instance_name: String,
pub shared_instance_port: u16,
pub rpc_port: u16,
pub cache_dir: Option<PathBuf>,
pub ratchet_store: Option<Arc<dyn RatchetStore>>,
pub ratchet_expiry: Duration,
pub management: ManagementConfig,
pub probe_port: Option<u16>,
pub probe_addrs: Vec<SocketAddr>,
pub probe_protocol: ProbeProtocol,
pub direct_connect_policy: HolePunchPolicy,
pub direct_connect_allow_private_endpoints: bool,
pub device: Option<String>,
pub underlay_mark: Option<u32>,
pub hooks: Vec<ParsedHook>,
pub discover_interfaces: bool,
pub autoconnect_interface_mode: Option<u8>,
pub autoconnect_interface_gravity: i64,
pub autoconnect_announces_to_internal: bool,
pub autoconnect_unverified_implementations: bool,
pub discovery_required_value: Option<StampCost>,
pub respond_to_probes: bool,
pub prefer_shorter_path: bool,
pub max_paths_per_destination: usize,
pub packet_hashlist_max_entries: usize,
pub packet_hashlist_allocation: PacketHashlistAllocation,
pub max_discovery_pr_tags: usize,
pub max_path_destinations: usize,
pub max_tunnel_destinations_total: usize,
pub known_destinations_ttl: Duration,
pub known_destinations_max_entries: usize,
pub announce_table_ttl: Duration,
pub announce_table_max_bytes: usize,
pub driver_event_queue_capacity: usize,
pub interface_writer_queue_capacity: usize,
pub announce_rate_defaults: AnnounceRateDefaults,
pub ingress_control_defaults: IngressControlConfig,
pub backbone_peer_pool: Option<BackbonePeerPoolSettings>,
pub announce_sig_cache_enabled: bool,
pub announce_sig_cache_max_entries: usize,
pub announce_sig_cache_ttl: Duration,
pub registry: Option<InterfaceRegistry>,
pub panic_on_interface_error: bool,
pub link_proof_verify_threads: ProofVerifyThreads,
pub stamps: StampsSection,
}Expand description
Top-level node configuration.
Fields§
§transport_enabled: bool§static_transport_identity: bool§local_hops_delta: bool§identity: Option<Identity>§interfaces: Vec<InterfaceConfig>Interface configurations (parsed via registry factories).
Enable shared instance server for local clients (rns-ctl, etc.)
instance_name: StringInstance name for Unix socket namespace (default: “default”).
Shared instance port for local client connections (default 37428).
rpc_port: u16RPC control port (default 37429). Only used when share_instance is true.
cache_dir: Option<PathBuf>Cache directory for announce cache. If None, announce caching is disabled.
ratchet_store: Option<Arc<dyn RatchetStore>>Store for received ratchets. If None, received ratchets are not persisted or used.
ratchet_expiry: DurationTTL for received ratchets.
management: ManagementConfigRemote management configuration.
probe_port: Option<u16>Port to run the STUN probe server on (for facilitator nodes).
probe_addrs: Vec<SocketAddr>Addresses of STUN/RNSP probe servers (tried sequentially with failover).
probe_protocol: ProbeProtocolProtocol for endpoint discovery: “rnsp” (default) or “stun”.
direct_connect_policy: HolePunchPolicyPolicy for incoming direct-connect proposals.
direct_connect_allow_private_endpoints: boolAccept direct-connect endpoints in private, shared, link-local, and unique-local ranges (LAN-only deployments).
device: Option<String>Network interface to bind outbound sockets to (e.g. “usb0”).
underlay_mark: Option<u32>Linux SO_MARK value applied to Reticulum IP underlay sockets.
hooks: Vec<ParsedHook>Hook configurations loaded from the config file.
discover_interfaces: boolEnable interface discovery.
autoconnect_interface_mode: Option<u8>Mode assigned to auto-connected discovered interfaces, when configured.
autoconnect_interface_gravity: i64Gravity assigned to auto-connected discovered interfaces.
autoconnect_announces_to_internal: boolAllow auto-connected interfaces to propagate announces to internal interfaces.
autoconnect_unverified_implementations: boolAllow auto-connecting discovered interfaces from unverified implementations.
discovery_required_value: Option<StampCost>Minimum stamp value for accepting discovered interfaces (default: 16).
respond_to_probes: boolRespond to probe packets with automatic proof (like Python’s respond_to_probes).
prefer_shorter_path: boolAccept an announce with strictly fewer hops even when the random_blob
is a duplicate of the existing path entry. Default false preserves
Python-compatible anti-replay behaviour.
max_paths_per_destination: usizeMaximum number of alternative paths stored per destination. Default 1 (single path, backward-compatible).
packet_hashlist_max_entries: usizeMaximum number of packet hashes retained for duplicate suppression.
packet_hashlist_allocation: PacketHashlistAllocationStartup allocation policy for the packet hashlist payload pages.
Maximum number of discovery path-request tags remembered.
max_path_destinations: usizeMaximum number of destination hashes retained in the live path table.
max_tunnel_destinations_total: usizeMaximum number of retained tunnel-known destinations.
known_destinations_ttl: DurationTTL for recalled known destinations without an active path.
known_destinations_max_entries: usizeMaximum number of recalled known destinations retained.
announce_table_ttl: DurationTTL for announce retransmission state.
announce_table_max_bytes: usizeMaximum retained bytes for announce retransmission state.
driver_event_queue_capacity: usizeMaximum queued events awaiting driver processing.
interface_writer_queue_capacity: usizeMaximum queued outbound frames per interface writer worker.
announce_rate_defaults: AnnounceRateDefaultsDefault announce-rate controls applied to interfaces when transport is enabled.
ingress_control_defaults: IngressControlConfigDefault ingress/egress controls applied to interfaces when transport is enabled.
backbone_peer_pool: Option<BackbonePeerPoolSettings>Outbound Backbone peer-pool settings. Disabled when None.
announce_sig_cache_enabled: boolWhether the announce signature verification cache is enabled.
announce_sig_cache_max_entries: usizeMaximum entries in the announce signature verification cache.
announce_sig_cache_ttl: DurationTTL for announce signature cache entries.
registry: Option<InterfaceRegistry>Custom interface registry. If None, uses InterfaceRegistry::with_builtins().
panic_on_interface_error: boolIf true, a single interface failing to start will abort the entire node. If false (default), the error is logged and remaining interfaces continue.
link_proof_verify_threads: ProofVerifyThreadsThreads that verify and sign link packet proofs off the driver thread
(Auto: half the CPUs the process may use, from one to four).
stamps: StampsSectionStamp generation, enforcement, costs and timeouts: the [stamps]
section, which RnsNode::from_config reads from the config file.
Upstream’s Reticulum(enable_stamping=True) corresponds to setting
stamp_destinations, stamp_prs and stamp_lrs, and
enforce_stamps=True to stamps_enforced and lr_stamps_enforced.