pub struct BitcoinHeaderChainExample { /* private fields */ }Expand description
Check some basic things about a Bitcoin header chain.
IMPORTANT: This does NOT prove full validity of the header chain. In particular it’s not checked at all that the target difficulty is calculated correctly. One could easily satisfy this circuit by quickly self-mining many blocks with low difficulty.
Trait Implementations§
Source§impl ExampleCircuit for BitcoinHeaderChainExample
impl ExampleCircuit for BitcoinHeaderChainExample
Source§type Params = Params
type Params = Params
Circuit parameters that affect the structure of the circuit.
These are typically compile-time constants or bounds.
Source§type Instance = Instance
type Instance = Instance
Instance data used to populate the witness.
This represents the actual input values for a specific proof.
Source§fn build(params: Self::Params, builder: &mut CircuitBuilder) -> Result<Self>
fn build(params: Self::Params, builder: &mut CircuitBuilder) -> Result<Self>
Build the circuit with the given parameters. Read more
Source§fn populate_witness(
&self,
instance: Self::Instance,
filler: &mut WitnessFiller<'_>,
) -> Result<()>
fn populate_witness( &self, instance: Self::Instance, filler: &mut WitnessFiller<'_>, ) -> Result<()>
Populate witness values for a specific instance. Read more
Auto Trait Implementations§
impl Freeze for BitcoinHeaderChainExample
impl RefUnwindSafe for BitcoinHeaderChainExample
impl Send for BitcoinHeaderChainExample
impl Sync for BitcoinHeaderChainExample
impl Unpin for BitcoinHeaderChainExample
impl UnsafeUnpin for BitcoinHeaderChainExample
impl UnwindSafe for BitcoinHeaderChainExample
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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