Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 29 Aug 19:52
· 5 commits to main since this release

General changes

  • All NAT traversal is now done over UDP. This should improve traversal success rate by avoiding TCP shenanigans, which were frequently confusing the hell out of OS network layer.
  • Proxying traffic is done using native OS threads for better performance.
  • Reliable traffic delivery for tcp and tls peerings is implemented using KCP protocol, as TCP traversal is gone.
  • Traversal messages are encoded using STUN, the same protocol as ICE/WebRTC use, potentially helping with traversal of excessively aggressive firewalls.

New configuration options

  • --reconnect or yggdrasil_admin_reconnect = true (default is false) - reconnect to admin api if yggdrasil router was restated or yet to be started.
  • only_peers_advertising_jumper = true (default is false) - only consider peering with nodes that advertise jumper support, i.e. have jumper: true in NodeInfo.
  • failed_yggdrasil_traversal_limit = n (default is unlimited) - avoid repeated traversal attempts, if there already were n that failed.
  • yggdrasil_dpi (highly experimental) - send network traffic over an unreliable channel (improves latency under load). See Advanced configuration.

Other changes

  • stun-test binary can act as a minimal STUN server when provided with --serve and optionally --port.
  • Number of packets sent when attempting firewall traversal over yggdrasil is reduced.
  • Exponential timeout for STUN requests.