make verification module public
This commit is contained in:
parent
edf17d00c4
commit
5cabb3008f
@ -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;
|
||||
|
@ -14,6 +14,8 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
//! 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 {
|
||||
|
@ -14,6 +14,8 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
//! 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<Verifier> {
|
||||
match v {
|
||||
VerifierType::Canon | VerifierType::CanonNoSeal => Box::new(CanonVerifier),
|
||||
|
@ -14,12 +14,15 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
//! 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;
|
||||
|
||||
|
@ -14,12 +14,12 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/// 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;
|
||||
|
@ -14,6 +14,8 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
//! 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>;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user