Improve relay picker

This commit is contained in:
Mike Dilger 2022-12-28 18:57:27 +13:00
parent cfbcbfd7de
commit fab8c7400b

View File

@ -42,8 +42,20 @@ impl RelayPicker {
// Keep score // Keep score
let mut score: Vec<u64> = [0].repeat(self.relays.len()); let mut score: Vec<u64> = [0].repeat(self.relays.len());
// Count how many keys a relay covers, to use as part of it's score // Count how many needed keys a relay covers, to use as part of it's score
for person_relay in self.person_relays.iter() { for person_relay in self.person_relays.iter() {
// Do not increase score if person has no more pubkey_counts
if let Some(pkc) = self
.pubkey_counts
.get(&PublicKeyHex(person_relay.person.clone()))
{
if *pkc == 0 {
continue;
}
} else {
continue; // not even in there.
}
let i = match self let i = match self
.relays .relays
.iter() .iter()
@ -52,6 +64,7 @@ impl RelayPicker {
Some(index) => index, Some(index) => index,
None => continue, // we don't have that relay? None => continue, // we don't have that relay?
}; };
score[i] += 1; score[i] += 1;
} }