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
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
Converts this type into a mutable reference of the (usually inferred) input type.
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>
Starts external process.
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
impl P2pCryptoService for NodeService
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<GroupAffine<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<GroupAffine<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>)
Load genesis config and genesis ledger.
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
Mutably borrows from an owned value. Read more
§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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Formats each item in a sequence. Read more
§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>
Creates a shared type from an unshared type.
§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)
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)
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 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,
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) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
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) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
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
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
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
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
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
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
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
Immutable access to the
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
Mutable access to the
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
Immutable access to the
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
Mutable access to the
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
Immutable access to the
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
Mutable access to the
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
Calls
.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
Calls
.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
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
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
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
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
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
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
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
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.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>
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>
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>
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>
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.