geth/docs/overlay-platforms.md

2.8 KiB

Overlay Platform Notes

This document captures prototype release guidance for geth overlay up. Overlay packets are always carried over Iroh on /geth/overlay/1; these notes only cover host interface setup for the local TUN/Wintun-style device.

Linux

geth overlay up <name> uses tun-rs to create a layer-3 TUN device and assign the joined overlay virtual IP.

Operational requirements:

  • /dev/net/tun must exist and be usable by the daemon process.
  • The user service must have enough privilege to create/configure the device, commonly CAP_NET_ADMIN, a helper, or a supervised manual setup step.
  • The daemon should run as a user service; do not install geth as a system service just to gain network privileges.

Recovery checks:

  • Run geth overlay interface-plan <name> --platform linux to inspect the intended commands.
  • If activation fails, check /dev/net/tun, user permissions, and whether the service manager strips required capabilities.

macOS

macOS uses utun-style devices. Release builds must document that host network integration may require user approval and network-extension or entitlement-aware packaging depending on the distribution path.

Prototype guidance:

  • Run geth overlay interface-plan <name> --platform macos before activation.
  • Treat geth overlay up failures as host entitlement/setup failures, not as a reason to fall back to another geth transport.
  • Keep the daemon as a LaunchAgent/user service. Do not install a privileged system daemon unless a future signed helper design explicitly requires it.

Release checklist:

  • Document required entitlements or helper setup for the chosen signing method.
  • Document how the LaunchAgent is installed and how users approve networking prompts.
  • Include this document in release archives.

Windows

Windows overlay activation needs a Wintun-compatible adapter path. The release artifact does not silently install kernel drivers.

Prototype guidance:

  • Run geth overlay interface-plan <name> --platform windows before activation.
  • Install or make available Wintun through an operator-approved mechanism before geth overlay up.
  • Keep the daemon as a per-user scheduled task. Do not install geth as a system service for the prototype.

Release checklist:

  • Either package the Wintun DLL/driver according to its license and installation requirements, or clearly point users to an approved Wintun installation path.
  • Document how the per-user scheduled task is installed.
  • Include this document in release archives.

Security Boundary

Discovery and peer-card metadata can suggest candidate endpoints and overlay virtual IPs, but they do not grant access. Packet injection still requires overlay.route on resource:overlay:<name>, and joining through a bearer token must not mutate node identity or grant trust graph permissions.