Mesh Configuration
Enable multi-node journal synchronization over encrypted WireGuard tunnels.
Enable mesh
[mesh]
enabled = true
listen_addr = "0.0.0.0:4820"
peer_discovery = "static" # or "dht"
[[mesh.peers]]
name = "node-beta"
endpoint = "192.168.1.20:4820"
public_key = "base64-encoded-wireguard-public-key"
[[mesh.peers]]
name = "node-gamma"
endpoint = "192.168.1.30:4820"
public_key = "base64-encoded-wireguard-public-key"
[mesh.sync]
interval_secs = 10
batch_size = 50
max_lag_before_full_sync = 1000
Field reference
| Field | Description |
|---|---|
enabled | Enable mesh networking |
listen_addr | Address and port for incoming peer connections |
peer_discovery | static (explicit peers) or dht (distributed hash table) |
Peer configuration
Each [[mesh.peers]] entry defines a remote node:
| Field | Description |
|---|---|
name | Human-readable peer name |
endpoint | IP:port of the remote node |
public_key | WireGuard public key for the peer |
Sync settings
| Field | Default | Description |
|---|---|---|
interval_secs | 10 | How often to sync with peers |
batch_size | 50 | Envelopes per sync batch |
max_lag_before_full_sync | 1000 | Sequence lag threshold for full resync |
DHT discovery
For dynamic environments, use DHT-based peer discovery:
[mesh]
peer_discovery = "dht"
[mesh.dht]
bootstrap_nodes = ["192.168.1.10:4821"]
Nodes announce themselves and discover peers automatically.
Key management
Generate WireGuard keys with:
akshi mesh keygen
This creates a keypair in the data directory. Share the public key with peers.