-
Notifications
You must be signed in to change notification settings - Fork 14
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
RFM Proposal: Data on usage of libp2p circuit relay v1 #20
Comments
What is the functionality that v1 has but v2 doesn't @SgtPooki? If I am not mistaken @dennis-tra is tracking the supported protocols with https://github.com/dennis-tra/nebula-crawler on the IPFS DHT. Note that rust-libp2p dropped support for circuit relay v1 entirely, see libp2p/rust-libp2p#2549. |
Interesting questions, @SgtPooki !
Just checked the latest crawl and these are the numbers (out of 11,885 total online peers): The numbers on the right are the number of peers that reported to support the protocols on the left.
The above numbers indicate which relay versions are supported - not necessarily which and how much they are used. I believe this is hard to come by with external observations only 🤔 However, do the numbers already give a hint to your
Just thinking out loud here: We could extrapolate measurements of PL controlled relay nodes. We could measure the relayed traffic with either protocol (v1/v2) and extrapolate to the whole network based on the above numbers? This methodology assumes that relayed traffic is evenly distributed among all relay nodes. |
Thanks a lot @dennis-tra! Those numbers make it seem like relay V1 is vital: 100% of nodes rounding to the nearest thousandth have it enabled. However, without knowing how many of those nodes are relaying any traffic, let alone v1 or v2, our support efforts for v1 are still flying blind. Extrapolating some numbers we could compare would be great for setting ourselves up for sunsetting v1/v2/v3... etc.. in the future. FYI the issues mentioned in the issue description have since been resolved. |
I am not sure Max.. I believe it was something lidel mentioned. |
@lidel says you cannot send data over v2 (no bitswap). I think the key here is that understanding how much traffic, over what protocols, is vital for understanding what priorities and efforts we should have. bcc @TheDiscordian |
I am assuming that you are referring to the fact that Circuit Relay v2 allows a relay node to enforce a limit on the amount of data to be relayed, right? Note that that is a feature, not a restriction. In other words, a Circuit Relay v2 relay node can offer the same functionality like a Circuit Relay v1 node if one sets these limits to a high value. All recent public IPFS nodes act as a limited Circuit Relay v2 node. But that doesn't stop folks from running an unlimited Circuit Relay v2 node for e.g. a bitswap use-case. |
@SgtPooki: given your original concern is mostly about improving the stability of ipfs/interop because of issues with relay-v1, I think the key thing we need to push on relay-v2 support in js: libp2p/js-libp2p#1029 . Landing that helps the story f getting rid of v1 in ipfs/interop. I agree that data of relay-v1 usage in production would be useful, but there is also a degree of its functionality we don't want to support on policy which can lead us to just dropping it as rust-libp2p has done. As a result, I think this specific RFM can likely be closed. |
@BigLep maybe this doesn't need prioritized over other things, but I think closing this is unwise. @mxinden https://docs.ipfs.tech/concepts/nodes/#relay also indicates that relay v2 are "limited relays":
Maybe a temporary relay would be a better name, but "limited relay" implies that relayv1 does things that v2 does not |
In https://github.com/ipfs/interop, we still have tests running libp2p circuit relay v1, which makes sense because it has functionality that relay v2 does not; however, It has caused some issues. See
and the discussions within those PRs.
I'm wondering if we can get metrics on which relay versions are being used and how much traffic exists for each. I understand that we should be able to query the DHT for multiaddr that indicate which relay version(s) are available.
As far as which metrics would be useful, I think the following is a good start:
Questions I want to answer with this data:
Please let me know if this request/issue is better suited elsewhere! Thanks.
The text was updated successfully, but these errors were encountered: