Skip to content

Releases: PurpleI2P/i2pd

2.56.0

11 Feb 20:22
2.56.0
fb90b01
Compare
Choose a tag to compare
  1. Config params for shared local destination
  2. Exclude disk operations from SSU2 and NTCP2 threads
  3. Set minimal version for peer test to 0.9.62
  4. Fixed termination deadlock if SAM session is active
  5. AddressBook full addresses cache
  6. Shorter ECIESx25519 ack request interval for datagram and I2CP sessions
  7. Updated reseeds list
  8. Recreate tunnels in random order
  9. Send Ack requested flag after second SSU2 resend attempt
  10. Don't change datagram routing path too often if unidirectional data stream
  11. Fixed race condition at tunnel endpoint
  12. Decline transit tunnel to duplicated router

2.55.0

31 Dec 11:57
2.55.0
1293e12
Compare
Choose a tag to compare
  1. Support boost 1.87
  2. New RTO and window size calculation and resetting algorithm for streams
  3. Faster LeaseSet amd RouterInfo lookups
  4. Direct link between tunnel and transport to next peer
  5. Separate thread for tunnel build requests
  6. Fixed missing RouterInfo buffer in NetDb
  7. Throttle incoming ECIESx25519 sessions
  8. Check LeaseSet expiration time
  9. Resend HolePunch and RelayResponse messages
  10. Publish 'R' cap for yggdrasil-only routers, and 'U' cap for routers through proxy
  11. New "i2p.streaming.maxConcurrentStreams" tunnel's param to limit number of simultaneous streams
  12. Don't delete routers from NetDb when offline
  13. Save unreachable router's endpoint to use it next time without introducers
  14. Random tunnel rejection when medium congestion
  15. Increased hole punch expiration interval
  16. Handle NTCP2 session handshakes in separate thread

2.54.0

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

2.53.1

05 Aug 05:25
Compare
Choose a tag to compare
  1. Fixed 100% CPU usage after I2CP/SAM/BOB session termination
  2. Fixed build with LibreSSL
  3. Correct client limits returned through I2CP
  4. I2CP performance improvement

2.53.0

21 Jul 12:09
2.53.0
9a66549
Compare
Choose a tag to compare
  1. New congestion control algorithm for streaming
  2. Set minimal router version to 0.9.59 for floodfills and 0.9.58 for client tunnels
  3. Recognize duplicated routers and bypass them
  4. Fixed crash when a destination gets terminated
  5. Update router's congestion caps before initial publishing
  6. Removed openssl 1.0.2 support
  7. Don't request relay tag for every session if enough introducers
  8. Update LeaseSet if inbound tunnel failed
  9. Select newest introducers to publish
  10. Fixed race condition between local RouterInfo buffer creation and sending it through the transports
  11. Don't create local destination with expired offline keys
  12. Limit stream's outbound speed
  13. Update timestamp for non-reachable or hidden router
  14. Random SSU2 resend interval
  15. Reset streaming routing path if duplicated SYN received

2.52.0

13 May 13:40
2.52.0
4163542
Compare
Choose a tag to compare
  1. Moved netdb's disk file operations to separate threads
  2. Fast exploratory lookup handling at floodfills
  3. Drop unsolicited database search replies
  4. Pick only confirmed routers for tunnels and exploratory replies if tunnel build rate is low
  5. More reliable long live streams
  6. Throttle database search requests
  7. Handle database search replies faster
  8. Don't accept too old routers and address with malformed keys
  9. Fixed different crashes on high load and shutdown

2.51.0

07 Apr 10:02
2.51.0
1b5f67e
Compare
Choose a tag to compare
  1. Encrypted tunnel tests
  2. New streaming RTT/RTO/Window calculation algorithms
  3. Publish medium congestion indication
  4. Changed upstream SOCKS proxy from SOCKS4 to SOCKS5
  5. New implementation of SSU2 retransmission, send buffer, window, congestion control, timeouts
  6. Transit tunnels limit more than 64K. Default value to 10K
  7. Fixed lookup of encrypted LeaseSet
  8. Report error if client is trying to connect to itself in SAM
  9. Fixed crash when packet comes to terminated stream
  10. Tunnel status "declined" in web console
  11. SAM error reply "Incompatible crypto" if remote destination has incompatible crypto
  12. Fixed outbound tunnel build failure if it's endpoint is the same as reply tunnel gateway
  13. Reduce unreachable router ban interval to 8 minutes
  14. Send lookup reply directly to reply tunnel gateway if possible
  15. Fixed I2PControl RouterManager returns invalid JSON when unknown params are passed
  16. Correct implementation of "reservedrange" config param
  17. Less false positive cases for tunnel tests
  18. Check ipv4/ipv6 compatibility for peer tests
  19. Allow SSU2 even if port binding fails
  20. Support local domain sockets for SOCKS proxy upstream

2.50.2

06 Jan 20:11
Compare
Choose a tag to compare
  1. Fixed crash with OpenSSL 3.2.0
  2. Fixed false positive clock skew detection

2.50.1

23 Dec 18:46
2.50.1
816a58f
Compare
Choose a tag to compare

Minor release for systems which have switched to OpenSSL 3.2.0

  • Fixed support for new EdDSA usage behavior in OpenSSL 3.2.0

2.50.0

18 Dec 10:39
2.50.0
beffdb9
Compare
Choose a tag to compare
  • 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.