Trait sc_finality_grandpa::GrandpaApi[][src]

pub trait GrandpaApi<Block>: Core<Block> where
    Block: Block
{ pub fn grandpa_authorities(
        &self,
        __runtime_api_at_param__: &BlockId<Block>
    ) -> Result<Vec<(Public, u64), Global>, Self::Error> { ... }
pub fn grandpa_authorities_with_context(
        &self,
        __runtime_api_at_param__: &BlockId<Block>,
        context: ExecutionContext
    ) -> Result<Vec<(Public, u64), Global>, Self::Error> { ... }
pub fn submit_report_equivocation_unsigned_extrinsic(
        &self,
        __runtime_api_at_param__: &BlockId<Block>,
        equivocation_proof: EquivocationProof<<Block as Block>::Hash, <<Block as Block>::Header as Header>::Number>,
        key_owner_proof: OpaqueKeyOwnershipProof
    ) -> Result<Option<()>, Self::Error> { ... }
pub fn submit_report_equivocation_unsigned_extrinsic_with_context(
        &self,
        __runtime_api_at_param__: &BlockId<Block>,
        context: ExecutionContext,
        equivocation_proof: EquivocationProof<<Block as Block>::Hash, <<Block as Block>::Header as Header>::Number>,
        key_owner_proof: OpaqueKeyOwnershipProof
    ) -> Result<Option<()>, Self::Error> { ... }
pub fn generate_key_ownership_proof(
        &self,
        __runtime_api_at_param__: &BlockId<Block>,
        set_id: u64,
        authority_id: Public
    ) -> Result<Option<OpaqueKeyOwnershipProof>, Self::Error> { ... }
pub fn generate_key_ownership_proof_with_context(
        &self,
        __runtime_api_at_param__: &BlockId<Block>,
        context: ExecutionContext,
        set_id: u64,
        authority_id: Public
    ) -> Result<Option<OpaqueKeyOwnershipProof>, Self::Error> { ... } }

APIs for integrating the GRANDPA finality gadget into runtimes. This should be implemented on the runtime side.

This is primarily used for negotiating authority-set changes for the gadget. GRANDPA uses a signaling model of changing authority sets: changes should be signaled with a delay of N blocks, and then automatically applied in the runtime after those N blocks have passed.

The consensus protocol will coordinate the handoff externally.

Provided methods

pub fn grandpa_authorities(
    &self,
    __runtime_api_at_param__: &BlockId<Block>
) -> Result<Vec<(Public, u64), Global>, Self::Error>
[src]

Get the current GRANDPA authorities and weights. This should not change except for when changes are scheduled and the corresponding delay has passed.

When called at block B, it will return the set of authorities that should be used to finalize descendants of this block (B+1, B+2, …). The block B itself is finalized by the authorities from block B-1.

pub fn grandpa_authorities_with_context(
    &self,
    __runtime_api_at_param__: &BlockId<Block>,
    context: ExecutionContext
) -> Result<Vec<(Public, u64), Global>, Self::Error>
[src]

Get the current GRANDPA authorities and weights. This should not change except for when changes are scheduled and the corresponding delay has passed.

When called at block B, it will return the set of authorities that should be used to finalize descendants of this block (B+1, B+2, …). The block B itself is finalized by the authorities from block B-1.

pub fn submit_report_equivocation_unsigned_extrinsic(
    &self,
    __runtime_api_at_param__: &BlockId<Block>,
    equivocation_proof: EquivocationProof<<Block as Block>::Hash, <<Block as Block>::Header as Header>::Number>,
    key_owner_proof: OpaqueKeyOwnershipProof
) -> Result<Option<()>, Self::Error>
[src]

Submits an unsigned extrinsic to report an equivocation. The caller must provide the equivocation proof and a key ownership proof (should be obtained using generate_key_ownership_proof). The extrinsic will be unsigned and should only be accepted for local authorship (not to be broadcast to the network). This method returns None when creation of the extrinsic fails, e.g. if equivocation reporting is disabled for the given runtime (i.e. this method is hardcoded to return None). Only useful in an offchain context.

pub fn submit_report_equivocation_unsigned_extrinsic_with_context(
    &self,
    __runtime_api_at_param__: &BlockId<Block>,
    context: ExecutionContext,
    equivocation_proof: EquivocationProof<<Block as Block>::Hash, <<Block as Block>::Header as Header>::Number>,
    key_owner_proof: OpaqueKeyOwnershipProof
) -> Result<Option<()>, Self::Error>
[src]

Submits an unsigned extrinsic to report an equivocation. The caller must provide the equivocation proof and a key ownership proof (should be obtained using generate_key_ownership_proof). The extrinsic will be unsigned and should only be accepted for local authorship (not to be broadcast to the network). This method returns None when creation of the extrinsic fails, e.g. if equivocation reporting is disabled for the given runtime (i.e. this method is hardcoded to return None). Only useful in an offchain context.

pub fn generate_key_ownership_proof(
    &self,
    __runtime_api_at_param__: &BlockId<Block>,
    set_id: u64,
    authority_id: Public
) -> Result<Option<OpaqueKeyOwnershipProof>, Self::Error>
[src]

Generates a proof of key ownership for the given authority in the given set. An example usage of this module is coupled with the session historical module to prove that a given authority key is tied to a given staking identity during a specific session. Proofs of key ownership are necessary for submitting equivocation reports. NOTE: even though the API takes a set_id as parameter the current implementations ignore this parameter and instead rely on this method being called at the correct block height, i.e. any point at which the given set id is live on-chain. Future implementations will instead use indexed data through an offchain worker, not requiring older states to be available.

pub fn generate_key_ownership_proof_with_context(
    &self,
    __runtime_api_at_param__: &BlockId<Block>,
    context: ExecutionContext,
    set_id: u64,
    authority_id: Public
) -> Result<Option<OpaqueKeyOwnershipProof>, Self::Error>
[src]

Generates a proof of key ownership for the given authority in the given set. An example usage of this module is coupled with the session historical module to prove that a given authority key is tied to a given staking identity during a specific session. Proofs of key ownership are necessary for submitting equivocation reports. NOTE: even though the API takes a set_id as parameter the current implementations ignore this parameter and instead rely on this method being called at the correct block height, i.e. any point at which the given set id is live on-chain. Future implementations will instead use indexed data through an offchain worker, not requiring older states to be available.

Loading content...

Trait Implementations

impl<Block, __Sr_Api_Error__> RuntimeApiInfo for dyn GrandpaApi<Block, Error = __Sr_Api_Error__> + 'static where
    Block: Block
[src]

Implementors

Loading content...