pub enum AvailabilityStoreMessage {
QueryAvailableData(CandidateHash, Sender<Option<AvailableData>>),
QueryDataAvailability(CandidateHash, Sender<bool>),
QueryChunk(CandidateHash, ValidatorIndex, Sender<Option<ErasureChunk>>),
QueryChunkSize(CandidateHash, Sender<Option<usize>>),
QueryAllChunks(CandidateHash, Sender<Vec<(ValidatorIndex, ErasureChunk)>>),
QueryChunkAvailability(CandidateHash, ValidatorIndex, Sender<bool>),
StoreChunk {
candidate_hash: CandidateHash,
validator_index: ValidatorIndex,
chunk: ErasureChunk,
tx: Sender<Result<(), ()>>,
},
StoreAvailableData {
candidate_hash: CandidateHash,
n_validators: u32,
available_data: AvailableData,
expected_erasure_root: H256,
core_index: CoreIndex,
node_features: BitVec<u8>,
tx: Sender<Result<(), StoreAvailableDataError>>,
},
}
Expand description
Availability store subsystem message.
Variants§
QueryAvailableData(CandidateHash, Sender<Option<AvailableData>>)
Query a AvailableData
from the AV store.
QueryDataAvailability(CandidateHash, Sender<bool>)
Query whether a AvailableData
exists within the AV Store.
This is useful in cases when existence matters, but we don’t want to necessarily pass around multiple megabytes of data to get a single bit of information.
QueryChunk(CandidateHash, ValidatorIndex, Sender<Option<ErasureChunk>>)
Query an ErasureChunk
from the AV store by the candidate hash and validator index.
QueryChunkSize(CandidateHash, Sender<Option<usize>>)
Get the size of an ErasureChunk
from the AV store by the candidate hash.
QueryAllChunks(CandidateHash, Sender<Vec<(ValidatorIndex, ErasureChunk)>>)
Query all chunks that we have for the given candidate hash.
QueryChunkAvailability(CandidateHash, ValidatorIndex, Sender<bool>)
Query whether an ErasureChunk
exists within the AV Store.
This is useful in cases like bitfield signing, when existence matters, but we don’t want to necessarily pass around large quantities of data to get a single bit of information.
StoreChunk
Store an ErasureChunk
in the AV store.
Return Ok(())
if the store operation succeeded, Err(())
if it failed.
Fields
candidate_hash: CandidateHash
A hash of the candidate this chunk belongs to.
validator_index: ValidatorIndex
Validator index. May not be equal to the chunk index.
chunk: ErasureChunk
The chunk itself.
StoreAvailableData
Computes and checks the erasure root of AvailableData
before storing all of its chunks in
the AV store.
Return Ok(())
if the store operation succeeded, Err(StoreAvailableData)
if it failed.
Fields
candidate_hash: CandidateHash
A hash of the candidate this available_data
belongs to.
available_data: AvailableData
The AvailableData
itself.
expected_erasure_root: H256
Erasure root we expect to get after chunking.
node_features: BitVec<u8>
Node features at the candidate relay parent. Used for computing the validator->chunk mapping.
tx: Sender<Result<(), StoreAvailableDataError>>
Sending side of the channel to send result to.
Trait Implementations§
§impl AssociateOutgoing for AvailabilityStoreMessage
impl AssociateOutgoing for AvailabilityStoreMessage
§type OutgoingMessages = AvailabilityStoreOutgoingMessages
type OutgoingMessages = AvailabilityStoreOutgoingMessages
Self
.source§impl Debug for AvailabilityStoreMessage
impl Debug for AvailabilityStoreMessage
§impl From<AvailabilityStoreMessage> for AllMessages
impl From<AvailabilityStoreMessage> for AllMessages
§fn from(message: AvailabilityStoreMessage) -> AllMessages
fn from(message: AvailabilityStoreMessage) -> AllMessages
§impl From<AvailabilityStoreMessage> for AvailabilityDistributionOutgoingMessages
impl From<AvailabilityStoreMessage> for AvailabilityDistributionOutgoingMessages
§fn from(
message: AvailabilityStoreMessage,
) -> AvailabilityDistributionOutgoingMessages
fn from( message: AvailabilityStoreMessage, ) -> AvailabilityDistributionOutgoingMessages
§impl From<AvailabilityStoreMessage> for AvailabilityRecoveryOutgoingMessages
impl From<AvailabilityStoreMessage> for AvailabilityRecoveryOutgoingMessages
§fn from(
message: AvailabilityStoreMessage,
) -> AvailabilityRecoveryOutgoingMessages
fn from( message: AvailabilityStoreMessage, ) -> AvailabilityRecoveryOutgoingMessages
§impl From<AvailabilityStoreMessage> for BitfieldSigningOutgoingMessages
impl From<AvailabilityStoreMessage> for BitfieldSigningOutgoingMessages
§fn from(message: AvailabilityStoreMessage) -> BitfieldSigningOutgoingMessages
fn from(message: AvailabilityStoreMessage) -> BitfieldSigningOutgoingMessages
§impl From<AvailabilityStoreMessage> for CandidateBackingOutgoingMessages
impl From<AvailabilityStoreMessage> for CandidateBackingOutgoingMessages
§fn from(message: AvailabilityStoreMessage) -> CandidateBackingOutgoingMessages
fn from(message: AvailabilityStoreMessage) -> CandidateBackingOutgoingMessages
§impl From<AvailabilityStoreMessage> for DisputeCoordinatorOutgoingMessages
impl From<AvailabilityStoreMessage> for DisputeCoordinatorOutgoingMessages
§fn from(message: AvailabilityStoreMessage) -> DisputeCoordinatorOutgoingMessages
fn from(message: AvailabilityStoreMessage) -> DisputeCoordinatorOutgoingMessages
§impl TryFrom<AllMessages> for AvailabilityStoreMessage
impl TryFrom<AllMessages> for AvailabilityStoreMessage
§fn try_from(
message: AllMessages,
) -> Result<AvailabilityStoreMessage, <AvailabilityStoreMessage as TryFrom<AllMessages>>::Error>
fn try_from( message: AllMessages, ) -> Result<AvailabilityStoreMessage, <AvailabilityStoreMessage as TryFrom<AllMessages>>::Error>
Auto Trait Implementations§
impl Freeze for AvailabilityStoreMessage
impl !RefUnwindSafe for AvailabilityStoreMessage
impl Send for AvailabilityStoreMessage
impl Sync for AvailabilityStoreMessage
impl Unpin for AvailabilityStoreMessage
impl !UnwindSafe for AvailabilityStoreMessage
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
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> ⓘ
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 more§impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
source§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T
. Read more§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv 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
unchecked_from
.source§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.