[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [stem/master] Consensus didn't expect shared_randomness_*_reveal_count to be present
commit 76e8eb5f766639081b76d092d6ea0d784bec5f59
Author: Damian Johnson <atagar@xxxxxxxxxxxxxx>
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)
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits