Remove hardcoded redundancy, fix allow_missing calculation

pull/2730/head
Bogdan Opanchuk 2021-09-07 12:37:02 -07:00
parent 66175a04da
commit 1428a3d4aa
1 changed files with 5 additions and 6 deletions

View File

@ -270,16 +270,15 @@ class RetrievalClient:
if unknown_ursulas:
self._learner.learn_about_specific_nodes(unknown_ursulas)
# How many nodes over the threshold we want to know (just in case)
redundancy = 0
# If we know enough to decrypt, we can proceed.
known_ursulas = ursulas_in_map & all_known_ursulas
if len(known_ursulas) - redundancy >= treasure_map.threshold:
if len(known_ursulas) >= treasure_map.threshold:
return
allow_missing = max(len(unknown_ursulas) - redundancy, 0)
# | <--- shares ---> |
# | <--- threshold ---> | <--- allow_missing ---> |
# | <--- known_ursulas ---> | <--- unknown_ursulas ---> |
allow_missing = len(treasure_map.destinations) - treasure_map.threshold
self._learner.block_until_specific_nodes_are_known(unknown_ursulas,
timeout=timeout,
allow_missing=allow_missing,