{% extends "base.html" %} {% block title %} - Connectivity Check{% endblock %} {% block content %}

Connectivity Check

This tool tries to connect or looks up a running P2Pool node to verify ports have been properly opened.
You need to have external ports opened for this tool to work.


{% if (not is_nil(address)) and address.IsValid() %}

Connectivity Check Result

{% if is_nil(check) %}

Could not connect to host.

{% elseif check.Error != "" and check.Address == "" %}

Error connecting to host: {{ check.Error }}.

{% if check.Error == "disconnected before finishing handshake" %}

This peer is likely running on a different SideChain or is running an incompatible P2Pool software version. Try a different Observer or verify your software.

{% elseif check.Error == "not_valid_ip" %}

The IP Address you are trying to connect to is not valid or accepted on this tool.

{% elseif check.Error == "not_valid_port" %}

The Port you are trying to connect to is not valid or accepted on this tool.

{% endif %} {% else %} {% if (not check.Closed) or (check.PeerId > 0) %} {% endif %} {% if check.BanError != "" %} {% endif %} {% if check.Error != "" %} {% if check.Error == "disconnected before finishing handshake" %} {% endif %} {% endif %} {% if not is_nil(check.Tip) %} {% if ((your_tip_raw.Main.Coinbase.GenHeight < (our_tip.MainHeight-3)) or (your_tip_raw.Main.Coinbase.GenHeight > (our_tip.MainHeight+3))) %} {% endif %} {% if is_nil(your_tip) and ((your_tip_raw.Side.Height < (our_tip.SideHeight-3)) or (your_tip_raw.Side.Height > (our_tip.SideHeight+3))) %} {% elseif (your_tip_raw.Side.Height < (our_tip.SideHeight-3)) or (your_tip_raw.Side.Height > (our_tip.SideHeight+3)) %} {% else %} {% endif %} {% endif %} {% endif %}
Peer Address
{{ check.Address }}
Peer Port
{{ check.Port }}
Listen Port
{% if check.ListenPort > 0 %}{{ check.Port }}{% else %}-{% endif %}
Peer Id
{% if check.PeerId > 0 %}{{ check.PeerId }}{% else %}-{% endif %}
Connection Direction
{% if check.Incoming %}Incoming{% else %}Outgoing{% endif %}
Connection Status
{% if check.Closed %}Closed{% else %}Active{% endif %}{% if not check.AlreadyConnected %}, new connection{% endif %}{% if check.Banned %} (banned){% endif %}
Peer Software
{{ check.SoftwareId }} {{ check.SoftwareVersion }}
Peer Protocol
{{ check.ProtocolVersion }}
Handshake Complete
{% if check.HandshakeComplete %}Yes{% else %}No{% endif %}
Last Broadcast
{{ time_elapsed_short(check.BroadcastTime) }}
Connection Duration
{{ time_elapsed_short(check.ConnectionTime) }}
Connection Latency
{% if check.Latency > 0 %}{{ check.Latency }}ms{% else %}-{% endif %}
 
Previous Ban Error: {{ check.BanError }}
 
Error: {{ check.Error }}
This peer is likely running on a different SideChain or is running an incompatible P2Pool software version. Try a different Observer or verify your software.
Alternatively this peer could have banned the Observer node and we cannot connect properly.
 
Peer SideChain Height
{{ your_tip_raw.Side.Height }}
Peer SideChain Id
{{ your_tip_raw.SideTemplateId(consensus)|shorten(10) }}
Peer MainChain Height
{{ your_tip_raw.Main.Coinbase.GenHeight }}
Peer Difficulty
{{ diff_uint(your_tip_raw.Side.Difficulty)|si_units(4) }}
Peer Cumulative Difficulty
{{ diff_uint(your_tip_raw.Side.CumulativeDifficulty)|si_units(4) }}
Peer Timestamp
{{ utc_date(your_tip_raw.Main.Timestamp) }}
Observer SideChain Height
{{ our_tip.SideHeight }}
Observer SideChain Id
{{ our_tip.TemplateId|shorten(10) }}
Observer MainChain Height
{{ our_tip.MainHeight }}
Observer Difficulty
{{ our_tip.Difficulty|si_units(4) }}
Observer Cumulative Difficulty
{{ diff_uint(our_tip.CumulativeDifficulty)|si_units(4) }}
Observer Timestamp
{{ utc_date(our_tip.Timestamp) }}
 
Peer Monero node is on a wildly different Monero height than Observer.
Either peer node is lagging behind or your monerod is not up to sync.
Could not find Peer SideChain Tip on Observer.
Either peer node is lagging behind or you are on a forked SideChain.
The peer is connectable and on the SideChain.
Peer SideChain Tip is on a wildly different SideChain height than Observer.
Either peer node is lagging behind or your p2pool is not up to sync.
The peer is connectable and on the SideChain.
{% if our_tip.TemplateId == your_tip_raw.SideTemplateId(consensus) %}The peer Tip matches exactly the Observer Tip.{% else %}Verify Peer SideChain Height against Observer SideChain Height, so it's not consistently different.{% endif %}
 
{% set minerAddress = block_address(your_tip_raw) %} {% if your_tip_raw is defined %}

Peer Tip Share information

P2Pool Height P2Pool Template Id Monero Height Monero Id
{{ your_tip_raw.Side.Height }} {{ your_tip_raw.SideTemplateId(consensus) }} {{ your_tip_raw.Main.Coinbase.GenHeight }} {{ your_tip_raw.MainId() }}
 
Age [h:m:s] PoW Hash Found by Difficulty
{{ date_diff_short(your_tip_raw.Main.Timestamp) }} -{{ minerAddress|shorten(10) }} {{ diff_uint(your_tip_raw.Side.Difficulty) }}
 
Valuation Coinbase Id Coinbase Reward Coinbase Private Key
{{ side_block_valuation(your_tip_raw) }} {{ your_tip_raw.Main.Coinbase.Id() }} {{ monero_to_xmr(your_tip_raw.Main.Coinbase.TotalReward) }} XMR {{ your_tip_raw.Side.CoinbasePrivateKey|hex }}
 
Nonce Cumulative Difficulty Extra Nonce Monero Target Difficulty
{{ your_tip_raw.Main.Nonce }} {{ your_tip_raw.Side.CumulativeDifficulty }} {{ extra_nonce(your_tip_raw) }}
 
Software Version Signaling {% if your_tip_raw.ShareVersion()|str != "v1" %}Template Extra Buffer{% endif %} Deterministic Private Key Seed
{{ software_info(your_tip_raw.Side.ExtraBuffer.SoftwareId, your_tip_raw.Side.ExtraBuffer.SoftwareVersion) }} {{ your_tip_raw.ShareVersion() }} ({% if your_tip_raw.ShareVersionSignaling()|str != "none" %}signaling {{ your_tip_raw.ShareVersionSignaling() }} support{% else %}no known signaling{% endif %}) {% if your_tip_raw.ShareVersion()|str != "v1" %}{{ your_tip_raw.Side.ExtraBuffer.RandomNumber|hex }} / {{ your_tip_raw.Side.ExtraBuffer.SideChainExtraNonce|hex }}{% endif %} {% if not is_zero_hash(your_tip_raw.GetPrivateKeySeed()) %}{{ your_tip_raw.GetPrivateKeySeed() }}{% else %}Not Deterministic{% endif %}
{% if your_tip_raw.Side.Uncles|length > 0 %}

Uncle shares

    {% for u in your_tip_raw.Side.Uncles %}
  • {{ u }}
  • {% endfor %}
{% endif %}

Coinbase Transaction

{% for t in your_tip_raw.Main.Coinbase.Outputs %} {% endfor %}
{{ coinbase_extra(your_tip_raw) }}
 
Output Index Ephemeral Public Key Reward
{{ t.Index }} {{ t.EphemeralPublicKey|hex }} {{ monero_to_xmr(t.Reward) }} XMR
{% if your_tip_raw.Main.Transactions|length > 0 %}

Included Transactions

    {% for t in your_tip_raw.Main.Transactions %}
  • {{ t }}
  • {% endfor %}
{% endif %}
{% endif %}
{% endif %} {% endblock %}