pub struct SingleBlockMessage {
pub message: Align64<[u32; 16]>,
pub prefix_state: [u32; 8],
pub digit_index: usize,
pub nonce_addend: u64,
pub approx_working_set_count: NonZeroU32,
pub no_trailing_zeros: bool,
}Expand description
Solves an mCaptcha/Anubis/Cap.js SHA256 PoW where the SHA-256 message is a single block (512 bytes minus padding).
Construct: Proof := (prefix || ASCII_DECIMAL(nonce))
Currently the mutating part is always 9 digits long.
Fields§
§message: Align64<[u32; 16]>the message template for the final block, pre-padded except for the mutating part
prefix_state: [u32; 8]the SHA-256 midstate for the previous block
digit_index: usizethe index of the mutating part of the digits in the message
nonce_addend: u64the nonce addend
approx_working_set_count: NonZeroU32the approximate working set count
no_trailing_zeros: boolwhether no trailing zeros are allowed
Implementations§
Source§impl SingleBlockMessage
impl SingleBlockMessage
Sourcepub fn new_f64(
prefix: &[u8],
working_set: u32,
) -> Option<(Self, Option<IEEE754LosslessFixupPrefix>)>
pub fn new_f64( prefix: &[u8], working_set: u32, ) -> Option<(Self, Option<IEEE754LosslessFixupPrefix>)>
Create a new single block message using only IEEE 754 double precision floats that can stringify losslessly
The caller is expected to append the bytes from the prefix to the nonce before sending it to the server.
Trait Implementations§
Source§impl Clone for SingleBlockMessage
impl Clone for SingleBlockMessage
Source§fn clone(&self) -> SingleBlockMessage
fn clone(&self) -> SingleBlockMessage
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SingleBlockMessage
impl Debug for SingleBlockMessage
Source§impl From<SingleBlockMessage> for SingleBlockSolver
impl From<SingleBlockMessage> for SingleBlockSolver
Source§fn from(message: SingleBlockMessage) -> Self
fn from(message: SingleBlockMessage) -> Self
Converts to this type from the input type.
Source§impl From<SingleBlockMessage> for DecimalSolver
impl From<SingleBlockMessage> for DecimalSolver
Source§fn from(message: SingleBlockMessage) -> Self
fn from(message: SingleBlockMessage) -> Self
Converts to this type from the input type.
Source§impl From<SingleBlockMessage> for SingleBlockSolver
impl From<SingleBlockMessage> for SingleBlockSolver
Source§fn from(message: SingleBlockMessage) -> Self
fn from(message: SingleBlockMessage) -> Self
Converts to this type from the input type.
Source§impl From<SingleBlockMessage> for DecimalSolver
impl From<SingleBlockMessage> for DecimalSolver
Source§fn from(message: SingleBlockMessage) -> Self
fn from(message: SingleBlockMessage) -> Self
Converts to this type from the input type.
Source§impl From<SingleBlockMessage> for SingleBlockSolver
impl From<SingleBlockMessage> for SingleBlockSolver
Source§fn from(message: SingleBlockMessage) -> Self
fn from(message: SingleBlockMessage) -> Self
Converts to this type from the input type.
Source§impl From<SingleBlockMessage> for DecimalSolver
impl From<SingleBlockMessage> for DecimalSolver
Source§fn from(message: SingleBlockMessage) -> Self
fn from(message: SingleBlockMessage) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for SingleBlockMessage
impl RefUnwindSafe for SingleBlockMessage
impl Send for SingleBlockMessage
impl Sync for SingleBlockMessage
impl Unpin for SingleBlockMessage
impl UnsafeUnpin for SingleBlockMessage
impl UnwindSafe for SingleBlockMessage
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