Make reading json genesis file faster (#11868)

* Make reading json genesis file faster

* Formatting

* fmt
This commit is contained in:
Alan Sapede authored and GitHub committed 2022-07-21 00:04:31 +02:00
1 parent e92a349749
commit 42c7df936e
1 file changed
+10 -1
+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)
},