mirror of
https://gitlab.com/pulsechaincom/lighthouse-pulse.git
synced 2024-12-22 19:50:37 +00:00
Update RPC. WIP
This commit is contained in:
parent
b2a1b20e24
commit
b350a78fec
@ -166,13 +166,6 @@ pub struct DecodedBeaconBlockBodiesResponse {
|
||||
pub block_bodies: Vec<BeaconBlockBody>,
|
||||
}
|
||||
|
||||
//TODO: Build a cleaner API for this encoding/decoding
|
||||
/// This only exists to encode/decode beacon block bodies according to the wire protocol.
|
||||
#[derive(Encode, Decode)]
|
||||
pub struct EncodeableBeaconBlockBodiesResponse {
|
||||
pub block_bodies: Vec<BeaconBlockBody>,
|
||||
}
|
||||
|
||||
/// Request values for tree hashes which yield a blocks `state_root`.
|
||||
#[derive(Encode, Decode, Clone, Debug, PartialEq)]
|
||||
pub struct BeaconChainStateRequest {
|
||||
|
@ -24,9 +24,6 @@ const PROTOCOL_PREFIX: &str = "/eth/serenity/rpc/";
|
||||
/// The number of seconds to wait for a request once a protocol has been established before the stream is terminated.
|
||||
const REQUEST_TIMEOUT: u64 = 3;
|
||||
|
||||
/// Implementation of the `ConnectionUpgrade` for the RPC protocol.
|
||||
const MAX_READ_SIZE: usize = 4_194_304; // 4M
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCProtocol;
|
||||
|
||||
|
@ -254,16 +254,12 @@ impl<T: BeaconChainTypes + 'static> MessageHandler<T> {
|
||||
bodies_response: BeaconBlockBodiesResponse,
|
||||
) -> Option<DecodedBeaconBlockBodiesResponse> {
|
||||
//TODO: Implement faster block verification before decoding entirely
|
||||
let simple_decoded_bodies =
|
||||
EncodeableBeaconBlockBodiesResponse::from_ssz_bytes(&bodies_response.block_bodies);
|
||||
|
||||
//TODO: Potentially improve the types used here for SSZ encoding/decoding
|
||||
if let Ok(simple_decoded_bodies) = simple_decoded_bodies {
|
||||
Some(DecodedBeaconBlockBodiesResponse {
|
||||
block_roots: bodies_response
|
||||
.block_roots
|
||||
.expect("Responses must have associated roots"),
|
||||
block_bodies: simple_decoded_bodies.block_bodies,
|
||||
block_bodies: Vec::from_ssz_bytes(&bodies_response.block_bodies).unwrap(),
|
||||
})
|
||||
} else {
|
||||
None
|
||||
|
@ -503,11 +503,7 @@ impl<T: BeaconChainTypes> SimpleSync<T> {
|
||||
"returned" => block_bodies.len(),
|
||||
);
|
||||
|
||||
//TODO: Elegant ssz encoding. Either here or in the message handler
|
||||
let bytes = {
|
||||
let resp = EncodeableBeaconBlockBodiesResponse { block_bodies };
|
||||
resp.as_ssz_bytes()
|
||||
};
|
||||
let bytes = block_bodes.as_ssz_bytes();
|
||||
|
||||
network.send_rpc_response(
|
||||
peer_id,
|
||||
|
Loading…
Reference in New Issue
Block a user