Trait sp_mixnet::runtime_api::MixnetApi
source · pub trait MixnetApi<Block: BlockT>: Core<Block> {
// Provided methods
fn session_status(
&self,
__runtime_api_at_param__: <Block as BlockT>::Hash,
) -> Result<SessionStatus, ApiError> { ... }
fn prev_mixnodes(
&self,
__runtime_api_at_param__: <Block as BlockT>::Hash,
) -> Result<Result<Vec<Mixnode>, MixnodesErr>, ApiError> { ... }
fn current_mixnodes(
&self,
__runtime_api_at_param__: <Block as BlockT>::Hash,
) -> Result<Result<Vec<Mixnode>, MixnodesErr>, ApiError> { ... }
fn maybe_register(
&self,
__runtime_api_at_param__: <Block as BlockT>::Hash,
session_index: SessionIndex,
mixnode: Mixnode,
) -> Result<bool, ApiError> { ... }
}
Expand description
API to query the mixnet session status and mixnode sets, and to register mixnodes.
Provided Methods§
sourcefn session_status(
&self,
__runtime_api_at_param__: <Block as BlockT>::Hash,
) -> Result<SessionStatus, ApiError>
fn session_status( &self, __runtime_api_at_param__: <Block as BlockT>::Hash, ) -> Result<SessionStatus, ApiError>
Get the index and phase of the current session.
sourcefn prev_mixnodes(
&self,
__runtime_api_at_param__: <Block as BlockT>::Hash,
) -> Result<Result<Vec<Mixnode>, MixnodesErr>, ApiError>
fn prev_mixnodes( &self, __runtime_api_at_param__: <Block as BlockT>::Hash, ) -> Result<Result<Vec<Mixnode>, MixnodesErr>, ApiError>
Get the mixnode set for the previous session.
sourcefn current_mixnodes(
&self,
__runtime_api_at_param__: <Block as BlockT>::Hash,
) -> Result<Result<Vec<Mixnode>, MixnodesErr>, ApiError>
fn current_mixnodes( &self, __runtime_api_at_param__: <Block as BlockT>::Hash, ) -> Result<Result<Vec<Mixnode>, MixnodesErr>, ApiError>
Get the mixnode set for the current session.
sourcefn maybe_register(
&self,
__runtime_api_at_param__: <Block as BlockT>::Hash,
session_index: SessionIndex,
mixnode: Mixnode,
) -> Result<bool, ApiError>
fn maybe_register( &self, __runtime_api_at_param__: <Block as BlockT>::Hash, session_index: SessionIndex, mixnode: Mixnode, ) -> Result<bool, ApiError>
Try to register a mixnode for the next session.
If a registration extrinsic is submitted, true
is returned. The caller should avoid
calling maybe_register
again for a few blocks, to give the submitted extrinsic a
chance to get included.
With the above exception, maybe_register
is designed to be called every block. Most
of the time it will not do anything, for example:
- If it is not an appropriate time to submit a registration extrinsic.
- If the local node has already registered a mixnode for the next session.
- If the local node is not permitted to register a mixnode for the next session.
session_index
should match session_status().current_index
; if it does not, false
is returned immediately.