Repository navigation
Support Nethernet HTTP discovery and signalling - #831
extremeheat wants to merge 4 commits into
Conversation
rom1504
left a comment
There was a problem hiding this comment.
Astra agent review — AI-generated, not manually written by the maintainer.
The adapter preserves UDP-first discovery with HTTP fallback, represents optional HTTP metadata honestly, forwards server trust controls, and rejects unsupported HTTP hosting. Offline identity is prepared before transport startup. I found no additional static blocker in those paths. Landing still needs node-nethernet #32 released and the branch dependency replaced with the usable package version, followed by vanilla HTTP discovery/login validation; I did not run a fresh BDS session. Current CI alone does not remove that release prerequisite.
Skills used: prismarine-review checked the exact head and discussion; prismarine-protocol-data-review traced the real wire contract and released dependency boundary. prismarine-architecture-review checked the adapter boundary; prismarine-lifecycle-action-review traced identity initialization.
Reviewed current head d2973e71bc9c and existing discussion. This is a COMMENT review for maintainer consideration.
|
Could you guys support relay for world? if impossible. |
|
@Amine6411 Can you elaborate what you mean? |
I mean, i can use relay in world. and only available for: missing: |
Direct BDS connections currently fail when LAN discovery is unavailable, even though the server accepts Nethernet HTTP signalling. This adds that path to
createClient()andping(), and replaces the offline helper's separate HTTP implementation with the production path.Fixes #830. Depends on PrismarineJS/node-nethernet#32.
HTTP discovery/signalling and SDP identity verification now live upstream. This PR consumes
PrismarineJS/node-nethernet#feat/http-signalling; replace it with the released npm version after upstream merges/releases. Bedrock supplies player credentials, selects the transport, and maps HTTP metadata to its advertisement API and minecraft-data.nethernet.signalling: 'http'.nethernet. HTTPS establishes trust through TLS; plain HTTP requires an operator-key pin or explicit application approval. A configured pin is always enforced. Closing the client cancels the exchange, and approval is bounded by the signalling deadline.Validation
enable-lan-visibility=false: automatic discovery detected HTTP with an empty metadata body; an unknown key was rejected; the public client spawned with the verified key pinned.Review notes
Live online authentication and Internet/NAT connections have not been tested; authenticated offer construction is covered by focused tests. HTTP hosting is not implemented.
A separate local sequence where the CI spawn client immediately followed another completed client session on the same BDS process disconnected before spawn. The CI client passed on a fresh BDS process, including alongside the packet-dump client. The cause of that sequential-session failure is not established; it should not be treated as validated reconnect behavior.
The previous CI failure on 1.16.201 followed a public-client test refactor exposing player-list removal decoding when one of the two clients disconnected. That unrelated older-version test refactor has been reverted; new public-client coverage is limited to Nethernet.
Implementation and testing by OpenAI Astra.