http://notbob.i2p/cgi-bin/blog.cgi?page=1139
I count bad events (like failures to establish connection, invalid packets) and good events (effective payload received) per ip address. With time, when the table gets full, I aggregate them to broader networks. GetRandomRouter in NetDB selects a set of routers as if there were several calls to it, then consults the reputation system about each ip address.