Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,9 @@
- [QA Guide & Instructions for Functional Requirement Tests](./topics/functionalRequirementTests.md)
- [Double Spends](./topics/architecture/understandingDoubleSpends.md)
- [Two Phase Commit](./topics/features/two_phase_commit.md)
- [Peer Registry and Reputation System](./topics/features/peer_registry_reputation.md)
- [UTXO Lock Records](./topics/features/utxo_lock_records.md)
- [Dashboard](./topics/dashboard.md)

-----

Expand Down
66 changes: 66 additions & 0 deletions docs/references/settings/services/p2p_settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,31 @@
| ForceSyncPeer | string | "" | p2p_force_sync_peer | **CRITICAL** - Forced sync peer override |
| SharePrivateAddresses | bool | true | p2p_share_private_addresses | Private address advertisement |
| AllowPrunedNodeFallback | bool | true | p2p_allow_pruned_node_fallback | **CRITICAL** - Pruned node fallback behavior |
| DHTMode | string | "server" | p2p_dht_mode | DHT operation mode ("server" or "client") |
| DHTCleanupInterval | time.Duration | 24h | p2p_dht_cleanup_interval | DHT provider record cleanup interval |
| PeerMapMaxSize | int | 100000 | p2p_peer_map_max_size | Maximum entries in peer maps |
| PeerMapTTL | time.Duration | 30m | p2p_peer_map_ttl | Time-to-live for peer map entries |
| PeerMapCleanupInterval | time.Duration | 5m | p2p_peer_map_cleanup_interval | Peer map cleanup interval |
| EnableNAT | bool | false | p2p_enable_nat | Enable UPnP/NAT-PMP port mapping |
| EnableMDNS | bool | false | p2p_enable_mdns | Enable mDNS peer discovery |
| AllowPrivateIPs | bool | false | p2p_allow_private_ips | Allow connections to private IP addresses |
| SyncCoordinatorPeriodicEvaluationInterval | time.Duration | - | p2p_sync_coordinator_periodic_evaluation_interval | Sync coordinator evaluation interval |

## Configuration Dependencies

### Forced Sync Peer Selection

- `ForceSyncPeer` overrides automatic peer selection
- `AllowPrunedNodeFallback` affects fallback behavior when forced peer unavailable

### Network Address Management

- `ListenAddresses` and `AdvertiseAddresses` control network presence
- `Port` used as fallback when addresses don't specify port
- `SharePrivateAddresses` controls address advertisement behavior

### Peer Connection Management

- `StaticPeers` ensures persistent connections
- `RelayPeers` for NAT traversal
- `PeerCacheDir` for peer persistence
Expand Down Expand Up @@ -89,3 +101,57 @@ p2p_health_remove_after_failures = 3
p2p_force_sync_peer = "peer-id-12345"
p2p_allow_pruned_node_fallback = true
```

### DHT Configuration

The DHT (Distributed Hash Table) can operate in two modes:

```text
# Server mode (default) - advertises on DHT and stores provider records
p2p_dht_mode = "server"
p2p_dht_cleanup_interval = 24h

# Client mode - query-only, no provider storage (reduces network overhead)
p2p_dht_mode = "client"
```

**When to use client mode:**

- Nodes that don't need to be discoverable by others
- Reduced network overhead and storage requirements
- Behind restrictive NAT/firewall

### Peer Registry Configuration

The peer registry persists peer reputation data across restarts:

```text
# Directory for peer cache file (default: binary directory)
p2p_peer_cache_dir = "/var/lib/teranode/p2p"

# Peer map memory management
p2p_peer_map_max_size = 100000
p2p_peer_map_ttl = 30m
p2p_peer_map_cleanup_interval = 5m
```

### Network Security Configuration

**IMPORTANT**: These settings can trigger network scanning alerts on shared hosting.

```text
# Enable only on private/local networks
p2p_enable_nat = false # UPnP/NAT-PMP port mapping
p2p_enable_mdns = false # mDNS peer discovery
p2p_allow_private_ips = false # RFC1918 private networks
```

### Peer Selection and Reputation

For details on how peer selection and reputation scoring work, see [Peer Registry and Reputation System](../../../topics/features/peer_registry_reputation.md).

Key settings affecting peer selection:

- `p2p_force_sync_peer` - Override automatic selection with specific peer
- `p2p_allow_pruned_node_fallback` - Whether to fall back to pruned nodes
- `p2p_peer_cache_dir` - Where peer reputation data is persisted
Loading