diff --git a/ethcore/src/block.rs b/ethcore/src/block.rs index 7ec8ed4ce..db0bac614 100644 --- a/ethcore/src/block.rs +++ b/ethcore/src/block.rs @@ -17,7 +17,7 @@ //! Blockchain block. use common::*; -use engine::*; +use engines::Engine; use state::*; use verification::PreverifiedBlock; use trace::FlatTrace; diff --git a/ethcore/src/block_queue.rs b/ethcore/src/block_queue.rs index bd8060996..6772c0461 100644 --- a/ethcore/src/block_queue.rs +++ b/ethcore/src/block_queue.rs @@ -22,7 +22,7 @@ use std::sync::{Condvar as SCondvar, Mutex as SMutex}; use util::*; use verification::*; use error::*; -use engine::Engine; +use engines::Engine; use views::*; use header::*; use service::*; diff --git a/ethcore/src/client/client.rs b/ethcore/src/client/client.rs index 06ff5bd8c..eb06ef0ca 100644 --- a/ethcore/src/client/client.rs +++ b/ethcore/src/client/client.rs @@ -40,7 +40,7 @@ use header::BlockNumber; use state::State; use spec::Spec; use basic_types::Seal; -use engine::Engine; +use engines::Engine; use views::HeaderView; use service::ClientIoMessage; use env_info::LastHashes; diff --git a/ethcore/src/basic_authority.rs b/ethcore/src/engines/basic_authority.rs similarity index 97% rename from ethcore/src/basic_authority.rs rename to ethcore/src/engines/basic_authority.rs index b5b199c82..525b825b9 100644 --- a/ethcore/src/basic_authority.rs +++ b/ethcore/src/engines/basic_authority.rs @@ -19,8 +19,8 @@ use common::*; use account_provider::AccountProvider; use block::*; -use spec::{CommonParams, Spec}; -use engine::*; +use spec::CommonParams; +use engines::Engine; use evm::Schedule; use ethjson; @@ -176,16 +176,16 @@ impl Header { } } -/// Create a new test chain spec with `BasicAuthority` consensus engine. -pub fn new_test_authority() -> Spec { Spec::load(include_bytes!("../res/test_authority.json")) } - #[cfg(test)] mod tests { - use super::*; use common::*; use block::*; use tests::helpers::*; use account_provider::AccountProvider; + use spec::Spec; + + /// Create a new test chain spec with `BasicAuthority` consensus engine. + fn new_test_authority() -> Spec { Spec::load(include_bytes!("../../res/test_authority.json")) } #[test] fn has_valid_metadata() { diff --git a/ethcore/src/engine.rs b/ethcore/src/engines/mod.rs similarity index 97% rename from ethcore/src/engine.rs rename to ethcore/src/engines/mod.rs index e78f84c13..25feed74d 100644 --- a/ethcore/src/engine.rs +++ b/ethcore/src/engines/mod.rs @@ -14,7 +14,13 @@ // You should have received a copy of the GNU General Public License // along with Parity. If not, see . -//! Consensus engine specification +//! Consensus engine specification and basic implementations. + +mod null_engine; +mod basic_authority; + +pub use self::null_engine::NullEngine; +pub use self::basic_authority::BasicAuthority; use common::*; use account_provider::AccountProvider; diff --git a/ethcore/src/null_engine.rs b/ethcore/src/engines/null_engine.rs similarity index 93% rename from ethcore/src/null_engine.rs rename to ethcore/src/engines/null_engine.rs index a760bea93..aebf7d1bf 100644 --- a/ethcore/src/null_engine.rs +++ b/ethcore/src/engines/null_engine.rs @@ -17,12 +17,12 @@ use std::collections::BTreeMap; use util::hash::Address; use builtin::Builtin; -use engine::Engine; +use engines::Engine; use spec::CommonParams; use evm::Schedule; use env_info::EnvInfo; -/// An engine which does not provide any consensus mechanism. +/// An engine which does not provide any consensus mechanism and does not seal blocks. pub struct NullEngine { params: CommonParams, builtins: BTreeMap, diff --git a/ethcore/src/ethereum/ethash.rs b/ethcore/src/ethereum/ethash.rs index 802b68e82..2a0f84c23 100644 --- a/ethcore/src/ethereum/ethash.rs +++ b/ethcore/src/ethereum/ethash.rs @@ -18,7 +18,7 @@ use ethash::{quick_get_difficulty, EthashManager, H256 as EH256}; use common::*; use block::*; use spec::CommonParams; -use engine::*; +use engines::Engine; use evm::Schedule; use ethjson; diff --git a/ethcore/src/executive.rs b/ethcore/src/executive.rs index 5a7d6da10..9a48f9d4a 100644 --- a/ethcore/src/executive.rs +++ b/ethcore/src/executive.rs @@ -17,7 +17,7 @@ //! Transaction Execution environment. use common::*; use state::*; -use engine::*; +use engines::Engine; use types::executed::CallType; use evm::{self, Ext, Factory, Finalize}; use externalities::*; diff --git a/ethcore/src/externalities.rs b/ethcore/src/externalities.rs index 47c4d9c60..25fed0176 100644 --- a/ethcore/src/externalities.rs +++ b/ethcore/src/externalities.rs @@ -17,7 +17,7 @@ //! Transaction Execution environment. use common::*; use state::*; -use engine::*; +use engines::Engine; use executive::*; use evm::{self, Schedule, Ext, ContractCreateResult, MessageCallResult, Factory}; use substate::*; @@ -300,7 +300,7 @@ impl<'a, T, V> Ext for Externalities<'a, T, V> where T: 'a + Tracer, V: 'a + VMT mod tests { use common::*; use state::*; - use engine::*; + use engines::Engine; use evm::{Ext}; use substate::*; use tests::helpers::*; diff --git a/ethcore/src/json_tests/executive.rs b/ethcore/src/json_tests/executive.rs index dd6573a37..f1be3e4e0 100644 --- a/ethcore/src/json_tests/executive.rs +++ b/ethcore/src/json_tests/executive.rs @@ -17,7 +17,7 @@ use super::test_common::*; use state::*; use executive::*; -use engine::*; +use engines::Engine; use evm; use evm::{Schedule, Ext, Factory, Finalize, VMType, ContractCreateResult, MessageCallResult}; use externalities::*; diff --git a/ethcore/src/lib.rs b/ethcore/src/lib.rs index 147232683..3c6f319a1 100644 --- a/ethcore/src/lib.rs +++ b/ethcore/src/lib.rs @@ -99,7 +99,7 @@ extern crate ethcore_devtools as devtools; #[cfg(feature = "jit" )] extern crate evmjit; pub mod account_provider; -pub mod basic_authority; +pub mod engines; pub mod block; pub mod block_queue; pub mod client; @@ -111,7 +111,6 @@ pub mod trace; pub mod spec; pub mod views; pub mod pod_state; -pub mod engine; pub mod migrations; pub mod miner; pub mod snapshot; @@ -127,7 +126,6 @@ mod pod_account; mod state; mod account; mod account_db; -mod null_engine; mod builtin; mod substate; mod executive; diff --git a/ethcore/src/migrations/mod.rs b/ethcore/src/migrations/mod.rs index 391e5e2f2..e3e1f4031 100644 --- a/ethcore/src/migrations/mod.rs +++ b/ethcore/src/migrations/mod.rs @@ -1,3 +1,19 @@ +// Copyright 2015, 2016 Ethcore (UK) Ltd. +// This file is part of Parity. + +// Parity is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity. If not, see . + //! Database migrations. pub mod state; diff --git a/ethcore/src/miner/miner.rs b/ethcore/src/miner/miner.rs index 79c8a95bf..3edf56a3b 100644 --- a/ethcore/src/miner/miner.rs +++ b/ethcore/src/miner/miner.rs @@ -29,7 +29,7 @@ use error::*; use transaction::SignedTransaction; use receipt::Receipt; use spec::Spec; -use engine::Engine; +use engines::Engine; use miner::{MinerService, MinerStatus, TransactionQueue, AccountDetails, TransactionOrigin}; use miner::work_notify::WorkPoster; use client::TransactionImportResult; diff --git a/ethcore/src/spec/spec.rs b/ethcore/src/spec/spec.rs index 3daf096fb..6a9223a1c 100644 --- a/ethcore/src/spec/spec.rs +++ b/ethcore/src/spec/spec.rs @@ -17,14 +17,12 @@ //! Parameters for a block chain. use common::*; -use engine::*; +use engines::{Engine, NullEngine, BasicAuthority}; use pod_state::*; -use null_engine::*; use account_db::*; use super::genesis::Genesis; use super::seal::Generic as GenericSeal; use ethereum; -use basic_authority::BasicAuthority; use ethjson; /// Parameters common to all engines. diff --git a/ethcore/src/state.rs b/ethcore/src/state.rs index 1da70df3a..45a88d519 100644 --- a/ethcore/src/state.rs +++ b/ethcore/src/state.rs @@ -15,7 +15,7 @@ // along with Parity. If not, see . use common::*; -use engine::Engine; +use engines::Engine; use executive::{Executive, TransactOptions}; use evm::Factory as EvmFactory; use account_db::*; diff --git a/ethcore/src/tests/helpers.rs b/ethcore/src/tests/helpers.rs index 6e94d2ee3..fe717aa09 100644 --- a/ethcore/src/tests/helpers.rs +++ b/ethcore/src/tests/helpers.rs @@ -21,7 +21,7 @@ use block::{OpenBlock, Drain}; use blockchain::{BlockChain, Config as BlockChainConfig}; use state::*; use evm::Schedule; -use engine::*; +use engines::Engine; use ethereum; use devtools::*; use miner::Miner; diff --git a/ethcore/src/verification/canon_verifier.rs b/ethcore/src/verification/canon_verifier.rs index e0ebf1b7c..cc6bc448a 100644 --- a/ethcore/src/verification/canon_verifier.rs +++ b/ethcore/src/verification/canon_verifier.rs @@ -15,7 +15,7 @@ // along with Parity. If not, see . use blockchain::BlockProvider; -use engine::Engine; +use engines::Engine; use error::Error; use header::Header; use super::Verifier; diff --git a/ethcore/src/verification/noop_verifier.rs b/ethcore/src/verification/noop_verifier.rs index 99d1d594c..fb798be46 100644 --- a/ethcore/src/verification/noop_verifier.rs +++ b/ethcore/src/verification/noop_verifier.rs @@ -15,7 +15,7 @@ // along with Parity. If not, see . use blockchain::BlockProvider; -use engine::Engine; +use engines::Engine; use error::Error; use header::Header; use super::Verifier; diff --git a/ethcore/src/verification/verification.rs b/ethcore/src/verification/verification.rs index d3e782764..f0f67c4c2 100644 --- a/ethcore/src/verification/verification.rs +++ b/ethcore/src/verification/verification.rs @@ -22,7 +22,7 @@ /// 3. Final verification against the blockchain done before enactment. use common::*; -use engine::Engine; +use engines::Engine; use blockchain::*; /// Preprocessed block data gathered in `verify_block_unordered` call @@ -233,7 +233,7 @@ mod tests { use error::BlockError::*; use views::*; use blockchain::*; - use engine::*; + use engines::Engine; use spec::*; use transaction::*; use tests::helpers::*; diff --git a/ethcore/src/verification/verifier.rs b/ethcore/src/verification/verifier.rs index 5db81a4eb..7f57407f7 100644 --- a/ethcore/src/verification/verifier.rs +++ b/ethcore/src/verification/verifier.rs @@ -15,7 +15,7 @@ // along with Parity. If not, see . use blockchain::BlockProvider; -use engine::Engine; +use engines::Engine; use error::Error; use header::Header;