-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some DNS seeders and block explorers don't show Zebra nodes #1904
Comments
This is the list of conditions enforced by
However, before we get to the above checks, the seeder needs to be able to connect to the peer and perform a very minimal handshake and protocol query:
|
I'm pretty sure our mainnet instances satisfy all these criteria. But they're not configured with their external IP, and Zebra doesn't have external IP auto-detection. So they'll be advertising It's also possible that Google Cloud is filtering cryptocurrency traffic. |
We could test by configuring a publicly routable Zebra instance with the correct external IP address. |
Could this be related to #794 at all? |
I think it's not, the current value seems to follow the rules zebra/zebra-network/src/constants.rs Line 112 in 8120e8a
But we can double check. |
#2380 might help us diagnose this one |
We could add user-agent metrics to Zebra. This would show us if DNS seeders or block explorers are connecting to Zebra. |
I spoke to someone who runs a Zebra mainnet node with high uptime. According to the rules posted above: #1904 (comment) So it seems likely that Zebra is implementing some undocumented part of the network protocol differently. We might have to do low-level network diagnostics, or look at the detailed logs from a DNS seeder. |
Zecmate is showing Zebra nodes: https://explorer.zecmate.com/network |
Updated Blockchair/Blockchair.Support#527 to reference zebra nodes seen in zecmate |
This is blocked by an investigation of how block explorers handle the Zcash network protocol. |
In zcash/zcash#3881 (comment) , we found out that We should try to find out why. |
To clarify, this was not from
so I don't think this necessarily reflects a problem with |
I ran |
https://github.com/eqlabs/ziggurat/blob/main/src/tests/conformance/peering.rs#L20-L48 might also be related/helpful |
It's still using a Thanks for letting us know that |
This seems to be fixed for now, if we find issues with a specific block explorer or seeder, we can open another ticket with those details. |
Motivation
In #1844, we deployed a few
zcashd
instances on testnet, to make Zebra's testnet tests more reliable. But those nodes aren't showing up in the ECC's or the Foundation's DNS seeders.As far as we can tell, the nodes are configured correctly, they are synced to tip, their listener ports are open, and they are advertising their external IPv4 addresses. But they don't show up in the DNS of either seeder implementation.
Also, Zebra nodes don't show up in some other DNS seeders or blockchain explorers.
Known Zebra Issues
Bugs to fix
Things to investigate
Try pointing a seeder at a long-lived Zebra instance feat(net): return peer metadata from
connect_isolated
functions #4870 (comment)zcashd
seems to ignore peers fromzebrad
: Replace the Seeder zcash/zcash#3881 (comment)Other Protocol Mismatches:
version.addr_from
is typically dummy bytes, but Zebra sends the actual details: https://en.bitcoin.it/wiki/Protocol_documentation#versionList of Block Explorers
Some block explorers show up to 250 nodes.
There are about 150-200 nodes on mainnet that Zebra instances will connect to.
(Recent Zebra versions are limited to 75 outbound and 50 inbound connections, but this is configurable.)
Zebra might connect to fewer nodes because it has strict latency limits.
Zebra Nodes
This block explorer shows about 65 nodes, but it includes Zebra:
No Zebra Nodes
This block explorer shows about 250 nodes:
These block explorers show connected nodes only:
Currently down:
Completed
Make Zebra have long-term connections to peers:
DNS seeder bugs:
Metrics:
Optional
We could investigate why DNS seeders ignore
zebrad
nodes:Infrastructure:
zcashd
on a different network, to see if Google is blocking cryptocurrency trafficzcashd
nodes, to make sure they respond to requests correctlyCode Review:
zcashd
version of our nodes, and the versions accepted by the DNS seedersThe text was updated successfully, but these errors were encountered: