Make sure to produce full blocks. (#9115)
This commit is contained in:
parent
584a76ab70
commit
3ecf16a492
@ -88,6 +88,7 @@ winapi = { version = "0.3.4", features = ["winsock2", "winuser", "shellapi"] }
|
|||||||
daemonize = { git = "https://github.com/paritytech/daemonize" }
|
daemonize = { git = "https://github.com/paritytech/daemonize" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
miner-debug = ["ethcore/miner-debug"]
|
||||||
json-tests = ["ethcore/json-tests"]
|
json-tests = ["ethcore/json-tests"]
|
||||||
test-heavy = ["ethcore/test-heavy"]
|
test-heavy = ["ethcore/test-heavy"]
|
||||||
evm-debug = ["ethcore/evm-debug"]
|
evm-debug = ["ethcore/evm-debug"]
|
||||||
|
@ -87,6 +87,10 @@ work-notify = ["ethcore-miner/work-notify"]
|
|||||||
price-info = ["ethcore-miner/price-info"]
|
price-info = ["ethcore-miner/price-info"]
|
||||||
stratum = ["ethcore-stratum"]
|
stratum = ["ethcore-stratum"]
|
||||||
|
|
||||||
|
# Disables seal verification for mined blocks.
|
||||||
|
# This allows you to submit any seal via RPC to test and benchmark
|
||||||
|
# how fast pending block get's created while running on the mainnet.
|
||||||
|
miner-debug = []
|
||||||
# Display EVM debug traces.
|
# Display EVM debug traces.
|
||||||
evm-debug = ["evm/evm-debug"]
|
evm-debug = ["evm/evm-debug"]
|
||||||
# Display EVM debug traces when running tests.
|
# Display EVM debug traces when running tests.
|
||||||
|
@ -280,11 +280,18 @@ impl Engine<EthereumMachine> for Arc<Ethash> {
|
|||||||
block_reward::apply_block_rewards(&rewards, block, &self.machine)
|
block_reward::apply_block_rewards(&rewards, block, &self.machine)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(not(feature = "miner-debug"))]
|
||||||
fn verify_local_seal(&self, header: &Header) -> Result<(), Error> {
|
fn verify_local_seal(&self, header: &Header) -> Result<(), Error> {
|
||||||
self.verify_block_basic(header)
|
self.verify_block_basic(header)
|
||||||
.and_then(|_| self.verify_block_unordered(header))
|
.and_then(|_| self.verify_block_unordered(header))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "miner-debug")]
|
||||||
|
fn verify_local_seal(&self, _header: &Header) -> Result<(), Error> {
|
||||||
|
warn!("Skipping seal verification, running in miner testing mode.");
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
fn verify_block_basic(&self, header: &Header) -> Result<(), Error> {
|
fn verify_block_basic(&self, header: &Header) -> Result<(), Error> {
|
||||||
// check the seal fields.
|
// check the seal fields.
|
||||||
let seal = Seal::parse_seal(header.seal())?;
|
let seal = Seal::parse_seal(header.seal())?;
|
||||||
|
@ -97,7 +97,7 @@ const DEFAULT_MINIMAL_GAS_PRICE: u64 = 20_000_000_000;
|
|||||||
/// before stopping attempts to push more transactions to the block.
|
/// before stopping attempts to push more transactions to the block.
|
||||||
/// This is an optimization that prevents traversing the entire pool
|
/// This is an optimization that prevents traversing the entire pool
|
||||||
/// in case we have only a fraction of available block gas limit left.
|
/// in case we have only a fraction of available block gas limit left.
|
||||||
const MAX_SKIPPED_TRANSACTIONS: usize = 8;
|
const MAX_SKIPPED_TRANSACTIONS: usize = 128;
|
||||||
|
|
||||||
/// Configures the behaviour of the miner.
|
/// Configures the behaviour of the miner.
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq)]
|
||||||
@ -397,7 +397,7 @@ impl Miner {
|
|||||||
let max_transactions = if min_tx_gas.is_zero() {
|
let max_transactions = if min_tx_gas.is_zero() {
|
||||||
usize::max_value()
|
usize::max_value()
|
||||||
} else {
|
} else {
|
||||||
(*open_block.block().header().gas_limit() / min_tx_gas).as_u64() as usize
|
MAX_SKIPPED_TRANSACTIONS.saturating_add((*open_block.block().header().gas_limit() / min_tx_gas).as_u64() as usize)
|
||||||
};
|
};
|
||||||
|
|
||||||
let pending: Vec<Arc<_>> = self.transaction_queue.pending(
|
let pending: Vec<Arc<_>> = self.transaction_queue.pending(
|
||||||
|
Loading…
Reference in New Issue
Block a user