Validator to leader (#1303)
* Add check in window_service to exit in checks for leader rotation, and propagate that service exit up to fullnode * Added logic to shutdown Tvu once ReplicateStage finishes * Added test for successfully shutting down validator and starting up leader * Add test for leader validator interaction * fix streamer to check for exit signal before checking socket again to prevent busy leaders from never returning * PR comments - Rewrite make_consecutive_blobs() function, revert genesis function change
This commit is contained in:
@ -2,6 +2,10 @@
|
||||
use bincode::{deserialize, serialize};
|
||||
use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
|
||||
use counter::Counter;
|
||||
#[cfg(test)]
|
||||
use hash::Hash;
|
||||
#[cfg(test)]
|
||||
use ledger::{next_entries_mut, Block};
|
||||
use log::Level;
|
||||
use recvmmsg::{recv_mmsg, NUM_RCVMMSGS};
|
||||
use recycler;
|
||||
@ -429,6 +433,25 @@ impl Blob {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
pub fn make_consecutive_blobs(
|
||||
me_id: Pubkey,
|
||||
num_blobs_to_make: u64,
|
||||
start_hash: Hash,
|
||||
addr: &SocketAddr,
|
||||
resp_recycler: &BlobRecycler,
|
||||
) -> SharedBlobs {
|
||||
let mut last_hash = start_hash;
|
||||
let mut num_hashes = 0;
|
||||
let mut all_entries = Vec::with_capacity(num_blobs_to_make as usize);
|
||||
for _ in 0..num_blobs_to_make {
|
||||
all_entries.extend(next_entries_mut(&mut last_hash, &mut num_hashes, vec![]));
|
||||
}
|
||||
let mut new_blobs = all_entries.to_blobs_with_id(&resp_recycler, me_id, 0, addr);
|
||||
new_blobs.truncate(num_blobs_to_make as usize);
|
||||
new_blobs
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use packet::{
|
||||
|
Reference in New Issue
Block a user