Make reading json genesis file faster (#11868)

* Make reading json genesis file faster

* Formatting

* fmt
This commit is contained in:
Alan Sapede
2022-07-20 18:04:31 -04:00
committed by GitHub
parent e92a349749
commit 42c7df936e
+10 -1
View File
@@ -61,7 +61,16 @@ impl<G: RuntimeGenesis> GenesisSource<G> {
let file = File::open(path).map_err(|e| {
format!("Error opening spec file at `{}`: {}", path.display(), e)
})?;
let genesis: GenesisContainer<G> = json::from_reader(file)
// SAFETY: `mmap` is fundamentally unsafe since technically the file can change
// underneath us while it is mapped; in practice it's unlikely to be a
// problem
let bytes = unsafe {
memmap2::Mmap::map(&file).map_err(|e| {
format!("Error mmaping spec file `{}`: {}", path.display(), e)
})?
};
let genesis: GenesisContainer<G> = json::from_slice(&bytes)
.map_err(|e| format!("Error parsing spec file: {}", e))?;
Ok(genesis.genesis)
},