[−][src]Struct tendermint_light_client::fork_detector::ProdForkDetector
A production-ready fork detector which compares light blocks fetched from the witnesses by hash. If the hashes don't match, this fork detector then attempts to verify the light block pulled from the witness against a light block containing only the given trusted state, and then:
- If the verification succeeds, we have a real fork
- If verification fails because of lack of trust, we have a potential fork.
- If verification fails for any other reason, the witness is deemed faulty.
Implementations
impl ProdForkDetector
[src]
pub fn new(hasher: impl Hasher + 'static) -> Self
[src]
Construct a new fork detector that will use the given header hasher.
Trait Implementations
impl Default for ProdForkDetector
[src]
impl ForkDetector for ProdForkDetector
[src]
pub fn detect_forks(
&self,
verified_block: &LightBlock,
trusted_block: &LightBlock,
witnesses: Vec<&Instance>
) -> Result<ForkDetection, Error>
[src]
&self,
verified_block: &LightBlock,
trusted_block: &LightBlock,
witnesses: Vec<&Instance>
) -> Result<ForkDetection, Error>
Perform fork detection. See the documentation ProdForkDetector
for details.
Auto Trait Implementations
impl !RefUnwindSafe for ProdForkDetector
[src]
impl Send for ProdForkDetector
[src]
impl Sync for ProdForkDetector
[src]
impl Unpin for ProdForkDetector
[src]
impl !UnwindSafe for ProdForkDetector
[src]
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,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
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.
pub 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.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,