Releases: PurpleI2P/i2pd
Releases · PurpleI2P/i2pd
2.54.0
- New RTT, window size and number of NACKs calculation for streaming
- Maintain recently connected routers list to avoid false-positive peer test
- Exclude 'N' routers from high-bandwidth routers for client tunnels
- Fixed AEAD verification with LibreSSL
- Limited connectivity mode(through proxy)
- Show tunnel's routers bandwidth caps in web console
- Set default i2cp.leaseSetEncType to 0,4 and to 4 for server tunnels
- "senduseragent" HTTP proxy's param to pass through user's User-Agent
- Limit stream's inbound speed
- Fixed jump link crash if address book is disabled
- "i2p.streaming.profile" tunnel's param to let tunnel select also low-bandwidth routers
- C++11 support has been dropped, the minimal requirement is C++17 now, C++20 for some compilers
- Removed dependency from boost::date_time and boost::filesystem
- Exclude low bandwidth routers for first peer in high-bandwidth client tunnel
- Increase max number of generated tags to 800 per tagset
- Handle immediate ack requested flag in SSU2 data packets
- Resend and ack peer test and relay messages
- Don't include expired leases to LeaseSet
- Periodic ack requests in ratchets session
- Update introducer's iTag if session to introducer was replaced to new one
- Handle i2cp.inboundlimit and i2cp.outboundlimit params in I2CP
- Save timestamp from epoch instead local time to router profiles
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