Details for: <%= relay.get('nickname') %>
<% if (relay.get('running') === false) { %>
<% } else { %>
<% } %>
<% if (relay.get('new_relay') === true) {%>
This relay appears to be less than 2 weeks old.
This blog post explains the lifecycle of a new relay, and why it will not be immediately fully used to capacity.
<% } %>
<% if (relay.get('recommended_version') === false && relay.get('version_consistent') == true) { %>
This relay is running a version of Tor that is not recommended.
It is most likely too old and may be missing important security fixes. If
this is the case, and this is your relay, you should update it as soon as
possible. Development versions (versions that are too new) will also trigger
this warning message (see bug
#24256).
<% } %>
Configuration
- Nickname
- <%= _.escape(relay.get('nickname')) %>
- OR Addresses ">
-
<% _.each(relay.get('or_addresses'),
function(or_address) { %><%= $.trim(or_address) %>
<% }); %>
<% if (relay.get('unreachable_or_addresses').length > 0) { %>
- Unreachable OR Addresses
-
<% _.each(relay.get('unreachable_or_addresses'),
function(or_address) { %><%= $.trim(or_address) %>
<% }); %>
<% } %>
- Contact
- <%= _.escape( relay.get('contact')!='undefined' ? relay.get('contact') : 'none' ) %>
- Dir Address
- <%= relay.get('dir_address') ? relay.get('dir_address') : 'none' %>
- Exit Addresses
-
<% if (relay.get('exit_addresses')) { %>
<% _.each(relay.get('exit_addresses'), function(exit_address) { %>
<%= exit_address %>
<% }); %>
<% } else { %>
none
<% } %>
-
Advertised Bandwidth
- <%= relay.get('bandwidth_hr') %>
- IPv4 Exit Policy Summary
-
<% if ('accept' in relay.get('exit_policy_summary')) { %>
accept<% _.each(relay.get('exit_policy_summary')['accept'],
function(ports) { %>
<%= $.trim(ports) %><% });} %>
<% if ('reject' in relay.get('exit_policy_summary')) { %>
reject<% _.each(relay.get('exit_policy_summary')['reject'],
function(ports) { %>
<%= $.trim(ports) %><% });} %>
- IPv6 Exit Policy Summary
-
<% if (relay.get('exit_policy_v6_summary') && ('accept' in relay.get('exit_policy_v6_summary'))) { %>
accept<% _.each(relay.get('exit_policy_v6_summary')['accept'],
function(ports) { %>
<%= $.trim(ports) %><% });} %>
<% if (relay.get('exit_policy_v6_summary') && ('reject' in relay.get('exit_policy_v6_summary'))) { %>
reject<% _.each(relay.get('exit_policy_v6_summary')['reject'],
function(ports) { %>
<%= $.trim(ports) %><% });} %>
<% if (relay.get('exit_policy_v6_summary') == null) { %>
reject
1-65535
<% } %>
- Exit Policy
-
<% _.each(relay.get('exit_policy'), function(line) { %>
<%= $.trim(line) %><% }); %>
Effective Family Members
<% if (relay.get('effective_family') !== null) { %><% } %>
<% if (relay.get('effective_family') !== null) { %><% _.each(relay.get('effective_family'), function(member) { %><% var valid = member.match(RegExp("^[A-F0-9]{40}$")); %>
<% if (valid) { %><% } %><%= member %><% if (valid) { %><% }}); %>
<% } else { %>none<% } %>
Alleged Family Members
<% if (relay.get('alleged_family') !== null) { %><% _.each(relay.get('alleged_family'), function(member) { %><% var valid = member.match(RegExp("^[A-F0-9]{40}$")); %>
<% if (valid) { %><% } %><%= member %><% if (valid) { %><% }}); %>
<% } else { %>none<% } %>
<% if (relay.get('running') === true) { %>
Properties
<% } else { %>
Last Known Properties
<% } %>
- Fingerprint
<%= relay.get('fingerprint') %>
<% if (relay.get('running') === true) { %>
- Uptime
- <%= relay.get('uptime_hrfull') %>
<% } else { %>
- Downtime
- <%= relay.get('downtime') %>
- Last Seen
- <%= relay.get('last_seen') %>
<% } %>
- Flags
- <% _.each(relay.get('flags'), function(flag) { %>
<%= flag[0] %>
<% }); %>
- Additional Flags
-
-
<% var propertyCount = 0; %>
<% _.each(relay.get('additional_flags'), function(flag) { propertyCount++; %>
<%= flag[0] %>
<% }); %>
<%= propertyCount==0 ? 'none' : '' %>
- Host Name
- <% if (relay.get('host_name')) { %><%= relay.get('host_name') %><% } else { %>No PTR record found<% } %>
- Country
- <% if (relay.get('country')) { %>
<%= relay.get('countryname') %><% } else { %>Unknown<% } %>
- AS Number
- <% if (relay.get('as_number') !== null) { %><%= _.escape(relay.get('as_number')) %><% } else { %>unknown<% }; %>
- AS Name
- <%= relay.get('as_name') ? _.escape(relay.get('as_name')) : "unknown" %>
- First Seen
- <%= relay.get('first_seen') %> (<%= relay.get('age') %>)
- Last Restarted
- <%= relay.get('last_restarted') %>
- Consensus Weight
- <%= relay.get('consensus_weight') %>
- Platform
- <%= _.escape(relay.get('platform')) %><% if (!relay.get('version_consistent')) { %> (version is <%= _.escape(relay.get('version')) %> in consensus)<% } %>
History
<% if (relay.get('dir_address')) { %>
Advanced
Latest server descriptor
Latest extra-info descriptor
<% } %>
Information for relays was published: <%= relay.get('relaysPublished') %> UTC.