Struct linera_core::local_node::LocalNodeClient
source · pub struct LocalNodeClient<S>where
S: Storage,{ /* private fields */ }
Expand description
A client to a local node.
Implementations§
source§impl<S> LocalNodeClient<S>
impl<S> LocalNodeClient<S>
pub async fn handle_block_proposal( &self, proposal: BlockProposal, ) -> Result<ChainInfoResponse, LocalNodeError>
pub async fn handle_lite_certificate( &self, certificate: LiteCertificate<'_>, notifier: &impl Notifier, ) -> Result<ChainInfoResponse, LocalNodeError>
pub async fn handle_certificate<T>(
&self,
certificate: GenericCertificate<T>,
notifier: &impl Notifier,
) -> Result<ChainInfoResponse, LocalNodeError>where
T: ProcessableCertificate,
pub async fn handle_chain_info_query( &self, query: ChainInfoQuery, ) -> Result<ChainInfoResponse, LocalNodeError>
source§impl<S> LocalNodeClient<S>where
S: Storage,
impl<S> LocalNodeClient<S>where
S: Storage,
pub fn new(state: WorkerState<S>) -> Self
source§impl<S> LocalNodeClient<S>
impl<S> LocalNodeClient<S>
pub async fn stage_block_execution( &self, block: ProposedBlock, round: Option<u32>, ) -> Result<(ExecutedBlock, ChainInfoResponse), LocalNodeError>
sourcepub async fn read_blobs_from_storage(
&self,
blob_ids: &[BlobId],
) -> Result<Option<Vec<Blob>>, LocalNodeError>
pub async fn read_blobs_from_storage( &self, blob_ids: &[BlobId], ) -> Result<Option<Vec<Blob>>, LocalNodeError>
Reads blobs from storage.
sourcepub async fn get_locking_blobs(
&self,
blob_ids: impl IntoIterator<Item = &BlobId>,
chain_id: ChainId,
) -> Result<Option<Vec<Blob>>, LocalNodeError>
pub async fn get_locking_blobs( &self, blob_ids: impl IntoIterator<Item = &BlobId>, chain_id: ChainId, ) -> Result<Option<Vec<Blob>>, LocalNodeError>
Looks for the specified blobs in the local chain manager’s locking blobs.
Returns Ok(None)
if any of the blobs is not found.
sourcepub async fn get_pending_blobs(
&self,
blob_ids: &[BlobId],
chain_id: ChainId,
) -> Result<Option<Vec<Blob>>, LocalNodeError>
pub async fn get_pending_blobs( &self, blob_ids: &[BlobId], chain_id: ChainId, ) -> Result<Option<Vec<Blob>>, LocalNodeError>
Looks for the specified blobs in the local chain manager’s pending blobs.
Returns Ok(None)
if any of the blobs is not found.
sourcepub async fn store_blobs(&self, blobs: &[Blob]) -> Result<(), LocalNodeError>
pub async fn store_blobs(&self, blobs: &[Blob]) -> Result<(), LocalNodeError>
Writes the given blobs to storage if there is an appropriate blob state.
pub async fn handle_pending_blobs( &self, chain_id: ChainId, blobs: Vec<Blob>, ) -> Result<(), LocalNodeError>
sourcepub async fn chain_state_view(
&self,
chain_id: ChainId,
) -> Result<OwnedRwLockReadGuard<ChainStateView<S::Context>>, LocalNodeError>
pub async fn chain_state_view( &self, chain_id: ChainId, ) -> Result<OwnedRwLockReadGuard<ChainStateView<S::Context>>, LocalNodeError>
Returns a read-only view of the ChainStateView
of a chain referenced by its
ChainId
.
The returned view holds a lock on the chain state, which prevents the local node from changing the state of that chain.
pub async fn query_application( &self, chain_id: ChainId, query: Query, ) -> Result<QueryOutcome, LocalNodeError>
pub async fn describe_application( &self, chain_id: ChainId, application_id: UserApplicationId, ) -> Result<UserApplicationDescription, LocalNodeError>
sourcepub async fn certificate_for(
&self,
message_id: &MessageId,
) -> Result<ConfirmedBlockCertificate, LocalNodeError>
pub async fn certificate_for( &self, message_id: &MessageId, ) -> Result<ConfirmedBlockCertificate, LocalNodeError>
Obtains the certificate containing the specified message.
sourcepub async fn retry_pending_cross_chain_requests(
&self,
sender_chain: ChainId,
) -> Result<(), LocalNodeError>
pub async fn retry_pending_cross_chain_requests( &self, sender_chain: ChainId, ) -> Result<(), LocalNodeError>
Handles any pending local cross-chain requests.
sourcepub async fn next_block_heights(
&self,
chain_ids: impl IntoIterator<Item = &ChainId>,
chain_worker_limit: usize,
) -> Result<BTreeMap<ChainId, BlockHeight>, LocalNodeError>
pub async fn next_block_heights( &self, chain_ids: impl IntoIterator<Item = &ChainId>, chain_worker_limit: usize, ) -> Result<BTreeMap<ChainId, BlockHeight>, LocalNodeError>
Given a list of chain IDs, returns a map that assigns to each of them the next block height, i.e. the lowest block height that we have not processed in the local node yet.
It makes at most chain_worker_limit
requests to the local node in parallel.
pub async fn update_received_certificate_trackers( &self, chain_id: ChainId, new_trackers: BTreeMap<ValidatorPublicKey, u64>, ) -> Result<(), LocalNodeError>
Trait Implementations§
Auto Trait Implementations§
impl<S> Freeze for LocalNodeClient<S>
impl<S> RefUnwindSafe for LocalNodeClient<S>where
S: RefUnwindSafe,
impl<S> Send for LocalNodeClient<S>
impl<S> Sync for LocalNodeClient<S>
impl<S> Unpin for LocalNodeClient<S>
impl<S> UnwindSafe for LocalNodeClient<S>where
S: RefUnwindSafe,
Blanket Implementations§
source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§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.source§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.source§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.source§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.source§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.source§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.source§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.source§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.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 moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
source§impl<T> MockResults for T
impl<T> MockResults for T
§type Results = T
type Results = T
MockInstance
.source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§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 moresource§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 moresource§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
source§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
source§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.source§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.source§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.source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
source§fn read<'instance>(
&self,
instance: &'instance &mut I,
location: GuestPointer,
length: u32,
) -> Result<Cow<'instance, [u8]>, RuntimeError>
fn read<'instance>( &self, instance: &'instance &mut I, location: GuestPointer, length: u32, ) -> Result<Cow<'instance, [u8]>, RuntimeError>
Reads length
bytes from memory from the provided location
.
source§fn write(
&mut self,
instance: &mut &mut I,
location: GuestPointer,
bytes: &[u8],
) -> Result<(), RuntimeError>
fn write( &mut self, instance: &mut &mut I, location: GuestPointer, bytes: &[u8], ) -> Result<(), RuntimeError>
Writes the bytes
to memory at the provided location
.
source§impl<T> Tap for T
impl<T> Tap for T
source§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 moresource§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 moresource§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 moresource§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 moresource§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 moresource§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 moresource§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.source§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.source§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.source§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.source§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.source§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.source§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.