[−][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]
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
impl Send for ProdForkDetector
impl !Sync for ProdForkDetector
impl Unpin for ProdForkDetector
impl !UnwindSafe for ProdForkDetector
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> From<T> for T
[src]
impl<T> Instrument for T
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]
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> 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<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,