pub struct Block {
pub transactions: Vec<Transaction>,
pub timestamp: u64,
pub nonce: u64,
pub block_pow_difficulty: [u8; 32],
pub tx_pow_difficulty: [u8; 32],
pub previous_block: Hash,
pub hash: Option<Hash>,
}Expand description
Stores transaction, difficulties, its hash, and its nonce The hash can be often used for indexing, however can only be trusted if this node checked this block already
Fields§
§transactions: Vec<Transaction>§timestamp: u64§nonce: u64§block_pow_difficulty: [u8; 32]§tx_pow_difficulty: [u8; 32]§previous_block: Hash§hash: Option<Hash>Implementations§
Source§impl Block
impl Block
Sourcepub fn new_block_now(
transactions: Vec<Transaction>,
block_pow_difficulty: &[u8; 32],
tx_pow_difficulty: &[u8; 32],
previous_block: Hash,
) -> Self
pub fn new_block_now( transactions: Vec<Transaction>, block_pow_difficulty: &[u8; 32], tx_pow_difficulty: &[u8; 32], previous_block: Hash, ) -> Self
Create a new block timestamped now, with a set of transactions, specifying transaction difficulty and block difficulty
Sourcepub fn get_hashing_buf(&self) -> Result<Vec<u8>, EncodeError>
pub fn get_hashing_buf(&self) -> Result<Vec<u8>, EncodeError>
Get this blocks hashing buffer required to mine this transaction. Essentially makes sure that any hash attached to this block is not included in the block hashing buffer WARNING: Slow
Sourcepub fn compute_pow(&mut self) -> Result<(), EncodeError>
👎Deprecated
pub fn compute_pow(&mut self) -> Result<(), EncodeError>
Mine this block and attach its hash. DEPRECATED: This is single threaded and cannot be used for actual mining as proper, multi-threaded mining machines outperform this by absolute miles
Trait Implementations§
Source§impl<'__de, __Context> BorrowDecode<'__de, __Context> for Block
impl<'__de, __Context> BorrowDecode<'__de, __Context> for Block
Source§fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>(
decoder: &mut __D,
) -> Result<Self, DecodeError>
fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>
Attempt to decode this type with the given BorrowDecode.
Source§impl<'de> Deserialize<'de> for Block
impl<'de> Deserialize<'de> for Block
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Block
impl RefUnwindSafe for Block
impl Send for Block
impl Sync for Block
impl Unpin for Block
impl UnwindSafe for Block
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more