mirror of
https://github.com/vacp2p/research.git
synced 2026-01-09 13:47:59 -05:00
mailserver bloom filter bug
This commit is contained in:
@@ -117,7 +117,7 @@ Assumptions:
|
||||
<span style="filter: contrast(70%) brightness(190%);color:red;">For 1m users, receiving bandwidth is 190.9GB/day</span>
|
||||
|
||||
------------------------------------------------------------
|
||||
<span style="filter: contrast(70%) brightness(190%);color:fuchsia;">Case 7. Case 6 + Mailserver case under ideal conditions and mostly offline</span>
|
||||
<span style="filter: contrast(70%) brightness(190%);color:fuchsia;">Case 7. Case 6 + Mailserver case under good conditions with smaller bloom false positive and mostly offline</span>
|
||||
|
||||
Assumptions:
|
||||
- A1. Envelope size (static): 1024kb
|
||||
@@ -135,11 +135,11 @@ Assumptions:
|
||||
- A16. No bad envelopes, bad PoW, expired, etc (static).
|
||||
- A17. User is offline p% of the time (static) p=0.9
|
||||
- A18. No bad request, duplicate messages for mailservers, and overlap/retires are perfect (static).
|
||||
- A19. Mailserver only fetches topic interested in.
|
||||
- A19. Mailserver requests can change false positive rate to be p=0.01
|
||||
|
||||
<span style="filter: contrast(70%) brightness(190%);color:#3333FF;">For 100 users, receiving bandwidth is 3.0MB/day</span>
|
||||
<span style="filter: contrast(70%) brightness(190%);color:red;">For 10k users, receiving bandwidth is 196.9MB/day</span>
|
||||
<span style="filter: contrast(70%) brightness(190%);color:red;">For 1m users, receiving bandwidth is 19.2GB/day</span>
|
||||
<span style="filter: contrast(70%) brightness(190%);color:#3333FF;">For 100 users, receiving bandwidth is 3.9MB/day</span>
|
||||
<span style="filter: contrast(70%) brightness(190%);color:red;">For 10k users, receiving bandwidth is 284.8MB/day</span>
|
||||
<span style="filter: contrast(70%) brightness(190%);color:red;">For 1m users, receiving bandwidth is 27.8GB/day</span>
|
||||
|
||||
------------------------------------------------------------
|
||||
<span style="filter: contrast(70%) brightness(190%);color:fuchsia;">Case 8. Waka mode - no metadata protection with bloom filter and one node connected; still static shard</span>
|
||||
|
||||
@@ -132,6 +132,9 @@ benign_duplicate_receives = 2
|
||||
# Also note Whisper TTL, so when coming online you will get more envelopes
|
||||
offline_time_proportion = 0.9
|
||||
|
||||
# Changable bloom filter, assume 1% can be fixed with multiple queries
|
||||
bloom_false_positive_2 = 0.01
|
||||
|
||||
# Assumption strings
|
||||
a1 = "- A1. Envelope size (static): " + str(envelope_size) + "kb"
|
||||
a2 = "- A2. Envelopes / message (static): " + str(envelopes_per_message)
|
||||
@@ -151,7 +154,7 @@ a15 = "- A15. Benign duplicate receives factor (static): " + str(benign_duplicat
|
||||
a16 = "- A16. No bad envelopes, bad PoW, expired, etc (static)."
|
||||
a17 = "- A17. User is offline p% of the time (static) p=" + str(offline_time_proportion)
|
||||
a18 = "- A18. No bad request, duplicate messages for mailservers, and overlap/retires are perfect (static)."
|
||||
a19 = "- A19. Mailserver only fetches topic interested in."
|
||||
a19 = "- A19. Mailserver requests can change false positive rate to be p=" + str(bloom_false_positive_2)
|
||||
|
||||
# Cases
|
||||
#-----------------------------------------------------------
|
||||
@@ -306,15 +309,18 @@ def case7():
|
||||
|
||||
false_positive_load = network_load * bloom_false_positive
|
||||
|
||||
# mailserver splits up bloom filter into 1% false positive (p=f(m,n,k))
|
||||
false_positive_load_2 = network_load * bloom_false_positive_2
|
||||
|
||||
online_traffic = (total_load + false_positive_load) * benign_duplicate_receives
|
||||
# fetching happens with topics, also no duplicates
|
||||
offline_traffic = total_load
|
||||
offline_traffic = total_load + false_positive_load_2
|
||||
|
||||
total_traffic = (offline_traffic * offline_time_proportion) + \
|
||||
(online_traffic * (1 - offline_time_proportion))
|
||||
return total_traffic
|
||||
|
||||
print_header("Case 7. Case 6 + Mailserver case under ideal conditions and mostly offline")
|
||||
print_header("Case 7. Case 6 + Mailserver case under good conditions with smaller bloom false positive and mostly offline")
|
||||
print_assumptions([a1, a2, a3, a6, a7, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19])
|
||||
print_usage(load_users)
|
||||
print("------------------------------------------------------------")
|
||||
|
||||
Reference in New Issue
Block a user