[tor-commits] [sbws/master] chg: v3bwfile: Percentage difference with consensus
juga at torproject.org
juga at torproject.org
Mon Jun 29 07:50:40 UTC 2020
commit d4fe347c8154335049898a4e687d5cf33e974f24
Author: juga0 <juga at riseup.net>
Date: Tue May 19 08:11:11 2020 +0000
chg: v3bwfile: Percentage difference with consensus
---
sbws/lib/v3bwfile.py | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/sbws/lib/v3bwfile.py b/sbws/lib/v3bwfile.py
index d64712c..263a285 100644
--- a/sbws/lib/v3bwfile.py
+++ b/sbws/lib/v3bwfile.py
@@ -1077,7 +1077,9 @@ class V3BWFile(object):
bw_lines = cls.bw_kb(bw_lines_raw)
# log.debug(bw_lines[-1])
# Not using the result for now, just warning
- cls.is_max_bw_diff_perc_reached(bw_lines, max_bw_diff_perc)
+ cls.is_max_bw_diff_perc_reached(
+ bw_lines, max_bw_diff_perc, router_statuses_d
+ )
header.add_time_report_half_network()
f = cls(header, bw_lines + bw_lines_excluded)
return f
@@ -1159,18 +1161,22 @@ class V3BWFile(object):
@staticmethod
def is_max_bw_diff_perc_reached(bw_lines,
- max_bw_diff_perc=MAX_BW_DIFF_PERC):
- # Since old versions were not storing consensus bandwidth, use getattr.
- sum_consensus_bw = sum([l.consensus_bandwidth for l in bw_lines
- if getattr(l, 'consensus_bandwidth', None)])
+ max_bw_diff_perc=MAX_BW_DIFF_PERC,
+ router_statuses_d=None):
+ if router_statuses_d:
+ sum_consensus_bw = sum(list(map(
+ lambda x: x.bandwidth * 1000,
+ router_statuses_d.values()
+ )))
+ else:
+ sum_consensus_bw = sum([
+ l.consensus_bandwidth for l in bw_lines
+ if getattr(l, 'consensus_bandwidth', None)
+ ])
# Because the scaled bandwidth is in KB, but not the stored consensus
# bandwidth, multiply by 1000.
- # Do not count 1 bandwidths for the relays that were excluded
- # and exclude also the bw of the relays that did not stored consensus,
- # since they are not included either in the sum of the consensus.
- sum_bw = sum([l.bw for l in bw_lines
- if getattr(l, 'consensus_bandwidth', None)
- and getattr(l, 'unmeasured', 0) == 0]) * 1000
+ # Do not count the bandwidths for the relays that were excluded
+ sum_bw = sum([l.bw for l in bw_lines if getattr(l, "vote", 1)]) * 1000
# Percentage difference
diff_perc = (
abs(sum_consensus_bw - sum_bw)
More information about the tor-commits
mailing list