Type Alias frontier_template_node::service::GrandpaBlockImport
source · type GrandpaBlockImport<Client> = GrandpaBlockImport<TFullBackend<Block>, Block, Client, LongestChain<TFullBackend<Block>, Block>>;
Aliased Type§
struct GrandpaBlockImport<Client> {
inner: Arc<Client>,
justification_import_period: u32,
select_chain: LongestChain<Backend<Block<Header<u32, BlakeTwo256>, OpaqueExtrinsic>>, Block<Header<u32, BlakeTwo256>, OpaqueExtrinsic>>,
authority_set: SharedAuthoritySet<H256, u32>,
send_voter_commands: TracingUnboundedSender<VoterCommand<H256, u32>>,
authority_set_hard_forks: HashMap<H256, PendingChange<H256, u32>>,
justification_sender: NotificationSender<GrandpaJustification<Block<Header<u32, BlakeTwo256>, OpaqueExtrinsic>>>,
telemetry: Option<TelemetryHandle>,
_phantom: PhantomData<Backend<Block<Header<u32, BlakeTwo256>, OpaqueExtrinsic>>>,
}
Fields§
§inner: Arc<Client>
§justification_import_period: u32
§select_chain: LongestChain<Backend<Block<Header<u32, BlakeTwo256>, OpaqueExtrinsic>>, Block<Header<u32, BlakeTwo256>, OpaqueExtrinsic>>
§send_voter_commands: TracingUnboundedSender<VoterCommand<H256, u32>>
§justification_sender: NotificationSender<GrandpaJustification<Block<Header<u32, BlakeTwo256>, OpaqueExtrinsic>>>
§telemetry: Option<TelemetryHandle>
§_phantom: PhantomData<Backend<Block<Header<u32, BlakeTwo256>, OpaqueExtrinsic>>>
Trait Implementations
§impl<BE, Block, Client, SC> JustificationImport<Block> for GrandpaBlockImport<BE, Block, Client, SC>where
Block: Block,
<<Block as Block>::Header as Header>::Number: BlockNumberOps,
BE: Backend<Block>,
Client: ClientForGrandpa<Block, BE>,
SC: SelectChain<Block>,
impl<BE, Block, Client, SC> JustificationImport<Block> for GrandpaBlockImport<BE, Block, Client, SC>where
Block: Block,
<<Block as Block>::Header as Header>::Number: BlockNumberOps,
BE: Backend<Block>,
Client: ClientForGrandpa<Block, BE>,
SC: SelectChain<Block>,
type Error = Error
§fn on_start<'life0, 'async_trait>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Vec<(<Block as Block>::Hash, <<Block as Block>::Header as Header>::Number)>> + Send + 'async_trait>>where
'life0: 'async_trait,
GrandpaBlockImport<BE, Block, Client, SC>: 'async_trait,
fn on_start<'life0, 'async_trait>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Vec<(<Block as Block>::Hash, <<Block as Block>::Header as Header>::Number)>> + Send + 'async_trait>>where
'life0: 'async_trait,
GrandpaBlockImport<BE, Block, Client, SC>: 'async_trait,
Called by the import queue when it is started. Returns a list of justifications to request
from the network.
§fn import_justification<'life0, 'async_trait>(
&'life0 mut self,
hash: <Block as Block>::Hash,
number: <<Block as Block>::Header as Header>::Number,
justification: ([u8; 4], Vec<u8>)
) -> Pin<Box<dyn Future<Output = Result<(), <GrandpaBlockImport<BE, Block, Client, SC> as JustificationImport<Block>>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
GrandpaBlockImport<BE, Block, Client, SC>: 'async_trait,
fn import_justification<'life0, 'async_trait>(
&'life0 mut self,
hash: <Block as Block>::Hash,
number: <<Block as Block>::Header as Header>::Number,
justification: ([u8; 4], Vec<u8>)
) -> Pin<Box<dyn Future<Output = Result<(), <GrandpaBlockImport<BE, Block, Client, SC> as JustificationImport<Block>>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
GrandpaBlockImport<BE, Block, Client, SC>: 'async_trait,
Import a Block justification and finalize the given block.
§impl<Backend, Block, Client, SC> Clone for GrandpaBlockImport<Backend, Block, Client, SC>where
Block: Block,
SC: Clone,
impl<Backend, Block, Client, SC> Clone for GrandpaBlockImport<Backend, Block, Client, SC>where
Block: Block,
SC: Clone,
§impl<BE, Block, Client, SC> BlockImport<Block> for GrandpaBlockImport<BE, Block, Client, SC>where
Block: Block,
<<Block as Block>::Header as Header>::Number: BlockNumberOps,
BE: Backend<Block>,
Client: ClientForGrandpa<Block, BE>,
<Client as ProvideRuntimeApi<Block>>::Api: GrandpaApi<Block>,
&'a Client: for<'a> BlockImport<Block, Error = Error>,
SC: Send,
impl<BE, Block, Client, SC> BlockImport<Block> for GrandpaBlockImport<BE, Block, Client, SC>where
Block: Block,
<<Block as Block>::Header as Header>::Number: BlockNumberOps,
BE: Backend<Block>,
Client: ClientForGrandpa<Block, BE>,
<Client as ProvideRuntimeApi<Block>>::Api: GrandpaApi<Block>,
&'a Client: for<'a> BlockImport<Block, Error = Error>,
SC: Send,
§fn import_block<'life0, 'async_trait>(
&'life0 mut self,
block: BlockImportParams<Block>
) -> Pin<Box<dyn Future<Output = Result<ImportResult, <GrandpaBlockImport<BE, Block, Client, SC> as BlockImport<Block>>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
GrandpaBlockImport<BE, Block, Client, SC>: 'async_trait,
fn import_block<'life0, 'async_trait>(
&'life0 mut self,
block: BlockImportParams<Block>
) -> Pin<Box<dyn Future<Output = Result<ImportResult, <GrandpaBlockImport<BE, Block, Client, SC> as BlockImport<Block>>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
GrandpaBlockImport<BE, Block, Client, SC>: 'async_trait,
Import a block.
§fn check_block<'life0, 'async_trait>(
&'life0 mut self,
block: BlockCheckParams<Block>
) -> Pin<Box<dyn Future<Output = Result<ImportResult, <GrandpaBlockImport<BE, Block, Client, SC> as BlockImport<Block>>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
GrandpaBlockImport<BE, Block, Client, SC>: 'async_trait,
fn check_block<'life0, 'async_trait>(
&'life0 mut self,
block: BlockCheckParams<Block>
) -> Pin<Box<dyn Future<Output = Result<ImportResult, <GrandpaBlockImport<BE, Block, Client, SC> as BlockImport<Block>>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
GrandpaBlockImport<BE, Block, Client, SC>: 'async_trait,
Check block preconditions.