Struct sp_io::UseDalekExt
source · pub struct UseDalekExt;
Expand description
Extension to signal to [crypt::ed25519_verify
] to use the dalek crate.
The switch from ed25519-dalek
to ed25519-zebra
was a breaking change.
ed25519-zebra
is more permissive when it comes to the verification of signatures.
This means that some chains may fail to sync from genesis when using ed25519-zebra
.
So, this extension can be registered to the runtime execution environment to signal
that ed25519-dalek
should be used for verification. The extension can be registered
in the following way:
client.execution_extensions().set_extensions_factory(
// Let the `UseDalekExt` extension being registered for each runtime invocation
// until the execution happens in the context of block `1000`.
sc_client_api::execution_extensions::ExtensionBeforeBlock::<Block, UseDalekExt>::new(1000)
);
Trait Implementations§
source§impl Default for UseDalekExt
impl Default for UseDalekExt
Auto Trait Implementations§
impl Freeze for UseDalekExt
impl RefUnwindSafe for UseDalekExt
impl Send for UseDalekExt
impl Sync for UseDalekExt
impl Unpin for UseDalekExt
impl UnwindSafe for UseDalekExt
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
source§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from
.