- Do not send tokens to all peers
- Only send tokens with good termination reasons
- Do not send tokens to low-quality peers as determined during handshake
- Do not send tokens if near transport limits
- Do not increase relay token lifetime from 1m to 2m
- Favor session req over token req if congested
- Change several ProfileManager methods so they don't create a profile
if not previously existing
- Pass RI caps to heardAbout() to centralize creation decision
- Don't create profile for low-speed or congested caps
- Add deprecations for unused methods, to be removed
- Document behavior
This primarily benefits floodfills. Little change seen on non-floodfills.
Test results on floodfill:
- Profile creation/expiration rate reduced by 20x
- Avg. profile count reduced by 85%
- Memory usage down by 30%
with assistance from: I2PPlus
If we got msg 4 but not the RI, but we got msg 5 while waiting,
we can still declare success and return OK instead of UNKNOWN,
even though we never sent msg 6. See spec.
where netdb has not registered a DatabaseStoreMessage job builder.
- Add shortcut for DSRM and DeliveryStatus that do not have job builders.
- Log tweaks
reported by: postman
- strict checks in Data, DeliveryStatus, Garlic, TunnelData
- check if we did read over and throw in DatabaseLookup, DatabaseSearchReply
- fix potential leaseset read overrun in DatabaseStore
- convert AIOOBE to I2NPMessageException in I2NPMessageImpl
DLM reported by: bottomlineit.co.za
Was in SSU 1 code but was never adapted for SSU2 and then got deleted.
Send limit reject code when throttled.
Add conn limit check.
Limits same as previously, to be reviewed and adjusted.
reported by: bottomlineit.co.za
Based on measurement of actual relay requests, typ. rate is calculated
as 6/minute total when at the relaying limit of 100 routers,
or 24 in the 4-minute skew window. Increase cache size from 8 to 32.
reported by: bottomlineit.co.za