From 2712c4b72a5efaea9dfc631d8109decb0beb519f Mon Sep 17 00:00:00 2001 From: Henry de Valence Date: Sun, 16 Aug 2020 11:48:00 -0700 Subject: [PATCH] chain: rename BlockHeader to block::Header --- zebra-chain/src/block.rs | 4 ++-- zebra-chain/src/block/hash.rs | 6 +++--- zebra-chain/src/block/header.rs | 4 ++-- zebra-chain/src/block/serialize.rs | 8 ++++---- zebra-chain/src/block/tests/arbitrary.rs | 4 ++-- zebra-chain/src/block/tests/generate.rs | 6 +++--- zebra-chain/src/block/tests/prop.rs | 2 +- zebra-chain/src/block/tests/vectors.rs | 2 +- zebra-chain/src/work/tests/prop.rs | 16 ++++++++-------- zebra-consensus/src/block/tests.rs | 3 +-- zebra-consensus/src/chain/tests.rs | 4 ++-- zebra-network/src/protocol/external/message.rs | 8 +++++--- 12 files changed, 34 insertions(+), 33 deletions(-) diff --git a/zebra-chain/src/block.rs b/zebra-chain/src/block.rs index 0939532db..5bf636e13 100644 --- a/zebra-chain/src/block.rs +++ b/zebra-chain/src/block.rs @@ -12,7 +12,7 @@ pub mod merkle; mod tests; pub use hash::Hash; -pub use header::BlockHeader; +pub use header::Header; pub use height::Height; pub use root_hash::RootHash; @@ -38,7 +38,7 @@ use proptest_derive::Arbitrary; #[cfg_attr(test, derive(Arbitrary))] pub struct Block { /// The block header, containing block metadata. - pub header: BlockHeader, + pub header: Header, /// The block transactions. pub transactions: Vec>, } diff --git a/zebra-chain/src/block/hash.rs b/zebra-chain/src/block/hash.rs index ee6aaea08..966047fe8 100644 --- a/zebra-chain/src/block/hash.rs +++ b/zebra-chain/src/block/hash.rs @@ -8,7 +8,7 @@ use crate::serialization::{ sha256d, ReadZcashExt, SerializationError, ZcashDeserialize, ZcashSerialize, }; -use super::BlockHeader; +use super::Header; /// A SHA-256d hash of a BlockHeader. /// @@ -34,8 +34,8 @@ impl fmt::Debug for Hash { } } -impl<'a> From<&'a BlockHeader> for Hash { - fn from(block_header: &'a BlockHeader) -> Self { +impl<'a> From<&'a Header> for Hash { + fn from(block_header: &'a Header) -> Self { let mut hash_writer = sha256d::Writer::default(); block_header .zcash_serialize(&mut hash_writer) diff --git a/zebra-chain/src/block/header.rs b/zebra-chain/src/block/header.rs index ae5394bee..d5e938310 100644 --- a/zebra-chain/src/block/header.rs +++ b/zebra-chain/src/block/header.rs @@ -12,7 +12,7 @@ use super::{merkle::MerkleTreeRootHash, Error, Hash}; /// header. Each block points backwards to its parent, all the way /// back to the genesis block (the first block in the blockchain). #[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize, Deserialize)] -pub struct BlockHeader { +pub struct Header { /// The block's version field. This is supposed to be `4`: /// /// > The current and only defined block version number for Zcash is 4. @@ -66,7 +66,7 @@ pub struct BlockHeader { pub solution: Solution, } -impl BlockHeader { +impl Header { /// Returns true if the header is valid based on its `EquihashSolution` pub fn is_equihash_solution_valid(&self) -> Result<(), EquihashError> { let n = 200; diff --git a/zebra-chain/src/block/serialize.rs b/zebra-chain/src/block/serialize.rs index de1505682..698c663ce 100644 --- a/zebra-chain/src/block/serialize.rs +++ b/zebra-chain/src/block/serialize.rs @@ -8,8 +8,8 @@ use crate::work::{difficulty::CompactDifficulty, equihash}; use super::merkle::MerkleTreeRootHash; use super::Block; -use super::BlockHeader; use super::Hash; +use super::Header; /// The maximum size of a Zcash block, in bytes. /// @@ -19,7 +19,7 @@ use super::Hash; /// transaction in the chain is approximately 1.5 kB smaller.) pub const MAX_BLOCK_BYTES: u64 = 2_000_000; -impl ZcashSerialize for BlockHeader { +impl ZcashSerialize for Header { fn zcash_serialize(&self, mut writer: W) -> Result<(), io::Error> { writer.write_u32::(self.version)?; self.previous_block_hash.zcash_serialize(&mut writer)?; @@ -36,7 +36,7 @@ impl ZcashSerialize for BlockHeader { } } -impl ZcashDeserialize for BlockHeader { +impl ZcashDeserialize for Header { fn zcash_deserialize(mut reader: R) -> Result { // The Zcash specification says that // "The current and only defined block version number for Zcash is 4." @@ -68,7 +68,7 @@ impl ZcashDeserialize for BlockHeader { return Err(SerializationError::Parse("version must be at least 4")); } - Ok(BlockHeader { + Ok(Header { version, previous_block_hash: Hash::zcash_deserialize(&mut reader)?, merkle_root_hash: MerkleTreeRootHash(reader.read_32_bytes()?), diff --git a/zebra-chain/src/block/tests/arbitrary.rs b/zebra-chain/src/block/tests/arbitrary.rs index c8b819d8c..37720ac25 100644 --- a/zebra-chain/src/block/tests/arbitrary.rs +++ b/zebra-chain/src/block/tests/arbitrary.rs @@ -23,7 +23,7 @@ impl Arbitrary for RootHash { type Strategy = BoxedStrategy; } -impl Arbitrary for BlockHeader { +impl Arbitrary for Header { type Parameters = (); fn arbitrary_with(_args: ()) -> Self::Strategy { @@ -49,7 +49,7 @@ impl Arbitrary for BlockHeader { difficulty_threshold, nonce, solution, - )| BlockHeader { + )| Header { version, previous_block_hash, merkle_root_hash, diff --git a/zebra-chain/src/block/tests/generate.rs b/zebra-chain/src/block/tests/generate.rs index a6b569ef4..adc0c0da0 100644 --- a/zebra-chain/src/block/tests/generate.rs +++ b/zebra-chain/src/block/tests/generate.rs @@ -7,11 +7,11 @@ use crate::{ transaction::{LockTime, Transaction, TransparentInput, TransparentOutput}, }; -use super::super::{serialize::MAX_BLOCK_BYTES, Block, BlockHeader}; +use super::super::{serialize::MAX_BLOCK_BYTES, Block, Header}; /// Generate a block header -pub fn block_header() -> BlockHeader { - BlockHeader::zcash_deserialize(&zebra_test::vectors::DUMMY_HEADER[..]).unwrap() +pub fn block_header() -> Header { + Header::zcash_deserialize(&zebra_test::vectors::DUMMY_HEADER[..]).unwrap() } /// Generate a block with multiple transactions just below limit diff --git a/zebra-chain/src/block/tests/prop.rs b/zebra-chain/src/block/tests/prop.rs index 3ad8af6f2..1879d7369 100644 --- a/zebra-chain/src/block/tests/prop.rs +++ b/zebra-chain/src/block/tests/prop.rs @@ -18,7 +18,7 @@ proptest! { } #[test] - fn blockheader_roundtrip(header in any::()) { + fn blockheader_roundtrip(header in any::
()) { let bytes = header.zcash_serialize_to_vec()?; let other_header = bytes.zcash_deserialize_into()?; diff --git a/zebra-chain/src/block/tests/vectors.rs b/zebra-chain/src/block/tests/vectors.rs index 3a75e8b18..2bdf4ef6d 100644 --- a/zebra-chain/src/block/tests/vectors.rs +++ b/zebra-chain/src/block/tests/vectors.rs @@ -54,7 +54,7 @@ fn blockheaderhash_from_blockheader() { fn deserialize_blockheader() { // https://explorer.zcha.in/blocks/415000 let _header = zebra_test::vectors::HEADER_MAINNET_415000_BYTES - .zcash_deserialize_into::() + .zcash_deserialize_into::
() .expect("blockheader test vector should deserialize"); } diff --git a/zebra-chain/src/work/tests/prop.rs b/zebra-chain/src/work/tests/prop.rs index b7585e501..43222afa8 100644 --- a/zebra-chain/src/work/tests/prop.rs +++ b/zebra-chain/src/work/tests/prop.rs @@ -1,6 +1,6 @@ use proptest::prelude::*; -use crate::block::{Block, BlockHeader}; +use crate::block::{self, Block}; use crate::serialization::{ZcashDeserialize, ZcashDeserializeInto, ZcashSerialize}; use super::super::*; @@ -20,12 +20,12 @@ fn equihash_solution_roundtrip() { } prop_compose! { - fn randomized_solutions(real_header: BlockHeader) + fn randomized_solutions(real_header: block::Header) (fake_solution in any::() .prop_filter("solution must not be the actual solution", move |s| { s != &real_header.solution }) - ) -> BlockHeader { + ) -> block::Header { let mut fake_header = real_header; fake_header.solution = fake_solution; fake_header @@ -52,12 +52,12 @@ fn equihash_prop_test_solution() -> color_eyre::eyre::Result<()> { } prop_compose! { - fn randomized_nonce(real_header: BlockHeader) + fn randomized_nonce(real_header: block::Header) (fake_nonce in proptest::array::uniform32(any::()) .prop_filter("nonce must not be the actual nonce", move |fake_nonce| { fake_nonce != &real_header.nonce }) - ) -> BlockHeader { + ) -> block::Header { let mut fake_header = real_header; fake_header.nonce = fake_nonce; fake_header @@ -84,8 +84,8 @@ fn equihash_prop_test_nonce() -> color_eyre::eyre::Result<()> { } prop_compose! { - fn randomized_input(real_header: BlockHeader) - (fake_header in any::() + fn randomized_input(real_header: block::Header) + (fake_header in any::() .prop_map(move |mut fake_header| { fake_header.nonce = real_header.nonce; fake_header.solution = real_header.solution; @@ -94,7 +94,7 @@ prop_compose! { .prop_filter("input must not be the actual input", move |fake_header| { fake_header != &real_header }) - ) -> BlockHeader { + ) -> block::Header { fake_header } } diff --git a/zebra-consensus/src/block/tests.rs b/zebra-consensus/src/block/tests.rs index 4f0880bde..4bf7d437c 100644 --- a/zebra-consensus/src/block/tests.rs +++ b/zebra-consensus/src/block/tests.rs @@ -6,7 +6,6 @@ use chrono::Utc; use color_eyre::eyre::{eyre, Report}; use once_cell::sync::Lazy; -use zebra_chain::block::BlockHeader; use zebra_chain::block::{self, Block}; use zebra_chain::serialization::{ZcashDeserialize, ZcashDeserializeInto}; use zebra_test::transcript::{TransError, Transcript}; @@ -55,7 +54,7 @@ static INVALID_HEADER_SOLUTION_TRANSCRIPT: Lazy< static INVALID_COINBASE_TRANSCRIPT: Lazy, Result)>> = Lazy::new(|| { let header = - BlockHeader::zcash_deserialize(&zebra_test::vectors::DUMMY_HEADER[..]).unwrap(); + block::Header::zcash_deserialize(&zebra_test::vectors::DUMMY_HEADER[..]).unwrap(); // Test 1: Empty transaction let block1 = Block { diff --git a/zebra-consensus/src/chain/tests.rs b/zebra-consensus/src/chain/tests.rs index d8f74e13d..b43216d06 100644 --- a/zebra-consensus/src/chain/tests.rs +++ b/zebra-consensus/src/chain/tests.rs @@ -11,7 +11,7 @@ use tower::{layer::Layer, timeout::TimeoutLayer, Service, ServiceExt}; use tracing_futures::Instrument; use zebra_chain::{ - block::{self, Block, BlockHeader}, + block::{self, Block}, parameters::Network, serialization::ZcashDeserialize, }; @@ -39,7 +39,7 @@ const VERIFY_TIMEOUT_SECONDS: u64 = 10; /// The generated block should fail validation. pub fn block_no_transactions() -> Block { Block { - header: BlockHeader::zcash_deserialize(&zebra_test::vectors::DUMMY_HEADER[..]).unwrap(), + header: block::Header::zcash_deserialize(&zebra_test::vectors::DUMMY_HEADER[..]).unwrap(), transactions: Vec::new(), } } diff --git a/zebra-network/src/protocol/external/message.rs b/zebra-network/src/protocol/external/message.rs index 4c1f9a5ee..8c75c0636 100644 --- a/zebra-network/src/protocol/external/message.rs +++ b/zebra-network/src/protocol/external/message.rs @@ -5,8 +5,10 @@ use std::{net, sync::Arc}; use chrono::{DateTime, Utc}; -use zebra_chain::block::{self, Block}; -use zebra_chain::{block::BlockHeader, transaction::Transaction}; +use zebra_chain::{ + block::{self, Block}, + transaction::Transaction, +}; use super::inv::InventoryHash; use super::types::*; @@ -178,7 +180,7 @@ pub enum Message { // transaction count (a var_int, so there can be more than 81 // bytes per header) as opposed to the block headers that are // hashed by miners. - Headers(Vec), + Headers(Vec), /// A `getheaders` message. ///