Only send pubkey to ReplayStage
This commit is contained in:
@ -20,7 +20,7 @@ use crate::vote_signer_proxy::VoteSignerProxy;
|
|||||||
use log::Level;
|
use log::Level;
|
||||||
use solana_metrics::{influxdb, submit};
|
use solana_metrics::{influxdb, submit};
|
||||||
use solana_sdk::hash::Hash;
|
use solana_sdk::hash::Hash;
|
||||||
use solana_sdk::signature::{Keypair, KeypairUtil};
|
use solana_sdk::pubkey::Pubkey;
|
||||||
use solana_sdk::timing::duration_as_ms;
|
use solana_sdk::timing::duration_as_ms;
|
||||||
use std::net::UdpSocket;
|
use std::net::UdpSocket;
|
||||||
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
|
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
|
||||||
@ -63,7 +63,7 @@ impl ReplayStage {
|
|||||||
bank: &Arc<Bank>,
|
bank: &Arc<Bank>,
|
||||||
cluster_info: &Arc<RwLock<ClusterInfo>>,
|
cluster_info: &Arc<RwLock<ClusterInfo>>,
|
||||||
window_receiver: &EntryReceiver,
|
window_receiver: &EntryReceiver,
|
||||||
keypair: &Arc<Keypair>,
|
my_id: Pubkey,
|
||||||
vote_signer_proxy: Option<&Arc<VoteSignerProxy>>,
|
vote_signer_proxy: Option<&Arc<VoteSignerProxy>>,
|
||||||
vote_blob_sender: Option<&BlobSender>,
|
vote_blob_sender: Option<&BlobSender>,
|
||||||
ledger_entry_sender: &EntrySender,
|
ledger_entry_sender: &EntrySender,
|
||||||
@ -108,7 +108,6 @@ impl ReplayStage {
|
|||||||
let (current_leader, _) = bank
|
let (current_leader, _) = bank
|
||||||
.get_current_leader()
|
.get_current_leader()
|
||||||
.expect("Scheduled leader should be calculated by this point");
|
.expect("Scheduled leader should be calculated by this point");
|
||||||
let my_id = keypair.pubkey();
|
|
||||||
let already_leader = my_id == current_leader;
|
let already_leader = my_id == current_leader;
|
||||||
let mut did_rotate = false;
|
let mut did_rotate = false;
|
||||||
|
|
||||||
@ -205,7 +204,7 @@ impl ReplayStage {
|
|||||||
|
|
||||||
#[allow(clippy::new_ret_no_self, clippy::too_many_arguments)]
|
#[allow(clippy::new_ret_no_self, clippy::too_many_arguments)]
|
||||||
pub fn new(
|
pub fn new(
|
||||||
keypair: Arc<Keypair>,
|
my_id: Pubkey,
|
||||||
vote_signer_proxy: Option<Arc<VoteSignerProxy>>,
|
vote_signer_proxy: Option<Arc<VoteSignerProxy>>,
|
||||||
bank: Arc<Bank>,
|
bank: Arc<Bank>,
|
||||||
cluster_info: Arc<RwLock<ClusterInfo>>,
|
cluster_info: Arc<RwLock<ClusterInfo>>,
|
||||||
@ -221,7 +220,6 @@ impl ReplayStage {
|
|||||||
let send = UdpSocket::bind("0.0.0.0:0").expect("bind");
|
let send = UdpSocket::bind("0.0.0.0:0").expect("bind");
|
||||||
let t_responder = responder("replay_stage", Arc::new(send), vote_blob_receiver);
|
let t_responder = responder("replay_stage", Arc::new(send), vote_blob_receiver);
|
||||||
|
|
||||||
let keypair = Arc::new(keypair);
|
|
||||||
let t_replay = Builder::new()
|
let t_replay = Builder::new()
|
||||||
.name("solana-replay-stage".to_string())
|
.name("solana-replay-stage".to_string())
|
||||||
.spawn(move || {
|
.spawn(move || {
|
||||||
@ -236,7 +234,7 @@ impl ReplayStage {
|
|||||||
let (leader_id, _) = bank
|
let (leader_id, _) = bank
|
||||||
.get_current_leader()
|
.get_current_leader()
|
||||||
.expect("Scheduled leader should be calculated by this point");
|
.expect("Scheduled leader should be calculated by this point");
|
||||||
if leader_id != last_leader_id && leader_id == keypair.pubkey() {
|
if leader_id != last_leader_id && leader_id == my_id {
|
||||||
to_leader_sender
|
to_leader_sender
|
||||||
.send(TvuReturnType::LeaderRotation(
|
.send(TvuReturnType::LeaderRotation(
|
||||||
bank.tick_height(),
|
bank.tick_height(),
|
||||||
@ -251,7 +249,7 @@ impl ReplayStage {
|
|||||||
&bank,
|
&bank,
|
||||||
&cluster_info,
|
&cluster_info,
|
||||||
&window_receiver,
|
&window_receiver,
|
||||||
&keypair,
|
my_id,
|
||||||
vote_signer_proxy.as_ref(),
|
vote_signer_proxy.as_ref(),
|
||||||
Some(&vote_blob_sender),
|
Some(&vote_blob_sender),
|
||||||
&ledger_entry_sender,
|
&ledger_entry_sender,
|
||||||
@ -383,7 +381,7 @@ mod test {
|
|||||||
let (rotation_sender, rotation_receiver) = channel();
|
let (rotation_sender, rotation_receiver) = channel();
|
||||||
let exit = Arc::new(AtomicBool::new(false));
|
let exit = Arc::new(AtomicBool::new(false));
|
||||||
let (_replay_stage, ledger_writer_recv) = ReplayStage::new(
|
let (_replay_stage, ledger_writer_recv) = ReplayStage::new(
|
||||||
my_keypair,
|
my_keypair.pubkey(),
|
||||||
Some(Arc::new(vote_signer_proxy)),
|
Some(Arc::new(vote_signer_proxy)),
|
||||||
Arc::new(bank),
|
Arc::new(bank),
|
||||||
Arc::new(RwLock::new(cluster_info_me)),
|
Arc::new(RwLock::new(cluster_info_me)),
|
||||||
@ -479,7 +477,7 @@ mod test {
|
|||||||
let vote_signer_proxy = Arc::new(VoteSignerProxy::new_local(&my_keypair));
|
let vote_signer_proxy = Arc::new(VoteSignerProxy::new_local(&my_keypair));
|
||||||
let (to_leader_sender, _) = channel();
|
let (to_leader_sender, _) = channel();
|
||||||
let (replay_stage, ledger_writer_recv) = ReplayStage::new(
|
let (replay_stage, ledger_writer_recv) = ReplayStage::new(
|
||||||
my_keypair.clone(),
|
my_keypair.pubkey(),
|
||||||
Some(vote_signer_proxy.clone()),
|
Some(vote_signer_proxy.clone()),
|
||||||
bank.clone(),
|
bank.clone(),
|
||||||
cluster_info_me.clone(),
|
cluster_info_me.clone(),
|
||||||
@ -587,7 +585,7 @@ mod test {
|
|||||||
let (rotation_tx, rotation_rx) = channel();
|
let (rotation_tx, rotation_rx) = channel();
|
||||||
let exit = Arc::new(AtomicBool::new(false));
|
let exit = Arc::new(AtomicBool::new(false));
|
||||||
let (_replay_stage, ledger_writer_recv) = ReplayStage::new(
|
let (_replay_stage, ledger_writer_recv) = ReplayStage::new(
|
||||||
my_keypair.clone(),
|
my_keypair.pubkey(),
|
||||||
Some(vote_signer_proxy.clone()),
|
Some(vote_signer_proxy.clone()),
|
||||||
bank.clone(),
|
bank.clone(),
|
||||||
cluster_info_me.clone(),
|
cluster_info_me.clone(),
|
||||||
@ -687,7 +685,7 @@ mod test {
|
|||||||
&Arc::new(Bank::default()),
|
&Arc::new(Bank::default()),
|
||||||
&cluster_info_me,
|
&cluster_info_me,
|
||||||
&entry_receiver,
|
&entry_receiver,
|
||||||
&my_keypair,
|
my_id,
|
||||||
Some(&vote_signer_proxy),
|
Some(&vote_signer_proxy),
|
||||||
None,
|
None,
|
||||||
&ledger_entry_sender,
|
&ledger_entry_sender,
|
||||||
@ -714,7 +712,7 @@ mod test {
|
|||||||
&Arc::new(Bank::default()),
|
&Arc::new(Bank::default()),
|
||||||
&cluster_info_me,
|
&cluster_info_me,
|
||||||
&entry_receiver,
|
&entry_receiver,
|
||||||
&Arc::new(Keypair::new()),
|
Keypair::new().pubkey(),
|
||||||
Some(&vote_signer_proxy),
|
Some(&vote_signer_proxy),
|
||||||
None,
|
None,
|
||||||
&ledger_entry_sender,
|
&ledger_entry_sender,
|
||||||
@ -769,7 +767,7 @@ mod test {
|
|||||||
&Arc::new(Bank::default()),
|
&Arc::new(Bank::default()),
|
||||||
&cluster_info_me,
|
&cluster_info_me,
|
||||||
&entry_receiver,
|
&entry_receiver,
|
||||||
&my_keypair,
|
my_id,
|
||||||
Some(&vote_signer_proxy),
|
Some(&vote_signer_proxy),
|
||||||
None,
|
None,
|
||||||
&ledger_entry_sender,
|
&ledger_entry_sender,
|
||||||
|
@ -23,7 +23,7 @@ use crate::service::Service;
|
|||||||
use crate::storage_stage::{StorageStage, StorageState};
|
use crate::storage_stage::{StorageStage, StorageState};
|
||||||
use crate::vote_signer_proxy::VoteSignerProxy;
|
use crate::vote_signer_proxy::VoteSignerProxy;
|
||||||
use solana_sdk::hash::Hash;
|
use solana_sdk::hash::Hash;
|
||||||
use solana_sdk::signature::Keypair;
|
use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||||
use std::net::UdpSocket;
|
use std::net::UdpSocket;
|
||||||
use std::sync::atomic::{AtomicBool, Ordering};
|
use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
use std::sync::{Arc, RwLock};
|
use std::sync::{Arc, RwLock};
|
||||||
@ -113,7 +113,7 @@ impl Tvu {
|
|||||||
let l_last_entry_id = Arc::new(RwLock::new(last_entry_id));
|
let l_last_entry_id = Arc::new(RwLock::new(last_entry_id));
|
||||||
|
|
||||||
let (replay_stage, ledger_entry_receiver) = ReplayStage::new(
|
let (replay_stage, ledger_entry_receiver) = ReplayStage::new(
|
||||||
keypair.clone(),
|
keypair.pubkey(),
|
||||||
vote_signer,
|
vote_signer,
|
||||||
bank.clone(),
|
bank.clone(),
|
||||||
cluster_info.clone(),
|
cluster_info.clone(),
|
||||||
|
Reference in New Issue
Block a user