[stem/master] Consensus didn't expect shared_randomness_*_reveal_count to be present

commit 76e8eb5f766639081b76d092d6ea0d784bec5f59 Author: Damian Johnson <atagar@torproject.org> Date: Sat Jan 27 13:11:53 2018 -0800 Consensus didn't expect shared_randomness_*_reveal_count to be present Oops. When we re-added the shared_randomness_*_value in... https://gitweb.torproject.org/stem.git/commit/?id=d713b29 ... we didn't include the shared_randomness_*_reveal_count which are part of the same lines. These attributes *were* available when the shared_randomness_*_value was fetched first due to lazy loading, but they were unavailable before that. Caught by Tom on... https://trac.torproject.org/projects/tor/ticket/25046 --- docs/change_log.rst | 1 + stem/descriptor/networkstatus.py | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/docs/change_log.rst b/docs/change_log.rst index fcfc0115..5a209b43 100644 --- a/docs/change_log.rst +++ b/docs/change_log.rst @@ -55,6 +55,7 @@ The following are only available within Stem's `git repository * `Fallback directory v2 support <https://lists.torproject.org/pipermail/tor-dev/2017-December/012721.html>`_, which adds *nickname* and *extrainfo* * Reduced maximum descriptors fetched by the remote module to match tor's new limit (:trac:`24743`) + * Consensus **shared_randomness_*_reveal_count** attributes undocumented, and unavailable if retrieved before their corresponding shared_randomness_*_value attribute (:trac:`25046`) * **Website** diff --git a/stem/descriptor/networkstatus.py b/stem/descriptor/networkstatus.py index 9f14d4f8..3d3a33a9 100644 --- a/stem/descriptor/networkstatus.py +++ b/stem/descriptor/networkstatus.py @@ -826,8 +826,13 @@ class NetworkStatusDocumentV3(NetworkStatusDocument): :var int consensus_method: method version used to generate this consensus :var dict bandwidth_weights: dict of weight(str) => value(int) mappings + :var int shared_randomness_current_reveal_count: number of commitments + used to generate the current shared random value :var str shared_randomness_current_value: base64 encoded current shared random value + + :var int shared_randomness_previous_reveal_count: number of commitments + used to generate the last shared random value :var str shared_randomness_previous_value: base64 encoded last shared random value @@ -860,8 +865,15 @@ class NetworkStatusDocumentV3(NetworkStatusDocument): required_client_protocols, and required_relay_protocols. .. versionchanged:: 1.6.0 - The shared randomness attributes were misdocumented in the tor spec and as - such never set. They're now an attribute of **directory_authorities**. + The is_shared_randomness_participate and shared_randomness_commitments + were misdocumented in the tor spec and as such never set. They're now an + attribute of votes in the **directory_authorities**. + + .. versionchanged:: 1.7.0 + The shared_randomness_current_reveal_count and + shared_randomness_previous_reveal_count attributes were undocumented and + not provided properly if retrieved before their shred_randomness_*_value + counterpart. """ ATTRIBUTES = { @@ -888,7 +900,9 @@ class NetworkStatusDocumentV3(NetworkStatusDocument): 'required_client_protocols': ({}, _parse_required_client_protocols_line), 'required_relay_protocols': ({}, _parse_required_relay_protocols_line), 'params': ({}, _parse_header_parameters_line), + 'shared_randomness_previous_reveal_count': (None, _parse_shared_rand_previous_value), 'shared_randomness_previous_value': (None, _parse_shared_rand_previous_value), + 'shared_randomness_current_reveal_count': (None, _parse_shared_rand_current_value), 'shared_randomness_current_value': (None, _parse_shared_rand_current_value), 'signatures': ([], _parse_footer_directory_signature_line), @@ -1025,8 +1039,6 @@ class NetworkStatusDocumentV3(NetworkStatusDocument): self.is_shared_randomness_participate = False self.shared_randomness_commitments = [] - self.shared_randomness_previous_reveal_count = None - self.shared_randomness_current_reveal_count = None self._default_params = default_params self._header(document_file, validate)
participants (1)
-
atagar@torproject.org