Add genesis blockhash to blobs (#3953)
This commit is contained in:
@ -13,6 +13,7 @@ use crate::service::Service;
|
||||
use crate::streamer::{BlobReceiver, BlobSender};
|
||||
use solana_metrics::counter::Counter;
|
||||
use solana_runtime::bank::Bank;
|
||||
use solana_sdk::hash::Hash;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::timing::duration_as_ms;
|
||||
use std::net::UdpSocket;
|
||||
@ -107,6 +108,7 @@ fn recv_window(
|
||||
my_id: &Pubkey,
|
||||
r: &BlobReceiver,
|
||||
retransmit: &BlobSender,
|
||||
genesis_blockhash: &Hash,
|
||||
) -> Result<()> {
|
||||
let timer = Duration::from_millis(200);
|
||||
let mut blobs = r.recv_timeout(timer)?;
|
||||
@ -125,7 +127,7 @@ fn recv_window(
|
||||
.as_ref(),
|
||||
leader_schedule_cache,
|
||||
my_id,
|
||||
)
|
||||
) && blob.read().unwrap().genesis_blockhash() == *genesis_blockhash
|
||||
});
|
||||
|
||||
retransmit_blobs(&blobs, retransmit, my_id)?;
|
||||
@ -166,6 +168,7 @@ pub struct WindowService {
|
||||
}
|
||||
|
||||
impl WindowService {
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub fn new(
|
||||
bank_forks: Option<Arc<RwLock<BankForks>>>,
|
||||
leader_schedule_cache: Option<Arc<LeaderScheduleCache>>,
|
||||
@ -176,6 +179,7 @@ impl WindowService {
|
||||
repair_socket: Arc<UdpSocket>,
|
||||
exit: &Arc<AtomicBool>,
|
||||
repair_slot_range: Option<RepairSlotRange>,
|
||||
genesis_blockhash: &Hash,
|
||||
) -> WindowService {
|
||||
let repair_service = RepairService::new(
|
||||
blocktree.clone(),
|
||||
@ -187,6 +191,7 @@ impl WindowService {
|
||||
let exit = exit.clone();
|
||||
let bank_forks = bank_forks.clone();
|
||||
let leader_schedule_cache = leader_schedule_cache.clone();
|
||||
let hash = *genesis_blockhash;
|
||||
let t_window = Builder::new()
|
||||
.name("solana-window".to_string())
|
||||
.spawn(move || {
|
||||
@ -204,6 +209,7 @@ impl WindowService {
|
||||
&id,
|
||||
&r,
|
||||
&retransmit,
|
||||
&hash,
|
||||
) {
|
||||
match e {
|
||||
Error::RecvTimeoutError(RecvTimeoutError::Disconnected) => break,
|
||||
@ -357,6 +363,7 @@ mod test {
|
||||
Arc::new(leader_node.sockets.repair),
|
||||
&exit,
|
||||
None,
|
||||
&Hash::default(),
|
||||
);
|
||||
let t_responder = {
|
||||
let (s_responder, r_responder) = channel();
|
||||
@ -434,6 +441,7 @@ mod test {
|
||||
Arc::new(leader_node.sockets.repair),
|
||||
&exit,
|
||||
None,
|
||||
&Hash::default(),
|
||||
);
|
||||
let t_responder = {
|
||||
let (s_responder, r_responder) = channel();
|
||||
|
Reference in New Issue
Block a user