Use Blockstore lowest_slot to start root iterator (#9738) (#9767)

automerge
This commit is contained in:
mergify[bot]
2020-04-28 11:11:10 -07:00
committed by GitHub
parent 3cc75b4bab
commit 2f0f218ad9
2 changed files with 6 additions and 5 deletions

View File

@ -31,6 +31,7 @@ use solana_transaction_status::{
};
use solana_vote_program::vote_state::{VoteState, MAX_LOCKOUT_HISTORY};
use std::{
cmp::max,
collections::HashMap,
net::{SocketAddr, UdpSocket},
str::FromStr,
@ -381,7 +382,7 @@ impl JsonRpcRequestProcessor {
}
Ok(self
.blockstore
.rooted_slot_iterator(start_slot)
.rooted_slot_iterator(max(start_slot, self.blockstore.lowest_slot()))
.map_err(|_| Error::internal_error())?
.filter(|&slot| slot <= end_slot)
.collect())
@ -2656,7 +2657,7 @@ pub mod tests {
let result: Value = serde_json::from_str(&res.expect("actual response"))
.expect("actual response deserialization");
let confirmed_blocks: Vec<Slot> = serde_json::from_value(result["result"].clone()).unwrap();
assert_eq!(confirmed_blocks, roots);
assert_eq!(confirmed_blocks, roots[1..].to_vec());
let req =
format!(r#"{{"jsonrpc":"2.0","id":1,"method":"getConfirmedBlocks","params":[2]}}"#);
@ -2672,7 +2673,7 @@ pub mod tests {
let result: Value = serde_json::from_str(&res.expect("actual response"))
.expect("actual response deserialization");
let confirmed_blocks: Vec<Slot> = serde_json::from_value(result["result"].clone()).unwrap();
assert_eq!(confirmed_blocks, vec![0, 1, 3, 4]);
assert_eq!(confirmed_blocks, vec![1, 3, 4]);
let req =
format!(r#"{{"jsonrpc":"2.0","id":1,"method":"getConfirmedBlocks","params":[0, 7]}}"#);
@ -2680,7 +2681,7 @@ pub mod tests {
let result: Value = serde_json::from_str(&res.expect("actual response"))
.expect("actual response deserialization");
let confirmed_blocks: Vec<Slot> = serde_json::from_value(result["result"].clone()).unwrap();
assert_eq!(confirmed_blocks, vec![0, 1, 3, 4]);
assert_eq!(confirmed_blocks, vec![1, 3, 4]);
let req =
format!(r#"{{"jsonrpc":"2.0","id":1,"method":"getConfirmedBlocks","params":[9, 11]}}"#);

View File

@ -1468,7 +1468,7 @@ impl Blockstore {
}
pub fn get_first_available_block(&self) -> Result<Slot> {
let mut root_iterator = self.rooted_slot_iterator(0)?;
let mut root_iterator = self.rooted_slot_iterator(self.lowest_slot())?;
Ok(root_iterator.next().unwrap_or_default())
}