Struct ethcore::miner::Miner  [−][src]
pub struct Miner { /* fields omitted */ }Keeps track of transactions using priority queue and holds currently mined block. Handles preparing work for "work sealing" or seals "internally" if Engine does not require work.
Methods
impl Miner[src] 
impl Minerpub fn add_transactions_listener(&self, f: Box<Fn(&[H256]) + Send + Sync>)[src] 
pub fn add_transactions_listener(&self, f: Box<Fn(&[H256]) + Send + Sync>)Set a callback to be notified about imported transactions' hashes.
pub fn new(
    options: MinerOptions, 
    gas_pricer: GasPricer, 
    spec: &Spec, 
    accounts: Option<Arc<AccountProvider>>
) -> Self[src] 
pub fn new(
    options: MinerOptions, 
    gas_pricer: GasPricer, 
    spec: &Spec, 
    accounts: Option<Arc<AccountProvider>>
) -> SelfCreates new instance of miner Arc.
pub fn new_for_tests(
    spec: &Spec, 
    accounts: Option<Arc<AccountProvider>>
) -> Miner[src] 
pub fn new_for_tests(
    spec: &Spec, 
    accounts: Option<Arc<AccountProvider>>
) -> MinerCreates new instance of miner with given spec and accounts.
NOTE This should be only used for tests.
pub fn set_io_channel(&self, io_channel: IoChannel<ClientIoMessage>)[src] 
pub fn set_io_channel(&self, io_channel: IoChannel<ClientIoMessage>)Sets IoChannel
pub fn clear(&self)[src] 
pub fn clear(&self)Clear all pending block states
pub fn update_transaction_queue_limits(&self, block_gas_limit: U256)[src] 
pub fn update_transaction_queue_limits(&self, block_gas_limit: U256)Updates transaction queue verification limits.
Limits consist of current block gas limit and minimal gas price.
Trait Implementations
impl MinerService for Miner[src] 
impl MinerService for Minertype State = State<StateDB>
Type representing chain state
Get current authoring parameters.
fn set_gas_range_target(&self, gas_range_target: (U256, U256))[src] 
fn set_gas_range_target(&self, gas_range_target: (U256, U256))Set the lower and upper bound of gas limit we wish to target when sealing a new block.
fn set_extra_data(&self, extra_data: Bytes)[src] 
fn set_extra_data(&self, extra_data: Bytes)Set the extra_data that we will seal blocks with.
Set info necessary to sign consensus messages and block authoring. Read more
fn sensible_gas_price(&self) -> U256[src] 
fn sensible_gas_price(&self) -> U256Suggested gas price.
fn sensible_gas_limit(&self) -> U256[src] 
fn sensible_gas_limit(&self) -> U256Suggested gas limit.
fn import_external_transactions<C: BlockChainClient>(
    &self, 
    chain: &C, 
    transactions: Vec<UnverifiedTransaction>
) -> Vec<Result<(), Error>>[src] 
fn import_external_transactions<C: BlockChainClient>(
    &self, 
    chain: &C, 
    transactions: Vec<UnverifiedTransaction>
) -> Vec<Result<(), Error>>Imports transactions to transaction queue.
fn import_own_transaction<C: BlockChainClient>(
    &self, 
    chain: &C, 
    pending: PendingTransaction
) -> Result<(), Error>[src] 
fn import_own_transaction<C: BlockChainClient>(
    &self, 
    chain: &C, 
    pending: PendingTransaction
) -> Result<(), Error>Imports own (node owner) transaction to queue.
fn import_claimed_local_transaction<C: BlockChainClient>(
    &self, 
    chain: &C, 
    pending: PendingTransaction, 
    trusted: bool
) -> Result<(), Error>[src] 
fn import_claimed_local_transaction<C: BlockChainClient>(
    &self, 
    chain: &C, 
    pending: PendingTransaction, 
    trusted: bool
) -> Result<(), Error>Imports transactions from potentially external sources, with behaviour determined by the config flag tx_queue_allow_unfamiliar_locals Read more
fn local_transactions(&self) -> BTreeMap<H256, Status>[src] 
fn local_transactions(&self) -> BTreeMap<H256, Status>Get a list of local transactions with statuses.
fn queued_transactions(&self) -> Vec<Arc<VerifiedTransaction>>[src] 
fn queued_transactions(&self) -> Vec<Arc<VerifiedTransaction>>Get a list of all transactions in the pool (some of them might not be ready for inclusion yet).
fn pending_transaction_hashes<C>(&self, chain: &C) -> BTreeSet<H256> where
    C: ChainInfo + Sync, [src] 
fn pending_transaction_hashes<C>(&self, chain: &C) -> BTreeSet<H256> where
    C: ChainInfo + Sync, Get a set of all pending transaction hashes. Read more
fn ready_transactions<C>(
    &self, 
    chain: &C, 
    max_len: usize, 
    ordering: PendingOrdering
) -> Vec<Arc<VerifiedTransaction>> where
    C: ChainInfo + Nonce + Sync, [src] 
fn ready_transactions<C>(
    &self, 
    chain: &C, 
    max_len: usize, 
    ordering: PendingOrdering
) -> Vec<Arc<VerifiedTransaction>> where
    C: ChainInfo + Nonce + Sync, Get a list of all ready transactions either ordered by priority or unordered (cheaper). Read more
fn next_nonce<C>(&self, chain: &C, address: &Address) -> U256 where
    C: Nonce + Sync, [src] 
fn next_nonce<C>(&self, chain: &C, address: &Address) -> U256 where
    C: Nonce + Sync, Returns next valid nonce for given address. Read more
fn transaction(&self, hash: &H256) -> Option<Arc<VerifiedTransaction>>[src] 
fn transaction(&self, hash: &H256) -> Option<Arc<VerifiedTransaction>>Query transaction from the pool given it's hash.
fn remove_transaction(&self, hash: &H256) -> Option<Arc<VerifiedTransaction>>[src] 
fn remove_transaction(&self, hash: &H256) -> Option<Arc<VerifiedTransaction>>Removes transaction from the pool. Read more
fn queue_status(&self) -> QueueStatus[src] 
fn queue_status(&self) -> QueueStatusGet current queue status. Read more
fn pending_receipt(
    &self, 
    best_block: BlockNumber, 
    hash: &H256
) -> Option<RichReceipt>[src] 
fn pending_receipt(
    &self, 
    best_block: BlockNumber, 
    hash: &H256
) -> Option<RichReceipt>Get a particular receipt from pending block.
fn pending_receipts(
    &self, 
    best_block: BlockNumber
) -> Option<BTreeMap<H256, Receipt>>[src] 
fn pending_receipts(
    &self, 
    best_block: BlockNumber
) -> Option<BTreeMap<H256, Receipt>>Get a list of all pending receipts from pending block.
fn update_sealing<C>(&self, chain: &C) where
    C: BlockChain + CallContract + BlockProducer + SealedBlockImporter + Nonce + Sync, [src] 
fn update_sealing<C>(&self, chain: &C) where
    C: BlockChain + CallContract + BlockProducer + SealedBlockImporter + Nonce + Sync, Update sealing if required. Prepare the block and work if the Engine does not seal internally.
fn is_currently_sealing(&self) -> bool[src] 
fn is_currently_sealing(&self) -> boolIs it currently sealing?
fn work_package<C>(&self, chain: &C) -> Option<(H256, BlockNumber, u64, U256)> where
    C: BlockChain + CallContract + BlockProducer + SealedBlockImporter + Nonce + Sync, [src] 
fn work_package<C>(&self, chain: &C) -> Option<(H256, BlockNumber, u64, U256)> where
    C: BlockChain + CallContract + BlockProducer + SealedBlockImporter + Nonce + Sync, Get the sealing work package preparing it if doesn't exist yet. Read more
fn submit_seal(
    &self, 
    block_hash: H256, 
    seal: Vec<Bytes>
) -> Result<SealedBlock, Error>[src] 
fn submit_seal(
    &self, 
    block_hash: H256, 
    seal: Vec<Bytes>
) -> Result<SealedBlock, Error>Submit seal as a valid solution for the header of pow_hash. Will check the seal, but not actually insert the block into the chain. Read more
fn chain_new_blocks<C>(
    &self, 
    chain: &C, 
    imported: &[H256], 
    _invalid: &[H256], 
    enacted: &[H256], 
    retracted: &[H256], 
    is_internal_import: bool
) where
    C: BlockChainClient, [src] 
fn chain_new_blocks<C>(
    &self, 
    chain: &C, 
    imported: &[H256], 
    _invalid: &[H256], 
    enacted: &[H256], 
    retracted: &[H256], 
    is_internal_import: bool
) where
    C: BlockChainClient, Called when blocks are imported to chain, updates transactions queue. is_internal_import indicates that the block has just been created in miner and internally sealed by the engine, so we shouldn't attempt creating new block again. Read more
fn pending_state(&self, latest_block_number: BlockNumber) -> Option<Self::State>[src] 
fn pending_state(&self, latest_block_number: BlockNumber) -> Option<Self::State>Get Some clone() of the current pending block's state or None if we're not sealing.
fn pending_block_header(
    &self, 
    latest_block_number: BlockNumber
) -> Option<Header>[src] 
fn pending_block_header(
    &self, 
    latest_block_number: BlockNumber
) -> Option<Header>Get Some clone() of the current pending block header or None if we're not sealing.
fn pending_block(&self, latest_block_number: BlockNumber) -> Option<Block>[src] 
fn pending_block(&self, latest_block_number: BlockNumber) -> Option<Block>Get Some clone() of the current pending block or None if we're not sealing.
fn pending_transactions(
    &self, 
    latest_block_number: BlockNumber
) -> Option<Vec<SignedTransaction>>[src] 
fn pending_transactions(
    &self, 
    latest_block_number: BlockNumber
) -> Option<Vec<SignedTransaction>>Get Some clone() of the current pending block transactions or None if we're not sealing.