diff --git a/src/fullnode.rs b/src/fullnode.rs index 23ad54045..48d7f07e9 100644 --- a/src/fullnode.rs +++ b/src/fullnode.rs @@ -4,13 +4,12 @@ use bank::Bank; use broadcaster; use crdt::{Crdt, NodeInfo, TestNode}; use entry::Entry; -use ledger::{read_ledger, Block}; +use ledger::read_ledger; use ncp::Ncp; use packet::BlobRecycler; use rpu::Rpu; use service::Service; use signature::{Keypair, KeypairUtil}; -use std::collections::VecDeque; use std::net::SocketAddr; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::{Arc, RwLock}; @@ -19,7 +18,7 @@ use std::time::Duration; use tpu::Tpu; use tvu::Tvu; use untrusted::Input; -use window::{self, SharedWindow}; +use window; //use std::time::Duration; pub struct FullNode { @@ -158,21 +157,6 @@ impl FullNode { ) } - fn new_window( - ledger_tail: &[Entry], - entry_height: u64, - node_info: &NodeInfo, - blob_recycler: &BlobRecycler, - ) -> SharedWindow { - // convert to blobs - let mut blobs = VecDeque::new(); - ledger_tail.to_blobs(&blob_recycler, &mut blobs); - - // flatten deque to vec - let blobs: Vec<_> = blobs.into_iter().collect(); - window::initialized_window(&node_info, blobs, entry_height) - } - /// Create a server instance acting as a leader. /// /// ```text @@ -219,7 +203,8 @@ impl FullNode { thread_hdls.extend(rpu.thread_hdls()); let blob_recycler = BlobRecycler::default(); - let window = FullNode::new_window(ledger_tail, entry_height, &node.data, &blob_recycler); + let window = + window::new_window_from_entries(ledger_tail, entry_height, &node.data, &blob_recycler); let crdt = Arc::new(RwLock::new(Crdt::new(node.data).expect("Crdt::new"))); @@ -309,7 +294,8 @@ impl FullNode { thread_hdls.extend(rpu.thread_hdls()); let blob_recycler = BlobRecycler::default(); - let window = FullNode::new_window(ledger_tail, entry_height, &node.data, &blob_recycler); + let window = + window::new_window_from_entries(ledger_tail, entry_height, &node.data, &blob_recycler); let crdt = Arc::new(RwLock::new(Crdt::new(node.data).expect("Crdt::new"))); crdt.write() diff --git a/src/window.rs b/src/window.rs index 204958d5e..69834ce91 100644 --- a/src/window.rs +++ b/src/window.rs @@ -2,8 +2,10 @@ //! use counter::Counter; use crdt::{Crdt, NodeInfo}; +use entry::Entry; #[cfg(feature = "erasure")] use erasure; +use ledger::Block; use log::Level; use packet::{BlobRecycler, SharedBlob, SharedBlobs, BLOB_SIZE}; use result::{Error, Result}; @@ -554,6 +556,21 @@ pub fn initialized_window( window } +pub fn new_window_from_entries( + ledger_tail: &[Entry], + entry_height: u64, + node_info: &NodeInfo, + blob_recycler: &BlobRecycler, +) -> SharedWindow { + // convert to blobs + let mut blobs = VecDeque::new(); + ledger_tail.to_blobs(&blob_recycler, &mut blobs); + + // flatten deque to vec + let blobs: Vec<_> = blobs.into_iter().collect(); + initialized_window(&node_info, blobs, entry_height) +} + pub fn window( crdt: Arc>, window: SharedWindow,