[−][src]Struct grin_chain::txhashset::RewindableKernelView
Rewindable (but readonly) view of the kernel set (based on kernel MMR).
Methods
impl<'a> RewindableKernelView<'a>
[src]
pub fn new(
pmmr: RewindablePMMR<'a, TxKernel, PMMRBackend<TxKernel>>,
header: BlockHeader
) -> RewindableKernelView<'a>
[src]
pmmr: RewindablePMMR<'a, TxKernel, PMMRBackend<TxKernel>>,
header: BlockHeader
) -> RewindableKernelView<'a>
Build a new readonly kernel view.
pub fn rewind(&mut self, header: &BlockHeader) -> Result<(), Error>
[src]
Rewind this readonly view to a previous block. We accomplish this in a readonly way because we can rewind the PMMR via last_pos, without rewinding the underlying backend files.
pub fn validate_root(&self) -> Result<(), Error>
[src]
Special handling to make sure the whole kernel set matches each of its roots in each block header, without truncation. We go back header by header, rewind and check each root. This fixes a potential weakness in fast sync where a reorg past the horizon could allow a whole rewrite of the kernel set.
pub fn kernel_data_read(&self) -> Result<File, Error>
[src]
Read the "raw" kernel backend data file (via temp file for consistent view on data).
Auto Trait Implementations
impl<'a> RefUnwindSafe for RewindableKernelView<'a>
impl<'a> Send for RewindableKernelView<'a>
impl<'a> Sync for RewindableKernelView<'a>
impl<'a> Unpin for RewindableKernelView<'a>
impl<'a> UnwindSafe for RewindableKernelView<'a>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Erased for T
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> SafeBorrow<T> for T where
T: ?Sized,
T: ?Sized,
fn borrow_replacement(ptr: &T) -> &T
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> UnsafeAny for T where
T: Any,
T: Any,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,