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]Master seed for deterministic random number generation.
rng_ephemeral: XofReaderCoreWrapper<Shake256ReaderCore>XOF-based RNG for ephemeral keys (derived from seed + “ephemeral”).
rng_static: XofReaderCoreWrapper<Shake256ReaderCore>XOF-based RNG for static operations (derived from seed + “static”).
rng: StdRngStandard RNG for general-purpose randomness.
event_sender: UnboundedSender<Event>Events sent on this channel are retrieved and processed in the
event_source state machine defined in the mina-node crate.
event_receiver: EventReceiverChannel for consuming events in the event source state machine.
snark_block_proof_verify: UnboundedSender<Tracked<SnarkBlockVerifyArgs>>Channel for asynchronous block proof verification requests.
ledger_manager: LedgerManagerManages ledger operations, database access, and staged ledger state.
snark_worker: Option<SnarkWorker>SNARK proof worker for generating transaction proofs (enabled when node acts as SNARK worker).
block_producer: Option<BlockProducerService>Block production service including VRF evaluation and block proving (enabled when node acts as block producer).
archive: Option<ArchiveService>Archive service for storing full blockchain history (enabled when node acts as archive node).
p2p: P2pServiceCtxP2P networking context (WebRTC and optionally libp2p transports).
stats: Option<Stats>Runtime statistics and metrics collection.
rpc: RpcServiceRPC service for external API queries.
recorder: RecorderRecords node state and actions for debugging and replay.
replayer: Option<ReplayerState>Replayer state for deterministic action replay (only set in replay mode).
invariants_state: InvariantsStateState for runtime invariant checking and validation.
Implementations§
Source§impl NodeService
impl NodeService
pub fn process_rpc_request(&mut self, req: NodeRpcRequest)
Source§impl NodeService
impl NodeService
pub fn snark_block_proof_verifier_spawn( event_sender: UnboundedSender<Event>, ) -> UnboundedSender<Tracked<SnarkBlockVerifyArgs>>
Source§impl NodeService
impl NodeService
pub fn event_sender(&self) -> &UnboundedSender<Event>
pub fn rpc_sender(&self) -> RpcSender
pub fn event_receiver_with_rpc_receiver( &mut self, ) -> (&mut EventReceiver, &mut Receiver<NodeRpcRequest>)
pub fn event_receiver(&mut self) -> &mut EventReceiver
pub fn rpc_receiver(&mut self) -> &mut Receiver<NodeRpcRequest>
pub fn ledger_manager(&self) -> &LedgerManager
pub fn block_producer(&self) -> Option<&BlockProducerService>
pub fn archive(&self) -> Option<&ArchiveService>
pub fn stats(&mut self) -> Option<&mut Stats>
pub fn replayer(&mut self) -> Option<&mut ReplayerState>
Source§impl NodeService
impl NodeService
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
impl ArchiveService for NodeService
fn send_to_archive(&mut self, data: BlockApplyResult)
Source§impl AsMut<NodeService> for NodeService
impl AsMut<NodeService> for NodeService
Source§fn as_mut(&mut self) -> &mut NodeService
fn as_mut(&mut self) -> &mut NodeService
Source§impl BlockProducerService for NodeService
impl BlockProducerService for NodeService
fn provers(&self) -> BlockProver
fn prove( &mut self, block_hash: Base58CheckOfBinProt<DataHashLibStateHashStableV1, Versioned<DataHashLibStateHashStableV1, 1>, mina_p2p_messages::::v2::manual::StateHash::{constant#1}>, input: Box<ProverExtendBlockchainInputStableV2>, )
fn with_producer_keypair<T>( &self, f: impl FnOnce(&AccountSecretKey) -> T, ) -> Option<T>
Source§impl BlockProducerVrfEvaluatorService for NodeService
impl BlockProducerVrfEvaluatorService for NodeService
Source§impl EventSourceService for NodeService
impl EventSourceService for NodeService
fn next_event(&mut self) -> Option<Event>
Source§impl ExternalSnarkWorkerService for NodeService
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>
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>
Source§impl InvariantService for NodeService
impl InvariantService for NodeService
type ClusterInvariantsState<'a> = RefMut<'a, InvariantsState>
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
impl LedgerService for NodeService
fn ledger_manager(&self) -> &LedgerManager
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
Available on crate feature p2p-libp2p only.
impl P2pCryptoService for NodeService
p2p-libp2p only.fn generate_random_nonce(&mut self) -> [u8; 24]
fn ephemeral_sk(&mut self) -> [u8; 32]
fn static_sk(&mut self) -> [u8; 32]
fn sign_key(&mut self, key: &[u8; 32]) -> Vec<u8> ⓘ
fn sign_publication(&mut self, publication: &[u8]) -> Vec<u8> ⓘ
fn verify_publication( &mut self, pk: &PublicKey, publication: &[u8], sig: &[u8], ) -> bool
Source§impl P2pServiceWebrtc for NodeService
impl P2pServiceWebrtc for NodeService
type Event = Event
fn random_pick( &mut self, list: &[P2pConnectionOutgoingInitOpts], ) -> Option<P2pConnectionOutgoingInitOpts>
fn event_sender( &self, ) -> &UnboundedSender<<NodeService as P2pServiceWebrtc>::Event>
fn cmd_sender(&self) -> &UnboundedSender<Tracked<Cmd>>
fn peers(&mut self) -> &mut BTreeMap<PeerId, PeerState>
fn encrypt<T>(
&mut self,
other_pk: &PublicKey,
message: &T,
) -> Result<<T as EncryptableType>::Encrypted, Box<dyn Error>>where
T: EncryptableType,
fn decrypt<T>(
&mut self,
other_pk: &PublicKey,
encrypted: &<T as EncryptableType>::Encrypted,
) -> Result<T, Box<dyn Error>>where
T: EncryptableType,
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>
fn init<S>(
secret_key: SecretKey,
spawner: S,
rng_seed: [u8; 32],
) -> P2pServiceCtxwhere
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
impl P2pServiceWebrtcWithLibp2p for NodeService
fn mio(&mut self) -> &mut MioService
fn connections(&self) -> BTreeSet<PeerId>
fn init<S>(sec_key: SecretKey, spawner: S, rng_seed: [u8; 32]) -> P2pServiceCtxwhere
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
impl RpcService for NodeService
fn respond_state_get( &mut self, rpc_id: RequestId<RpcIdType>, _: (&State, Option<&str>), ) -> Result<(), RespondError>
fn respond_status_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<RpcNodeStatus>, ) -> Result<(), RespondError>
fn respond_heartbeat_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<SignedNodeHeartbeat>, ) -> Result<(), RespondError>
fn respond_sync_stats_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<Vec<SyncStatsSnapshot>>, ) -> Result<(), RespondError>
fn respond_action_stats_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<ActionStatsResponse>, ) -> Result<(), RespondError>
fn respond_block_producer_stats_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<RpcBlockProducerStats>, ) -> Result<(), RespondError>
fn respond_message_progress_stats_get( &mut self, rpc_id: RequestId<RpcIdType>, response: RpcMessageProgressResponse, ) -> Result<(), RespondError>
fn respond_peers_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<RpcPeerInfo>, ) -> Result<(), RespondError>
fn respond_p2p_connection_outgoing( &mut self, rpc_id: RequestId<RpcIdType>, response: Result<(), String>, ) -> Result<(), RespondError>
fn respond_p2p_connection_incoming_answer( &mut self, rpc_id: RequestId<RpcIdType>, response: P2pConnectionResponse, ) -> Result<(), RespondError>
fn respond_p2p_connection_incoming( &mut self, rpc_id: RequestId<RpcIdType>, response: Result<(), String>, ) -> Result<(), RespondError>
fn respond_scan_state_summary_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Result<RpcScanStateSummary, String>, ) -> Result<(), RespondError>
fn respond_snark_pool_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<RpcSnarkPoolJobSummary>, ) -> Result<(), RespondError>
fn respond_snark_pool_job_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<RpcSnarkPoolJobFull>, ) -> Result<(), RespondError>
fn respond_snark_pool_completed_jobs_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<TransactionSnarkWorkTStableV2>, ) -> Result<(), RespondError>
fn respond_snark_pool_pending_jobs_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<JobState>, ) -> Result<(), RespondError>
fn respond_snarker_job_commit( &mut self, rpc_id: RequestId<RpcIdType>, response: RpcSnarkerJobCommitResponse, ) -> Result<(), RespondError>
fn respond_snarker_job_spec( &mut self, rpc_id: RequestId<RpcIdType>, response: RpcSnarkerJobSpecResponse, ) -> Result<(), RespondError>
fn respond_snarker_workers( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<RpcSnarkWorker>, ) -> Result<(), RespondError>
fn respond_snarker_config_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<RpcSnarkerConfig>, ) -> Result<(), RespondError>
fn respond_health_check( &mut self, rpc_id: RequestId<RpcIdType>, response: Result<(), String>, ) -> Result<(), RespondError>
fn respond_readiness_check( &mut self, rpc_id: RequestId<RpcIdType>, response: Result<(), String>, ) -> Result<(), RespondError>
fn respond_discovery_routing_table( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<RpcDiscoveryRoutingTable>, ) -> Result<(), RespondError>
fn respond_discovery_bootstrap_stats( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<P2pNetworkKadBootstrapStats>, ) -> Result<(), RespondError>
fn respond_transaction_pool( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<WithHash<UserCommand, TransactionHash>>, ) -> Result<(), RespondError>
fn respond_ledger_slim_accounts( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<AccountSlim>, ) -> Result<(), RespondError>
fn respond_ledger_accounts( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<Account>, ) -> Result<(), RespondError>
fn respond_transaction_inject( &mut self, rpc_id: RequestId<RpcIdType>, response: RpcTransactionInjectResponse, ) -> Result<(), RespondError>
fn respond_transition_frontier_commands( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<MinaBaseUserCommandStableV2>, ) -> Result<(), RespondError>
fn respond_best_chain( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<AppliedBlock>, ) -> Result<(), RespondError>
fn respond_consensus_constants( &mut self, rpc_id: RequestId<RpcIdType>, response: ConsensusConstants, ) -> Result<(), RespondError>
fn respond_transaction_status( &mut self, rpc_id: RequestId<RpcIdType>, response: TransactionStatus, ) -> Result<(), RespondError>
fn respond_block_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<AppliedBlock>, ) -> Result<(), RespondError>
fn respond_pooled_user_commands( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<MinaBaseSignedCommandStableV2>, ) -> Result<(), RespondError>
fn respond_pooled_zkapp_commands( &mut self, rpc_id: RequestId<RpcIdType>, response: Vec<MinaBaseZkappCommandTStableV1WireStableV1>, ) -> Result<(), RespondError>
fn respond_genesis_block( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<BlockWithHash<Arc<MinaBlockBlockStableV2>>>, ) -> Result<(), RespondError>
fn respond_consensus_time_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<ConsensusTime>, ) -> Result<(), RespondError>
fn respond_ledger_status_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<LedgerStatus>, ) -> Result<(), RespondError>
fn respond_ledger_account_delegators_get( &mut self, rpc_id: RequestId<RpcIdType>, response: Option<Vec<Account>>, ) -> Result<(), RespondError>
Source§impl Service for NodeService
impl Service for NodeService
Source§impl SnarkBlockVerifyService for NodeService
impl SnarkBlockVerifyService for NodeService
fn verify_init( &mut self, req_id: RequestId<SnarkBlockVerifyIdType>, verifier_index: BlockVerifier, verifier_srs: Arc<SRS<Affine<VestaParameters>>>, block: VerifiableBlockWithHash, )
Source§impl SnarkPoolService for NodeService
impl SnarkPoolService for NodeService
Source§impl SnarkUserCommandVerifyService for NodeService
impl SnarkUserCommandVerifyService for NodeService
fn verify_init( &mut self, req_id: RequestId<SnarkUserCommandVerifyIdType>, commands: Vec<WithStatus<UserCommand>>, )
Source§impl SnarkWorkVerifyService for NodeService
impl SnarkWorkVerifyService for NodeService
fn verify_init( &mut self, req_id: RequestId<SnarkWorkVerifyIdType>, verifier_index: TransactionVerifier, verifier_srs: Arc<SRS<Affine<VestaParameters>>>, work: Vec<Snark>, )
Source§impl TimeService for NodeService
impl TimeService for NodeService
fn monotonic_time(&mut self) -> Instant
Source§impl TransitionFrontierGenesisService for NodeService
impl TransitionFrontierGenesisService for NodeService
Source§fn load_genesis(&mut self, config: Arc<GenesisConfig>)
fn load_genesis(&mut self, config: Arc<GenesisConfig>)
impl Service for NodeService
Auto Trait Implementations§
impl Freeze for NodeService
impl !RefUnwindSafe for NodeService
impl Send for NodeService
impl !Sync for NodeService
impl Unpin for NodeService
impl !UnwindSafe for NodeService
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§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>
§impl<T> P2pChannelsService for Twhere
T: P2pServiceWebrtcWithLibp2p,
impl<T> P2pChannelsService for Twhere
T: P2pServiceWebrtcWithLibp2p,
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 Twhere
T: P2pServiceWebrtcWithLibp2p,
impl<T> P2pConnectionService for Twhere
T: P2pServiceWebrtcWithLibp2p,
fn connections(&self) -> BTreeSet<PeerId>
fn random_pick( &mut self, list: &[P2pConnectionOutgoingInitOpts], ) -> Option<P2pConnectionOutgoingInitOpts>
§fn outgoing_init(&mut self, opts: P2pConnectionOutgoingInitOpts)
fn outgoing_init(&mut self, opts: P2pConnectionOutgoingInitOpts)
§fn incoming_init(&mut self, peer_id: PeerId, offer: Offer)
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 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 Twhere
T: P2pServiceWebrtcWithLibp2p,
impl<T> P2pDisconnectionService for Twhere
T: P2pServiceWebrtcWithLibp2p,
fn disconnect(&mut self, peer_id: PeerId) -> bool
§impl<T> P2pMioService for Twhere
T: P2pServiceWebrtcWithLibp2p,
impl<T> P2pMioService for Twhere
T: P2pServiceWebrtcWithLibp2p,
fn start_mio(&mut self)
fn send_mio_cmd(&mut self, cmd: MioCmd)
§impl<T> P2pNetworkService for Twhere
T: P2pServiceWebrtcWithLibp2p,
impl<T> P2pNetworkService for Twhere
T: P2pServiceWebrtcWithLibp2p,
§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
§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> TransitionFrontierSyncLedgerSnarkedService for Twhere
T: LedgerService,
impl<T> TransitionFrontierSyncLedgerSnarkedService for Twhere
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>
fn compute_snarked_ledger_hashes( &self, snarked_ledger_hash: &Base58CheckOfBinProt<MinaBaseLedgerHash0StableV1, Versioned<MinaBaseLedgerHash0StableV1, 1>, mina_p2p_messages::::v2::manual::LedgerHash::{constant#1}>, ) -> Result<(), String>
§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>
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>
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>
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>
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>
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>
accounts under
the subtree starting at the parent address. The result
is the hash computed for that subtree.