move import queue to consensus-common (#1282)

This commit is contained in:
Gregory Terzian
2018-12-31 19:33:21 +08:00
committed by Robert Habermeier
parent 35ba22cdd1
commit 3add75910a
20 changed files with 593 additions and 472 deletions
+10 -2
View File
@@ -21,7 +21,7 @@ use futures::Future;
use runtime_primitives::generic::{SignedBlock, BlockId};
use runtime_primitives::traits::{As, Block, Header};
use network::import_queue::{ImportQueue, Link, BlockData};
use consensus_common::import_queue::{ImportQueue, IncomingBlock, Link};
use network::message;
use consensus_common::BlockOrigin;
@@ -123,7 +123,15 @@ pub fn import_blocks<F, E, R>(mut config: FactoryFullConfiguration<F>, exit: E,
message_queue: None
};
// import queue handles verification and importing it into the client
queue.import_blocks(BlockOrigin::File, vec![BlockData::<F::Block> { block, origin: None }]);
queue.import_blocks(BlockOrigin::File, vec![
IncomingBlock::<F::Block>{
hash: block.hash,
header: block.header,
body: block.body,
justification: block.justification,
origin: None,
}
]);
} else {
warn!("Error reading block data at {}.", b);
break;
+4 -3
View File
@@ -23,7 +23,8 @@ use chain_spec::ChainSpec;
use client_db;
use client::{self, Client, runtime_api::{Metadata, TaggedTransactionQueue}};
use {error, Service, maybe_start_server};
use network::{self, OnDemand, import_queue::ImportQueue};
use consensus_common::import_queue::ImportQueue;
use network::{self, OnDemand};
use substrate_executor::{NativeExecutor, NativeExecutionDispatch};
use transaction_pool::txpool::{self, Options as TransactionPoolOptions, Pool as TransactionPool};
use runtime_primitives::{BuildStorage, traits::{Block as BlockT, Header as HeaderT, ProvideRuntimeApi}, generic::{BlockId, SignedBlock}};
@@ -279,9 +280,9 @@ pub trait ServiceFactory: 'static + Sized {
/// Extended light service type.
type LightService: ServiceTrait<LightComponents<Self>>;
/// ImportQueue for full client
type FullImportQueue: network::import_queue::ImportQueue<Self::Block> + 'static;
type FullImportQueue: consensus_common::import_queue::ImportQueue<Self::Block> + 'static;
/// ImportQueue for light clients
type LightImportQueue: network::import_queue::ImportQueue<Self::Block> + 'static;
type LightImportQueue: consensus_common::import_queue::ImportQueue<Self::Block> + 'static;
//TODO: replace these with a constructor trait. that TransactionPool implements. (#1242)
/// Extrinsic pool constructor for the full client.