Releases: PurpleI2P/i2pd
Releases · PurpleI2P/i2pd
2.53.1
2.53.0
- New congestion control algorithm for streaming
- Set minimal router version to 0.9.59 for floodfills and 0.9.58 for client tunnels
- Recognize duplicated routers and bypass them
- Fixed crash when a destination gets terminated
- Update router's congestion caps before initial publishing
- Removed openssl 1.0.2 support
- Don't request relay tag for every session if enough introducers
- Update LeaseSet if inbound tunnel failed
- Select newest introducers to publish
- Fixed race condition between local RouterInfo buffer creation and sending it through the transports
- Don't create local destination with expired offline keys
- Limit stream's outbound speed
- Update timestamp for non-reachable or hidden router
- Random SSU2 resend interval
- Reset streaming routing path if duplicated SYN received
2.52.0
- Moved netdb's disk file operations to separate threads
- Fast exploratory lookup handling at floodfills
- Drop unsolicited database search replies
- Pick only confirmed routers for tunnels and exploratory replies if tunnel build rate is low
- More reliable long live streams
- Throttle database search requests
- Handle database search replies faster
- Don't accept too old routers and address with malformed keys
- Fixed different crashes on high load and shutdown
2.51.0
- Encrypted tunnel tests
- New streaming RTT/RTO/Window calculation algorithms
- Publish medium congestion indication
- Changed upstream SOCKS proxy from SOCKS4 to SOCKS5
- New implementation of SSU2 retransmission, send buffer, window, congestion control, timeouts
- Transit tunnels limit more than 64K. Default value to 10K
- Fixed lookup of encrypted LeaseSet
- Report error if client is trying to connect to itself in SAM
- Fixed crash when packet comes to terminated stream
- Tunnel status "declined" in web console
- SAM error reply "Incompatible crypto" if remote destination has incompatible crypto
- Fixed outbound tunnel build failure if it's endpoint is the same as reply tunnel gateway
- Reduce unreachable router ban interval to 8 minutes
- Send lookup reply directly to reply tunnel gateway if possible
- Fixed I2PControl RouterManager returns invalid JSON when unknown params are passed
- Correct implementation of "reservedrange" config param
- Less false positive cases for tunnel tests
- Check ipv4/ipv6 compatibility for peer tests
- Allow SSU2 even if port binding fails
- Support local domain sockets for SOCKS proxy upstream
2.50.2
2.50.1
2.50.0
- Support of concurrent ACCEPTs on SAM 3.1
- Added Haiku OS support
- Low bandwidth and far routers can expire before 1 hour
- Don't pick too active peer for first hop
- Try peer test again if status is Unknown
- Send peer tests with random delay
- Updated reseeds list
- Fixed XSS vulnerability in addresshelper
- Fixed publishing NAT64 ipv6 addresses
- Fixed deadlock in AsyncSend callback
Note for everyone, who uses latest OpenSSL 3.2.0: they broke everything again. So, if you build application yourself, use at least version 3.1.4 of OpenSSL. Windows binaries built with MSYS2 with OpenSSL 3.1.3 packages.
2.49.0
- Handle SOCK5 authorization with empty user/password and send correct version in response
- Improve NTCP2 transport session logging
- Allow 0 hops in explicitPeers
- Don't allow incoming transport sessions from routers with incorrect timestamp
- Fixed sending keepalive for sessions with introducers
- Always select router with ipv4 for tunnel endpoint
- Fixed crash if deleted BOB destination was shared between few BOB sessions
- Memory pool for router profiles
- Removed AVX code
- Exclude SSU1 introducers from SSU2 addresses
- Don't create paired inbound tunnel if length is different
- Fixed padding length for SSU2 path response
- Don't publish introducers with zero tag
- Consider all addresses non-published for U and H routers even if they have host/port
- Don't pick completely unreachable routers for tunnels
- Separate network and testing status
2.48.0
- Added 'critical' log level
- Allow user/password authentication method for SOCK5 proxy
- Fixed reload tunnels
- Don't recognize new router as floodfill until it proves it's real
- Fixed incomplete HTTP headers in I2P tunnels
- Publish congestion cap 'G' if transit is not accepted
- Added webconsole button to drop a remote LeaseSet manually
- Publish encrypted RouterInfo through tunnels
- Print local b32 address on webconsole destination page
- Fixed incorrect address caps for unspecified ipv6 address
2.47.0
- DHT for floodfills instead plain list
- Process router's messages in separate thread
- Don't publish non-reachable router
- Fixed memory leak in Windows network state detection
- Fixed reseed attempts from invalid address
- Add support for domain addresses for Yggdrasil reseeds
- Send and check target destination in first streaming SYN packet
- Added congestion caps (https://geti2p.net/spec/proposals/162-congestion-caps)
- Added SAM UDP port parameter