Releases: MEMOxiiii/portal
Releases · MEMOxiiii/portal
Release list
V2.6.2-1.26.50-2193
What's Changed
- harden socket protocol against unbounded allocation, races, and panics by @MEMOxiiii in #6
- fix session login race, leaked sessions on failure, and clustering deadlock by @MEMOxiiii in #7
- fix config.json permissions, add CI test workflow, speed up Registry reads by @MEMOxiiii in #8
- fix Transfer() always reporting success, and auth throttle double-close panic by @MEMOxiiii in #9
- fix insecure default communication secret by @MEMOxiiii in #10
- fix nil deref + leaked lock on early DimensionChangeDone, add transfer confirm timeout by @MEMOxiiii in #11
- fix Server()/ServerConn() mismatch during and after a pending transfer by @MEMOxiiii in #12
- disconnect the player when a stuck transfer times out by @MEMOxiiii in #13
- fix socket server identity mismatch, disconnect deadlock, and slow-loris exposure by @MEMOxiiii in #14
- fix stale session-store deletes and case-sensitive player name lookup by @MEMOxiiii in #15
- fix registration race on fast reconnect, and auth write-side timeout by @MEMOxiiii in #16
- fix whitelist rejecting players on exact-case name mismatch by @MEMOxiiii in #17
- fix stale registration removal on concurrent reconnect under the same name by @MEMOxiiii in #18
- add concurrent stress test for session store reconnect race by @MEMOxiiii in #19
- fix Logger.Write violating the io.Writer contract by @MEMOxiiii in #20
- speed up entity metadata translation on the hottest packet loop by @MEMOxiiii in #21
- prune health checker failure counts for deregistered servers by @MEMOxiiii in #22
- parallelize cluster presence heartbeat announcements by @MEMOxiiii in #23
- fix authenticated socket writes having no deadline at all by @MEMOxiiii in #24
- enable TCP keepalive on the communication socket by @MEMOxiiii in #25
- add ReadHeaderTimeout to the metrics HTTP server by @MEMOxiiii in #26
- fix re-registering a server resetting its player count and health by @MEMOxiiii in #27
- fix stress tool reporting a false failure under heavy concurrent load by @MEMOxiiii in #28
- add real end-to-end player join/transfer test harness by @MEMOxiiii in #29
Full Changelog: V2.6.1-1.26.50-2193...V2.6.2-1.26.50-2193
V2.6.1-1.26.50-2193
What's Changed
- fix nethernet backend dial tripled port by @MEMOxiiii in #5
Full Changelog: V2.6.0-1.26.50-2193...V2.6.1-1.26.50-2193
V2.6.0-1.26.50-2193
What's Changed
-
Support Minecraft 1.26.50 by @MEMOxiiii in #4
-
Full Changelog: V2.5.0-1.26.45-2169...V2.6.0-1.26.50-2193
V2.5.0-1.26.45-2169
What's Changed
- Add NetherNet transport support (default), mixed backend transports, and fixes by @MEMOxiiii in #3
Full Changelog: V2.4.0-1.26.44-2168...V2.5.0-1.26.45-2169
V2.4.0-1.26.44-2168
support minecraft 1.26.44
plugins-beta-2
V2.3.0-1.26.40-2168
Full Changelog: V2.2.2-1.26.30-1001...V2.3.0-1.26.40-2168
V2.2.2-1.26.30-1001
Portal Proxy V2.2.2-1.26.30-1001
A major upgrade to the proxy core — focused on load balancing, clustering, security hardening, and operational tooling. Ships alongside PortalDF V0.0.4 (protocol v2).
✨ Highlights
- Weighted load balancing — servers carry a
Weight; a weight-3 server takes ~3× the new players of a weight-1 server in the same pool. - Server groups & fallback routing — organise backends into pools (
lobby,survival, …) with ordered fallback groups. - Draining mode — take a server out of rotation for a restart without dropping its current players.
- Health checking — real RakNet pings pull hung/crashed servers out of load balancing and restore them automatically.
- Redis clustering — resolve players connected to any proxy in the cluster via
FindPlayerRequest. - Prometheus metrics —
/metricsendpoint for players, servers, socket clients, and transfers. - Admin console —
players,servers,kick,transfer,drainfrom stdin, no restart. - Event bus — subscribe to join/quit/transfer/health events, with per-handler panic isolation.
🔒 Security & Hardening
- Optional TLS on the communication socket (min TLS 1.2)
- Constant-time secret comparison
- Per-IP auth throttle (5 fails/min → 5-min block)
- IP guard — ban list + sliding-window rate limiting
io.ReadFullfix against partial-read corruption- Graceful shutdown on SIGINT/SIGTERM
📡 Protocol v2 (breaking)
- New packets:
DisconnectPlayer,SetServerDraining RegisterServergainsGroup+WeightFindPlayerResponsegainsProxy
⚠️ Backend servers must update to PortalDF V0.0.4-BETA (or a protocol-v2 client) to authenticate.
⚙️ New config sections
network.communication.tls · security · metrics · routing · health_check · cluster
✅ Quality
build/vet/testclean; 41/41 feature checks pass under the race detector- Stress-tested at 1000 concurrent backends — zero errors, zero data races, clean teardown
Full changelog: changelog/V2.2.2-1.26.30-1001.md