On Jun 18, 2009, at 9:07 PM, Matthew Toseland wrote:

CHUNK SIZE PROBLEM:
===================

Current plans call to split the keyspace up for each datastore, and assign keys to a manageable sized bloom filter for a section of the (hashed) keyspace. These can then be transferred separately, are useful immediately after being transferred, can be juggled in memory, etc. However, we cannot guarantee that the populaion of such a chunk will be small enough for the filter to be effective. Solving this requires either moving the boundaries dynamically (possibly continually), or making the chunks significantly larger than they would need to be in an ideal world.

Right... but I believe we prescribed that the split would be based on a hashed value of the key and not by logical keyspace location to avoid disproportionate chunks.

That is to say... ideally a node is going to get a disporportionate amount of cache/store data about it's network location.

STORE_SIZE/MAX_BLOOM_CHUNK -> N_CHUNKS
H(key, N_CHUNKS) => n & (0 < n < N)
CHUNK[n].add(key)

Wouldn't the problem be reduced to finding a well-scattering hash function then?

Surely even hashing the byte-wise double value of the location would be sufficient, I suppose that would look more like this...

H(key) => location
H(location)/N_CHUNKS => n


LOCAL SECURITY ISSUES: AFTER-THE-FACT TRACING BY POWERFUL ATTACKERS
===================================================================

We have IMHO adequately addressed the network level security issues, by not caching until HTL has reduced a bit.

What about an evil peer sending a "full" filter to try and collect all traffic? Have we discussed that?

Perhaps a backoff on a bloom filter false positive would kill such an attack, but may interfere with initial testing.

--
Robert Hailey

_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to