diff --git a/ethcore/src/lib.rs b/ethcore/src/lib.rs
index c42abd34b..bf3e59171 100644
--- a/ethcore/src/lib.rs
+++ b/ethcore/src/lib.rs
@@ -137,7 +137,7 @@ pub mod miner;
pub mod snapshot;
pub mod action_params;
pub mod db;
-pub mod light;
+pub mod verification;
#[macro_use] pub mod evm;
mod cache_manager;
@@ -151,7 +151,6 @@ mod account_db;
mod builtin;
mod executive;
mod externalities;
-mod verification;
mod blockchain;
mod types;
mod factory;
diff --git a/ethcore/src/verification/canon_verifier.rs b/ethcore/src/verification/canon_verifier.rs
index cc6bc448a..b5b01279e 100644
--- a/ethcore/src/verification/canon_verifier.rs
+++ b/ethcore/src/verification/canon_verifier.rs
@@ -14,6 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
+//! Canonical verifier.
+
use blockchain::BlockProvider;
use engines::Engine;
use error::Error;
@@ -21,6 +23,7 @@ use header::Header;
use super::Verifier;
use super::verification;
+/// A canonial verifier -- this does full verification.
pub struct CanonVerifier;
impl Verifier for CanonVerifier {
diff --git a/ethcore/src/verification/mod.rs b/ethcore/src/verification/mod.rs
index 239c88597..55663052b 100644
--- a/ethcore/src/verification/mod.rs
+++ b/ethcore/src/verification/mod.rs
@@ -14,6 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
+//! Block verification utilities.
+
pub mod verification;
pub mod verifier;
pub mod queue;
@@ -44,6 +46,7 @@ impl Default for VerifierType {
}
}
+/// Create a new verifier based on type.
pub fn new(v: VerifierType) -> Box {
match v {
VerifierType::Canon | VerifierType::CanonNoSeal => Box::new(CanonVerifier),
diff --git a/ethcore/src/verification/noop_verifier.rs b/ethcore/src/verification/noop_verifier.rs
index fb798be46..7db688a85 100644
--- a/ethcore/src/verification/noop_verifier.rs
+++ b/ethcore/src/verification/noop_verifier.rs
@@ -14,12 +14,15 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
+//! No-op verifier.
+
use blockchain::BlockProvider;
use engines::Engine;
use error::Error;
use header::Header;
use super::Verifier;
+/// A no-op verifier -- this will verify everything it's given immediately.
#[allow(dead_code)]
pub struct NoopVerifier;
diff --git a/ethcore/src/verification/verification.rs b/ethcore/src/verification/verification.rs
index 1b8eddfe8..4ebd8aebd 100644
--- a/ethcore/src/verification/verification.rs
+++ b/ethcore/src/verification/verification.rs
@@ -14,12 +14,12 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-/// Block and transaction verification functions
-///
-/// Block verification is done in 3 steps
-/// 1. Quick verification upon adding to the block queue
-/// 2. Signatures verification done in the queue.
-/// 3. Final verification against the blockchain done before enactment.
+//! Block and transaction verification functions
+//!
+//! Block verification is done in 3 steps
+//! 1. Quick verification upon adding to the block queue
+//! 2. Signatures verification done in the queue.
+//! 3. Final verification against the blockchain done before enactment.
use util::*;
use engines::Engine;
diff --git a/ethcore/src/verification/verifier.rs b/ethcore/src/verification/verifier.rs
index 7f57407f7..05d488f95 100644
--- a/ethcore/src/verification/verifier.rs
+++ b/ethcore/src/verification/verifier.rs
@@ -14,6 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
+//! A generic verifier trait.
+
use blockchain::BlockProvider;
use engines::Engine;
use error::Error;
@@ -21,6 +23,8 @@ use header::Header;
/// Should be used to verify blocks.
pub trait Verifier: Send + Sync {
+ /// Verify a block relative to its parent and uncles.
fn verify_block_family(&self, header: &Header, bytes: &[u8], engine: &Engine, bc: &BlockProvider) -> Result<(), Error>;
+ /// Do a final verification check for an enacted header vs its expected counterpart.
fn verify_block_final(&self, expected: &Header, got: &Header) -> Result<(), Error>;
}