Skip to content

chore: release - #32

Merged
eshork merged 1 commit into
mainfrom
release-plz-2026-11-02T22-04-44Z
Nov 3, 2026
Merged

eshork merged 1 commit into
mainfrom
release-plz-2026-11-02T22-04-44Z

Conversation

@github-actions

@github-actions github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

🤖 New release

  • libudx: 1.7.3 -> 1.7.4 (✓ API compatible changes)
  • peeroxide-dht: 1.7.3 -> 1.7.4 (✓ API compatible changes)
  • peeroxide: 1.7.3 -> 1.7.4 (✓ API compatible changes)
  • peeroxide-cli: 0.3.1 -> 0.3.2
Changelog

libudx

1.7.4 - 2026-11-02

Fixed

  • (swarm) let Node.js clients connect to a firewalled peeroxide server (#31)

peeroxide-dht

1.7.4 - 2026-11-02

Fixed

  • (swarm) let Node.js clients connect to a firewalled peeroxide server (#31)

Added

  • HyperDhtHandle::current_relays(): the relays of the last self-announce, each paired with our own address as that relay saw it (RelayInfo { relay_address, peer_address }), mirroring Node hyperdht's Announcer.relays. A server advertises these in the holepunch.relays of its handshake reply; the relay forwards a client's PEER_HOLEPUNCH to peer_address. current_relay_addresses() is unchanged.
  • QueryReply::to: our own address as the responding node saw it (the to field of its reply).

peeroxide

1.7.4 - 2026-11-02

Fixed

  • (swarm) let Node.js clients connect to a firewalled peeroxide server (#31)

Fixed

  • Node.js Hyperswarm clients can now connect to a firewalled peeroxide server. Before, every attempt timed out (passive holepunch timed out here, HOLEPUNCH_ABORTED on the Node side). The server side of the handshake now matches Node hyperdht lib/server.js on three points:
    • Duplicate PEER_HANDSHAKE. A Node client sends one Noise message through up to two relays in parallel and acts on the first reply. Each copy now gets the same reply, cached by a hash of the Noise message for 20 s. Before, each copy got a fresh Noise responder, and the second replaced the first's holepunch session. The cache holds at most 1024 replies (oldest evicted first), expires them in insertion order and on a periodic sweep, and skips handshakes the server rejects (already connected, at max_peers, no UDX info), staging no passive holepunch for them when the swarm is full (and releasing one staged for an already-connected peer), so a flood of distinct handshakes cannot grow it or stall the swarm.
    • Holepunch relays. The reply's holepunch.relays[].peer_address is now our own address as each relay saw it (HyperDhtHandle::current_relays()). Before, it held the client's address, so the relay sent the client's PEER_HOLEPUNCH back to the client.
    • Open or direct clients. A client that says it is FIREWALL_OPEN, or that reached us without a relay, is now dialled by the server: its stream connects to the client's address, so the server sends the first packet and opens its own NAT mapping, as Node's hs.onsocket(...) does. A firewalled server still advertises holepunch { id, relays } to such a client, as Node does, so an open Node client waits for that dial instead of dialling the firewalled server itself. Before, the open client was given a passive holepunch it never performs.

peeroxide-cli

0.3.2 - 2026-11-02

Fixed

  • (swarm) let Node.js clients connect to a firewalled peeroxide server (#31)


This PR was generated with release-plz.

@eshork
eshork marked this pull request as ready for review November 3, 2026 00:53
@eshork
eshork merged commit fe768e8 into main Nov 3, 2026
10 checks passed
@eshork
eshork deleted the release-plz-2026-11-02T22-04-44Z branch November 3, 2026 03:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant