-
Notifications
You must be signed in to change notification settings - Fork 436
Engine API: introduce exchangeCapabilities #364
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
Merged
Merged
Changes from 4 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
5ad8fc0
Spec out getCapabilities
mkalinin 7d29e03
Do exchange capabilities instead of get
mkalinin ce06e22
Update capabilities.md
mkalinin b80db9f
State that exchangeCapabilities is optional
mkalinin 984c906
Move exchangeCapabilities to common.md
mkalinin File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# Engine API -- Capabilities | ||
|
||
Specification of `engine_exchangeCapabilities` method exchanging with a list of Engine API methods supported by the server (execution layer client) and the client (consensus layer client) down to a version of each method. | ||
|
||
The proposed method should become a part of [`common.md`](../common.md) document if accepted. | ||
|
||
## Methods | ||
|
||
### engine_exchangeCapabilities | ||
|
||
*Note:* The method itself doesn't have a version suffix. | ||
|
||
#### Request | ||
|
||
* method: `engine_exchangeCapabilities` | ||
* params: | ||
1. `Array of string` -- Array of strings, each string is a name of a method supported by consensus layer client software. | ||
* timeout: 1s | ||
|
||
#### Response | ||
|
||
`Array of string` -- Array of strings, each string is a name of a method supported by execution layer client software. | ||
|
||
#### Specification | ||
|
||
1. Consensus and execution layer client software **MAY** exchange with a list of currently supported Engine API methods. Execution layer client software **MUST NOT** log any error messages if this method has either never been called or haven't been called for a significant amount of time. | ||
|
||
2. Request and response lists **MUST** contain Engine API methods that are currently supported by consensus and execution client software respectively. Name of each method in both lists **MUST** include suffixed version. Consider the following examples: | ||
* Client software of both layers currently supports `V1` and `V2` versions of `engine_newPayload` method: | ||
* params: `["engine_newPayloadV1", "engine_newPayloadV2", ...]`, | ||
* response: `["engine_newPayloadV1", "engine_newPayloadV2", ...]`. | ||
* `V1` method has been deprecated and `V3` method has been introduced on execution layer side since the last call: | ||
* params: `["engine_newPayloadV1", "engine_newPayloadV2", ...]`, | ||
* response: `["engine_newPayloadV2", "engine_newPayloadV3", ...]`. | ||
* The same capabilities modification has happened in consensus layer client, so, both clients have the same capability set again: | ||
* params: `["engine_newPayloadV2", "engine_newPayloadV3", ...]`, | ||
* response: `["engine_newPayloadV2", "engine_newPayloadV3", ...]`. | ||
|
||
3. The `engine_exchangeCapabilities` method **MUST NOT** be returned in the response list. |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.