Adjust for vector of entries in blobs.
This commit is contained in:
parent
f1802e592a
commit
682b1b89b3
|
@ -612,6 +612,11 @@ impl Blocktree {
|
|||
Ok(result)
|
||||
}
|
||||
|
||||
pub fn deserialize_blob_data(data: &[u8]) -> Result<Vec<Entry>> {
|
||||
let entries = deserialize(data)?;
|
||||
Ok(entries)
|
||||
}
|
||||
|
||||
fn deserialize_blobs<I>(blob_datas: &[I]) -> Vec<Entry>
|
||||
where
|
||||
I: Borrow<[u8]>,
|
||||
|
@ -620,9 +625,8 @@ impl Blocktree {
|
|||
.iter()
|
||||
.flat_map(|blob_data| {
|
||||
let serialized_entries_data = &blob_data.borrow()[BLOB_HEADER_SIZE..];
|
||||
let entries: Vec<Entry> = deserialize(serialized_entries_data)
|
||||
.expect("Ledger should only contain well formed data");
|
||||
entries
|
||||
Self::deserialize_blob_data(serialized_entries_data)
|
||||
.expect("Ledger should only contain well formed data")
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ use bincode::{deserialize, serialize};
|
|||
use solana::blocktree::{create_new_tmp_ledger, tmp_copy_blocktree, Blocktree};
|
||||
use solana::cluster_info::{ClusterInfo, Node};
|
||||
use solana::contact_info::ContactInfo;
|
||||
use solana::entry::Entry;
|
||||
use solana::fullnode::{Fullnode, FullnodeConfig};
|
||||
use solana::gossip_service::discover;
|
||||
use solana::local_cluster::LocalCluster;
|
||||
|
@ -82,10 +81,13 @@ fn download_from_replicator(replicator_info: &ContactInfo) {
|
|||
for b in blobs {
|
||||
let br = b.read().unwrap();
|
||||
assert!(br.index() == repair_index);
|
||||
let entry: Entry = deserialize(&br.data()[..br.meta.size]).unwrap();
|
||||
info!("entry: {:?}", entry);
|
||||
assert_ne!(entry.hash, Hash::default());
|
||||
received_blob = true;
|
||||
info!("br: {:?}", br);
|
||||
let entries = Blocktree::deserialize_blob_data(&br.data()).unwrap();
|
||||
for entry in &entries {
|
||||
info!("entry: {:?}", entry);
|
||||
assert_ne!(entry.hash, Hash::default());
|
||||
received_blob = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue