-
Notifications
You must be signed in to change notification settings - Fork 6k
Add EIP: RPC Provider Discovery & Capacity API #9832
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
Conversation
This commit introduces a new EIP that outlines a standard mechanism for Ethereum RPC providers to advertise their service endpoints and operational capacity. It includes discovery methods using DNS-based Service Discovery and direct IP address querying, along with a structured Capacity Information API for real-time metrics. The EIP aims to enhance decentralization, improve user choice, and reduce reliance on centralized endpoints.
File
|
…y and Service Advertisement This update improves the consistency of formatting, including the removal of unnecessary escape characters and the correction of typographical errors throughout the document. The changes enhance readability and maintain the clarity of the EIP's content.
…agreements (SLA) and accountability mechanisms. Update specifications for Capacity Information API to support SLA details, including optional fields for SLA parameters and dispute resolution. Improve clarity and structure throughout the document.
Darkknight-web
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏻
|
@peersky do you think this is more suited as an ERC? imo EL clients don't need to implement this, a middleware on top would be much better and hence from that viewpoint this is something that clients don't need to implement. So it would be better as an ERC. wdyt? |
I agree that modular middleware does make sense; I don't think that current ERC classification can fit in to proposed standard (it's not application level):
Perhaps keeping EIP but moving in to |
|
The commit 3017969 (as a parent of 39ac116) contains errors. |
since this doesn't has to do with client networking, i doubt it belongs to networking category |
That's the reason I submit it as Interface. I would not want to create unnecessary implications on clients who are not seeing this interesting though; Perhaps having |
could you present me some evidence that some client actually wants to implement/support this? a comment here or in the discussions eth magicians link? |
It's intended to drive spatial decentralisation trough incentivisation; Hence, this standard is not intended to drive clients-wants; It is for showing in conversations with last mile telecom provider carriers, saying "hey, did you know you can earn extra $ with EVM nodes serving?" Im not affiliated with any client development teams, but I do have contracts in telecom industry and I am looking ways to create incentives for Ethereum not to be a joke running at one single AWS availability zone with fully centralized, eclipse attack prone, list of 3 bootstrapped nodes hardcoded in client distributions; |
|
I agree with @g11tech that this doesn't belong in Networking. Interface is for language / contract level standards and ABIs, so I think this probably belongs in the ERC space. Conceptually it sits roughly around the same level as URI standards. Please re-open this on the ERCs repository (though you can keep the same number). |
| created: 2025-05-28 | ||
| --- | ||
|
|
||
| ## **Abstract** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't bold the headers.
|
|
||
| ## **Abstract** | ||
|
|
||
| This EIP proposes a standard mechanism for Ethereum RPC (Remote Procedure Call) providers, including Internet Service Providers (ISPs) or individual network hops, to advertise their RPC service endpoints, current operational capacity, and optionally, their support for advanced service level agreement (SLA) frameworks. It defines discovery methods using DNS-based Service Discovery (DNS-SD) for domain-based lookups, and direct IP address querying for IP-specific lookups. It also specifies a schema for a machine-readable Capacity Information API endpoint that provides details about available RPC services, their capabilities, real-time capacity metrics, and information pertinent to engaging with them under such formal SLA frameworks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
None of this seems specific to Ethereum.
| * **Service Name:** Providers MUST advertise their service using the following DNS SRV service label: | ||
| * `_ethrpc-info._tcp` | ||
| * **DNS Query:** Clients SHOULD construct a DNS query for SRV records. For example, if a client's local DNS search path or ISP domain is `example.com`, the query would be for `_ethrpc-info._tcp.example.com`. Clients MAY also allow users to configure specific discovery domains. | ||
| * **SRV Record:** The SRV record (RFC 2782) MUST point to the hostname and port where the provider's Capacity Information API is hosted. Standard SRV priority and weight mechanisms apply. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EIP-1 has instructions for linking to RFCs.
|
|
||
| **Field Explanations:** | ||
|
|
||
| * specVersion: The version of this EIP's API specification that the response conforms to. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please put code snippets, like identifiers, in backticks (`).
|
|
||
| * **DNS-SD:** Leverages a well-established, standardized, and decentralized service discovery protocol for domain-based discovery. It is widely supported and understood. | ||
| * **Direct IP Address Query:** Provides a straightforward method for clients to query known IP addresses, such as specific network hops or local nodes, without requiring DNS. This is useful for direct probing or in environments where DNS-SD is not available or applicable for the target. | ||
| * **SRV Records:** Standard for specifying the location (host/port) of services in DNS-SD. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These bullet points aren't really, uh, explaining anything. For example, this line is just defining what an SRV record is. Instead, you should use this section to explain why you made a choice, say why you chose to build on top of DNS-SD.
This commit introduces a new EIP that outlines a standard mechanism for Ethereum RPC providers to advertise their service endpoints and operational capacity. It includes discovery methods using DNS-based Service Discovery and direct IP address querying, along with a structured Capacity Information API for real-time metrics. The EIP aims to enhance decentralization, improve user choice, and reduce reliance on centralized endpoints.