The question boils down to why do the vast majority of nodes on an announcement chain reject the announcement. The answer appears to be:
Most of the time, we reject a new node (from path folding or an announcement) because we only drop a connected peer every 10 minutes, even if it is isDroppable(). Of course, we drop disconnected isDroppable() peers (= peers that disconnected more than a few minutes ago) very quickly, but most peers are usually connected. Generally there are peers we could drop according to isDroppable() (more heuristics, e.g. don't drop a node if we added it less than 5 minutes ago), but we don't drop them because of the 10 minute throttle. Also, we only drop a connected peer after every 10 successful requests. This appears not to be very significant on my node however. Thoughts? evanbd suggested a token bucket for the intervals in OpennetManager - we have two, this one and one for adding old-opennet-peers. This would allow more burstiness. Or we could scrap the 10 minute interval altogether (or cut it drastically) and rely on the 10 successful requests criterion? Anything we do to opennet may disrupt the network if we get it wrong, and even if it's right it may take time to settle... -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 835 bytes Desc: This is a digitally signed message part. URL: <https://emu.freenetproject.org/pipermail/devl/attachments/20091127/7ff4a0c0/attachment.pgp>
