mirror of
https://gitlab.com/pulsechaincom/lighthouse-pulse.git
synced 2025-01-03 01:37:39 +00:00
Separate validator fns into new proto service
This commit is contained in:
parent
ad6ae21676
commit
158ffd7d1c
@ -15,6 +15,9 @@ package ethereum.beacon.rpc.v1;
|
|||||||
service BeaconBlockService {
|
service BeaconBlockService {
|
||||||
rpc ProduceBeaconBlock(ProduceBeaconBlockRequest) returns (ProduceBeaconBlockResponse);
|
rpc ProduceBeaconBlock(ProduceBeaconBlockRequest) returns (ProduceBeaconBlockResponse);
|
||||||
rpc PublishBeaconBlock(PublishBeaconBlockRequest) returns (PublishBeaconBlockResponse);
|
rpc PublishBeaconBlock(PublishBeaconBlockRequest) returns (PublishBeaconBlockResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
service ValidatorService {
|
||||||
rpc ValidatorAssignment(ValidatorAssignmentRequest) returns (ValidatorAssignmentResponse);
|
rpc ValidatorAssignment(ValidatorAssignmentRequest) returns (ValidatorAssignmentResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
use super::traits::{BeaconNode, BeaconNodeError};
|
use super::traits::{BeaconNode, BeaconNodeError};
|
||||||
use super::EpochDuties;
|
use super::EpochDuties;
|
||||||
use protos::services::ValidatorAssignmentRequest;
|
use protos::services::ValidatorAssignmentRequest;
|
||||||
use protos::services_grpc::BeaconBlockServiceClient;
|
use protos::services_grpc::ValidatorServiceClient;
|
||||||
use ssz::ssz_encode;
|
use ssz::ssz_encode;
|
||||||
use types::PublicKey;
|
use types::PublicKey;
|
||||||
|
|
||||||
impl BeaconNode for BeaconBlockServiceClient {
|
impl BeaconNode for ValidatorServiceClient {
|
||||||
fn request_shuffling(
|
fn request_shuffling(
|
||||||
&self,
|
&self,
|
||||||
epoch: u64,
|
epoch: u64,
|
||||||
|
@ -4,7 +4,7 @@ use crate::config::ClientConfig;
|
|||||||
use bls::Keypair;
|
use bls::Keypair;
|
||||||
use clap::{App, Arg};
|
use clap::{App, Arg};
|
||||||
use grpcio::{ChannelBuilder, EnvBuilder};
|
use grpcio::{ChannelBuilder, EnvBuilder};
|
||||||
use protos::services_grpc::BeaconBlockServiceClient;
|
use protos::services_grpc::{BeaconBlockServiceClient, ValidatorServiceClient};
|
||||||
use slog::{error, info, o, Drain};
|
use slog::{error, info, o, Drain};
|
||||||
use slot_clock::SystemTimeSlotClock;
|
use slot_clock::SystemTimeSlotClock;
|
||||||
use spec::ChainSpec;
|
use spec::ChainSpec;
|
||||||
@ -66,10 +66,19 @@ fn main() {
|
|||||||
"data_dir" => &config.data_dir.to_str(),
|
"data_dir" => &config.data_dir.to_str(),
|
||||||
"server" => &config.server);
|
"server" => &config.server);
|
||||||
|
|
||||||
// gRPC
|
// Beacon node gRPC beacon block endpoints.
|
||||||
let env = Arc::new(EnvBuilder::new().build());
|
let beacon_block_grpc_client = {
|
||||||
let ch = ChannelBuilder::new(env).connect(&config.server);
|
let env = Arc::new(EnvBuilder::new().build());
|
||||||
let client = Arc::new(BeaconBlockServiceClient::new(ch));
|
let ch = ChannelBuilder::new(env).connect(&config.server);
|
||||||
|
Arc::new(BeaconBlockServiceClient::new(ch))
|
||||||
|
};
|
||||||
|
|
||||||
|
// Beacon node gRPC validator endpoints.
|
||||||
|
let validator_grpc_client = {
|
||||||
|
let env = Arc::new(EnvBuilder::new().build());
|
||||||
|
let ch = ChannelBuilder::new(env).connect(&config.server);
|
||||||
|
Arc::new(ValidatorServiceClient::new(ch))
|
||||||
|
};
|
||||||
|
|
||||||
// Ethereum
|
// Ethereum
|
||||||
//
|
//
|
||||||
@ -101,7 +110,7 @@ fn main() {
|
|||||||
let duties_map = duties_map.clone();
|
let duties_map = duties_map.clone();
|
||||||
let slot_clock = slot_clock.clone();
|
let slot_clock = slot_clock.clone();
|
||||||
let log = log.clone();
|
let log = log.clone();
|
||||||
let beacon_node = client.clone();
|
let beacon_node = validator_grpc_client.clone();
|
||||||
let pubkey = keypair.pk.clone();
|
let pubkey = keypair.pk.clone();
|
||||||
thread::spawn(move || {
|
thread::spawn(move || {
|
||||||
let manager = DutiesManager {
|
let manager = DutiesManager {
|
||||||
@ -126,7 +135,7 @@ fn main() {
|
|||||||
let duties_map = duties_map.clone();
|
let duties_map = duties_map.clone();
|
||||||
let slot_clock = slot_clock.clone();
|
let slot_clock = slot_clock.clone();
|
||||||
let log = log.clone();
|
let log = log.clone();
|
||||||
let client = client.clone();
|
let client = beacon_block_grpc_client.clone();
|
||||||
thread::spawn(move || {
|
thread::spawn(move || {
|
||||||
let block_producer = BlockProducer::new(spec, duties_map, slot_clock, client);
|
let block_producer = BlockProducer::new(spec, duties_map, slot_clock, client);
|
||||||
let mut block_producer_service = BlockProducerService {
|
let mut block_producer_service = BlockProducerService {
|
||||||
|
Loading…
Reference in New Issue
Block a user