As discussed in Issue 25, we have a problem when malicious players
wont send us their shares: the incoming_data dictionaries will keep
holding on to the Deferreds that has been created in expectation of
the shares needed.
In most cases we will be able to detect when we have moved on and when
the Deferreds can be deleted. An unexpect_data method could be called
to delete the data in that case.
But if a player sends us data out of the blue, then what to do? We
must be able to distinguish junk data from legitimete data, but
currrently we just collect the data and store it away in one of the
incoming_data dictionaries. That makes for a simple DOS attack...
|