pub struct GrindingStep {
pub protocol: &'static str,
pub label: &'static str,
pub site: GrindingSite,
pub zero_bits: ZeroBitConvention,
}Expand description
One row of the grinding vocabulary.
A row is a protocol’s step label, the site that label names, and how the protocol records it at zero bits.
Rows are keyed on (protocol, label) rather than on the label alone.
"query_pow" -> p3-fri, p3-circle, p3-whir, p3-stir all use it
"ood_pow" -> p3-uni-stark and p3-batch-stark, under two conventionsLabels are namespaced by the protocol name in the transcript seed, so this is not a soundness problem.
Fields§
§protocol: &'static strProtocol name bound into the transcript seed, such as "p3-fri".
label: &'static strLabel the protocol’s proof-of-work step carries.
site: GrindingSitePhase this step grinds for.
zero_bits: ZeroBitConventionHow this protocol records the step at zero difficulty.
Trait Implementations§
Source§impl Clone for GrindingStep
impl Clone for GrindingStep
impl Copy for GrindingStep
Source§impl Debug for GrindingStep
impl Debug for GrindingStep
impl Eq for GrindingStep
Source§impl PartialEq for GrindingStep
impl PartialEq for GrindingStep
impl StructuralPartialEq for GrindingStep
Auto Trait Implementations§
impl Freeze for GrindingStep
impl RefUnwindSafe for GrindingStep
impl Send for GrindingStep
impl Sync for GrindingStep
impl Unpin for GrindingStep
impl UnsafeUnpin for GrindingStep
impl UnwindSafe for GrindingStep
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more