You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.8 KiB
HTML

<!DOCTYPE HTML>
<html>
{% include 'includes/head.html' %}
<body>
{% include 'includes/header.html' %}
<section class="hero is-primary">
<div class="hero-body">
<div class="container center">
<p>This web service is a simple way of supporting the Monero network by launching new nodes, extending the blockchain globally, and enhancing the user experience for others.</p>
<br />
<p>Navigate to the Launchpad in the header above to begin a node launch operation.</p>
</div>
</div>
</section>
<section class="hero is-light">
<div class="hero-body">
<div class="container center">
<h1>{{ funded_ops.count() }} Nodes in Orbit</h1>
<br />
{% if funded_ops.count() > 0 %}
<table class="table center">
<tr>
<th>Operation</th>
<th>Create Time</th>
<th>Region</th>
<th>Node DNS</th>
<th>Status</th>
<th>Links</th>
</tr>
{% for op in funded_ops %}
<tr>
<td>{{ op.codename }}</td>
<td>{{ op.create_date }}</td>
<td>{{ op.region }}</td>
<td>
{{ op.get_node_url() }}
<br />
{{ op.get_node_tor_url() }}
</td>
<td id="{{ op.codename }}-status"><i class="fa fa-sync-alt fa-spin"></i> Checking</td>
<td><a class="is-link" href="https://{{ op.get_node_url() }}/grafana/d/0ktA4KDGk/daemon-stats?orgId=1&refresh=30s&from=now-6h&to=now" target="_blank">View Stats</a></td>
</tr>
{% endfor %}
</table>
<hr>
<h1>Connect to a Node</h1>
<p>Use any of the individual addresses above using port 18081 in your Monero wallet to use the remote node.</p>
<p>
You can use the following address that reverse proxies to all active XMR Node Cannon nodes:
<br />
<br />
global.xmrcannon.net
<br />
(port 443, use SSL)
</p>
<br />
<p>Proxy currently resides in USA, but will be setting up round robin to all global endpoints.</p>
{% endif %}
</div>
</div>
</section>
<script type="text/javascript">
window.onload = function() {
{% for op in funded_ops %}
fetch('/api/info/{{ op.codename }}')
.then((resp) => resp.json())
.then(function(data) {
if(data['synchronized']){
var html = '<i class="fa fa-check-circle is-green"></i> Synced'
} else if (data['error']) {
var html = '<i class="fa fa-exclamation-triangle is-red"></i> Error'
} else {
var html = '<i class="fa fa-sync-alt fa-spin"></i> Syncing'
}
var s = document.getElementById('{{ op.codename }}-status')
s.innerHTML = html
})
{% endfor %}
}
</script>
{% include 'includes/footer.html' %}
</body>
</html>