commit 63d38f33ecfeea6750c7b18d62a3d6a2fcabd5b7
Author: Tom Ritter <t...@ritter.vg>
Date:   Fri Jan 6 12:39:03 2017 -0600

    Add Shared Random, closes 20763
---
 website.py | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)

diff --git a/website.py b/website.py
index 0a2b4fe..6b8e28d 100755
--- a/website.py
+++ b/website.py
@@ -40,6 +40,7 @@ class WebsiteWriter:
                self._write_recommended_versions()
                self._write_consensus_parameters()
                self._write_authority_keys()
+               self._write_shared_random()
                self._write_protocols()
                self._write_bandwidth_scanner_status(True)
                self._write_fallback_directory_status(True)
@@ -602,6 +603,90 @@ class WebsiteWriter:
                        + "</p>\n")
 
        
#-----------------------------------------------------------------------------------------
+       def sharedRandomToStr(self, sr):
+               s = "["
+               s += "V:" + str(sr.version) + " "
+               s += "A:" + str(sr.algorithm) + " "
+               s += "C:" + sr.commit + " "
+               s += "R:" + sr.reveal
+               return s + "]"
+       def _write_shared_random(self):
+               """
+               Write the shared random information of each directory authority
+               """
+               self.site.write("<br>\n\n\n"
+               + " <!-- 
================================================================= -->"
+               + "<a name=\"sharedrandom\">\n"
+               + "<h3><a href=\"#sharedrandom\" class=\"anchor\">"
+               + "Shared Random</a></h3>\n"
+               + "<br>\n"
+               + "<table border=\"0\" cellpadding=\"4\" cellspacing=\"0\" 
summary=\"\">\n"
+               + "  <colgroup>\n"
+               + "    <col width=\"140\">\n"
+               + "    <col width=\"180\">\n"
+               + "    <col width=\"480\">\n"
+               + "  </colgroup>\n")
+               if not self.votes:
+                       self.site.write("  <tr><td>(No 
votes.)</td><td></td></tr>\n")
+               else:
+                       for dirauth_nickname in self.known_authorities:
+                               if dirauth_nickname in self.votes:
+                                       vote = self.votes[dirauth_nickname]
+
+                                       if 
vote.directory_authorities[0].is_shared_randomness_participate:
+                                               prev_error = ""
+                                               cur_error = ""
+                                               if 
vote.directory_authorities[0].shared_randomness_previous_reveal_count != 
self.consensus.shared_randomness_previous_reveal_count or \
+                                                  
vote.directory_authorities[0].shared_randomness_previous_value != 
self.consensus.shared_randomness_previous_value:
+                                                       prev_error = "oiv"
+                                               if 
vote.directory_authorities[0].shared_randomness_current_reveal_count != 
self.consensus.shared_randomness_current_reveal_count or \
+                                                  
vote.directory_authorities[0].shared_randomness_current_value != 
self.consensus.shared_randomness_current_value:
+                                                       cur_error = "oiv"
+                                               self.site.write("  <tr>\n"
+                                               + "    <td>" + dirauth_nickname 
+ "</td>\n"
+                                               + "    <td>Previous</td>\n"
+                                               + "    <td" + prev_error + ">" 
+ str(vote.directory_authorities[0].shared_randomness_previous_reveal_count)
+                                               + " " + 
str(vote.directory_authorities[0].shared_randomness_previous_value) + "</td>\n"
+                                               + "  </tr>\n"
+                                               + "  <tr>\n"
+                                               + "    <td></td>\n"
+                                               + "    <td>Current</td>\n"
+                                               + "    <td" + cur_error + ">" + 
str(vote.directory_authorities[0].shared_randomness_current_reveal_count)
+                                               + " " + 
str(vote.directory_authorities[0].shared_randomness_current_value) + "</td>\n"
+                                               + "</td>\n"
+                                               + "  </tr>\n"
+                                               + "  <tr>\n"
+                                               + "    <td></td>\n"
+                                               + "    <td>Commitments</td>\n"
+                                               + "    <td 
style=\"font-size:x-small\">" + ", <br />".join([self.sharedRandomToStr(x) for 
x in vote.directory_authorities[0].shared_randomness_commitments]) + "</td>\n"
+                                               + "  </tr>\n")
+                                       else:
+                                               self.site.write("  <tr>\n"
+                                               + "    <td><span class=\"oiv\">"
+                                               +          dirauth_nickname + 
"</span></td>\n"
+                                               + "    <td colspan=\"2\"><span 
class=\"oiv\">Does not participate"
+                                               + "</span></td>\n"
+                                               + "  </tr>\n")
+                               else:
+                                       self.site.write("  <tr>\n"
+                                       + "    <td>" + dirauth_nickname + 
"</td>\n"
+                                       + "    <td colspan=\"2\"><span 
class=\"oiv\">Vote Not Present<span></td>\n"
+                                       + "  </tr>\n")
+               self.site.write("  <tr>\n"
+               + "    <td class=\"ic\">consensus</td>\n"
+               + "    <td class=\"ic\">Previous</td>\n"
+               + "    <td class=\"ic\">" + 
str(self.consensus.shared_randomness_previous_reveal_count)
+               + " " + str(self.consensus.shared_randomness_previous_value) + 
"</td>\n"
+               + "  </tr>\n"
+               + "  <tr>\n"
+               + "    <td></td>\n"
+               + "    <td class=\"ic\">Current</td>\n"
+               + "    <td class=\"ic\">" + 
str(self.consensus.shared_randomness_current_reveal_count)
+               + " " + str(self.consensus.shared_randomness_current_value) + 
"</td>\n"
+               + "  </tr>\n"
+               + "</table>\n")
+
+       
#-----------------------------------------------------------------------------------------
        def protocolsToString(self, keys, v, c=None):
                s = ""
                for k in keys:

_______________________________________________
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits

Reply via email to