tor-commits
Threads by month
- ----- 2025 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
January 2017
- 22 participants
- 1796 discussions
commit 262cbb0f1d8ed8a6ac5b3177b10b57bb261efb61
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Wed Dec 21 17:50:30 2016 +0100
Update custom style.css.
---
website/web/css/style.css | 71 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
diff --git a/website/web/css/style.css b/website/web/css/style.css
index cd38e5c..6191917 100644
--- a/website/web/css/style.css
+++ b/website/web/css/style.css
@@ -63,6 +63,40 @@ body #wrapper {
.navbar-header .navbar-brand.visible-xs {
display:block !important;
}
+ .navbar.hidden-xs {
+ display:none;
+ }
+}
+@media (max-height:800px) {
+ /* make page header smaller on e.g. 10 inch notebooks etc. */
+ .page-header {
+ padding: 0em 2.0em 2.0em 2.0em;
+ }
+ .page-header img#metrics-logo {
+ height:75px;
+ width:auto !important;
+ }
+
+ .page-header div {
+ bottom: 0.9em;
+ max-width: 400px;
+ }
+ .page-header div p {
+ font-size: 14px;
+ line-height: 16px;
+ }
+ .navbar-secondary .navbar-nav>li>a {
+ margin-bottom: 0px !important;
+ }
+}
+@media (max-height:800px) and (max-width: 1199.99999px) {
+ .page-header div {
+ max-width:330px;
+ }
+ .page-header div p {
+ font-size:12px;
+ line-height:14px;
+ }
}
@@ -288,6 +322,42 @@ body .topButton {
.bs-callout .h1, .bs-callout .h2, .bs-callout .h3, .bs-callout .h4, .bs-callout .h5, .bs-callout .h6 {
margin-top:0;
}
+.bs-callout-default {
+ border-left-color: #777;
+}
+.bs-callout-default h2, .bs-callout-default h3, .bs-callout-default h4 {
+ color: #777;
+}
+.bs-callout-primary {
+ border-left-color: #428bca;
+}
+.bs-callout-primary h2, .bs-callout-primary h3, .bs-callout-primary h4 {
+ color: #428bca;
+}
+.bs-callout-success {
+ border-left-color: #5cb85c;
+}
+.bs-callout-success h2, .bs-callout-success h3, .bs-callout-success h4 {
+ color: #5cb85c;
+}
+.bs-callout-danger {
+ border-left-color: #d9534f;
+}
+.bs-callout-danger h2, .bs-callout-danger h3, .bs-callout-danger h4 {
+ color: #d9534f;
+}
+.bs-callout-warning {
+ border-left-color: #f0ad4e;
+}
+.bs-callout-warning h2, .bs-callout-warning h3, .bs-callout-warning h4 {
+ color: #f0ad4e;
+}
+.bs-callout-info {
+ border-left-color: #5bc0de;
+}
+.bs-callout-info h2, .bs-callout-info h3, .bs-callout-info h4 {
+ color: #5bc0de;
+}
/* home dashboard page */
@@ -520,6 +590,7 @@ hr {
}
.tools a:before {
content:'';
+ display:none;
}
.tools p {
color:black;
1
0
commit a5ca759d0b47e65c69e41dc1ba2595d5221b8809
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Dec 22 20:02:19 2016 +0100
Fix navbar on table pages.
---
website/src/org/torproject/metrics/web/TableServlet.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/website/src/org/torproject/metrics/web/TableServlet.java b/website/src/org/torproject/metrics/web/TableServlet.java
index 7e6619c..323c2fc 100644
--- a/website/src/org/torproject/metrics/web/TableServlet.java
+++ b/website/src/org/torproject/metrics/web/TableServlet.java
@@ -48,6 +48,7 @@ public class TableServlet extends MetricServlet {
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
return;
}
+ request.setAttribute("categories", this.categories);
request.setAttribute("id", requestedId);
request.setAttribute("title", this.titles.get(requestedId));
if (this.categoriesById.containsKey(requestedId)) {
1
0
commit ddef67454b747a9cc515b88646e169ea565f58a9
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Dec 22 20:13:02 2016 +0100
Tweak tabs a bit.
---
website/web/css/style.css | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/website/web/css/style.css b/website/web/css/style.css
index 891ea53..49a0680 100644
--- a/website/web/css/style.css
+++ b/website/web/css/style.css
@@ -707,6 +707,12 @@ ul.nav-tabs {
margin-top:2em;
margin-bottom:1em;
}
+ul.nav-tabs>li {
+ margin-top:10px;
+}
+.nav-tabs>li:not(.active)>a {
+ border-color: #eee #eee #ddd;
+}
/* graphs */
img.graph {
1
0

09 Jan '17
commit 1608cf3c7eeec01b613fced925aa28c7a9c4cf90
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Dec 22 20:06:24 2016 +0100
Hide all navigation icons in small view.
---
website/web/WEB-INF/top.jsp | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/website/web/WEB-INF/top.jsp b/website/web/WEB-INF/top.jsp
index 3c59560..c0d70c2 100644
--- a/website/web/WEB-INF/top.jsp
+++ b/website/web/WEB-INF/top.jsp
@@ -80,12 +80,12 @@ document.write('<div class="topButton" style="display:none;"><a href="#top"><i c
<!-- /end of primary copy -->
<!-- secondary navigation items -->
- <li <c:if test="${'News'.equals(param.navActive)}"> class="active"</c:if>><a href="news.html"><i class="fa fa-newspaper-o fa-fw" aria-hidden="true"></i> News</a></li>
- <li <c:if test="${'Sources'.equals(param.navActive)}"> class="active"</c:if>><a href="sources.html"><i class="fa fa-archive fa-fw" aria-hidden="true"></i> Sources</a></li>
- <li <c:if test="${'Operation'.equals(param.navActive)}"> class="active"</c:if>><a href="operation.html"><i class="fa fa-cogs fa-fw" aria-hidden="true"></i> Operation</a></li>
- <li <c:if test="${'Development'.equals(param.navActive)}"> class="active"</c:if>><a href="development.html"><i class="fa fa-code fa-fw" aria-hidden="true"></i> Development</a></li>
- <li <c:if test="${'Research'.equals(param.navActive)}"> class="active"</c:if>><a href="research.html"><i class="fa fa-university fa-fw" aria-hidden="true"></i> Research</a></li>
- <li <c:if test="${'About'.equals(param.navActive)}"> class="active"</c:if>><a href="about.html"><i class="fa fa-lightbulb-o fa-fw" aria-hidden="true"></i> About</a></li>
+ <li <c:if test="${'News'.equals(param.navActive)}"> class="active"</c:if>><a href="news.html"><i class="fa fa-newspaper-o fa-fw hidden-sm" aria-hidden="true"></i> News</a></li>
+ <li <c:if test="${'Sources'.equals(param.navActive)}"> class="active"</c:if>><a href="sources.html"><i class="fa fa-archive fa-fw hidden-sm" aria-hidden="true"></i> Sources</a></li>
+ <li <c:if test="${'Operation'.equals(param.navActive)}"> class="active"</c:if>><a href="operation.html"><i class="fa fa-cogs fa-fw hidden-sm" aria-hidden="true"></i> Operation</a></li>
+ <li <c:if test="${'Development'.equals(param.navActive)}"> class="active"</c:if>><a href="development.html"><i class="fa fa-code fa-fw hidden-sm" aria-hidden="true"></i> Development</a></li>
+ <li <c:if test="${'Research'.equals(param.navActive)}"> class="active"</c:if>><a href="research.html"><i class="fa fa-university fa-fw hidden-sm" aria-hidden="true"></i> Research</a></li>
+ <li <c:if test="${'About'.equals(param.navActive)}"> class="active"</c:if>><a href="about.html"><i class="fa fa-lightbulb-o fa-fw hidden-sm" aria-hidden="true"></i> About</a></li>
<!-- /secondary navigation items -->
</ul>
1
0
commit b7430b585a0bca30a1ec1e4fd99d2f74d7a533fc
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Dec 22 21:01:02 2016 +0100
Put glossary back.
---
website/etc/metrics.json | 50 ++++-----
website/etc/web.xml | 11 ++
.../torproject/metrics/web/GlossaryServlet.java | 31 ++++++
website/web/WEB-INF/bubbles.jsp | 6 +-
website/web/WEB-INF/glossary.jsp | 114 +++++++++++++++++++++
website/web/WEB-INF/stats.jsp | 42 ++++----
6 files changed, 205 insertions(+), 49 deletions(-)
diff --git a/website/etc/metrics.json b/website/etc/metrics.json
index 0a6c924..8fc3da6 100644
--- a/website/etc/metrics.json
+++ b/website/etc/metrics.json
@@ -3,7 +3,7 @@
"id": "networksize",
"title": "Relays and bridges in the network",
"type": "Graph",
- "description": "<p>The following graph shows the number of running <a href=\"about.html#relay\">relays</a> and <a href=\"about.html#bridge\">bridges</a> in the network.</p>",
+ "description": "<p>The following graph shows the number of running <a href=\"glossary.html#relay\">relays</a> and <a href=\"glossary.html#bridge\">bridges</a> in the network.</p>",
"function": "plot_networksize",
"parameters": [
"start",
@@ -17,7 +17,7 @@
"id": "relayflags",
"title": "Relays with Exit, Fast, Guard, Stable, and HSDir flags",
"type": "Graph",
- "description": "<p>The following graph shows the number of running <a href=\"about.html#relay\">relays</a> that have had certain <a href=\"about.html#relay-flag\">flags</a> assigned by the <a href=\"about.html#directory-authority\">directory authorities</a>. These flags indicate that a relay should be preferred for either guard (\"Guard\") or exit positions (\"Exit\"), that a relay is suitable for high-bandwidth (\"Fast\") or long-lived circuits (\"Stable\"), or that a relay is considered a hidden service directory (\"HSDir\").</p>",
+ "description": "<p>The following graph shows the number of running <a href=\"glossary.html#relay\">relays</a> that have had certain <a href=\"glossary.html#relay-flag\">flags</a> assigned by the <a href=\"glossary.html#directory-authority\">directory authorities</a>. These flags indicate that a relay should be preferred for either guard (\"Guard\") or exit positions (\"Exit\"), that a relay is suitable for high-bandwidth (\"Fast\") or long-lived circuits (\"Stable\"), or that a relay is considered a hidden service directory (\"HSDir\").</p>",
"function": "plot_relayflags",
"parameters": [
"start",
@@ -32,7 +32,7 @@
"id": "versions",
"title": "Relays by version",
"type": "Graph",
- "description": "<p>The following graph shows the number of running <a href=\"about.html#relay\">relays</a> by tor software version. Relays report their tor software version when they announce themselves in the network. More details on when these versions were declared stable or unstable can be found on the <a href=\"https://www.torproject.org/download/download.html\">download page</a> and in the <a href=\"https://gitweb.torproject.org/tor.git/tree/ChangeLog\">changes file</a>.</p>",
+ "description": "<p>The following graph shows the number of running <a href=\"glossary.html#relay\">relays</a> by tor software version. Relays report their tor software version when they announce themselves in the network. More details on when these versions were declared stable or unstable can be found on the <a href=\"https://www.torproject.org/download/download.html\">download page</a> and in the <a href=\"https://gitweb.torproject.org/tor.git/tree/ChangeLog\">changes file</a>.</p>",
"function": "plot_versions",
"parameters": [
"start",
@@ -46,7 +46,7 @@
"id": "platforms",
"title": "Relays by platform",
"type": "Graph",
- "description": "<p>The following graph shows the number of running <a href=\"about.html#relay\">relays</a> by operating system. Relays report their operating system when they announce themselves in the network.</p>",
+ "description": "<p>The following graph shows the number of running <a href=\"glossary.html#relay\">relays</a> by operating system. Relays report their operating system when they announce themselves in the network.</p>",
"function": "plot_platforms",
"parameters": [
"start",
@@ -60,7 +60,7 @@
"id": "bandwidth",
"title": "Total relay bandwidth in the network",
"type": "Graph",
- "description": "<p>The following graph shows the total <a href=\"about.html#advertised-bandwidth\">advertised</a> and <a href=\"about.html#bandwidth-history\">consumed bandwidth</a> of all <a href=\"about.html#relay\">relays</a> in the network.</p>",
+ "description": "<p>The following graph shows the total <a href=\"glossary.html#advertised-bandwidth\">advertised</a> and <a href=\"glossary.html#bandwidth-history\">consumed bandwidth</a> of all <a href=\"glossary.html#relay\">relays</a> in the network.</p>",
"function": "plot_bandwidth",
"parameters": [
"start",
@@ -74,7 +74,7 @@
"id": "bwhist-flags",
"title": "Relay bandwidth by Exit and/or Guard flags",
"type": "Graph",
- "description": "<p>The following graph shows the <a href=\"about.html#bandwidth-history\">consumed bandwidth</a> reported by relays, subdivided into four distinct subsets by assigned \"Exit\" and/or \"Guard\" <a href=\"about.html#relay-flag\">flags</a>.</p>",
+ "description": "<p>The following graph shows the <a href=\"glossary.html#bandwidth-history\">consumed bandwidth</a> reported by relays, subdivided into four distinct subsets by assigned \"Exit\" and/or \"Guard\" <a href=\"glossary.html#relay-flag\">flags</a>.</p>",
"function": "plot_bwhist_flags",
"parameters": [
"start",
@@ -88,7 +88,7 @@
"id": "bandwidth-flags",
"title": "Advertised bandwidth and bandwidth history by relay flags",
"type": "Graph",
- "description": "<p>The following graph shows <a href=\"about.html#advertised-bandwidth\">advertised</a> and <a href=\"about.html#bandwidth-history\">consumed bandwidth</a> of relays with either \"Exit\" or \"Guard\" <a href=\"about.html#relay-flag\">flags</a> assigned by the directory authorities. These sets are not distinct, because a relay that has both the \"Exit\" and \"Guard\" flags assigned will be included in both sets.</p>",
+ "description": "<p>The following graph shows <a href=\"glossary.html#advertised-bandwidth\">advertised</a> and <a href=\"glossary.html#bandwidth-history\">consumed bandwidth</a> of relays with either \"Exit\" or \"Guard\" <a href=\"glossary.html#relay-flag\">flags</a> assigned by the directory authorities. These sets are not distinct, because a relay that has both the \"Exit\" and \"Guard\" flags assigned will be included in both sets.</p>",
"function": "plot_bandwidth_flags",
"parameters": [
"start",
@@ -102,7 +102,7 @@
"id": "dirbytes",
"title": "Number of bytes spent on answering directory requests",
"type": "Graph",
- "description": "<p>The following graph shows the portion of <a href=\"about.html#bandwidth-history\">consumed bandwidth</a> that <a href=\"about.html#directory-authority\">directory authorities</a> and <a href=\"about.html#directory-mirror\">mirrors</a> have spent on answering directory requests. Not all directories report these statistics, so the graph shows an estimation of total consumed bandwidth as it would be observed if all directories reported these statistics.</p>",
+ "description": "<p>The following graph shows the portion of <a href=\"glossary.html#bandwidth-history\">consumed bandwidth</a> that <a href=\"glossary.html#directory-authority\">directory authorities</a> and <a href=\"glossary.html#directory-mirror\">mirrors</a> have spent on answering directory requests. Not all directories report these statistics, so the graph shows an estimation of total consumed bandwidth as it would be observed if all directories reported these statistics.</p>",
"function": "plot_dirbytes",
"parameters": [
"start",
@@ -116,7 +116,7 @@
"id": "advbwdist-perc",
"title": "Advertised bandwidth distribution",
"type": "Graph",
- "description": "<p>The following graph shows the distribution of the <a href=\"about.html#advertised-bandwidth\">advertised bandwidth</a> of relays in the network. Each percentile represents the advertised bandwidth that a given percentage of relays does not exceed (and that in turn the remaining relays either match or exceed). For example, 99% of relays advertise at most the bandwidth value shown in the 99th percentile line (and the remaining 1% advertise at least that amount).</p>",
+ "description": "<p>The following graph shows the distribution of the <a href=\"glossary.html#advertised-bandwidth\">advertised bandwidth</a> of relays in the network. Each percentile represents the advertised bandwidth that a given percentage of relays does not exceed (and that in turn the remaining relays either match or exceed). For example, 99% of relays advertise at most the bandwidth value shown in the 99th percentile line (and the remaining 1% advertise at least that amount).</p>",
"function": "plot_advbwdist_perc",
"parameters": [
"start",
@@ -131,7 +131,7 @@
"id": "advbwdist-relay",
"title": "Advertised bandwidth of n-th fastest relays",
"type": "Graph",
- "description": "<p>The following graph shows the <a href=\"about.html#advertised-bandwidth\">advertised bandwidth</a> of the n-th fastest relays in the network for different values of n.</p>",
+ "description": "<p>The following graph shows the <a href=\"glossary.html#advertised-bandwidth\">advertised bandwidth</a> of the n-th fastest relays in the network for different values of n.</p>",
"function": "plot_advbwdist_relay",
"parameters": [
"start",
@@ -151,7 +151,7 @@
"id": "userstats-relay-country",
"title": "Direct users by country",
"type": "Graph",
- "description": "<p>The following graph shows the estimated number of directly-connecting <a href=\"about.html#client\">clients</a>; that is, it excludes clients connecting via <a href=\"about.html#bridge\">bridges</a>. These estimates are derived from the number of directory requests counted on <a href=\"about.html#directory-authority\">directory authorities</a> and <a href=\"about.html#directory-mirror\">mirrors</a>. Relays resolve client IP addresses to country codes, so that graphs are available for most countries. Furthermore, it is possible to display indications of censorship events as obtained from an anomaly-based censorship-detection system (for more details, see this <a href=\"https://research.torproject.org/techreports/detector-2011-09-09.pdf\">technical report</a>). For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+ "description": "<p>The following graph shows the estimated number of directly-connecting <a href=\"glossary.html#client\">clients</a>; that is, it excludes clients connecting via <a href=\"glossary.html#bridge\">bridges</a>. These estimates are derived from the number of directory requests counted on <a href=\"glossary.html#directory-authority\">directory authorities</a> and <a href=\"glossary.html#directory-mirror\">mirrors</a>. Relays resolve client IP addresses to country codes, so that graphs are available for most countries. Furthermore, it is possible to display indications of censorship events as obtained from an anomaly-based censorship-detection system (for more details, see this <a href=\"https://research.torproject.org/techreports/detector-2011-09-09.pdf\">technical report</a>). For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
"function": "plot_userstats_relay_country",
"parameters": [
"start",
@@ -167,7 +167,7 @@
"id": "userstats-relay-table",
"title": "Top-10 countries by directly connecting users",
"type": "Table",
- "description": "<p>The following table shows the top-10 countries by estimated number of directly-connecting <a href=\"about.html#client\">clients</a>. These numbers are derived from directory requests counted on <a href=\"about.html#directory-authority\">directory authorities</a> and <a href=\"about.html#directory-mirror\">mirrors</a>. Relays resolve client IP addresses to country codes, so that numbers are available for most countries. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+ "description": "<p>The following table shows the top-10 countries by estimated number of directly-connecting <a href=\"glossary.html#client\">clients</a>. These numbers are derived from directory requests counted on <a href=\"glossary.html#directory-authority\">directory authorities</a> and <a href=\"glossary.html#directory-mirror\">mirrors</a>. Relays resolve client IP addresses to country codes, so that numbers are available for most countries. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
"function": "write_userstats_relay",
"parameters": [
"start",
@@ -213,7 +213,7 @@
"id": "userstats-bridge-country",
"title": "Bridge users by country",
"type": "Graph",
- "description": "<p>The following graph shows the estimated number of <a href=\"about.html#client\">clients</a> connecting via <a href=\"about.html#bridge\">bridges</a>. These numbers are derived from directory requests counted on bridges. Bridges resolve client IP addresses of incoming directory requests to country codes, so that graphs are available for most countries. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+ "description": "<p>The following graph shows the estimated number of <a href=\"glossary.html#client\">clients</a> connecting via <a href=\"glossary.html#bridge\">bridges</a>. These numbers are derived from directory requests counted on bridges. Bridges resolve client IP addresses of incoming directory requests to country codes, so that graphs are available for most countries. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
"function": "plot_userstats_bridge_country",
"parameters": [
"start",
@@ -228,7 +228,7 @@
"id": "userstats-bridge-table",
"title": "Top-10 countries by bridge users",
"type": "Table",
- "description": "<p>The following table shows the top-10 countries by estimated number of <a href=\"about.html#client\">clients</a> connecting via <a href=\"about.html#bridge\">bridges</a>. These numbers are derived from directory requests counted on bridges. Bridges resolve client IP addresses of incoming directory requests to country codes, so that numbers are available for most countries. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+ "description": "<p>The following table shows the top-10 countries by estimated number of <a href=\"glossary.html#client\">clients</a> connecting via <a href=\"glossary.html#bridge\">bridges</a>. These numbers are derived from directory requests counted on bridges. Bridges resolve client IP addresses of incoming directory requests to country codes, so that numbers are available for most countries. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
"function": "write_userstats_bridge",
"parameters": [
"start",
@@ -250,7 +250,7 @@
"id": "userstats-bridge-transport",
"title": "Bridge users by transport",
"type": "Graph",
- "description": "<p>The following graph shows the estimated number of <a href=\"about.html#client\">clients</a> connecting via <a href=\"about.html#bridge\">bridges</a>. These numbers are derived from directory requests counted on bridges. Bridges distinguish connecting clients by transport protocol, which may include <a href=\"about.html#pluggable-transport\">pluggable transports</a>, so that graphs are available for different transports. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+ "description": "<p>The following graph shows the estimated number of <a href=\"glossary.html#client\">clients</a> connecting via <a href=\"glossary.html#bridge\">bridges</a>. These numbers are derived from directory requests counted on bridges. Bridges distinguish connecting clients by transport protocol, which may include <a href=\"glossary.html#pluggable-transport\">pluggable transports</a>, so that graphs are available for different transports. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
"function": "plot_userstats_bridge_transport",
"parameters": [
"start",
@@ -265,7 +265,7 @@
"id": "userstats-bridge-combined",
"title": "Bridge users by country and transport",
"type": "Graph",
- "description": "<p>The following graph shows the estimated number of <a href=\"about.html#client\">clients</a> connecting via <a href=\"about.html#bridge\">bridges</a>. These numbers are derived from directory requests counted on bridges. Bridges resolve client IP addresses of incoming directory requests to country codes, and they distinguish connecting clients by transport protocol, which may include <a href=\"about.html#pluggable-transport\">pluggable transports</a>. Even though bridges don't report a combination of clients by country and transport, it's possible to derive and graph lower and upper bounds from existing usage statistics. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+ "description": "<p>The following graph shows the estimated number of <a href=\"glossary.html#client\">clients</a> connecting via <a href=\"glossary.html#bridge\">bridges</a>. These numbers are derived from directory requests counted on bridges. Bridges resolve client IP addresses of incoming directory requests to country codes, and they distinguish connecting clients by transport protocol, which may include <a href=\"glossary.html#pluggable-transport\">pluggable transports</a>. Even though bridges don't report a combination of clients by country and transport, it's possible to derive and graph lower and upper bounds from existing usage statistics. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
"function": "plot_userstats_bridge_combined",
"parameters": [
"start",
@@ -280,7 +280,7 @@
"id": "userstats-bridge-version",
"title": "Bridge users by IP version",
"type": "Graph",
- "description": "<p>The following graph shows the estimated number of <a href=\"about.html#client\">clients</a> connecting via <a href=\"about.html#bridge\">bridges</a>. These numbers are derived from directory requests counted on bridges. Bridges distinguish connecting clients by IP version, so that graphs are available for both IP versions 4 and 6. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+ "description": "<p>The following graph shows the estimated number of <a href=\"glossary.html#client\">clients</a> connecting via <a href=\"glossary.html#bridge\">bridges</a>. These numbers are derived from directory requests counted on bridges. Bridges distinguish connecting clients by IP version, so that graphs are available for both IP versions 4 and 6. For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
"function": "plot_userstats_bridge_version",
"parameters": [
"start",
@@ -295,7 +295,7 @@
"id": "oxford-anonymous-internet",
"title": "Tor users as percentage of larger Internet population",
"type": "Link",
- "description": "<p>The Oxford Internet Institute made a cartogram visualization of Tor users as compared to the overall Internet population. They used the average number of Tor <a href=\"about.html#client\">users</a> per country from August 2012 to August 2013 and put it in relation to total Internet users per country. More details and conclusions can be found on the <a href=\"http://geography.oii.ox.ac.uk/?page=tor\">Information Geographies website at the Oxford Internet Institute</a>.</p><p><a href=\"http://geography.oii.ox.ac.uk/?page=tor\"><img src=\"images/oxford-anonymous-internet.png\" alt=\"The anonymous Internet\"></a></p>"
+ "description": "<p>The Oxford Internet Institute made a cartogram visualization of Tor users as compared to the overall Internet population. They used the average number of Tor <a href=\"glossary.html#client\">users</a> per country from August 2012 to August 2013 and put it in relation to total Internet users per country. More details and conclusions can be found on the <a href=\"http://geography.oii.ox.ac.uk/?page=tor\">Information Geographies website at the Oxford Internet Institute</a>.</p><p><a href=\"http://geography.oii.ox.ac.uk/?page=tor\"><img src=\"images/oxford-anonymous-internet.png\" alt=\"The anonymous Internet\"></a></p>"
},
{
"id": "torperf",
@@ -333,7 +333,7 @@
"id": "connbidirect",
"title": "Fraction of connections used uni-/bidirectionally",
"type": "Graph",
- "description": "<p>The following graph shows the fraction of direct connections between a <a href=\"about.html#relay\">relay</a> and other nodes in the network that are used uni- or bi-directionally. Every 10 seconds, relays determine for every direct connection whether they read and wrote less than a threshold of 20 KiB. Connections below this threshold are excluded from the graph. For the remaining connections, relays determine whether they read/wrote at least 10 times as many bytes as they wrote/read. If so, they classify a connection as \"Mostly reading\" or \"Mostly writing\", respectively. All other connections are classified as \"Both reading and writing\". After classifying connections, read and write counters are reset for the next 10-second interval. The graph shows daily medians and inter-quartile ranges of reported fractions.</p>",
+ "description": "<p>The following graph shows the fraction of direct connections between a <a href=\"glossary.html#relay\">relay</a> and other nodes in the network that are used uni- or bi-directionally. Every 10 seconds, relays determine for every direct connection whether they read and wrote less than a threshold of 20 KiB. Connections below this threshold are excluded from the graph. For the remaining connections, relays determine whether they read/wrote at least 10 times as many bytes as they wrote/read. If so, they classify a connection as \"Mostly reading\" or \"Mostly writing\", respectively. All other connections are classified as \"Both reading and writing\". After classifying connections, read and write counters are reset for the next 10-second interval. The graph shows daily medians and inter-quartile ranges of reported fractions.</p>",
"function": "plot_connbidirect",
"parameters": [
"start",
@@ -347,7 +347,7 @@
"id": "hidserv-dir-onions-seen",
"title": "Unique .onion addresses",
"type": "Graph",
- "description": "<p>The following graph shows the number of unique .onion addresses in the network per day. These numbers are extrapolated from aggregated statistics on unique .onion addresses reported by single <a href=\"about.html#relay\">relays</a> acting as <a href=\"about.html#hidden-service\">hidden-service</a> directories, if at least 1% of relays reported these statistics. For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-201…">this technical report</a>.</p>",
+ "description": "<p>The following graph shows the number of unique .onion addresses in the network per day. These numbers are extrapolated from aggregated statistics on unique .onion addresses reported by single <a href=\"glossary.html#relay\">relays</a> acting as <a href=\"glossary.html#hidden-service\">hidden-service</a> directories, if at least 1% of relays reported these statistics. For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-201…">this technical report</a>.</p>",
"function": "plot_hidserv_dir_onions_seen",
"parameters": [
"start",
@@ -361,7 +361,7 @@
"id": "hidserv-rend-relayed-cells",
"title": "Hidden-service traffic",
"type": "Graph",
- "description": "<p>The following graph shows the amount of hidden-service traffic in the network per day. This number is extrapolated from aggregated statistics on hidden-service traffic reported by single <a href=\"about.html#relay\">relays</a> acting as rendezvous points for <a href=\"about.html#hidden-service\">hidden services</a>, if at least 1% of relays reported these statistics. For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-201…">this technical report</a>.</p>",
+ "description": "<p>The following graph shows the amount of hidden-service traffic in the network per day. This number is extrapolated from aggregated statistics on hidden-service traffic reported by single <a href=\"glossary.html#relay\">relays</a> acting as rendezvous points for <a href=\"glossary.html#hidden-service\">hidden services</a>, if at least 1% of relays reported these statistics. For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-201…">this technical report</a>.</p>",
"function": "plot_hidserv_rend_relayed_cells",
"parameters": [
"start",
@@ -375,7 +375,7 @@
"id": "hidserv-frac-reporting",
"title": "Fraction of relays reporting hidden-service statistics",
"type": "Graph",
- "description": "<p>The following graph shows the fraction of <a href=\"about.html#relay\">relays</a> that report statistics on <a href=\"about.html#hidden-service\">hidden service</a> usage. If at least 1% of relays report a statistic, it gets extrapolated towards a network total, where higher fractions are produce more accurate results. For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-201…">this technical report</a>.</p>",
+ "description": "<p>The following graph shows the fraction of <a href=\"glossary.html#relay\">relays</a> that report statistics on <a href=\"glossary.html#hidden-service\">hidden service</a> usage. If at least 1% of relays report a statistic, it gets extrapolated towards a network total, where higher fractions are produce more accurate results. For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-201…">this technical report</a>.</p>",
"function": "plot_hidserv_frac_reporting",
"parameters": [
"start",
@@ -389,18 +389,18 @@
"id": "uncharted-data-flow",
"title": "Data flow in the Tor network",
"type": "Link",
- "description": "<p>Uncharted made a visualization of data flow in the Tor network where they place each <a href=\"about.html#relay\">relay</a> on a world map and illustrate traffic exchanged between relays as animated dots. More details can be found on the <a href=\"https://torflow.uncharted.software/\">Uncharted website</a>.</p><p><a href=\"https://torflow.uncharted.software/\"><img src=\"images/uncharted-data-flow.png\" alt=\"Data flow in the Tor network\"></a></p>"
+ "description": "<p>Uncharted made a visualization of data flow in the Tor network where they place each <a href=\"glossary.html#relay\">relay</a> on a world map and illustrate traffic exchanged between relays as animated dots. More details can be found on the <a href=\"https://torflow.uncharted.software/\">Uncharted website</a>.</p><p><a href=\"https://torflow.uncharted.software/\"><img src=\"images/uncharted-data-flow.png\" alt=\"Data flow in the Tor network\"></a></p>"
},
{
"id": "uptimes",
"title": "Monthly uptime of relays",
"type": "Link",
- "description": "<p>The following image illustrates the uptime of all known <a href=\"about.html#relay\">relays</a> in a given month. Each row of pixels denotes one <a href=\"about.html#consensus\">consensus</a> (that is, one hour), and each column denotes one relay. Each pixel denotes if a given relay was online or offline at a given hour: black means online, white means offline, and red highlights relays with identical uptime patterns. The complete image gallery can be found on <a href=\"https://nymity.ch/sybilhunting/uptime-visualisation/\">Philipp Winter's homepage</a>.</p><p><a href=\"https://nymity.ch/sybilhunting/uptime-visualisation/\"><img src=\"images/uptimes.jpg\" alt=\"Monthly uptime of relays\"></a></p>"
+ "description": "<p>The following image illustrates the uptime of all known <a href=\"glossary.html#relay\">relays</a> in a given month. Each row of pixels denotes one <a href=\"glossary.html#consensus\">consensus</a> (that is, one hour), and each column denotes one relay. Each pixel denotes if a given relay was online or offline at a given hour: black means online, white means offline, and red highlights relays with identical uptime patterns. The complete image gallery can be found on <a href=\"https://nymity.ch/sybilhunting/uptime-visualisation/\">Philipp Winter's homepage</a>.</p><p><a href=\"https://nymity.ch/sybilhunting/uptime-visualisation/\"><img src=\"images/uptimes.jpg\" alt=\"Monthly uptime of relays\"></a></p>"
},
{
"id": "networkchurn",
"title": "Network churn rate by relay flag",
"type": "Link",
- "description": "<p>The following image shows the churn rate of the Tor network by <a href=\"about.html#relay-flag\">relay flag</a> in a given month. The churn rate, a value in the interval <b>[0,1]</b>, captures the rate of <a href=\"about.html#relay\">relays</a> joining and leaving the network from one <a href=\"about.html#consensus\">consensus</a> to the next (that is, within one hour). The complete image gallery can be found on <a href=\"https://nymity.ch/sybilhunting/churn-values/\">Philipp Winter's homepage</a>.</p><p><a href=\"https://nymity.ch/sybilhunting/churn-values/\"><img src=\"images/networkchurn.png\" alt=\"Network churn rate by relay flag\"></a></p>"
+ "description": "<p>The following image shows the churn rate of the Tor network by <a href=\"glossary.html#relay-flag\">relay flag</a> in a given month. The churn rate, a value in the interval <b>[0,1]</b>, captures the rate of <a href=\"glossary.html#relay\">relays</a> joining and leaving the network from one <a href=\"glossary.html#consensus\">consensus</a> to the next (that is, within one hour). The complete image gallery can be found on <a href=\"https://nymity.ch/sybilhunting/churn-values/\">Philipp Winter's homepage</a>.</p><p><a href=\"https://nymity.ch/sybilhunting/churn-values/\"><img src=\"images/networkchurn.png\" alt=\"Network churn rate by relay flag\"></a></p>"
}
]
diff --git a/website/etc/web.xml b/website/etc/web.xml
index 6df2aa0..7444cf5 100644
--- a/website/etc/web.xml
+++ b/website/etc/web.xml
@@ -191,6 +191,17 @@
</servlet-mapping>
<servlet>
+ <servlet-name>GlossaryServlet</servlet-name>
+ <servlet-class>
+ org.torproject.metrics.web.GlossaryServlet
+ </servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>GlossaryServlet</servlet-name>
+ <url-pattern>/glossary.html</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
<servlet-name>NewsServlet</servlet-name>
<servlet-class>
org.torproject.metrics.web.NewsServlet
diff --git a/website/src/org/torproject/metrics/web/GlossaryServlet.java b/website/src/org/torproject/metrics/web/GlossaryServlet.java
new file mode 100644
index 0000000..6ebba97
--- /dev/null
+++ b/website/src/org/torproject/metrics/web/GlossaryServlet.java
@@ -0,0 +1,31 @@
+/* Copyright 2014--2016 The Tor Project
+ * See LICENSE for licensing information */
+
+package org.torproject.metrics.web;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class GlossaryServlet extends AnyServlet {
+
+ private static final long serialVersionUID = -971194326457109601L;
+
+ @Override
+ public void init() throws ServletException {
+ super.init();
+ }
+
+ @Override
+ public void doGet(HttpServletRequest request,
+ HttpServletResponse response) throws IOException, ServletException {
+
+ /* Forward the request to the JSP that does all the hard work. */
+ request.setAttribute("categories", this.categories);
+ request.getRequestDispatcher("WEB-INF/glossary.jsp").forward(request,
+ response);
+ }
+}
+
diff --git a/website/web/WEB-INF/bubbles.jsp b/website/web/WEB-INF/bubbles.jsp
index d0d8f84..65260ba 100644
--- a/website/web/WEB-INF/bubbles.jsp
+++ b/website/web/WEB-INF/bubbles.jsp
@@ -31,15 +31,15 @@
<div class="tab-pane active" id="tab-${tab[1]}">
<p>The following graph visualizes diversity of currently running
-<a href="about.html#relay">relays</a> in terms of their probability to be
-selected for <a href="about.html#circuit">circuits</a>.
+<a href="glossary.html#relay">relays</a> in terms of their probability to be
+selected for <a href="glossary.html#circuit">circuits</a>.
Fast relays with at least 100 Mbit/s bandwidth capacity, and which
therefore have a high probability of being selected for circuits, are
represented by an onion; smaller relays are shown as a simple dot; and the
slowest relays, which are almost never selected for circuits, are omitted
entirely.
Graphs in the "all relays" category use a relay's
-<a href="about.html#consensus-weight">consensus weight</a> as probability,
+<a href="glossary.html#consensus-weight">consensus weight</a> as probability,
whereas graphs in the "exits only" category use a value derived from a
relay's consensus weight that resembles the probability of selecting that
relay as exit node.
diff --git a/website/web/WEB-INF/glossary.jsp b/website/web/WEB-INF/glossary.jsp
new file mode 100644
index 0000000..b1da872
--- /dev/null
+++ b/website/web/WEB-INF/glossary.jsp
@@ -0,0 +1,114 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<jsp:include page="top.jsp">
+ <jsp:param name="pageTitle" value="About – Tor Metrics"/>
+ <jsp:param name="navActive" value="About"/>
+</jsp:include>
+
+ <div class="container">
+ <ul class="breadcrumb">
+ <li><a href="index.html">Home</a></li>
+ <li><a href="about.html">About</a></li>
+ <li class="active">Glossary</li>
+ </ul>
+ </div>
+
+ <div class="container">
+
+ <h1>Glossary <a href="#glossary" name="glossary" class="anchor">#</a></h1>
+
+ <a name="advertised-bandwidth"></a>
+ <p><b><a href="#advertised-bandwidth">advertised bandwidth:</a></b> the
+ volume of traffic, both incoming and outgoing, that a
+ <a href="#relay">relay</a> is willing to sustain, as configured by the
+ operator and claimed to be observed from recent data transfers.</p>
+
+ <a name="bandwidth-history"></a>
+ <p><b><a href="#bandwidth-history">bandwidth history:</a></b> the volume
+ of incoming and/or outgoing traffic that a <a href="#relay">relay</a>
+ claims to have handled on behalf of <a href="#client">clients</a>.</p>
+
+ <a name="bridge"></a>
+ <p><b><a href="#bridge">bridge:</a></b> a <a href="#relay">relay</a> whose
+ existence is non-public and which can therefore provide access for blocked
+ <a href="#client">clients</a>, often in combination with
+ <a href="#pluggable-transport">pluggable transports</a>, which registers
+ itself with the <a href="#bridge-authority">bridge authority</a>.</p>
+
+ <a name="bridge-authority"></a>
+ <p><b><a href="#bridge-authority">bridge authority:</a></b> a
+ special-purpose <a href="#relay">relay</a> that maintains a list of
+ bridges as input for external bridge distribution mechanisms (for example,
+ <a href="https://bridges.torproject.org/">BridgeDB</a>).</p>
+
+ <a name="circuit"></a>
+ <p><b><a href="#circuit">circuit:</a></b> a path through the Tor network
+ built by <a href="#client">clients</a> consisting of at most one
+ <a href="#bridge">bridge</a> and at least one
+ <a href="#relay">relay</a>.</p>
+
+ <a name="client"></a>
+ <p><b><a href="#client">client:</a></b> a node in the Tor network,
+ typically running on behalf of one user, that routes application
+ connections over a series of <a href="#relay">relays</a>.</p>
+
+ <a name="consensus"></a>
+ <p><b><a href="#consensus">consensus:</a></b> a single document compiled
+ and voted on by the <a href="#directory-authority">directory
+ authorities</a> once per hour, ensuring that all
+ <a href="#client">clients</a> have the same information about the
+ <a href="#relay">relays</a> that make up the Tor network.</p>
+
+ <a name="consensus-weight"></a>
+ <p><b><a href="#consensus-weight">consensus weight:</a></b> a value
+ assigned to a <a href="#relay">relay</a> that is based on bandwidth
+ observed by the relay and bandwidth measured by the
+ <a href="#directory-authority">directory authorities</a>, included in the
+ hourly published <a href="#consensus">consensus</a>, and used by
+ <a href="#client">clients</a> to select relays for their
+ <a href="#circuit">circuits</a>.</p>
+
+ <a name="directory-authority"></a>
+ <p><b><a href="#directory-authority">directory authority:</a></b> a
+ special-purpose <a href="#relay">relay</a> that maintains a list of
+ currently-running relays and periodically publishes a
+ <a href="#consensus">consensus</a> together with the other directory
+ authorities.</p>
+
+ <a name="directory-mirror"></a>
+ <p><b><a href="#directory-mirror">directory mirror:</a></b> a
+ <a href="#relay">relay</a> that provides a recent copy of directory
+ information to clients, in order to reduce the load on
+ <a href="#directory-authority">directory authorities</a>.</p>
+
+ <a name="hidden-service"></a>
+ <p><b><a href="#hidden-service">hidden service:</a></b> a location-hidden
+ service (for example, a website or instant-messaging server) that is only
+ accessible via the Tor network.</p>
+
+ <a name="pluggable-transport"></a>
+ <p><b><a href="#pluggable-transport">pluggable transport:</a></b> an
+ alternative transport protocol provided by <a href="#bridge">bridges</a>
+ and used by <a href="#client">clients</a> to circumvent transport-level
+ blockings (for example, by ISPs or governments).</p>
+
+ <a name="relay"></a>
+ <p><b><a href="#relay">relay:</a></b> a publicly-listed node in the Tor
+ network that forwards traffic on behalf of <a href="#client">clients</a>,
+ and that registers itself with the
+ <a href="#directory-authority">directory authorities</a>.</p>
+
+ <a name="relay-flag"></a>
+ <p><b><a href="#relay-flag">relay flag:</a></b> a special
+ (dis-)qualification of <a href="#relay">relays</a> for circuit positions
+ (for example, "Guard", "Exit", "BadExit"), circuit properties (for
+ example, "Fast", "Stable"), or roles (for example, "Authority", "HSDir"),
+ as assigned by the <a href="#directory-authority">directory
+ authorities</a> and further defined in the
+ <a href="https://gitweb.torproject.org/torspec.git/tree/dir-spec.txt">directory
+ protocol specification</a>.</p>
+
+ </div>
+
+<jsp:include page="bottom.jsp"/>
+
diff --git a/website/web/WEB-INF/stats.jsp b/website/web/WEB-INF/stats.jsp
index 740fd69..fd12099 100644
--- a/website/web/WEB-INF/stats.jsp
+++ b/website/web/WEB-INF/stats.jsp
@@ -22,9 +22,9 @@
<h2>Number of relays and bridges <a href="#servers" name="servers" class="anchor">#</a></h2>
<p>The following data file contains the number of running <a
-href="about.html#relay">relays</a> and <a href="about.html#bridge">bridges</a>
+href="glossary.html#relay">relays</a> and <a href="glossary.html#bridge">bridges</a>
in the network. Statistics include subsets of relays or bridges by <a
-href="about.html#relay-flag">relay flag</a> (relays only), country code (relays
+href="glossary.html#relay-flag">relay flag</a> (relays only), country code (relays
only, and only until February 2013), tor software version (relays only),
operating system (relays only), and by whether or not they are running in the
EC2 cloud (bridges only). The data file contains daily (mean) averages of relay
@@ -88,14 +88,14 @@ only, this column contains the empty string.</li>
<h2>Bandwidth provided and consumed by relays <a href="#bandwidth" name="bandwidth" class="anchor">#</a></h2>
<p>The following data file contains statistics on <a
-href="about.html#advertised-bandwidth">advertised</a> and <a
-href="about.html#bandwidth-history">consumed bandwidth</a> of <a
-href="about.html#relay">relays</a> in the network. Statistics on advertised
+href="glossary.html#advertised-bandwidth">advertised</a> and <a
+href="glossary.html#bandwidth-history">consumed bandwidth</a> of <a
+href="glossary.html#relay">relays</a> in the network. Statistics on advertised
bandwidth include any kind of traffic handled by a relay, whereas statistics on
consumed bandwidth are available either for all traffic combined, or
specifically for directory traffic. Some of the statistics are available for
subsets of relays that have the "Exit" and/or the "Guard" <a
-href="about.html#relay-flag">flag</a>. The data file contains daily (mean)
+href="glossary.html#relay-flag">flag</a>. The data file contains daily (mean)
averages of bandwidth numbers.</p>
<p><b>Download as <a href="stats/bandwidth.csv">CSV file</a>.</b></p>
@@ -143,11 +143,11 @@ relays when serving directory data.</li>
<h2>Advertised bandwidth distribution and n-th fastest relays <a href="#advbwdist" name="advbwdist" class="anchor">#</a></h2>
<p>The following data file contains statistics on the distribution of <a
-href="about.html#advertised-bandwidth">advertised bandwidth</a> of relays in the
+href="glossary.html#advertised-bandwidth">advertised bandwidth</a> of relays in the
network. These statistics include advertised bandwidth percentiles and
advertised bandwidth values of the n-th fastest relays. All values are obtained
from advertised bandwidths of running relays in a <a
-href="about.html#consensus">network status consensus</a>. The data file
+href="glossary.html#consensus">network status consensus</a>. The data file
contains daily (median) averages of percentiles and n-th largest values.</p>
<p><b>Download as <a href="stats/advbwdist.csv">CSV file</a>.</b></p>
@@ -181,11 +181,11 @@ relays.</li>
<h2>Estimated number of clients in the Tor network <a href="#clients" name="clients" class="anchor">#</a></h2>
<p>The following data file contains estimates on the number of <a
-href="about.html#client">clients</a> in the network. These numbers are derived
+href="glossary.html#client">clients</a> in the network. These numbers are derived
from directory requests counted on <a
-href="about.html#directory-authority">directory authorities</a>, <a
-href="about.html#directory-mirror">directory mirrors</a>, and <a
-href="about.html#bridge">bridges</a>. Statistics are available for clients
+href="glossary.html#directory-authority">directory authorities</a>, <a
+href="glossary.html#directory-mirror">directory mirrors</a>, and <a
+href="glossary.html#bridge">bridges</a>. Statistics are available for clients
connecting directly relays and clients connecting via bridges. There are
statistics available by country (for both directly-connecting clients and
clients connecting via bridges), by transport protocol (only for clients
@@ -245,12 +245,12 @@ should be handled with more care.</li>
<h2>Estimated number of clients by country and transport <a href="#userstats-combined" name="userstats-combined" class="anchor">#</a></h2>
<p>The following data file contains additional statistics on the number of <a
-href="about.html#client">clients</a> in the network. This data file is related
+href="glossary.html#client">clients</a> in the network. This data file is related
to the <a href="clients-data.html">clients-data file</a> that contains estimates
on the number of clients by country and by transport protocol. This data file
enhances these statistics by containing estimates of clients connecting to <a
-href="about.html#bridge">bridges</a> by a given country and using a given <a
-href="about.html#pluggable-transport">transport protocol</a>. Even though
+href="glossary.html#bridge">bridges</a> by a given country and using a given <a
+href="glossary.html#pluggable-transport">transport protocol</a>. Even though
bridges don't report a combination of clients by country and transport, it's
possible to derive lower and upper bounds from existing usage statistics.</p>
@@ -359,7 +359,7 @@ over Tor.</li>
<h2>Fraction of connections used uni-/bidirectionally <a href="#connbidirect2" name="connbidirect2" class="anchor">#</a></h2>
<p>The following data file contains statistics on the fraction of direct
-connections between a <a href="about.html#relay">relay</a> and other nodes in
+connections between a <a href="glossary.html#relay">relay</a> and other nodes in
the network that are used uni- or bidirectionally. Every 10 seconds, relays
determine for every direct connection whether they read and wrote less than a
threshold of 20 KiB. Connections below this threshold are excluded from the
@@ -401,8 +401,8 @@ fractions for the three directions "read", "write", and "both" sum up to exactly
<h2>Hidden-service statistics <a href="#hidserv" name="hidserv" class="anchor">#</a></h2>
<p>The following data file contains <a
-href="about.html#hidden-service">hidden-service</a> statistics gathered by a
-small subset of <a href="about.html#relay">relays</a> and extrapolated to
+href="glossary.html#hidden-service">hidden-service</a> statistics gathered by a
+small subset of <a href="glossary.html#relay">relays</a> and extrapolated to
network totals. Statistics include the amount of hidden-service traffic and the
number of hidden-service addresses in the network per day. For more details on
the extrapolation algorithm, see <a
@@ -450,10 +450,10 @@ fraction.</li>
</div>
<p>The following data file contains statistics about agreement
-or disagreement among the <a href="about.html#directory-authority">directory
+or disagreement among the <a href="glossary.html#directory-authority">directory
authorities</a>. Once per hour the directory authorities exchange votes with
-their view of the <a href="about.html#relay">relays</a> in the network including
-attributes like <a href="about.html#relay-flag">relay flags</a> or bandwidth
+their view of the <a href="glossary.html#relay">relays</a> in the network including
+attributes like <a href="glossary.html#relay-flag">relay flags</a> or bandwidth
measurements. This data file includes counts of relays by number of directory
authorities assigning them a given attribute.</p>
1
0

09 Jan '17
commit 2af2d069cbf2f8912dcf1b78f258a71d564fce20
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Dec 22 20:36:54 2016 +0100
Make it easier to link to #anchors.
---
website/web/WEB-INF/about.jsp | 18 +++++++++---------
website/web/WEB-INF/news.jsp | 5 ++---
website/web/WEB-INF/research.jsp | 12 ++++--------
website/web/WEB-INF/sources.jsp | 11 ++++-------
website/web/WEB-INF/stats.jsp | 29 ++++++++++-------------------
website/web/css/style.css | 14 ++++++++++++++
website/web/js/script.js | 2 +-
7 files changed, 44 insertions(+), 47 deletions(-)
diff --git a/website/web/WEB-INF/about.jsp b/website/web/WEB-INF/about.jsp
index ca42fda..f51dc6a 100644
--- a/website/web/WEB-INF/about.jsp
+++ b/website/web/WEB-INF/about.jsp
@@ -14,34 +14,34 @@
<div class="container">
- <h1>About</h1>
+ <h1>About <a href="#about" name="about" class="anchor">#</a></h1>
<p>Tor metrics are updated daily to provide transparency for Tor users, give feedback for developers, and measure evidence of network anomalies.</p>
</div>
<div class="container">
- <a name="philosophy" id="anchor-philosophy"></a><br>
+ <br>
- <h2>Philosophy</h2>
+ <h2>Philosophy <a href="#philosophy" name="philosophy" class="anchor">#</a></h2>
<p>We only use public, non-sensitive data for metrics. Each metric goes through a rigorous review and discussion process before appearing here. We never publish statistics—or aggregate statistics—of sensitive data, such as unencrypted contents of traffic.</p>
- <a name="contributing" id="anchor-contributing"></a><br>
+ <br>
- <h2>Contributing</h2>
+ <h2>Contributing <a href="#contributing" name="contributing" class="anchor">#</a></h2>
<p>Collecting and processing new data won't likely happen without your help! If you really want to see something measured here, we would be happy to work with you. (Link to Trac wiki page)</p>
- <a name="contact" id="anchor-contact"></a><br>
+ <br>
- <h2>Contact</h2>
+ <h2>Contact <a href="#contact" name="contact" class="anchor">#</a></h2>
<p>If you have any questions, contact us at <a href="mailto:metrics-team@lists.torproject.org">metrics-team(a)lists.torproject.org</a>.</p>
- <a name="testimonials" id="anchor-testimonials"></a><br>
+ <br>
- <h2>Testimonials</h2>
+ <h2>Testimonials <a href="#testimonials" name="testimonials" class="anchor">#</a></h2>
<blockquote>
<p class="mb-0">
Metrics are a critical part of any security technology. If you don't know how the technology works in practice, you can't find and fix problems. You can't improve the security. You can't make it work better. This isn't glamorous or sexy work, but it's essential. This is especially true for security and privacy, where our preconceived notions of threats and usage are regularly wrong—and knowing what's really going on is the difference between security and insecurity.<br><br>
diff --git a/website/web/WEB-INF/news.jsp b/website/web/WEB-INF/news.jsp
index 85ea881..a15009e 100644
--- a/website/web/WEB-INF/news.jsp
+++ b/website/web/WEB-INF/news.jsp
@@ -13,15 +13,14 @@
</div>
<div class="container">
- <h1>News</h1>
+ <h1>News <a href="#news" name="news" class="anchor">#</a></h1>
<p>We collect reports of events and aggregate them here for your convenience. The process is usually pretty informal. Someone tells us of an event, reports it to us, and we aggregate them here. If you know of any event that may have caused a measurement anomaly, help us add it to this list.</p>
</div>
<div class="container">
<c:forEach var="category" items="${news}" varStatus="status">
<c:if test="${not status.first}"><hr></c:if>
- <a name="#${category.key[1]}" id="anchor-${category.key[1]}"></a>
- <h2>${category.key[0]}</h2>
+ <h2>${category.key[0]} <a href="#${category.key[1]}" name="${category.key[1]}" class="anchor">#</a></h2>
<c:forEach var="entry" items="${category.value}">
<p>${entry[0]}</p>
<br>
diff --git a/website/web/WEB-INF/research.jsp b/website/web/WEB-INF/research.jsp
index d58cff3..82e1680 100644
--- a/website/web/WEB-INF/research.jsp
+++ b/website/web/WEB-INF/research.jsp
@@ -13,7 +13,7 @@
</div>
<div class="container">
- <h1>Research</h1>
+ <h1>Research <a href="#research" name="research" class="anchor">#</a></h1>
<p>Tor started out as a research project! We encourage research on all things Tor.</p>
<p>Look around the papers section below for some ideas on what others have researched in the past. Contact <a href="mailto:#">[some general email list here, torproject?]</a> if you want to discuss ideas.</p>
@@ -21,9 +21,7 @@
<div class="container">
- <a name="use" id="anchor-use"></a>
-
- <h2>Feel free to use our data for your research!</h2>
+ <h2>Feel free to use our data for your research! <a href="#use" name="use" class="anchor">#</a></h2>
<p>If you do, please cite <a href="https://metrics.torproject.org/" target="_self">https://metrics.torproject.org/</a> or the following <a href="http://freehaven.net/anonbib/#wecsr10measuring-tor" target="_blank">paper</a>:</p>
<p><pre>
@@ -43,8 +41,7 @@
<div class="container">
- <a name="collect" id="anchor-collect"></a>
- <h2>Want to collect your own data for research?</h2>
+ <h2>Want to collect your own data for research? <a href="#collect" name="collect" class="anchor">#</a></h2>
<p>Look at the <a href="sources.html">sources page</a> for services that collect Tor-related data.</p>
</div>
@@ -52,8 +49,7 @@
<div class="container">
- <a name="research" id="anchor-research"></a>
- <h2>Research Papers</h2>
+ <h2>Research Papers <a href="#research" name="research" class="anchor">#</a></h2>
<p>Here are some Tor-related papers. (...) If we're missing yours, let us know!</p>
</div>
diff --git a/website/web/WEB-INF/sources.jsp b/website/web/WEB-INF/sources.jsp
index 3c36611..de71883 100644
--- a/website/web/WEB-INF/sources.jsp
+++ b/website/web/WEB-INF/sources.jsp
@@ -13,13 +13,12 @@
</div>
<div class="container">
- <h1>Sources</h1>
+ <h1>Sources <a href="#sources" name="sources" class="anchor">#</a></h1>
<p>You're a data person and only trust the statistics that you doctored yourself? Here's all the data right from the source, doctor.</p>
</div>
<div class="container tools">
- <a name="archive" id="anchor-archive"></a>
- <h2>Network archives</h2>
+ <h2>Network archives <a href="#archive" name="archive" class="anchor">#</a></h2>
<p>We get our data from the network archives below.</p>
<div class="row">
@@ -43,8 +42,7 @@
</div>
<div class="container tools">
- <a name="measurement" id="anchor-measurement"></a>
- <h2>Measurement tools</h2>
+ <h2>Measurement tools <a href="#measurement" name="measurement" class="anchor">#</a></h2>
<p>The following tools perform active measurements in the Tor network. (They don't have pretty logos yet, but they are all uniquely useful!)</p>
<div class="row">
@@ -76,8 +74,7 @@
</div>
<div class="container tools">
- <a name="aggregated" id="anchor-aggregated"></a>
- <h2>Pre-aggregated data</h2>
+ <h2>Pre-aggregated data <a href="#aggregated" name="aggregated" class="anchor">#</a></h2>
<p>Sometimes the data from the original sources can be hard to process. If you want to take a little shortcut, try out the following pre-aggregated statistics.</p>
<div class="row">
diff --git a/website/web/WEB-INF/stats.jsp b/website/web/WEB-INF/stats.jsp
index 8ab2a00..740fd69 100644
--- a/website/web/WEB-INF/stats.jsp
+++ b/website/web/WEB-INF/stats.jsp
@@ -14,13 +14,12 @@
</div>
<div class="container">
- <h1>Pre-aggregated statistics files used on this website</h1>
+ <h1>Pre-aggregated statistics files used on this website <a href="#stats" name="stats" class="anchor">#</a></h1>
<p>This page contains specifications and links to pre-aggregated statistics files used on this website.</p>
</div>
<div class="container">
-<a name="servers" id="anchor-servers"></a>
-<h2>Number of relays and bridges</h2>
+<h2>Number of relays and bridges <a href="#servers" name="servers" class="anchor">#</a></h2>
<p>The following data file contains the number of running <a
href="about.html#relay">relays</a> and <a href="about.html#bridge">bridges</a>
@@ -86,8 +85,7 @@ only, this column contains the empty string.</li>
</div>
<div class="container">
-<a name="bandwidth" id="anchor-bandwidth"></a>
-<h2>Bandwidth provided and consumed by relays</h2>
+<h2>Bandwidth provided and consumed by relays <a href="#bandwidth" name="bandwidth" class="anchor">#</a></h2>
<p>The following data file contains statistics on <a
href="about.html#advertised-bandwidth">advertised</a> and <a
@@ -142,8 +140,7 @@ relays when serving directory data.</li>
</div>
<div class="container">
-<a name="advbwdist" id="anchor-advbwdist"></a>
-<h2>Advertised bandwidth distribution and n-th fastest relays</h2>
+<h2>Advertised bandwidth distribution and n-th fastest relays <a href="#advbwdist" name="advbwdist" class="anchor">#</a></h2>
<p>The following data file contains statistics on the distribution of <a
href="about.html#advertised-bandwidth">advertised bandwidth</a> of relays in the
@@ -181,8 +178,7 @@ relays.</li>
</div>
<div class="container">
-<a name="clients" id="anchor-clients"></a>
-<h2>Estimated number of clients in the Tor network</h2>
+<h2>Estimated number of clients in the Tor network <a href="#clients" name="clients" class="anchor">#</a></h2>
<p>The following data file contains estimates on the number of <a
href="about.html#client">clients</a> in the network. These numbers are derived
@@ -246,8 +242,7 @@ should be handled with more care.</li>
</div>
<div class="container">
-<a name="userstats-combined" id="anchor-userstats-combined"></a>
-<h2>Estimated number of clients by country and transport</h2>
+<h2>Estimated number of clients by country and transport <a href="#userstats-combined" name="userstats-combined" class="anchor">#</a></h2>
<p>The following data file contains additional statistics on the number of <a
href="about.html#client">clients</a> in the network. This data file is related
@@ -311,8 +306,7 @@ there are users by either of the two numbers.</li>
</div>
<div class="container">
-<a name="torperf" id="anchor-torperf"></a>
-<h2>Performance of downloading static files over Tor</h2>
+<h2>Performance of downloading static files over Tor <a href="#torperf" name="torperf" class="anchor">#</a></h2>
<p>The following data file contains aggregate statistics on performance when
downloading static files of different sizes over Tor. These statistics are
@@ -362,8 +356,7 @@ over Tor.</li>
</div>
<div class="container">
-<a name="connbidirect2" id="anchor-connbidirect2"></a>
-<h2>Fraction of connections used uni-/bidirectionally</h2>
+<h2>Fraction of connections used uni-/bidirectionally <a href="#connbidirect2" name="connbidirect2" class="anchor">#</a></h2>
<p>The following data file contains statistics on the fraction of direct
connections between a <a href="about.html#relay">relay</a> and other nodes in
@@ -405,8 +398,7 @@ fractions for the three directions "read", "write", and "both" sum up to exactly
</div>
<div class="container">
-<a name="hidserv" id="anchor-hidserv"></a>
-<h2>Hidden-service statistics</h2>
+<h2>Hidden-service statistics <a href="#hidserv" name="hidserv" class="anchor">#</a></h2>
<p>The following data file contains <a
href="about.html#hidden-service">hidden-service</a> statistics gathered by a
@@ -450,8 +442,7 @@ fraction.</li>
</div>
<div class="container">
-<a name="disagreement" id="anchor-disagreement"></a>
-<h2>Disagreement among the directory authorities (deprecated)</h2>
+<h2>Disagreement among the directory authorities (deprecated) <a href="#disagreement" name="disagreement" class="anchor">#</a></h2>
<div class="bs-callout bs-callout-warning">
<h3>Deprecated</h3>
diff --git a/website/web/css/style.css b/website/web/css/style.css
index 49a0680..2b97b34 100644
--- a/website/web/css/style.css
+++ b/website/web/css/style.css
@@ -756,6 +756,20 @@ form input[type=checkbox] {
}
+/* Anchor-Links for Headlines */
+.anchor {
+ display:none;
+ text-decoration:none;
+}
+*:hover > .anchor {
+ display:inline;
+ color:#78c040;
+}
+*:hover > .anchor:hover {
+ text-decoration:none;
+ color:#68b030;
+}
+
/* No JavaScript fallbacks */
diff --git a/website/web/js/script.js b/website/web/js/script.js
index 8c7e4d3..10a918a 100644
--- a/website/web/js/script.js
+++ b/website/web/js/script.js
@@ -20,7 +20,7 @@ jQuery(function() {
// smooth scolling for all anchor links
- jQuery('a[href^="#"]').on('click',function (e) {
+ jQuery('a[href^="#"]:not(.anchor)').on('click',function (e) {
e.preventDefault();
var target = this.hash;
var $target = $(target.split('#').join('#anchor-'));
1
0

[metrics-web/master] Add (disabled) metrics category for applications.
by karsten@torproject.org 09 Jan '17
by karsten@torproject.org 09 Jan '17
09 Jan '17
commit 893a56b5848a50be9f006463393921b4dc4cee24
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Fri Dec 23 09:50:55 2016 +0100
Add (disabled) metrics category for applications.
---
website/etc/categories.json | 7 +++++++
website/web/WEB-INF/index.jsp | 2 +-
website/web/WEB-INF/top.jsp | 4 ++--
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/website/etc/categories.json b/website/etc/categories.json
index 766108a..832f3c0 100644
--- a/website/etc/categories.json
+++ b/website/etc/categories.json
@@ -72,5 +72,12 @@
"hidserv-rend-relayed-cells",
"hidserv-frac-reporting"
]
+ },
+ {
+ "id": "applications",
+ "icon": "fa-download",
+ "header": "Applications",
+ "summary": "How many Tor applications, like Tor Browser, have been downloaded or updated (coming soon).",
+ "metrics": []
}
]
diff --git a/website/web/WEB-INF/index.jsp b/website/web/WEB-INF/index.jsp
index c6535fb..5aff746 100644
--- a/website/web/WEB-INF/index.jsp
+++ b/website/web/WEB-INF/index.jsp
@@ -23,7 +23,7 @@
<div class="row">
<c:forEach var="category" items="${categories}">
<div class="col-sm-4">
- <a href="${category[0]}.html"><i class="fa ${category[3]} fa-fw fa-4x" aria-hidden="true"></i> <h2>${category[1]}</h2> <p>${category[2]}</p></a>
+ <a<c:if test="${fn:length(category[0]) > 0}"> href="${category[0]}.html"</c:if>><i class="fa ${category[3]} fa-fw fa-4x" aria-hidden="true"></i> <h2>${category[1]}</h2> <p>${category[2]}</p></a>
</div>
</c:forEach>
</div>
diff --git a/website/web/WEB-INF/top.jsp b/website/web/WEB-INF/top.jsp
index 7074eb7..2d07351 100644
--- a/website/web/WEB-INF/top.jsp
+++ b/website/web/WEB-INF/top.jsp
@@ -76,7 +76,7 @@ document.write('<div class="topButton" style="display:none;"><a href="#top"><i c
<li class="visible-xs section-header">Metrics</li>
<li class="visible-xs<c:if test="${'Home'.equals(param.navActive)}"> active</c:if>"><a href="index.html"><i class="fa fa-home fa-fw" aria-hidden="true"></i> Home</a></li>
<c:forEach var="category" items="${categories}">
- <li class="visible-xs<c:if test="${category[1].equals(param.navActive)}"> active</c:if>"><a href="${category[0]}.html"><i class="fa ${category[3]} fa-fw" aria-hidden="true"></i> ${category[1]}</a></li>
+ <li class="visible-xs<c:if test="${category[1].equals(param.navActive)}"> active</c:if><c:if test="${fn:length(category[0]) == 0}"> disabled</c:if>"><a<c:if test="${fn:length(category[0]) > 0}"> href="${category[0]}.html"</c:if>><i class="fa ${category[3]} fa-fw" aria-hidden="true"></i> ${category[1]}</a></li>
</c:forEach>
<!-- /end of primary copy -->
@@ -116,7 +116,7 @@ document.write('<div class="topButton" style="display:none;"><a href="#top"><i c
<ul class="nav navbar-nav">
<li <c:if test="${'Home'.equals(param.navActive)}"> class="active"</c:if>><a href="index.html"><i class="fa fa-home fa-fw hidden-sm" aria-hidden="true"></i> Home</a></li>
<c:forEach var="category" items="${categories}">
- <li <c:if test="${category[1].equals(param.navActive)}"> class="active"</c:if>><a href="${category[0]}.html"><i class="fa ${category[3]} fa-fw hidden-sm" aria-hidden="true"></i> ${category[1]}</a></li>
+ <li class="<c:if test="${category[1].equals(param.navActive)}"> active</c:if><c:if test="${fn:length(category[0]) == 0}"> disabled</c:if>"><a<c:if test="${fn:length(category[0]) > 0}"> href="${category[0]}.html"</c:if>><i class="fa ${category[3]} fa-fw hidden-sm" aria-hidden="true"></i> ${category[1]}</a></li>
</c:forEach>
</ul>
</div><!-- /.navbar-collapse -->
1
0

09 Jan '17
commit c00be5b9d477ea6ddea94f221162edcba27463a7
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Wed Dec 21 20:27:00 2016 +0100
Fix underlying data links to stats page.
---
website/etc/metrics.json | 48 +++++++++++-----------
.../org/torproject/metrics/web/MetricServlet.java | 22 ++--------
website/web/WEB-INF/graph.jsp | 2 +-
website/web/WEB-INF/link.jsp | 2 +-
website/web/WEB-INF/stats.jsp | 9 ++++
website/web/WEB-INF/table.jsp | 2 +-
6 files changed, 39 insertions(+), 46 deletions(-)
diff --git a/website/etc/metrics.json b/website/etc/metrics.json
index 2173db8..0a6c924 100644
--- a/website/etc/metrics.json
+++ b/website/etc/metrics.json
@@ -10,7 +10,7 @@
"end"
],
"data": [
- "servers-data"
+ "servers"
]
},
{
@@ -25,7 +25,7 @@
"flag"
],
"data": [
- "servers-data"
+ "servers"
]
},
{
@@ -39,7 +39,7 @@
"end"
],
"data": [
- "servers-data"
+ "servers"
]
},
{
@@ -53,7 +53,7 @@
"end"
],
"data": [
- "servers-data"
+ "servers"
]
},
{
@@ -67,7 +67,7 @@
"end"
],
"data": [
- "bandwidth-data"
+ "bandwidth"
]
},
{
@@ -81,7 +81,7 @@
"end"
],
"data": [
- "bandwidth-data"
+ "bandwidth"
]
},
{
@@ -95,7 +95,7 @@
"end"
],
"data": [
- "bandwidth-data"
+ "bandwidth"
]
},
{
@@ -109,7 +109,7 @@
"end"
],
"data": [
- "bandwidth-data"
+ "bandwidth"
]
},
{
@@ -124,7 +124,7 @@
"p"
],
"data": [
- "advbwdist-data"
+ "advbwdist"
]
},
{
@@ -139,7 +139,7 @@
"n"
],
"data": [
- "advbwdist-data"
+ "advbwdist"
]
},
{
@@ -160,7 +160,7 @@
"events"
],
"data": [
- "clients-data"
+ "clients"
]
},
{
@@ -182,7 +182,7 @@
"${abs} (${rel} %)"
],
"data": [
- "clients-data"
+ "clients"
]
},
{
@@ -206,7 +206,7 @@
"${upturns}"
],
"data": [
- "clients-data"
+ "clients"
]
},
{
@@ -221,7 +221,7 @@
"country"
],
"data": [
- "clients-data"
+ "clients"
]
},
{
@@ -243,7 +243,7 @@
"${abs} (${rel} %)"
],
"data": [
- "clients-data"
+ "clients"
]
},
{
@@ -258,7 +258,7 @@
"transport"
],
"data": [
- "clients-data"
+ "clients"
]
},
{
@@ -273,7 +273,7 @@
"country"
],
"data": [
- "userstats-combined-data"
+ "userstats-combined"
]
},
{
@@ -288,7 +288,7 @@
"version"
],
"data": [
- "clients-data"
+ "clients"
]
},
{
@@ -310,7 +310,7 @@
"filesize"
],
"data": [
- "torperf-data"
+ "torperf"
]
},
{
@@ -326,7 +326,7 @@
"filesize"
],
"data": [
- "torperf-data"
+ "torperf"
]
},
{
@@ -340,7 +340,7 @@
"end"
],
"data": [
- "connbidirect2-data"
+ "connbidirect2"
]
},
{
@@ -354,7 +354,7 @@
"end"
],
"data": [
- "hidserv-data"
+ "hidserv"
]
},
{
@@ -368,7 +368,7 @@
"end"
],
"data": [
- "hidserv-data"
+ "hidserv"
]
},
{
@@ -382,7 +382,7 @@
"end"
],
"data": [
- "hidserv-data"
+ "hidserv"
]
},
{
diff --git a/website/src/org/torproject/metrics/web/MetricServlet.java b/website/src/org/torproject/metrics/web/MetricServlet.java
index b643a02..284a3be 100644
--- a/website/src/org/torproject/metrics/web/MetricServlet.java
+++ b/website/src/org/torproject/metrics/web/MetricServlet.java
@@ -35,8 +35,8 @@ public abstract class MetricServlet extends AnyServlet {
protected Map<String, String[]> tableCellFormats =
new HashMap<String, String[]>();
- protected Map<String, List<String[]>> data =
- new HashMap<String, List<String[]>>();
+ protected Map<String, String[]> data =
+ new HashMap<String, String[]>();
protected Map<String, Category> categoriesById =
new HashMap<String, Category>();
@@ -46,7 +46,6 @@ public abstract class MetricServlet extends AnyServlet {
super.init();
this.metrics = ContentProvider.getInstance().getMetricsList();
Map<String, String> allTypesAndTitles = new HashMap<String, String>();
- Map<String, String[]> dataIds = new HashMap<String, String[]>();
for (Metric metric : this.metrics) {
String id = metric.getId();
String title = metric.getTitle();
@@ -68,22 +67,7 @@ public abstract class MetricServlet extends AnyServlet {
this.tableCellFormats.put(id, metric.getTableCellFormats());
}
if (metric.getData() != null) {
- dataIds.put(id, metric.getData());
- }
- }
- for (Set<String> ids : idsByType.values()) {
- for (String id : ids) {
- if (dataIds.containsKey(id)) {
- List<String[]> dataLinksTypesAndTitles =
- new ArrayList<String[]>();
- for (String dataId : dataIds.get(id)) {
- if (allTypesAndTitles.containsKey(dataId)) {
- dataLinksTypesAndTitles.add(new String[] { dataId + ".html",
- allTypesAndTitles.get(dataId) } );
- }
- }
- this.data.put(id, dataLinksTypesAndTitles);
- }
+ this.data.put(id, metric.getData());
}
}
for (Category category :
diff --git a/website/web/WEB-INF/graph.jsp b/website/web/WEB-INF/graph.jsp
index 8d5c5db..1299b6a 100644
--- a/website/web/WEB-INF/graph.jsp
+++ b/website/web/WEB-INF/graph.jsp
@@ -156,7 +156,7 @@
<h4>Underlying data</h4>
<ul>
<c:forEach var="row" items="${data}">
-<li><a href="${row[0]}">${row[1]}</a></li>
+<li><a href="stats.html#${row}"><code>stats/${row}.csv</code></a></li>
</c:forEach>
</ul>
</c:if>
diff --git a/website/web/WEB-INF/link.jsp b/website/web/WEB-INF/link.jsp
index dcead41..c017c03 100644
--- a/website/web/WEB-INF/link.jsp
+++ b/website/web/WEB-INF/link.jsp
@@ -42,7 +42,7 @@
<h4>Underlying data</h4>
<ul>
<c:forEach var="row" items="${data}">
- <li><a href="${row[0]}">${row[1]}</a></li>
+ <li><a href="stats.html#${row}"><code>stats/${row}.csv</code></a></li>
</c:forEach>
</ul>
</c:if>
diff --git a/website/web/WEB-INF/stats.jsp b/website/web/WEB-INF/stats.jsp
index 2690e89..8ab2a00 100644
--- a/website/web/WEB-INF/stats.jsp
+++ b/website/web/WEB-INF/stats.jsp
@@ -19,6 +19,7 @@
</div>
<div class="container">
+<a name="servers" id="anchor-servers"></a>
<h2>Number of relays and bridges</h2>
<p>The following data file contains the number of running <a
@@ -85,6 +86,7 @@ only, this column contains the empty string.</li>
</div>
<div class="container">
+<a name="bandwidth" id="anchor-bandwidth"></a>
<h2>Bandwidth provided and consumed by relays</h2>
<p>The following data file contains statistics on <a
@@ -140,6 +142,7 @@ relays when serving directory data.</li>
</div>
<div class="container">
+<a name="advbwdist" id="anchor-advbwdist"></a>
<h2>Advertised bandwidth distribution and n-th fastest relays</h2>
<p>The following data file contains statistics on the distribution of <a
@@ -178,6 +181,7 @@ relays.</li>
</div>
<div class="container">
+<a name="clients" id="anchor-clients"></a>
<h2>Estimated number of clients in the Tor network</h2>
<p>The following data file contains estimates on the number of <a
@@ -242,6 +246,7 @@ should be handled with more care.</li>
</div>
<div class="container">
+<a name="userstats-combined" id="anchor-userstats-combined"></a>
<h2>Estimated number of clients by country and transport</h2>
<p>The following data file contains additional statistics on the number of <a
@@ -306,6 +311,7 @@ there are users by either of the two numbers.</li>
</div>
<div class="container">
+<a name="torperf" id="anchor-torperf"></a>
<h2>Performance of downloading static files over Tor</h2>
<p>The following data file contains aggregate statistics on performance when
@@ -356,6 +362,7 @@ over Tor.</li>
</div>
<div class="container">
+<a name="connbidirect2" id="anchor-connbidirect2"></a>
<h2>Fraction of connections used uni-/bidirectionally</h2>
<p>The following data file contains statistics on the fraction of direct
@@ -398,6 +405,7 @@ fractions for the three directions "read", "write", and "both" sum up to exactly
</div>
<div class="container">
+<a name="hidserv" id="anchor-hidserv"></a>
<h2>Hidden-service statistics</h2>
<p>The following data file contains <a
@@ -442,6 +450,7 @@ fraction.</li>
</div>
<div class="container">
+<a name="disagreement" id="anchor-disagreement"></a>
<h2>Disagreement among the directory authorities (deprecated)</h2>
<div class="bs-callout bs-callout-warning">
diff --git a/website/web/WEB-INF/table.jsp b/website/web/WEB-INF/table.jsp
index b6fd541..bcc9c4d 100644
--- a/website/web/WEB-INF/table.jsp
+++ b/website/web/WEB-INF/table.jsp
@@ -72,7 +72,7 @@
<h4>Underlying data</h4>
<ul>
<c:forEach var="row" items="${data}">
-<li><a href="${row[0]}">${row[1]}</a></li>
+<li><a href="stats.html#${row}"><code>stats/${row}.csv</code></a></li>
</c:forEach>
</ul>
</c:if>
1
0

09 Jan '17
commit 7e96562306fa91cacd0a7ee2b006778c341fa8c8
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Dec 22 11:42:45 2016 +0100
Tweak layout of start and end dates.
---
website/web/WEB-INF/graph.jsp | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/website/web/WEB-INF/graph.jsp b/website/web/WEB-INF/graph.jsp
index 1299b6a..d6f69bf 100644
--- a/website/web/WEB-INF/graph.jsp
+++ b/website/web/WEB-INF/graph.jsp
@@ -43,16 +43,14 @@
<form action="${id}.html">
<c:if test="${fn:length(start) > 0}">
<p>
- <label>Start date (yyyy-mm-dd):
- <input type="text" name="start" size="10" value="${start[0]}">
- </label>
+ <label for="start">Start date:</label>
+ <input type="text" name="start" size="10" value="${start[0]}" placeholder="yyyy-mm-dd" id="start">
</p>
</c:if>
<c:if test="${fn:length(end) > 0}">
<p>
- <label>End date (yyyy-mm-dd):
- <input type="text" name="end" size="10" value="${end[0]}">
- </label>
+ <label for="end">End date:</label>
+ <input type="text" name="end" size="10" value="${end[0]}" placeholder="yyyy-mm-dd" id="end">
</p>
</c:if>
<c:if test="${fn:length(p) > 0}">
1
0

[metrics-web/master] Update content on secondary navigation pages.
by karsten@torproject.org 09 Jan '17
by karsten@torproject.org 09 Jan '17
09 Jan '17
commit ef05c30ad3ffd27acfd0ee8315f509d585e2b423
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Fri Dec 23 11:02:10 2016 +0100
Update content on secondary navigation pages.
---
website/web/WEB-INF/about.jsp | 29 ++++++----------
website/web/WEB-INF/development.jsp | 41 +++++++++++-----------
website/web/WEB-INF/news.jsp | 11 +++---
website/web/WEB-INF/operation.jsp | 48 ++++++++++++++++++--------
website/web/WEB-INF/research.jsp | 36 ++++++--------------
website/web/WEB-INF/sources.jsp | 68 ++++++++-----------------------------
6 files changed, 95 insertions(+), 138 deletions(-)
diff --git a/website/web/WEB-INF/about.jsp b/website/web/WEB-INF/about.jsp
index f51dc6a..208b80f 100644
--- a/website/web/WEB-INF/about.jsp
+++ b/website/web/WEB-INF/about.jsp
@@ -13,45 +13,36 @@
</div>
<div class="container">
-
<h1>About <a href="#about" name="about" class="anchor">#</a></h1>
-
- <p>Tor metrics are updated daily to provide transparency for Tor users, give feedback for developers, and measure evidence of network anomalies.</p>
+ <p>You're curious who has put together all this information, and you're thinking about contributing? Here we tell you a bit about the Tor metrics team and give you some pointers for joining our team.</p>
</div>
<div class="container">
-
- <br>
-
<h2>Philosophy <a href="#philosophy" name="philosophy" class="anchor">#</a></h2>
-
<p>We only use public, non-sensitive data for metrics. Each metric goes through a rigorous review and discussion process before appearing here. We never publish statistics—or aggregate statistics—of sensitive data, such as unencrypted contents of traffic.</p>
+ </div>
- <br>
-
+ <div class="container">
<h2>Contributing <a href="#contributing" name="contributing" class="anchor">#</a></h2>
+ <p>Collecting and processing new data won't likely happen without your help! If you really want to see something measured here, we would be happy to work with you. Learn more about contributing on our <a href="https://trac.torproject.org/projects/tor/wiki/org/teams/MetricsTeam" target="_blank">team wiki page</a>.</p>
+ </div>
- <p>Collecting and processing new data won't likely happen without your help! If you really want to see something measured here, we would be happy to work with you. (Link to Trac wiki page)</p>
-
- <br>
-
+ <div class="container">
<h2>Contact <a href="#contact" name="contact" class="anchor">#</a></h2>
+ <p>If you have any questions or suggestions, contact us at <a href="mailto:metrics-team@lists.torproject.org">metrics-team(a)lists.torproject.org</a>, which is a <a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/metrics-team" target="_blank">public mailing list</a>.</p>
+ </div>
- <p>If you have any questions, contact us at <a href="mailto:metrics-team@lists.torproject.org">metrics-team(a)lists.torproject.org</a>.</p>
-
- <br>
-
+ <div class="container">
<h2>Testimonials <a href="#testimonials" name="testimonials" class="anchor">#</a></h2>
<blockquote>
<p class="mb-0">
Metrics are a critical part of any security technology. If you don't know how the technology works in practice, you can't find and fix problems. You can't improve the security. You can't make it work better. This isn't glamorous or sexy work, but it's essential. This is especially true for security and privacy, where our preconceived notions of threats and usage are regularly wrong—and knowing what's really going on is the difference between security and insecurity.<br><br>
Tor is doing cutting-edge work in the anonymity space, and Tor metrics are already proven to provide critical information for research and development. It's one of the few open data sets available for how, why, where, and when people use anonymizing technologies.<br><br>
Tor's metrics project increases the transparency of Tor's work. This helps users understand how Tor works. With good network metrics, you can look back for indicators and anomalies at the time a privacy issue was reported. You can also extrapolate and look forward to prevent related issues in the future. This helps alleviate users' security concerns, and helps others contribute to security issues in the network and browser.<br><br>
- Finally, Tor metrics are the ammunition that lets Tor and other security advocates argue for a more private and secure Internet from a position of data, rather than just dogma or perspective. It's where the real world influences Tor.
+ Finally, Tor metrics are the ammunition that lets Tor and other security advocates argue for a more private and secure Internet from a position of data, rather than just dogma or perspective. It's where the real world influences Tor.”
</p>
<footer class="blockquote-footer">Bruce Schneier (June 1, 2016)</footer>
</blockquote>
-
</div>
<jsp:include page="bottom.jsp"/>
diff --git a/website/web/WEB-INF/development.jsp b/website/web/WEB-INF/development.jsp
index 183df9c..ad20927 100644
--- a/website/web/WEB-INF/development.jsp
+++ b/website/web/WEB-INF/development.jsp
@@ -13,26 +13,27 @@
</div>
<div class="container">
- <h1>Development</h1>
-<ul>
-<li><a href="https://play.google.com/store/apps/details?id=com.networksaremadeofstring.a…">AnOnionooid</a> is an Android app that helps find and explore Tor relays and bridges.</li>
-<li>Tor's <a href="https://gitweb.torproject.org/tor.git/tree/scripts/maint/updateFallbackDirs…">fallback directories script</a> generates a list of stable directories.</li>
-<li><a href="https://github.com/duk3luk3/onion-py">OnionPy</a> provides memcached support to cache queried data.</li>
-<li><a href="https://nos-oignons.net/Services/index.en.html">Nos oignons</a> visualizes bandwidth histories of their relays.</li>
-<li><a href="https://metrics.torproject.org/uncharted-data-flow.html">metrics-lib</a> is a Java library to fetch and pars
-e Tor descriptors.</li>
-<li><a href="https://stem.torproject.org/">Stem</a> is a Python library that parses Tor descriptors.</li>
-<li><a href="https://github.com/meejah/txtorcon">Txtorcon</a> is an asynchronous Tor controller library written in Twiste
-d Python.</li>
-<li><a href="https://github.com/NullHypothesis/zoossh">Zoossh</a> is a parser written in Go for Tor-specific data formats
-.</li>
-<li><a href="https://savannah.nongnu.org/projects/koninoo/">koninoo</a> is a simple Java command line interface for query
-ing Onionoo data.</li>
-<li><a href="https://gitweb.torproject.org/user/phw/exitmap.git">Exitmap</a> is a fast and extensible scanner for Tor exi
-t relays.</li>
-<li><a href="https://gitweb.torproject.org/user/phw/sybilhunter.git/">Sybilhunter</a> attempts to detect Sybil attacks on
- the Tor network.</li>
-</ul>
+ <h1>Development <a href="#development" name="development" class="anchor">#</a></h1>
+ <p>You're a developer and want to write a tool that uses Tor network data? Here we're collecting programming libraries, APIs, and links to other code bases to get inspiration from.</p>
+ </div>
+
+ <div class="container">
+ <h2>Parsing libraries <a href="#libraries" name="libraries" class="anchor">#</a></h2>
+ <p>The following libraries help you with parsing Tor network data from the <a href="https://collector.torproject.org/" target="_blank">CollecTor</a> service.</p>
+ <ul>
+ <li><a href="https://dist.torproject.org/descriptor/" target="_blank">metrics-lib</a> is a Java library to fetch and parse Tor descriptors.</li>
+ <li><a href="https://stem.torproject.org/" target="_blank">Stem</a> is a Python library that parses Tor descriptors.</li>
+ <li><a href="https://github.com/NullHypothesis/zoossh" target="_blank">Zoossh</a> is a parser written in Go for Tor-specific data formats.</li>
+ </ul>
+ </div>
+
+ <div class="container">
+ <h2>Query support <a href="#query" name="query" class="anchor">#</a></h2>
+ <p>The following tools help you with querying Tor network data from the <a href="https://onionoo.torproject.org/" target="_blank">Onionoo</a> service.</p>
+ <ul>
+ <li><a href="https://savannah.nongnu.org/projects/koninoo/" target="_blank">koninoo</a> is a simple Java command line interface for querying Onionoo data.</li>
+ <li><a href="https://github.com/duk3luk3/onion-py" target="_blank">OnionPy</a> provides memcached support to cache queried data.</li>
+ </ul>
</div>
<jsp:include page="bottom.jsp"/>
diff --git a/website/web/WEB-INF/news.jsp b/website/web/WEB-INF/news.jsp
index a15009e..c5d86a0 100644
--- a/website/web/WEB-INF/news.jsp
+++ b/website/web/WEB-INF/news.jsp
@@ -14,20 +14,17 @@
<div class="container">
<h1>News <a href="#news" name="news" class="anchor">#</a></h1>
- <p>We collect reports of events and aggregate them here for your convenience. The process is usually pretty informal. Someone tells us of an event, reports it to us, and we aggregate them here. If you know of any event that may have caused a measurement anomaly, help us add it to this list.</p>
+ <p>You're a journalist or more generally a person who wants to know what's going on in the Tor network? We're collecting unusual events in the Tor network together with any insights we have into what we think has happened.</p>
</div>
- <div class="container">
<c:forEach var="category" items="${news}" varStatus="status">
- <c:if test="${not status.first}"><hr></c:if>
+ <div class="container">
<h2>${category.key[0]} <a href="#${category.key[1]}" name="${category.key[1]}" class="anchor">#</a></h2>
<c:forEach var="entry" items="${category.value}">
- <p>${entry[0]}</p>
- <br>
+ <p>${entry[0]}<br></p>
</c:forEach>
- </c:forEach>
-
</div>
+ </c:forEach>
<jsp:include page="bottom.jsp"/>
diff --git a/website/web/WEB-INF/operation.jsp b/website/web/WEB-INF/operation.jsp
index 8888183..5ee2b77 100644
--- a/website/web/WEB-INF/operation.jsp
+++ b/website/web/WEB-INF/operation.jsp
@@ -13,20 +13,40 @@
</div>
<div class="container">
- <h1>Operation</h1>
-<ul>
-<li><a href="https://exonerator.torproject.org/">ExoneraTor</a> tells you if an IP was used by a Tor relay on a given date.</li>
-<li><a href="https://atlas.torproject.org/">Atlas</a> displays data about single relays and bridges in the Tor network.</li>
-<li><a href="https://compass.torproject.org/">Compass</a> groups current relays in different ways to measure Tor's network diversity.</li>
-<li><a href="https://oniontip.com/">OnionTip</a> distributes bitcoin donations to relays that can receive them.</li>
-<li><a href="https://consensus-health.torproject.org/">Consensus Health</a> displays information about the current directory consensus and votes.</li>
-<li><a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-consensus-health">Consensus Issues</a> emails directory authority operators about consensus problems.</li>
-<li><a href="https://onionview.codeplex.com/">Check</a> uses<a href="https://www.torproject.org/projects/tordnsel.html.en">TorDNSEL</a> data to tell users whether they are using Tor or not.</li>
-<li><a href="http://lists.infolabe.net/lists/listinfo/infolabe-anomalies">OII's anomaly detection system</a> ranks countries by how anomalous their Tor usage is.</li>
-<li><a href="https://tor-explorer-10kapart2016.azurewebsites.net/">Tor Explorer</a> displays data on each individual Tor node.</li>
-<li>A <a href="https://duckduckgo.com/">DuckDuckGo</a> search with "tor node" keywords displays Tor node details.</li>
-<li><a href="https://onionview.codeplex.com/">OnionView</a> plots the location of active Tor nodes on an interactive map of the world.</li>
-</ul>
+ <h1>Operation <a href="#operation" name="operation" class="anchor">#</a></h1>
+ <p>You're operating a Tor relay or bridge, or you're affected in some way by somebody else operating one? Here you can learn everything about currently running Tor nodes or even about nodes that have been running in the past.</p>
+ </div>
+
+ <div class="container">
+ <h2>Network archive <a href="#archive" name="archive" class="anchor">#</a></h2>
+ <p>The following tool lets you browse the network archive for relays running in the past.</p>
+ <ul>
+ <li><a href="https://exonerator.torproject.org/" target="_blank">ExoneraTor</a> tells you if an IP was used by a Tor relay on a given date.</li>
+ </ul>
+ </div>
+
+ <div class="container">
+ <h2>Network status <a href="#status" name="status" class="anchor">#</a></h2>
+ <p>The following tools let you explore currently running relays and bridges.</p>
+ <ul>
+ <li><a href="https://play.google.com/store/apps/details?id=com.networksaremadeofstring.a…" target="_blank">AnOnionooid</a> is an Android app that helps find and explore Tor relays and bridges.</li>
+ <li><a href="https://atlas.torproject.org/" target="_blank">Atlas</a> displays data about single relays and bridges in the Tor network.</li>
+ <li><a href="https://compass.torproject.org/" target="_blank">Compass</a> groups current relays in different ways to measure Tor's network diversity.</li>
+ <li><a href="https://consensus-health.torproject.org/" target="_blank">Consensus Health</a> displays information about the current directory consensus and votes.</li>
+ <li><a href="https://duckduckgo.com/" target="_blank">DuckDuckGo</a> displays Tor node details when including the keywords "tor node" in a search.</li>
+ <li><a href="https://oniontip.com/" target="_blank">OnionTip</a> distributes bitcoin donations to relays that can receive them.</li>
+ <li><a href="https://onionview.codeplex.com/" target="_blank">OnionView</a> plots the location of active Tor nodes on an interactive map of the world.</li>
+ <li><a href="https://tor-explorer-10kapart2016.azurewebsites.net/" target="_blank">Tor Explorer</a> displays data on each individual Tor node.</li>
+ </ul>
+ </div>
+
+ <div class="container">
+ <h2>Network health notifications <a href="#health" name="health" class="anchor">#</a></h2>
+ <p>The following tools inform you of any problems with relays and bridges.</p>
+ <ul>
+ <li><a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-consensus-health" target="_blank">Consensus Issues</a> emails directory authority operators about consensus problems.</li>
+ <li><a href="http://lists.infolabe.net/lists/listinfo/infolabe-anomalies" target="_blank">OII's anomaly detection system</a> ranks countries by how anomalous their Tor usage is.</li>
+ </ul>
</div>
<jsp:include page="bottom.jsp"/>
diff --git a/website/web/WEB-INF/research.jsp b/website/web/WEB-INF/research.jsp
index 82e1680..57438fc 100644
--- a/website/web/WEB-INF/research.jsp
+++ b/website/web/WEB-INF/research.jsp
@@ -14,16 +14,12 @@
<div class="container">
<h1>Research <a href="#research" name="research" class="anchor">#</a></h1>
- <p>Tor started out as a research project! We encourage research on all things Tor.</p>
- <p>Look around the papers section below for some ideas on what others have researched in the past. Contact <a href="mailto:#">[some general email list here, torproject?]</a> if you want to discuss ideas.</p>
-
+ <p>You're a researcher and want to write a paper related to the public, deployed Tor network? Here you'll find other relevant papers to cite, technical reports to understand all the details, and existing tools to conduct research on the Tor network.</p>
</div>
<div class="container">
-
- <h2>Feel free to use our data for your research! <a href="#use" name="use" class="anchor">#</a></h2>
-
- <p>If you do, please cite <a href="https://metrics.torproject.org/" target="_self">https://metrics.torproject.org/</a> or the following <a href="http://freehaven.net/anonbib/#wecsr10measuring-tor" target="_blank">paper</a>:</p>
+ <h2>Citation <a href="#cite" name="cite" class="anchor">#</a></h2>
+ <p>Feel free to use our data for your research. If you do, please cite <a href="https://metrics.torproject.org/" target="_self">https://metrics.torproject.org/</a> or the following <a href="http://freehaven.net/anonbib/#wecsr10measuring-tor" target="_blank">paper</a>:</p>
<p><pre>
@inproceedings{wecsr10measuring-tor,
title = {A Case Study on Measuring Statistical Data in the {T}or Anonymity Network},
@@ -36,30 +32,20 @@
series = {LNCS},
}</pre></p>
<p>Thank you for acknowledging this work through a citation.</p>
-
</div>
<div class="container">
-
- <h2>Want to collect your own data for research? <a href="#collect" name="collect" class="anchor">#</a></h2>
- <p>Look at the <a href="sources.html">sources page</a> for services that collect Tor-related data.</p>
-
+ <h2>Technical reports <a href="#techreports" name="techreports" class="anchor">#</a></h2>
+ <p>From time to time we're writing <a href="https://research.torproject.org/techreports.html" target="_blank">technical reports</a> with further details on how we collect statistics in the Tor network or how we use them to learn new interesting facts. Be sure to take a look!</p>
</div>
-
<div class="container">
-
- <h2>Research Papers <a href="#research" name="research" class="anchor">#</a></h2>
- <p>Here are some Tor-related papers. (...) If we're missing yours, let us know!</p>
-
- </div>
-
- <div class="container">
-<ul>
-<li><a href="https://torps.github.io/">TorPS</a> simulates changes to Tor's path selection algorithm using archived data.</li>
-<li><a href="https://shadow.github.io/">Shadow</a> uses archived Tor directory data to generate realistic network topolog
-ies.</li>
-</ul>
+ <h2>Research tools <a href="#tools" name="tools" class="anchor">#</a></h2>
+ <p>The following tools are primarily useful if you want to do research using Tor network data.</p>
+ <ul>
+ <li><a href="https://torps.github.io/" target="_blank">TorPS</a> simulates changes to Tor's path selection algorithm using archived data.</li>
+ <li><a href="https://shadow.github.io/" target="_blank">Shadow</a> uses archived Tor directory data to generate realistic network topologies.</li>
+ </ul>
</div>
<jsp:include page="bottom.jsp"/>
diff --git a/website/web/WEB-INF/sources.jsp b/website/web/WEB-INF/sources.jsp
index de71883..ff320bd 100644
--- a/website/web/WEB-INF/sources.jsp
+++ b/website/web/WEB-INF/sources.jsp
@@ -21,15 +21,13 @@
<h2>Network archives <a href="#archive" name="archive" class="anchor">#</a></h2>
<p>We get our data from the network archives below.</p>
<div class="row">
-
<div class="col-md-3 col-sm-4 col-xs-6">
<a href="https://collector.torproject.org/" target="_blank">
<div class="logo" style="background-image:url(images/collector-logo.png);"></div>
<h2>CollecTor</h2>
- <p>collects data from various nodes and services in the public Tor network.</p>
+ <p>collects and archives data from various nodes and services in the public Tor network.</p>
</a>
</div>
-
<div class="col-md-3 col-sm-4 col-xs-6">
<a href="https://ooni.torproject.org/" target="_blank">
<div class="logo" style="background-image:url(images/ooni-logo.png);"></div>
@@ -37,64 +35,28 @@
<p>detects censorship, surveillance, and traffic manipulation on the internet.</p>
</a>
</div>
-
</div>
</div>
- <div class="container tools">
+ <div class="container">
<h2>Measurement tools <a href="#measurement" name="measurement" class="anchor">#</a></h2>
- <p>The following tools perform active measurements in the Tor network. (They don't have pretty logos yet, but they are all uniquely useful!)</p>
- <div class="row">
-
- <div class="col-md-2 col-sm-3 col-xs-4">
- <a href="https://www.torproject.org/projects/tordnsel.html.en" target="_blank">
- <div class="logo" style="background-image:url(images/default-logo.png);"></div>
- <h3>TorDNSEL</h3>
- <p>publishes lists of IP addresses of multi-homed Tor exits.</p>
- </a>
- </div>
-
- <div class="col-md-2 col-sm-3 col-xs-4">
- <a href="https://gitweb.torproject.org/torperf.git" target="_blank">
- <div class="logo" style="background-image:url(images/default-logo.png);"></div>
- <h3>Torperf</h3>
- <p>measures Tor performance with a set of utilities and Python scripts.</p>
- </a>
- </div>
-
- <div class="col-md-2 col-sm-3 col-xs-4">
- <a href="https://github.com/robgjansen/onionperf" target="_blank">
- <div class="logo" style="background-image:url(images/default-logo.png);"></div>
- <h3>OnionPerf</h3>
- <p>measures the performance of onion services.</p>
- </a>
- </div>
-
- </div>
+ <p>The following tools perform active measurements in the Tor network.</p>
+ <ul>
+ <li><a href="https://gitweb.torproject.org/user/phw/exitmap.git" target="_blank">Exitmap</a> is a fast and extensible scanner for Tor exit relays.</li>
+ <li><a href="https://www.torproject.org/projects/tordnsel.html.en" target="_blank">TorDNSEL</a> publishes lists of IP addresses of multi-homed Tor exits.</li>
+ <li><a href="https://gitweb.torproject.org/torperf.git" target="_blank">Torperf</a> measures Tor performance with a set of utilities and Python scripts.</li>
+ <li><a href="https://github.com/robgjansen/onionperf" target="_blank">OnionPerf</a> measures the performance of onion services.</li>
+ <li><a href="https://gitweb.torproject.org/user/phw/sybilhunter.git/" target="_blank">Sybilhunter</a> attempts to detect Sybil attacks onthe Tor network.</li>
+ </ul>
</div>
- <div class="container tools">
+ <div class="container">
<h2>Pre-aggregated data <a href="#aggregated" name="aggregated" class="anchor">#</a></h2>
<p>Sometimes the data from the original sources can be hard to process. If you want to take a little shortcut, try out the following pre-aggregated statistics.</p>
- <div class="row">
-
- <div class="col-md-2 col-sm-3 col-xs-4">
- <a href="stats.html">
- <div class="logo" style="background-image:url(images/default-logo.png);"></div>
- <h3>CSV files</h3>
- <p>are available with aggregated statistics of visualizations on this site.</p>
- </a>
- </div>
-
- <div class="col-md-2 col-sm-3 col-xs-4">
- <a href="https://onionoo.torproject.org/" target="_blank">
- <div class="logo" style="background-image:url(images/default-logo.png);"></div>
- <h3>Onionoo</h3>
- <p>provides current and historical data about relays and bridges via a web-based API.</p>
- </a>
- </div>
-
- </div>
+ <ul>
+ <li><a href="stats.html">CSV files</a> are available with aggregated statistics of visualizations on this site.</li>
+ <li><a href="https://onionoo.torproject.org/" target="_blank">Onionoo</a> provides current and historical data about relays and bridges via a web-based API.</li>
+ </ul>
</div>
<jsp:include page="bottom.jsp"/>
1
0