Struct NodeService

Source
pub struct NodeService {
Show 17 fields pub rng_seed: [u8; 32], pub rng_ephemeral: XofReaderCoreWrapper<Shake256ReaderCore>, pub rng_static: XofReaderCoreWrapper<Shake256ReaderCore>, pub rng: StdRng, pub event_sender: UnboundedSender<Event>, pub event_receiver: EventReceiver, pub snark_block_proof_verify: UnboundedSender<Tracked<SnarkBlockVerifyArgs>>, pub ledger_manager: LedgerManager, pub snark_worker: Option<SnarkWorker>, pub block_producer: Option<BlockProducerService>, pub archive: Option<ArchiveService>, pub p2p: P2pServiceCtx, pub stats: Option<Stats>, pub rpc: RpcService, pub recorder: Recorder, pub replayer: Option<ReplayerState>, pub invariants_state: InvariantsState,
}

Fields§

§rng_seed: [u8; 32]§rng_ephemeral: XofReaderCoreWrapper<Shake256ReaderCore>§rng_static: XofReaderCoreWrapper<Shake256ReaderCore>§rng: StdRng§event_sender: UnboundedSender<Event>

Events sent on this channel are retrieved and processed in the event_source state machine defined in the openmina-node crate.

§event_receiver: EventReceiver§snark_block_proof_verify: UnboundedSender<Tracked<SnarkBlockVerifyArgs>>§ledger_manager: LedgerManager§snark_worker: Option<SnarkWorker>§block_producer: Option<BlockProducerService>§archive: Option<ArchiveService>§p2p: P2pServiceCtx§stats: Option<Stats>§rpc: RpcService§recorder: Recorder§replayer: Option<ReplayerState>§invariants_state: InvariantsState

Implementations§

Source§

impl NodeService

Source§

impl NodeService

Source

pub fn snark_block_proof_verifier_spawn( event_sender: UnboundedSender<Event>, ) -> UnboundedSender<Tracked<SnarkBlockVerifyArgs>>

Source§

impl NodeService

Source

pub fn event_sender(&self) -> &UnboundedSender<Event>

Source

pub fn rpc_sender(&self) -> RpcSender

Source

pub fn event_receiver_with_rpc_receiver( &mut self, ) -> (&mut EventReceiver, &mut Receiver<NodeRpcRequest>)

Source

pub fn event_receiver(&mut self) -> &mut EventReceiver

Source

pub fn rpc_receiver(&mut self) -> &mut Receiver<NodeRpcRequest>

Source

pub fn ledger_manager(&self) -> &LedgerManager

Source

pub fn block_producer(&self) -> Option<&BlockProducerService>

Source

pub fn archive(&self) -> Option<&ArchiveService>

Source

pub fn stats(&mut self) -> Option<&mut Stats>

Source

pub fn replayer(&mut self) -> Option<&mut ReplayerState>

Source§

impl NodeService

Source

pub fn for_replay( rng_seed: [u8; 32], initial_time: Timestamp, p2p_sec_key: SecretKey, dynamic_effects_lib: Option<String>, ) -> NodeService

Trait Implementations§

Source§

impl ArchiveService for NodeService

Source§

fn send_to_archive(&mut self, data: BlockApplyResult)

Source§

impl AsMut<NodeService> for NodeService

Source§

fn as_mut(&mut self) -> &mut NodeService

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl BlockProducerService for NodeService

Source§

fn provers(&self) -> BlockProver

Source§

fn prove( &mut self, block_hash: Base58CheckOfBinProt<DataHashLibStateHashStableV1, Versioned<DataHashLibStateHashStableV1, 1>, mina_p2p_messages::::v2::manual::StateHash::{constant#1}>, input: Box<ProverExtendBlockchainInputStableV2>, )

Source§

fn with_producer_keypair<T>( &self, f: impl FnOnce(&AccountSecretKey) -> T, ) -> Option<T>

Source§

impl BlockProducerVrfEvaluatorService for NodeService

Source§

fn evaluate(&mut self, data: VrfEvaluatorInput)

Source§

impl EventSourceService for NodeService

Source§

fn next_event(&mut self) -> Option<Event>

Source§

impl ExternalSnarkWorkerService for NodeService

Source§

fn start( &mut self, pub_key: Base58CheckOfBinProt<NonZeroCurvePointUncompressedStableV1, Versioned<NonZeroCurvePointWithVersions, 1>, mina_p2p_messages::::v2::manual::NonZeroCurvePoint::{constant#1}>, fee: CurrencyFeeStableV1, work_verifier: TransactionVerifier, ) -> Result<(), ExternalSnarkWorkerError>

Starts external process.
Source§

fn kill(&mut self) -> Result<(), ExternalSnarkWorkerError>

Kills external process.
Source§

fn submit( &mut self, spec: SnarkWorkerWorkerRpcsVersionedGetWorkV2TResponseA0Instances, ) -> Result<(), ExternalSnarkWorkerError>

Submits snark work
Source§

fn cancel(&mut self) -> Result<(), ExternalSnarkWorkerError>

Cancel current work
Source§

impl InvariantService for NodeService

Source§

type ClusterInvariantsState<'a> = RefMut<'a, InvariantsState>

Source§

fn invariants_state(&mut self) -> &mut InvariantsState

§

fn node_id(&self) -> usize

§

fn cluster_invariants_state<'a>( &'a mut self, ) -> Option<Self::ClusterInvariantsState<'a>>
where Self: 'a,

Source§

impl LedgerService for NodeService

Source§

fn ledger_manager(&self) -> &LedgerManager

Source§

fn force_sync_calls(&self) -> bool

§

fn write_init(&mut self, request: LedgerWriteRequest)

§

fn read_init( &mut self, id: RequestId<LedgerReadIdType>, request: LedgerReadRequest, )

Source§

impl P2pCryptoService for NodeService

Source§

fn generate_random_nonce(&mut self) -> [u8; 24]

Source§

fn ephemeral_sk(&mut self) -> [u8; 32]

Source§

fn static_sk(&mut self) -> [u8; 32]

Source§

fn sign_key(&mut self, key: &[u8; 32]) -> Vec<u8>

Source§

fn sign_publication(&mut self, publication: &[u8]) -> Vec<u8>

Source§

fn verify_publication( &mut self, pk: &PublicKey, publication: &[u8], sig: &[u8], ) -> bool

Source§

impl P2pServiceWebrtc for NodeService

Source§

type Event = Event

Source§

fn random_pick( &mut self, list: &[P2pConnectionOutgoingInitOpts], ) -> Option<P2pConnectionOutgoingInitOpts>

Source§

fn event_sender( &self, ) -> &UnboundedSender<<NodeService as P2pServiceWebrtc>::Event>

Source§

fn cmd_sender(&self) -> &UnboundedSender<Tracked<Cmd>>

Source§

fn peers(&mut self) -> &mut BTreeMap<PeerId, PeerState>

Source§

fn encrypt<T>( &mut self, other_pk: &PublicKey, message: &T, ) -> Result<<T as EncryptableType>::Encrypted, Box<dyn Error>>
where T: EncryptableType,

Source§

fn decrypt<T>( &mut self, other_pk: &PublicKey, encrypted: &<T as EncryptableType>::Encrypted, ) -> Result<T, Box<dyn Error>>
where T: EncryptableType,

Source§

fn auth_encrypt_and_send( &mut self, peer_id: PeerId, other_pub_key: &PublicKey, auth: ConnectionAuth, )

Source§

fn auth_decrypt( &mut self, other_pub_key: &PublicKey, auth: ConnectionAuthEncrypted, ) -> Option<ConnectionAuth>

§

fn init<S>( secret_key: SecretKey, spawner: S, rng_seed: [u8; 32], ) -> P2pServiceCtx
where S: TaskSpawner,

§

fn outgoing_init(&mut self, peer_id: PeerId)

§

fn incoming_init(&mut self, peer_id: PeerId, offer: Offer)

§

fn set_answer(&mut self, peer_id: PeerId, answer: Answer)

§

fn http_signaling_request(&mut self, url: String, offer: Offer)

§

fn disconnect(&mut self, peer_id: PeerId) -> bool

§

fn channel_open(&mut self, peer_id: PeerId, id: ChannelId)

§

fn channel_send(&mut self, peer_id: PeerId, msg_id: MsgId, msg: ChannelMsg)

§

fn auth_send( &mut self, peer_id: PeerId, _other_pub_key: &PublicKey, auth: Option<ConnectionAuthEncrypted>, )

Source§

impl P2pServiceWebrtcWithLibp2p for NodeService

Source§

fn mio(&mut self) -> &mut MioService

Source§

fn connections(&self) -> BTreeSet<PeerId>

§

fn init<S>(sec_key: SecretKey, spawner: S, rng_seed: [u8; 32]) -> P2pServiceCtx
where S: TaskSpawner,

§

fn resolve_name( &mut self, hostname: &str, ) -> Result<Vec<IpAddr>, P2pNetworkServiceError>

§

fn detect_local_ip(&mut self) -> Result<Vec<IpAddr>, P2pNetworkServiceError>

Source§

impl RpcService for NodeService

Source§

fn respond_state_get( &mut self, rpc_id: RequestId<RpcIdType>, _: (&State, Option<&str>), ) -> Result<(), RespondError>

Source§

fn respond_status_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<RpcNodeStatus>, ) -> Result<(), RespondError>

Source§

fn respond_heartbeat_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<SignedNodeHeartbeat>, ) -> Result<(), RespondError>

Source§

fn respond_sync_stats_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<Vec<SyncStatsSnapshot>>, ) -> Result<(), RespondError>

Source§

fn respond_action_stats_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<ActionStatsResponse>, ) -> Result<(), RespondError>

Source§

fn respond_block_producer_stats_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<RpcBlockProducerStats>, ) -> Result<(), RespondError>

Source§

fn respond_message_progress_stats_get( &mut self, rpc_id: RequestId<RpcIdType>, response: RpcMessageProgressResponse, ) -> Result<(), RespondError>

Source§

fn respond_peers_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<RpcPeerInfo>, ) -> Result<(), RespondError>

Source§

fn respond_p2p_connection_outgoing( &mut self, rpc_id: RequestId<RpcIdType>, response: Result<(), String>, ) -> Result<(), RespondError>

Source§

fn respond_p2p_connection_incoming_answer( &mut self, rpc_id: RequestId<RpcIdType>, response: P2pConnectionResponse, ) -> Result<(), RespondError>

Source§

fn respond_p2p_connection_incoming( &mut self, rpc_id: RequestId<RpcIdType>, response: Result<(), String>, ) -> Result<(), RespondError>

Source§

fn respond_scan_state_summary_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Result<RpcScanStateSummary, String>, ) -> Result<(), RespondError>

Source§

fn respond_snark_pool_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<RpcSnarkPoolJobSummary>, ) -> Result<(), RespondError>

Source§

fn respond_snark_pool_job_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<RpcSnarkPoolJobFull>, ) -> Result<(), RespondError>

Source§

fn respond_snark_pool_completed_jobs_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<TransactionSnarkWorkTStableV2>, ) -> Result<(), RespondError>

Source§

fn respond_snark_pool_pending_jobs_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<JobState>, ) -> Result<(), RespondError>

Source§

fn respond_snarker_job_commit( &mut self, rpc_id: RequestId<RpcIdType>, response: RpcSnarkerJobCommitResponse, ) -> Result<(), RespondError>

Source§

fn respond_snarker_job_spec( &mut self, rpc_id: RequestId<RpcIdType>, response: RpcSnarkerJobSpecResponse, ) -> Result<(), RespondError>

Source§

fn respond_snarker_workers( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<RpcSnarkWorker>, ) -> Result<(), RespondError>

Source§

fn respond_snarker_config_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<RpcSnarkerConfig>, ) -> Result<(), RespondError>

Source§

fn respond_health_check( &mut self, rpc_id: RequestId<RpcIdType>, response: Result<(), String>, ) -> Result<(), RespondError>

Source§

fn respond_readiness_check( &mut self, rpc_id: RequestId<RpcIdType>, response: Result<(), String>, ) -> Result<(), RespondError>

Source§

fn respond_discovery_routing_table( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<RpcDiscoveryRoutingTable>, ) -> Result<(), RespondError>

Source§

fn respond_discovery_bootstrap_stats( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<P2pNetworkKadBootstrapStats>, ) -> Result<(), RespondError>

Source§

fn respond_transaction_pool( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<WithHash<UserCommand, TransactionHash>>, ) -> Result<(), RespondError>

Source§

fn respond_ledger_slim_accounts( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<AccountSlim>, ) -> Result<(), RespondError>

Source§

fn respond_ledger_accounts( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<Account>, ) -> Result<(), RespondError>

Source§

fn respond_transaction_inject( &mut self, rpc_id: RequestId<RpcIdType>, response: RpcTransactionInjectResponse, ) -> Result<(), RespondError>

Source§

fn respond_transition_frontier_commands( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<MinaBaseUserCommandStableV2>, ) -> Result<(), RespondError>

Source§

fn respond_best_chain( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<AppliedBlock>, ) -> Result<(), RespondError>

Source§

fn respond_consensus_constants( &mut self, rpc_id: RequestId<RpcIdType>, response: ConsensusConstants, ) -> Result<(), RespondError>

Source§

fn respond_transaction_status( &mut self, rpc_id: RequestId<RpcIdType>, response: TransactionStatus, ) -> Result<(), RespondError>

Source§

fn respond_block_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<AppliedBlock>, ) -> Result<(), RespondError>

Source§

fn respond_pooled_user_commands( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<MinaBaseSignedCommandStableV2>, ) -> Result<(), RespondError>

Source§

fn respond_pooled_zkapp_commands( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<MinaBaseZkappCommandTStableV1WireStableV1>, ) -> Result<(), RespondError>

Source§

fn respond_genesis_block( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<BlockWithHash<Arc<MinaBlockBlockStableV2>>>, ) -> Result<(), RespondError>

Source§

fn respond_consensus_time_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<ConsensusTime>, ) -> Result<(), RespondError>

Source§

fn respond_ledger_status_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<LedgerStatus>, ) -> Result<(), RespondError>

Source§

fn respond_ledger_account_delegators_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<Vec<Account>>, ) -> Result<(), RespondError>

Source§

impl Service for NodeService

Source§

fn queues(&mut self) -> Queues

Source§

fn stats(&mut self) -> Option<&mut Stats>

Source§

fn recorder(&mut self) -> &mut Recorder

Source§

fn is_replay(&self) -> bool

Source§

impl SnarkBlockVerifyService for NodeService

Source§

fn verify_init( &mut self, req_id: RequestId<SnarkBlockVerifyIdType>, verifier_index: BlockVerifier, verifier_srs: Arc<SRS<GroupAffine<VestaParameters>>>, block: VerifiableBlockWithHash, )

Source§

impl SnarkPoolService for NodeService

Source§

fn random_choose<'a>( &mut self, iter: impl Iterator<Item = &'a LedgerHashTransition>, n: usize, ) -> Vec<LedgerHashTransition>

Source§

impl SnarkUserCommandVerifyService for NodeService

Source§

fn verify_init( &mut self, req_id: RequestId<SnarkUserCommandVerifyIdType>, commands: Vec<WithStatus<UserCommand>>, )

Source§

impl SnarkWorkVerifyService for NodeService

Source§

fn verify_init( &mut self, req_id: RequestId<SnarkWorkVerifyIdType>, verifier_index: TransactionVerifier, verifier_srs: Arc<SRS<GroupAffine<VestaParameters>>>, work: Vec<Snark>, )

Source§

impl TimeService for NodeService

Source§

fn monotonic_time(&mut self) -> Instant

Source§

impl TransitionFrontierGenesisService for NodeService

Source§

fn load_genesis(&mut self, config: Arc<GenesisConfig>)

Load genesis config and genesis ledger.
Source§

impl Service for NodeService

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
§

impl<T> P2pChannelsService for T

§

fn channel_open(&mut self, peer_id: PeerId, id: ChannelId)

§

fn channel_send(&mut self, peer_id: PeerId, msg_id: MsgId, msg: ChannelMsg)

§

fn encrypt<M>( &mut self, other_pk: &PublicKey, message: &M, ) -> Result<<M as EncryptableType>::Encrypted, Box<dyn Error>>
where M: EncryptableType,

§

fn decrypt<M>( &mut self, other_pk: &PublicKey, encrypted: &<M as EncryptableType>::Encrypted, ) -> Result<M, Box<dyn Error>>
where M: EncryptableType,

§

impl<T> P2pConnectionService for T

§

fn connections(&self) -> BTreeSet<PeerId>

§

fn random_pick( &mut self, list: &[P2pConnectionOutgoingInitOpts], ) -> Option<P2pConnectionOutgoingInitOpts>

§

fn outgoing_init(&mut self, opts: P2pConnectionOutgoingInitOpts)

Initiates an outgoing connection and creates an offer sdp, which will be received in the state machine as an event.
§

fn incoming_init(&mut self, peer_id: PeerId, offer: Offer)

Initiates an incoming connection and creates an answer sdp, which will be received in the state machine as an event.
§

fn set_answer(&mut self, peer_id: PeerId, answer: Answer)

§

fn http_signaling_request(&mut self, url: String, offer: Offer)

§

fn auth_encrypt_and_send( &mut self, peer_id: PeerId, other_pub_key: &PublicKey, auth: ConnectionAuth, )

§

fn auth_decrypt( &mut self, other_pub_key: &PublicKey, auth: ConnectionAuthEncrypted, ) -> Option<ConnectionAuth>

§

impl<T> P2pDisconnectionService for T

§

fn disconnect(&mut self, peer_id: PeerId) -> bool

§

impl<T> P2pMioService for T

§

fn start_mio(&mut self)

§

fn send_mio_cmd(&mut self, cmd: MioCmd)

§

impl<T> P2pNetworkService for T

§

fn resolve_name( &mut self, host: &str, ) -> Result<Vec<IpAddr>, P2pNetworkServiceError>

Resolves DNS name.
§

fn detect_local_ip(&mut self) -> Result<Vec<IpAddr>, P2pNetworkServiceError>

Detects local IP addresses matching the mask.
§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows 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) -> R
where R: 'a,

Mutably borrows 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
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
§

impl<T> TransitionFrontierSyncLedgerSnarkedService for T
where T: LedgerService,

§

fn compute_snarked_ledger_hashes( &self, snarked_ledger_hash: &Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, ) -> Result<(), String>

For the given ledger, compute the merkle root hash, forcing all pending hashes to be computed too.
§

fn copy_snarked_ledger_contents_for_sync( &self, origin_snarked_ledger_hash: Vec<Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>>, target_snarked_ledger_hash: Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, overwrite: bool, ) -> Result<bool, String>

Creates a new copy of the ledger stored under the first found origin hash and stores it under the target hash. If overwrite is false, only copy the ledger if the target doesn’t exist already.
§

fn child_hashes_get( &self, snarked_ledger_hash: Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, parent: &Address<mina_tree::::address::Address::{constant#0}>, ) -> Result<(Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>), String>

For the given ledger, get the two children hashes at the parent address.
§

fn accounts_set( &self, snarked_ledger_hash: Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, parent: &Address<mina_tree::::address::Address::{constant#0}>, accounts: Vec<MinaBaseAccountBinableArgStableV2>, ) -> Result<Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, String>

For the given ledger, sets all accounts in accounts under the subtree starting at the parent address. The result is the hash computed for that subtree.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

§

impl<T> P2pService for T