2023-06-28 idk
 * Cache stores of multihomed leaseSets when stored from multihome peers,
  and if our local leaseSet is not in the keyspace return the multihome instead
 * When updating a leaseSet because recieving it as published always make a
  complete copy of the leaseSet before merging the flags.
 * Rate-Limit lookups
 * I2P 2.3.0

2023-05-29 idk
 * adds "virtual contexts" to bloom filter, where each entity that
  passes an i2np message to the bloom filter xor's the messageID with a random, local value.
  credit Xe Iaso for discovering the issue, obscuratus for the solution

2023-04-12 idk
 * Fix missing Java options in docker/rootfs/startapp.sh
 * Detect when running in Podman instead of regular Docker
 * Update Tor Browser User-Agent String
 * Update local GeoIP database
 * Remove invalid signing keys from old installs
 * Update Tomcat version in Ubuntu Lunar and Debian Sid
 * Release version 2.2.1/0.9.58

2023-03-13 idk
 * Send and check target destination in first streaming SYN packet
 * Release version 2.2.0/0.9.58

2023-02-16 zzz
 * Transports: Add new inbound connection throttler

2023-02-15 zzz
 * Router:
   - Disable Sybil analysis when in test mode
   - Store feed blocklist in main array for efficiency
 * Tunnels: Re-enable using U routers in some expl. tunnels

2023-02-13 zzz
 * Profiles:
   - Change the new-router bonus to a penalty
   - Remove unused failing peers map

2023-02-12 zzz
 * Console: Reduce max age of displayed profiles
 * NetDB:
   - Don't create profile unless peer is reachable
   - Store handler updates
 * Profiles:
   - Adjust capacity for send success/failure
   - Don't create new profile on message or lookup failures
   - Downrate capacity of slow/unreachable peers
   - Limit storage and memory usage
 * Router: Increase min version for tunnels and netdb to 0.9.51
 * Tunnels: Don't build through U routers

2023-02-11 zzz
 * NetDB:
   - Expiration tweaks
   - Increase flood thottle time

2023-02-10 zzz
 * Router: Tighten skew calculation window

2023-02-09 zzz
 * DTG: Support notification disable/enable in non-router context
 * NetDB:
   - Don't lookup before dropping after shutdown initiated
   - Improve efficiency of ExpireRoutersJob
 * Profiles: Don't delete old profiles from disk until 90m uptime

2023-02-08 zzz
 * Console:
   - Add routing key to router infos (advanced)
   - Debug page sockets table cleanup
   - Load router infos more efficiently
 * NetDB:
   - Don't explore if we have enough RIs
   - Further restrict what RIs we lookup before dropping
   - Implement faster RI expiration mode
   - Increase closest-floodfill search size
   - Reduce min RI expiration
   - Reduce max floodfill fail rate
   - Replace Set with List in ExpireLeasesJob for efficiency
   - Set max routers to load at startup
 * NTCP2:
   - Ban peers that ban us
   - Block IP on failed inbound
   - Increase temp. inbound IP block time
   - Route RI block of another router to InNetMessagePool
 * Router:
   - Don't set congestion cap at startup because of high job lag
 * Sybil:
   - Don't do pair distance check unless enough memory
   - Thread analyzer at reduced priority
 * Transports: Check RI in handshake for matching IP
 * Tunnels: Load RIs more efficiently in peer selector

2023-02-04 zzz
 * Router:
   - Continue work on congestion caps (proposal 162)
   - Stat cleanup

2023-02-03 zzz
 * i2psnark: Fix failure on torrents with '#' in the name
 * Util: Fix check for illegal chars in storeProps()

2023-02-01 zzz
 * Console: Don't list same client SKM twice on /debug for subsessions
 * Profiles:
   - Count all build rejections in tunnel history
   - Remove 30m tunnel history rates
 * Ratchet: Don't bundle LS with ratchet ACK

2023-01-30 zzz
 * Blocklist:
   - Don't maintain IPv6 blocklist unless we have an IPv6 address
   - Don't read in same-country blocklist unless configured or in strict country
 * NTCP2: Ensure we publish a "6" address on transition to firewalled
 * Streaming: Refactor sig checking
 * Tunnels:
   - Refactor peer selection
   - Improve expl. build success in well-connected routers during congestion
 * Util: Add experimental config to bypass Fortuna and just use /dev/random

2023-01-27 zzz
 * Console: Debug page cleanups
 * Tools: Add CLI reseed test
 * Tunnels: Reduce grace period from 120 to 90 sec.

2023-01-26 zzz
 * Console: Add revision and build date to version info
 * i2psnark: Search fixes

2023-01-25 zzz
 * Util: New thread-unsafe version of ObjectCounter

2023-01-24 zzz
 * Router: Preliminary support for congestion caps (proposal 162)

2023-01-23 zzz
 * i2psnark standalone: Fix running from outside the directory

2023-01-22 zzz
 * Build: Fix list of changed files in manifests
 * i2psnark: Add max files per torrent config

2023-01-21 zzz
 * Console:
   - Remove ERR- and WARN- prefixes from status strings
   - Catch graph error in Docker (Gitlab #383)
 * i2psnark: Search box CSS
 * NTCP: Do not rebind internal port if only SSU external port changed
 * SSU:
   - Eliminate Symmetric NAT errors for "full cone" NATs
   - Fix rare peer test NPE
   - Fix initial SSU2 MTU when SSU1 disabled

2023-01-19 zzz
 * Build: Add i2psnark-release target

2023-01-18 zzz
 * i2psnark: Search CSS and JS

2023-01-17 zzz
 * i2psnark:
   - Add basic search box
   - Recognize more clients
 * i2ptunnel: Fix typo for SSL outproxy host

2023-01-15 zzz
 * Console:
   - Fix displayed BPS for SSU peers
   - Add netdb search by introducer count
 * i2ptunnel:
   - Interrupt client tunnel build when stop button is clicked
   - Return error message from IRC client on failure to build tunnels
   - Return 503 from HTTP client on failure to build tunnels
   - Return error code from SOCKS client on failure to build tunnels

2023-01-12 zzz
 * Router: Simplify published stats values
 * SAM: Abort tunnel build if control socket closes

2023-01-11 zzz
 * Console: Add ability to search netdb for a range of ports

2023-01-10 2.1.0 (API 0.9.57) released

2023-01-08 zzz
 * AppArmor: Allow classes.jsa in other locations
 * SSU:
   - Fix NPE handling SSU1 peer test msg 7
   - Build fix for Java 7

2023-01-03 zzz
 * Console: Add link to sort netdb country chart by count

2023-01-01 zzz
 * GeoIP 2023-01-01
 * I2CP: Reduce session limit to 50, limit is 0 for vmCommSystem
 * i2psnark:
   - Add missing button icons (dark/light themes)
   - Prep for JS DnD (Gitlab MR !73)
 * i2ptunnel: Do not retry if session limit exceeded

2022-12-31 zzz
 * Console: Change color palette for graphs on dark theme
 * i2psnark:
   - Update tracker list after editing torrent (Gitlab #380)
   - Throttle torrent startup to prevent OOMs

2022-12-30 zzz
 * UPnP: Catch AssertionError when closing SSDP multicast socket
 * Util: Add methods to convert IPv6 addresses to canonical RFC 5952 strings

2022-12-29 zzz
 * Tunnels: Limit requested client tunnels during congestion

2022-12-26 zzz
 * Console: Sort tunnels by name on /tunnels, /configtunnels, /i2ptunnel
 * Router: Don't blocklist our own IP
 * SSU:
   - Fix NPE when SSU2 disabled
   - Redesign peer test symmetric NAT detection

2022-12-23 zzz
 * SSU2:
   - More peer test fixes
   - Refactor in-session PacketBuilder2 methods to throw IOE

2022-12-22 zzz
 * SSU:
   - Further restrict states to publish peer test cap
   - Peer test scheduling fixes
 * SSU2:
   - Further restrict states to be a peer test Charlie
   - Peer test fixes

2022-12-21 zzz
 * CLI: Add a "help" command, improve command listing
 * Router: Add IPv6 analysis to Sybil checker

2022-12-20 zzz
 * Router: Add IPv6 localhost and wildcard to blocklist
 * SSU2: Peer test improvements and fixes
 * Util: Speed up IP string to byte conversion

2022-12-19 zzz
 * CLI: Add NewsHandler CLI to fetch news from servers
 * Console: Fix IPv6 searches for compressed/expanded address format
 * Router: Time initialization fixes and cleanups
   - Require two peers that agree for transports to initialize time
   - Allow SSU2 to initialize time even for large skews
   - Do not allow NTCP2 inbound to initialize time for large skews
   - Adjust SSU2 skew for RTT
   - Disable SSU1 time initialization when SSU2 is enabled
   - Round time sent in NTCP2 DateTime block

2022-12-18 zzz
 * SSU2: Compress and bundle Alice RI with relay intro

2022-12-17 zzz
 * Console: Fix UDP disabled error when SSU 1 disabled
 * SSU:
   - Don't call rebuildIfNecessary() from dropPeer() and addPeer() every time
   - Don't call test forceRunSoon() in addPeer() every time
   - Fix IP closeness check when firewalled
 * SSU2:
   - Immediately remove establish state from EstablishmentManager on fatal error
   - Send in-session termination after certain session confirmed errors
 * Transport: Fix multiple v4/v6 RouterAddresses

2022-12-15 zzz
 * Router: Change transient IPv4 blocklist to LHMCache
 * SSU2:
   - Check banlist after session confirmed
   - Don't attempt to connect to ourselves as an introducer
   - Fix retransmission of session confirmed

2022-12-14 zzz
 * Crypto: Fix wrong arguments order in ChaCha20 encrypt, breaking encrypted LS2
 * NTCP:
   - Fix rare NPE sending termination
   - Log source of clock adjustment at startup
 * SSU2:
   - Catch "shift too big" IAE from acked bitfield while sending termination
   - Drop short session request messages in packet handler
   - Preliminary fixes for handling retransmitted retries
   - Reject peer test or relay as Charlie if snatted
   - Update activity on path challenge/response

2022-12-13 zzz
 * SSU: Don't publish B cap when snatted
 * Tunnels: Tighten the hop throttle more

2022-12-12 zzz
 * SSU2: Bob asks another Peer Test Charlie on rejection

2022-12-11 zzz
 * SSU2:
   - Ban peer if he bans us in retry
   - Destroy PS2 cipher states when done
   - Handle retransmitted token request
   - Handle skew reason in termination, possibly ban peer
   - Send termination on inbound session/token request
   - Wait longer for session request after retry

2022-12-10 zzz
 * Graphs: Fix RRD time skew handling
 * SSU: Update activity timestamps for relay and peer test messages
 * SSU2: Peer Test fixes

2022-12-09 zzz
 * SSU: Don't bid on SSU1 addresses when disabled
 * Tunnels: Tighten the hop throttle

2022-12-08 zzz
 * SSU2: Fix rare IAE creating ACK block

2022-12-07 zzz
 * Console: Profile tabs cleanup
 * SSU2: Post-termination handler improvements

2022-12-06 zzz
 * SSU2: Add handler to process post-termination messages

2022-12-04 zzz
 * SSU2: Token improvements and fixes

2022-12-02 zzz
 * Debian: Fix for stray symlinks in / (gitlab #376)

2022-11-30 zzz
 * SSU: Start work on option to disable SSU 1

2022-11-28 zzz
 * i2ptunnel: Update encryption type defaults
 * Util: Add path length constraint = 0 to selfsigned certs

2022-11-26 zzz
 * Console: Hide IPv4/v6 columns on /peers status tab
 * i2ptunnel: Fix SOCKS outproxy port configuration
 * SSU: Don't build a 4 cap address at startup if configured for IPv6-only
 * SSU2: Avoid rare NPE handling apparent session confirmed without inbound state
 * Util: Fast check for random nextInt(1) and nextLong(1)

2022-11-25 zzz
 * i2ptunnel: Allow IRCv3 ACCOUNT and CHGHOST through the filter
 * Profiles: Don't let one corrupt file kill the loader thread

2022-11-24 zzz
 * Console, i2psnark standalone: Fix UI configuration for Argentinan Spanish
 * i2psnark: Add partial Danish translation
 * i2psnark standalone: Enable zh_TW UI configuration

2022-11-23 zzz
 * Build: Add debcheckpatch to release targets
 * CLI: Sort MTU output by address
 * Console:
   - Add LS lookup to search form
   - Add status and banned tabs to /peers (WIP)
   - Change mtn tunnel in help FAQ to git
   - Cleanup /debug update and app manager sections
   - Dark theme banlist margin fix
   - /configlogging fixes
 * Crypto: Don't use AccessController in I2PProvider, deprecated as of Java 17
 * i2ptunnel:
   - SOCKS 5 tunnel improvements and torsocks support
   - Fix log message on config migration
 * Router: KeysAndCert compressible padding (Proposal 161, Gitlab MR !66)
 * SSU: Remove unneeded queue latency check in UDPSender
 * SSU2: Increase Session Created max padding
 * SusiDNS: Fix off-by-one in next page last item number
 * Tunnels: Adjust expiration job start if default reject time overridden by config

2022-11-21 2.0.0 (API 0.9.56) released

2022-11-12 zzz
 * i2ptunnel: Fix IRC USER filtering

2022-11-09 zzz
 * SAM: Add warning at startup if not bound to localhost

2022-11-01 zzz
 * GeoIP 2022-11-01
 * SSU:
   - Fail SSU2 on all session request after retry errors
   - Temporarily ban peer after inbound handshake failure
   - Prefer in China

2022-10-19 zzz
 * Console: Register NavHelper with ClientAppManager as NavService
 * Debian: Change dependency from transitional package libservlet3.1-java
   to libjsp-api-java and libservlet-api-java
 * i2psnark: Register additional instances with NavService
 * SusiMail: Add icons to the buttons that were missing them (dark theme)

2022-10-17 zzz
 * Console: CSS fixes for lists in news entries
 * Tunnels: ConnectChecker fixes

2022-10-16 zzz
 * SSU2: Use from port in hole punch if different from relay response port

2022-10-15 zzz
 * i2psnark: Increase piece limit to 64K

2022-10-10 zzz
 * SSU2: Track recently-closed sessions (gitlab #370)

2022-09-28 zzz
 * Installer: Fix error on Windows when username contains a space (gitlab #367)
 * SSU2: Enable by default

2022-09-23 zzz
 * SSU2:
   - Fail handshakes while inside sync
   - Convert 1276 MTU to 1280 to workaround bug in 1.9.0
   - Ensure min packet size for pings

2022-09-20 zzz
 * i2ptunnel, eepget: Add support for SHA-256 digest proxy auth (RFC 7616)

2022-09-09 zzz
 * SSU2: Enable handling of ack-immediate flag by default

2022-09-07 zzz
 * SSU: Fallback processing for MTU detection
 * Transports: Don't rekey noise params on testnet

2022-09-06 zzz
 * NetDB: Fix reseeding when clock is skewed
 * SSU2: Don't publish or connect if our MTU becomes too small

2022-09-04 zzz
 * SusiDNS: Fix adding to empty address book

2022-09-03 zzz
 * NetDB: Query connected peers for their RI directly
 * UPnP: Fix opening IPv6 ports

2022-09-01 zzz
 * Router: Ensure database store message is processed before reply job (Gitlab #364)

2022-08-29 zzz
 * SSU2: Implement ack-immediate flag

2022-08-28 zzz
 * Console:
   - Add notification and summary bar info on deadlock
   - Linkify router hash even if not in netdb
 * Util: Add option to gzip router logs

2022-08-25 zzz
 * Router: Fix deadlock via rebuildRouterAddress() and UDPTransport
 * SSU2:
   - Implement path challenge and connection migration
   - Fix packets exceeding MTU by up to 3 bytes
   - Immediately fail session request containing zero token

2022-08-23 zzz
 * Router: Add deadlocks to event log

2022-08-22 1.9.0 (API 0.9.55) released

2022-08-10 zzz
 * SSU2: Enable for Android, ARM, and 2% of others

2022-08-06 zzz
 * GeoIP 2022-08
 * Router: Hopefully fix clock/job queue deadlock after clock shift

2022-08-05 zzz
 * SSU: Try to keep a mix of v1/v2 introducers

2022-08-04 zzz
 * i2ptunnel: New outproxy (new installs only)
 * SSU2: Block bob's IP in relay response from charlie

2022-08-02 zzz
 * SSU2: More Path challenge WIP

2022-07-31 zzz
 * SSU2: Add state lookup by conn ID

2022-07-29 zzz
 * LogManager: Prevent hangs at shutdown on Mac after dock right-click-quit (Gitlab #363)

2022-07-27 zzz
 * NetDB: Publish ff stats based on current caps, not previous
 * Router: Log warning if no family keys loaded
 * SSU: Decrease MTU only on retransmit of large packets
 * SSU2: Stub out path challenge

2022-07-26 zzz
 * SSU2: Send termination in response to termination

2022-07-25 zzz
 * SSU2: Fix bitfield shifts of 256 or more

2022-07-21 zzz
 * Console: Fix saving flat clients.config file

2022-07-19 zzz
 * GeoIP: Don't lookup route48 addresses
 * SSU:
   - Reduce max establishment time
   - Retransmit handshake messages faster and expire faster (SSU 1/2)
 * SSU2:
    - Shorten token expiration based on cache size
    - Retransmit session confirmed after receiving apparent retransmitted session created
    - Fix storage/checking of local firewalled IP address/port in token file

2022-07-17 zzz
 * SSU2:
   - More MTU fixes
   - Verify static key in RI
   - Don't put DateTime block after Termination block
   - Fix first message fail check

2022-07-15 zzz
 * SSU2:
   - MTU fixes
   - Send retry with termination on clock skew

2022-07-12 zzz
 * SSU2: Fail session if first outbound message fails

2022-07-10 zzz
 * SSU2: Fix NACK handling

2022-07-09 zzz
 * Console: Only display news if a new entry is found
 * SSU2: Support other reason codes in destroy message

2022-07-08 zzz
 * SSU: Initialize MTUs
 * SSU2: Persist SSU2 tokens
 * Transports: Don't lookup RI in wasUnreachable()

2022-07-05 zzz
 * SSU2: Fix peer test throttling

2022-07-04 zzz
 * Console: Add cancel button to netdb search form
 * NetDB: Lookup handling cleanups

2022-07-02 zzz
 * SSU: Remove copy of peers in idle timeout checker

2022-06-25 zzz
 * SSU: MTU fixes for IPv6 and SSU2

2022-06-24 zzz
 * SSU2: Peer test message 1 checks

2022-06-23 zzz
 * Debian: Update apparmor profile
 * JBigI: Drop 32-bit OSX libs

2022-06-22 zzz
 * SSU: PMTU improvements

2022-06-20 zzz
 * SSU2:
   - Fix overhead calculation for followon fragments
   - First fragments can be 5 bytes larger than followon fragments
   - Fix peer test connection ids

2022-06-19 zzz
 * SSU2:
   - Add delayed lookup of RI for relay and peer test
   - Don't delete empty ipv6 address at startup
 * Util: HostTxtParser CLI improvements

2022-06-17 zzz
 * Crypto: Fix equality checking of ECParameterSpecs
 * SusiDNS: Fix classloading on Java 11+
 * Util: ArraySet improvements, prep for use

2022-06-16 zzz
 * SSU2: Hole punch processing and fixes

2022-06-14 zzz
 * SSU2:
   - Add per-introducer relay state machine
   - Enable relay

2022-06-12 zzz
 * SSU2:
   - Fix peer test msg 1 signature
   - Relay fixes

2022-06-11 zzz
 * SSU: Don't send SSU1 relay request to SSU2 peer

2022-06-10 zzz
 * SSU: Fix for HMAC NPE take 2
 * SSU2: Continue work on relay

2022-06-08 zzz
 * NetDb: Bypass checks on lookups of our router hash
 * SSU: Request RI from introducers if missing
 * SSU2: Set timer to remove peer test state

2022-06-07 zzz
 * SSU: Ban IP on bad handshake signature
 * SSU2: Peer test fixes
 * Transport:
   - Don't requeue message after multiple failures
   - Don't remove from netdb after a failure

2022-06-06 zzz
 * Console: Add deadlock detector
 * SSU: Don't allow Android introducers
 * SSU2: Continue work on relay
 * SSU2: Peer test fixes

2022-06-03 zzz
 * SSU: Possible fix for rare HMAC NPE
 * Transports: Periodically send RI to connected peers
   (Gitlab ticket #356)

2022-06-02 zzz
 * SSU2: Relay partial implementation

2022-06-01 zzz
 * SSU2: Enable peer test

2022-05-30 zzz
 * SSLEepGet: Send Host header to HTTPS proxy

2022-05-29 zzz
 * SSU2: Remove role field from peer test block

2022-05-28 zzz
 * Console: Require full restart on transport enable/disable
 * Crypto: Handle conversion from Java JCA 15+ EdEC keys
 * I2CP: Only send one notification to each session listener
 * i2psnark: Fix DHT not restarting after router restart
 * i2psnark: Fix scrollbar hiding X box on Firefox 100
 * Router: Don't fail to start up on unchecked family key errors

2022-05-27 zzz
 * Streaming: Improve error message on unsupported sig type
 * UPnP: Don't bind HTTP listen sockets to all addresses at startup

2022-05-26 zzz
 * Addressbook: Add CLI handler

2022-05-25 zzz
 * Crypto: Throw checked exception from ElGamal
   so console key import reports the correct error

2022-05-23 1.8.0 (API 0.9.54) released

2022-05-19 zzz
 * Pull translations from Transifex

2022-05-17 zzz
 * i2psnark: Fix remaining size calculation causing tracker errors

2022-05-11 zzz
 * Transport: Fix thrashing of UPnP IPv6 listen sockets
 * Util: Rename modified apache classes (Gitlab ticket #353)

2022-05-02 zzz
 * GeoIP 2022-05-01
 * Tomcat 9.0.62

2022-04-27 zzz
 * SSU2: Peer test updates and fixes

2022-04-24 zzz
 * SSU: Publish empty IPv6 address when missing introducers
 * SSU2: Finish peer test implementation

2022-04-17 zzz
 * More soft restart fixes

2022-04-14 zzz
 * Startup: Don't set our RI loaded from disk if too old

2022-04-13 zzz
 * Router:
   - Reset uptime on soft restart
   - Don't rekey after failure to store our RI due to clock skew
   - Change comm system state during soft restart

2022-04-12 zzz
 * Console: Fix Sybil closest hash tabs
 * Transport: Fix UPnP deadlock
 * Tunnels: Don't build client tunnels less than min length

2022-04-11 zzz
 * I2CP: Fix external I2CP broken when session ID is 0

2022-04-05 zzz
 * SSU2: Fragmented Session Confirmed

2022-03-27 zzz
 * Crypto: Fix CertUtil loading EdDSA certs, check sigs
 * Router: Validate family sig at startup
 * SSU: Increase min pending establish states limit
 * SSU2: Misc. fixes, prep for fragmented RI

2022-03-26 zzz
 * Crypto: Add official EdDSA OIDs to provider
 * SSU: Reduce ack delay to minimize addition to measured RTT
 * SSU2: Hook in IMF Bloom filter to detect dups

2022-03-25 zzz
 * Console: Prevent creating a family that another router is using

2022-03-23 zzz
 * I2CP: Synch fixes
 * SSU2: Refactor tokens

2022-03-22 zzz
 * Router family fixes

2022-03-20 zzz
 * NetDB:
   - Refactor family validation
   - Remove duplicate store in FloodOnlyLookupMatchJob
   - Don't store an entry which is older

2022-03-18 zzz
 * Console: Fix rare IAE on destination sort
 * SSU2: Implement peer test state machine

2022-03-17 zzz
 * SSU: Peer Test refactor
 * SSU2: Relay and Peer Test WIP

2022-03-15 zzz
 * SSU2: Fixes

2022-03-13 zzz
 * SSU2: Fixes, stubs for relay and peer test (phase 2)

2022-03-12 zzz
 * SSU2: Fixes
 * Tunnels: Reduce build reply timeout

2022-03-11 zzz
 * i2psnark standalone: Add DTG

2022-03-10 zzz
 * SSU2: Fixes

2022-03-09 zzz
 * DTG: Add new ExternalMain class for app context use

2022-03-08 zzz
 * I2NP: Fix TunnelGatewayMessage.calculateWrittenLength()
 * SSU2: Fixes

2022-03-06 zzz
 * Console: Improve class selection on /configlogging
 * SSU2: Fixes

2022-03-04 zzz
 * Console: Add SSU version column to /peers
 * i2psnark: Add js theme preview
 * i2psnark standalone: Add more CLI messages, increase memory
 * NTCP: Fix port selection when SSU disabled
 * Transport: Fix wasUnreachable() for transports with alt style

2022-03-03 zzz
 * NetDB: Load reseed RI if newer than in-memory
 * NTCP: Start out reachable if SSU disabled

2022-03-02 zzz
 * SSU: Finish initial implementation of SSU2
   Unit tested only, testnet testing to follow
   Data phase retransmissions unimplemented

2022-03-01 zzz
 * NetDB: Add new reseeds
 * Util: More efficient detection of connectivity

2022-02-25 zzz
 * Sybil: Family analysis improvements

2022-02-24 zzz
 * SSU: SSU2 classes and keys (WIP)

2022-02-23 zzz
 * i2psnark: Load system mime types if available
 * SSU: More SSU2 prep and support (WIP)

2022-02-22 zzz
 * BOB: Remove source
 * Crypto: Prep for SSU2
 * NetDB: Prevent rare deadlock via FloodfillMonitorJob at startup
 * NTCP: Reduce max writer threads
 * SSU: PacketHandler cleanup (prep for SSU2)
 * SSU: Start of SSU2 support
 * Update: Add notification for new version
 * Util: Speed up PRNG nextInt() and nextLong()

2022-02-21 1.7.0 (API 0.9.53) released

2022-02-18 zzz
 * Update translations

2022-02-17 zzz
 * i2psnark standalone: Increase open files ulimit

2022-02-09 zzz
 * NTCP: Fixes for SSU disabled

2022-02-03 zzz
 * SSU: Don't bid on connection to buggy routers
 * Tunnels: Avoid buggy routers

2022-01-30 zzz
 * Reseed, DoH: Fixes for IPv6-only

2022-01-26 zzz
 * NTCP: Clock skew handling improvements

2022-01-25 zzz
 * Tunnels:
   - Enable tunnel testing by default
   - Use tunnel builds as a tunnel test
 * NTCP: Ban IP if RI signature fails
 * UDP: Pass priority through the packet builder,
   add priority to UDP-Sender queue

2022-01-21 zzz
 * Util: Fix leak of SimpleTimer2 shutdown task

2022-01-06 zzz
 * Router: Prevent deadlock at startup

2022-01-05 zzz
 * Plugins:
   - Fix console icon when consoleLinkURL is specified
     and different from the plugin name
   - Fix webapp classpath setting when the webapp name
     is different from the plugin name

2022-01-04 zzz
 * i2pcontrol: Send translated tunnel status string

2022-01-02 zzz
 * i2pcontrol: Handle more router states mapping to i2pcontrol states
 * i2ptunnel: Add hooks to get the session from the contoller

2021-12-28 zzz
 * Console: Partial string case-insensitive match for netdb family search
 * i2ptunnel: Add IRC filter support for IRCv3 message tags
 * NetDB:
   - StoreJob reliability improvements
   - Ensure tunnel diversity in lookup retries
   - Fix usage of dbResponseTime stat
   - Increase lookup throttle time
   - Don't requeue LS republish on failure if there is a newer LS

2021-12-27 zzz
 * Banlist: Increase ban time again for routers without netID
 * I2CP: Send DestroySession message when destroying session
         in client-side AppContext SimpleSession
 * i2psnark: Standalone fixes for router startup/shutdown

2021-12-23 zzz
 * i2psnark: Various standalone fixes

2021-12-21 zzz
 * Transport: Async NTCP writes (MR !43)

2021-12-18 zzz
 * Tunnels:
   - Restore support for IP restriction in client tunnels (MR !45)
   - Add support for IP restriction in exploratory tunnels
   - Do not allow failed tunnels to be rebuilt

2021-12-08 zzz
 * i2ptunnel: Refactor UDPTunnel, Streamr, and SOCKS UDP for I2CP ports

2021-12-07 zzz
 * Debian: Add explicit dependency on libservlet3.1-java (Debian #997213)

2021-12-05 zzz
 * DTG: Add notification enable/disable to menu
 * Router: Tweak shutdown messages

2021-12-04 zzz
 * Build: Fix minimum Java version in installer config
 * DTG:
   - Show I2P starting message
   - Show all CRIT log messages
   - Change to dark icon on Windows
 * i2psnark:
   - Format multiple lines in torrent comment
   - Notify completed downloads on DTG
 * SusiMail: Notify new messages on DTG

2021-12-03 zzz
 * i2psnark: Add torrent edit page
 * Tunnels:
   - Refactor build completion handling
   - Count consecutive build timeouts per-pool
   - Immediately fail outbound tunnel when connect
     to first hop fails

2021-12-01 zzz
 * DTG: Add notification service to display popup messages
 * Router: Reduce ban time for localhost addresses

2021-11-30 zzz
 * Build: Remove BOB from installer, updater, and clients.config
 * Console: NetDB search form improvements
 * i2ptunnel: Increase priority for IRC and standard tunnels

2021-11-29 1.6.1 (API 0.9.52) released

2021-11-29 zzz
 * Tunnels: Fix NPE in BuildHandler

2021-11-29 1.6.0 (not released)

2021-11-23 zzz
 * Tunnels:
   - Drop request if hop throttle exceeded by 50%
   - Revert banning peer in throttles

2021-11-21 zzz
 * Console: Drop peer when manually banned
 * Tunnels:
   - Ban peer on excessive build requests
   - Drop requests if previous or next peer is banned
 * Update: Drop peer when banlisted

2021-11-12 zzz
 * Tunnels: Improve build success when at conn limits

2021-11-09 zzz
 * GeoIP 2021-11-01

2021-11-09 zzz
 * Util: Update DoH server list

2021-10-23 zzz
 * Debian: Update JRE dependencies

2021-10-21 idk
 * Improve consistency between light and dark theme on Bandwidth Config Wizard

2021-10-20 zzz
 * SSU: Send Peer Test from Bob to Alice in-session

2021-10-13 zzz
 * Util: Recognize newer Intel processors

2021-10-11 zzz
 * Tomcat 9.0.54

2021-10-10 zzz
 * Jetty 9.3.30.v20211001

2021-10-05 zzz
 * NetDB: Reduce ban time for routers without netId

2021-10-03 zzz
 * Console: Add theme selection to wizard

2021-10-01 zzz
 * i2ptunnel: Fix enc type configuration logic

2021-09-30 zzz
 * Console: Add js to /configui to preview themes

2021-09-27 zzz
 * Router: Rekey all Android/ARM routers

2021-09-25 zzz
 * Tunnels:
   - Implement Bloom filter for short TBM
   - Reduce TBM Bloom filter size and interval for EC routers

2021-09-22 zzz
 * UDP: Replace ACKSender thread with per-PeerState ack timers

2021-09-10 zzz
 * I2CP: Don't call listener.readError() after external client disconnect

2021-09-05 zzz
 * Update: Get backup URLs from news feed

2021-08-28 zzz
 * Console: Catch error checking systray availability (gitlab issue #331)

2021-08-26 zzz
 * Debian: Fix dh_installdocs build error
 * Router: Increase rekey probability
 * Tunnels: Enable sending short build messages

2021-08-23 1.5.0 (API 0.9.51) released

2021-08-20 zzz
 * Update GeoIP and translations

2021-08-13 zzz
 * Crypto: Fix corruption of EC and DSA private keys on Java 17

2021-08-07 zzz
 * UPnP: Fix URL handling

2021-08-02 zzz
 * Console: Show restart button if there's an update
   to be handled by a post-processor

2021-07-30 zzz
 * Util: Update DoH server list

2021-07-28 zzz
 * Tunnels: Fixes for proposal 157

2021-07-23 zzz
 * Transport: Fix UPnP IPv6 NPE

2021-07-22 zzz
 * Tunnels: Fixes for proposal 157

2021-07-20 zzz
 * NetDB: Increase min ff version to 0.9.38

2021-07-18 zzz
 * Tunnels: Updates for proposal 157

2021-07-07 zzz
 * Streaming: Reduce immediate ack delay

2021-07-02 zzz
 * UPnP: IPv6 address validation fix

2021-06-22 zzz
 * Tests: Fix duplicate classes in i2ptest.jar
 * Tunnels: Changes for new build messages (Prop. 157)

2021-06-20 zzz
 * Jetty: Case-insensitive sort on directory listing, put directories first

2021-06-18 zzz
 * Console: Add Permissions-Policy header
 * SSU: Fix handling of bad peer test responses
 * Transport: Remove 4/6 caps config

2021-06-16 zzz
 * Router: Increase key pool sizes for slow machines

2021-06-13 zzz
 * Tests: Fix and expand BuildMessageTestStandalone
 * Tunnels: Continue work on new build messages (proposal 157)

2021-06-11 zzz
 * UPnP: Bind to IPv6 addresses for search responses

2021-06-10 zzz
 * Updates:
   - Add preliminary support for dmg/exe updates
   - Make backup news URL configurable (see gitlab MR !33)

2021-06-08 zzz
 * NetDB: Prevent rare deadlock in rebuildRouterInfo()
 * Tunnels:
   - More work on short tunnel build messages (proposal 157)
   - Fix compare logic in ITBM parser (ticket #2814)
   - Extend use of high cap peers in expl. tunnels at startup, after extended downtime
   - Switch from SHA256 to SipHash for peer ordering

2021-06-01 zzz
 * i2psnark: Fix autostart for magnets
 * Router: Fix JobQueue getLastJobBegin() and getLastJobEnd() (ticket #2809)

2021-05-23 zzz
 * UPnP: Fix IPv6 address check (ticket #2811)

2021-05-21 zzz
 * Router: Increase rekey probability
 * RRD4J 3.8

* 2021-05-18 0.9.50 released

2021-05-14 zzz
 * SAM: Remove ancient client demo code
 * Update Translations

2021-05-10 zzz
 * Sybil: Fix retention of analysis files when configured
   to never delete

2021-05-07 zzz
 * Console: /configpeer improvements

2021-05-04 zzz
 * GeoIP 2021-05

2021-05-02 zzz
 * Console: Update bug report URLs

2021-04-25 zzz
 * Console: Add author for initial news

2021-04-24 zzz
 * Jetty: Patch for CVE-2021-28165 Jetty #6072 -
   Jetty server high CPU when client send data length > 17408
 * SusiMail: Fix infinite loop in decoder on malformed input

2021-04-24 zlatinb
 * SusiMail:
   - Fix stream closed exception reading new mail
     (trac ticket #2202, gitlab ticket #17)
   - Fix corruption of large messages (ticket #2765)

2021-04-23 idk
 * Router: Fix update on Windows from very old versions (gitlab ticket #16)

2021-04-20 zzz
 * NTCP:
   - Set outbound addresses at startup when force-firewalled
   - More NTCP1 removal cleanup
 * SSU:
   - Fix setting addresses from interfaces at startup
   - Don't start peer test when shutting down

2021-04-18 zzz
 * Proxy: Decode IDN hostnames in error pages

2021-04-17 zzz
 * Transport: IPv6 state transition fixes

2021-04-12 zzz
 * SSU: Fix peer test getting stuck

2021-04-11 zzz
 * Proxy: Precompress error page CSS
 * SSU: IPv6-only fixes

2021-04-09 zzz
 * Router: Fixes for setting up config dir in embedded applications

2021-04-08 zzz
 * Debian: Fix link to compiler jar (Debian ticket #986474)
 * SSU: IPv6 introducer fixes

2021-04-05 zzz
 * Build: Remove launcher code
 * Console: Convert update versions to times for debug page
 * Sybil: Register blocklist version with update manager

2021-04-04 zzz
 * Tunnels: Fix timestamp checking for ECIES records

2021-04-03 zzz
 * SAM: Remove subsessions when primary session closes
 * SSU: Remove restrictions on IPv6 introducers (prop. 158)

2021-04-02 zzz
 * SSU: Fix dup IPv6 introducers

2021-04-01 zzz
 * NetDB: Negative cache LS received with zero leases

2021-03-31 zzz
 * SSU: Update address when IPv6 introducers change (prop. 158)

2021-03-30 zzz
 * Transport: Fix NTCP removing IPv4 address when SSU removes IPv6 address

2021-03-29 zzz
 * SSU: Don't request introducers when hidden
 * Transport: Don't open UPnP ports when hidden or force-firewalled

2021-03-27 zzz
 * Router: Fix decryption of blinded leasesets

2021-03-25 zzz
 * i2ptunnel: Force non-SSL socket to local target for SSL ports
 * SSU: Implement IPv6 introductions (proposal 158)
 * Transports: Don't open UPnP ports for disabled IPv4/v6

2021-03-23 zzz
 * NetDB: Sort published addresses for consistency
 * SSU: Fix IPv6 transition from firewalled to non-firewalled

2021-03-22 zzz
 * Sybil: Persist blocklist
 * Tunnels: Don't count established routers as new in OBEP throttle (ticket #2245)

2021-03-20 zzz
 * Tunnels: Fix RED dropping for part. tunnels (Gitlab MR #24)

2021-03-18 zzz
 * Util:
   - DoH: Update server list
   - EepGet timeout fixes
   - EepHead: Fix failure if headers specify chunked
   - SSLEepGet: Specify hostname for SSL socket when using DoH
   - SSLEepGet: Use DoH by default (reseeding) (ticket #2201)

2021-03-16 zzz
 * Console: Fix netdb SSU caps search
 * Transports: Enable 4/6 caps

2021-03-15 zzz
 * SSU: Fix IPv6 addresses not being removed on some state transitions
 * Util: Don't call out to InetAddress for IP parsing

2021-03-13 zzz
 * Console: Limit share to 90% max

2021-03-11 zzz
 * NetDB: Queue RI file deletion and delete in a single thread
 * SSU: Limit port changes

2021-03-09 zzz
 * Throttle: Don't do exponential calculation unless necessary
 * Util: Consolidate dup BandwidthEstimator interfaces

2021-03-08 zzz
 * NTCP: Remove NTCP 1 suppport
 * SSU: Increase CoDel drop threshold at UDPSender queue

2021-03-06 zzz
 * SSU: Require confirmation for IPv6 firewalled state transitions

2021-03-04 zzz
 * I2CP: More prep for different release and API versions
 * i2ptunnel: Add missing button icons for proxy forms
 * Router: Increase rekey probability
 * Transports: Prefer IPv6 temporary addresses if the kernel does

2021-03-03 zzz
 * NTCP: Fix reachability status when force-firewalled
 * SSU:
   - Only advertise 'C' cap if we can really introduce
   - Only ask for relay tag if we don't have enough
   - Fix transition out of IPv4 firewalled after UPnP success
   - Fix validation of current introducers
   - Don't publish IPv4 address at startup when force-firewalled
   - Publish empty '4' address if firewalled and no introducers
   - Publish empty '6' address if firewalled
   - 4/6 caps fixes
   - Increase hole punch rate limit
 * UPnP: Fix retention of deprecated addresses

2021-03-02 zzz
 * UPnP:
   - Limit event subscription time
   - Subscribe to IPv6 service also

2021-03-01 zzz
 * UPnP:
   - Fix mappings not being renewed before expiration
   - IPv6 port forwarding fixes
   - Continue to forward deprecated addresses for a while

2021-02-28 zzz
 * SSU: Fix set of states requiring address confirmation
 * UPnP:
   - Add support for IPv6 firewall addresses
   - Add support for forwarding IPv6 addresses

2021-02-27 zzz
 * UPnP: Move IPv6 checks from Parser to ControlPoint

2021-02-25 zzz
 * NetDB: Fix NPE validating expired blinded LS2
 * NTCP: Don't publish IP at startup when configured as firewalled
 * SSU: Enable RelayRequest over IPv6
 * Transports: Adjust conn limits for some platforms

2021-02-24 zzz
 * Jetty: Fix detection of SSL connector
 * SSU: Avoid outbound connections to buggy routers

2021-02-23 zzz
 * Build: Prep for different release and API versions
 * Transports: Add 4/6 transport caps

2021-02-21 zzz
 * Console: List all Jetty servers in sidebar
 * Profiles: Disable peer test (ticket #2456) and tunnel test response time stat

2021-02-20 zzz
 * Router: Don't rekey previous ECIES every restart on ARM

2021-02-19 zzz
 * i2psnark: Fix theme selection

2021-02-18 zzz
 * Build: Remove empty jars and wars from installers
 * NTP: Year 2036 fixes (gitlab ticket #12)

* 2021-02-17 0.9.49 released

2021-02-15 zzz
 * Build: Test script fixes
 * Pull translations from Transifex

2021-02-13 zzz
 * Util: Update router su3 keys

2021-02-10 zzz
 * Util: Fix up KeyStoreUtil CLI

2021-02-06 zzz
 * Proxy: Update default jump servers
 * NetDB:
   - Ensure RI is published after netdb is initialized
   - Only rewrite blind cache at shutdown if changed
 * NTCP: Don't publish saved local address when hidden

2021-02-05 zzz
 * GeoIP update

2021-02-03 zzz
 * Tunnels: Peer selection changes

2021-01-31 zzz
 * Router:
   - Update list of hidden mode countries
   - Force hidden mode routers to LU
   - Don't publish stats in first hour of uptime
   - Add H.323 to invalid ports list
   - Improve crashed message in event log
 * Util: Improved classification of public/local IPv6 addresses

2021-01-30 zzz
 * UPnP: Fix NPE (android gitlab ticket #1)

2021-01-29 zzz
 * Tests: Addresses tests
 * Util: Don't allow empty string as valid IP

2021-01-24 zzz
 * Tunnels: Update profiles for tunnel peers on corrupt message at endpoint

2021-01-23 zzz
 * Console: New readme translations
 * Eepsite: New help translations

2021-01-22 zzz
 * Build: Drop old Makefile.gcj
 * Console: Drop old proof page

2021-01-20 zzz
 * Console: Fix link to UPnP status
 * SSU: Fix deadlock with router restart
 * Tests: ConvertToHash tests

2021-01-14 zzz
 * Router:
   - Change default encryption type to ECIES-X25519 (proposal 156)
   - Move Sybil subsystem from console to router
   - Limit max addresses in RI

2021-01-13 zzz
 * Jetty: Fix URI in request logs

2021-01-12 zzz
 * i2psnark: Don't decrement downloaded counter after receiving bad piece

2021-01-11 zzz
 * Console: Delete rrd files for no-longer-configured stats at startup

2021-01-08 zzz
 * i2ptunnel: Disable shared clients (DSA) (part 2)
 * SSU: Fix bandwidth estimator deadlock (ticket #2798)

2021-01-07 zzz
 * Router: Disable reseeding and NTP in vmCommSystem
 * SSU: Implement fast retransmit (tickets #2427, #2668)

2021-01-05 zzz
 * Console: Reduce limit of concurrent graph generation on slow devices
 * i2psnark: Add ability to remove I2CP options
 * SusiDNS: Hide last-modified on details page if empty

2021-01-04 zzz
 * Build:
   - Gradle build fixes
   - Update external javadoc links

2021-01-02 zzz
 * Sybil: Reduce default threshold
 * Tunnels: Improve error handling at OBEP

2020-12-31 zzz
 * Console: Use local time on graphs by default
 * NetDB:
   - Drop lookups with replies going to us
   - Extend lookup expire time

2020-12-30 zzz
 * Ratchet: Fix N pattern for ECIES build replies

2020-12-29 zzz
 * Crypto: Cache AES Ciphers
 * i2ptunnel: Disable shared clients (DSA)
 * NetDB: Verify RI stores for a while after starting
 * Ratchet: mixHash() not required after message for N pattern

2020-12-28 zzz
 * Debian: Add Java 15/16 to control

2020-12-27 zzz
 * SSU: Fix restoration of window after failed message

2020-12-26 zzz
 * Console:
   - Move flag overrides to war
   - Move initial news to jar
 * Router: Move some geoip files to jars

2020-12-24 zzz
 * I2CP: Fix requesting leasesets for subsessions (ticket #2458)

2020-12-23 zzz
 * Crypto: Increase ratchet tag window
 * I2CP: Fix encrypted leaseset for ECIES and offline keys
 * i2ptunnel: Fix writing config file twice on save

2020-12-22 zzz
 * Console:
   - Add netdb search by enc. type
   - Move readme files to war

2020-12-21 zzz
 * SSU: Fix partial acks not being sent

2020-12-20 zzz
 * Console: Fix theme selection
 * Proxy: Move error page resources to jar
 * SSU: Westwood+ congestion control (ticket #2427)

2020-12-18 zzz
 * Crypto: Fix use after free (ticket #2797)

2020-12-17 zzz
 * SSU: Send subset of fragments (ticket #2427)

2020-12-16 zzz
 * NetDB: Fix rare floodfill monitor NPE
 * SSU: Fix occasional high CPU usage

2020-12-11 zzz
 * Router (proposal 156):
   - Change router ECIES SKM to use N pattern
   - Allow encrypted messages to ECIES routers
   - Allow ECIES routers to become floodfill
   - Add XDH factory to VM comm system for tests

2020-12-06 zzz
 * Console, webapps: Move web resources to wars
 * i2psnark:
   - Add support for web seeds (ticket #2780)
   - Preserve file attribute strings in metainfo
 * Streaming: Add Retry-After header to throttle response
 * Util: Change DoH to RFC 8484 protocol (ticket #2201)

* 2020-12-01 0.9.48 released

2020-11-26 zzz
 * NTCP: Enable nodelay by default
 * SSU: Don't wakeup OMF after ack if no more messages are pending

2020-11-24 zzz
 * Build: Fix targets for git
 * NTCP: Add nodelay option for testing

2020-11-23 zzz
 * Console: Serve default favicon.ico
 * i2pcontrol: Basic HTML fixes and HTTP headers for static pages

2020-11-22 zzz
 * NetDB: Increase min FF version for LS lookups

2020-11-21 zzz
 * i2psnark: Remove old default opentrackers
 * Proxy:
   - Remove old default jump servers
   - Fix CSP for conflict error page

2020-11-20 zzz
 * NetDB: Increase exploration rate when hidden
 * Tomcat 9.0.40

2020-11-19 zzz
 * Build: Reproducible build fix (ticket #2279)
 * Crypto: Adjust Java key cache sizes
 * Debian: Update apparmor profile for usrmerge

2020-11-17 zzz
 * Jetty:
   - Update to 9.3.29.v20201019
   - Patch to fix console not starting on Java 11.0.9.1
 * NetDB: Disable sending encrypted messages to ECIES routers


----------------

EARLIER HISTORY IS AVAILABLE IN THE SOURCE PACKAGE