Updates with Whiteblock

This commit is contained in:
Matthew Slipper 2019-03-20 19:04:04 -07:00
parent 472d9c5c20
commit 8794d03517
1 changed files with 42 additions and 17 deletions

View File

@ -51,8 +51,8 @@ and their corresponding responses are wrapped in a "response" structure:
``` ```
( (
id: uint64 id: uint64
is_error: boolean response_code: uint16
result: Response result: bytes
) )
``` ```
@ -61,11 +61,8 @@ If an error occurs, a variant of the response structure is returned:
``` ```
( (
id: uint64 id: uint64
is_error: boolean response_code: uint16
result: ( result: bytes
code: uint16
data: bytes
)
) )
``` ```
@ -75,20 +72,21 @@ The details of the RPC-Over-`libp2p` protocol are similar to [JSON-RPC 2.0](http
2. The `id` member in the response MUST be the same as the value of the `id` in the request. 2. The `id` member in the response MUST be the same as the value of the `id` in the request.
3. The `id` member MUST be unique within the context of a single connection. Monotonically increasing `id`s are RECOMMENDED. 3. The `id` member MUST be unique within the context of a single connection. Monotonically increasing `id`s are RECOMMENDED.
4. The `method_id` member is REQUIRED. 4. The `method_id` member is REQUIRED.
5. The `result` member is required on success, and MUST NOT exist if there was an error. 5. The `result` member is REQUIRED on success.
6. The `error` member is REQUIRED on errors, and MUST NOT exist if there wasn't an error. 6. The `result` member is OPTIONAL on errors, and MAY contain additional information about the error.
7. `is_error` MUST be `true` on errors, or `false` otherwise. 7. `response_code` MUST be `0` on success.
Structuring RPC requests in this manner allows multiple calls and responses to be multiplexed over the same stream without switching. Note that this implies that responses MAY arrive in a different order than requests. Structuring RPC requests in this manner allows multiple calls and responses to be multiplexed over the same stream without switching. Note that this implies that responses MAY arrive in a different order than requests.
The "method ID" fields in the below messages refer to the `method` field in the request structure above. The "method ID" fields in the below messages refer to the `method` field in the request structure above.
The first 1,000 values in `error.code` are reserved for system use. The following error codes are predefined: The first 1,000 values in `response_code` are reserved for system use. The following response codes are predefined:
1. `0`: Parse error. 1. `0`: No error.
2. `10`: Invalid request. 2. `10`: Parse error.
3. `20`: Method not found. 2. `20`: Invalid request.
4. `30`: Server error. 3. `30`: Method not found.
4. `40`: Server error.
### Alternative for Non-`libp2p` Clients ### Alternative for Non-`libp2p` Clients
@ -105,6 +103,7 @@ Since some clients are waiting for `libp2p` implementations in their respective
``` ```
( (
network_id: uint8 network_id: uint8
chain_id: uint8
latest_finalized_root: bytes32 latest_finalized_root: bytes32
latest_finalized_epoch: uint64 latest_finalized_epoch: uint64
best_root: bytes32 best_root: bytes32
@ -168,6 +167,32 @@ Client MAY send `goodbye` messages upon disconnection. The reason field MAY be o
Clients MAY define custom goodbye reasons as long as the value is larger than `1000`. Clients MAY define custom goodbye reasons as long as the value is larger than `1000`.
### Get Status
**Method ID:** `2`
**Request Body:**
```
(
sha: bytes32
user_agent: bytes
timestamp: uint64
)
```
**Response Body:**
```
(
sha: bytes32
user_agent: bytes
timestamp: uint64
)
```
Returns metadata about the remote node.
### Request Beacon Block Roots ### Request Beacon Block Roots
**Method ID:** `10` **Method ID:** `10`
@ -195,7 +220,7 @@ Clients MAY define custom goodbye reasons as long as the value is larger than `1
) )
``` ```
Requests a list of block roots and slots from the peer. The `count` parameter MUST be less than or equal to `32768`. Requests a list of block roots and slots from the peer. The `count` parameter MUST be less than or equal to `32768`. The slots MUST be returned in ascending slot order.
### Beacon Block Headers ### Beacon Block Headers
@ -216,7 +241,7 @@ Requests a list of block roots and slots from the peer. The `count` parameter MU
``` ```
( (
headers: []BlockHeader headers: []BeaconBlockHeader
) )
``` ```