pub trait SubspaceRpcApiServer: Sized + Send + Sync + 'static {
// Required methods
- fn get_farmer_app_info(&self) -> RpcResult<FarmerAppInfo>;
+ fn get_farmer_app_info(&self) -> RpcResult<FarmerAppInfo>;
fn submit_solution_response(
&self,
- solution_response: SolutionResponse
+ solution_response: SolutionResponse
) -> RpcResult<()>;
fn submit_reward_signature(
&self,
- reward_signature: RewardSignatureResponse
+ reward_signature: RewardSignatureResponse
) -> RpcResult<()>;
fn segment_headers<'life0, 'async_trait>(
&'life0 self,
@@ -48,13 +48,13 @@
// Provided method
fn into_rpc(self) -> RpcModule<Self> { ... }
}
Expand description
Server trait implementation for the SubspaceRpcApi
RPC API.
Required Methods§
sourcefn get_farmer_app_info(&self) -> RpcResult<FarmerAppInfo>
fn get_farmer_app_info(&self) -> RpcResult<FarmerAppInfo>
Ger metadata necessary for farmer operation
+Required Methods§
sourcefn get_farmer_app_info(&self) -> RpcResult<FarmerAppInfo>
fn get_farmer_app_info(&self) -> RpcResult<FarmerAppInfo>
Ger metadata necessary for farmer operation
fn submit_solution_response( &self, - solution_response: SolutionResponse + solution_response: SolutionResponse ) -> RpcResult<()>
fn submit_reward_signature( &self, - reward_signature: RewardSignatureResponse + reward_signature: RewardSignatureResponse ) -> RpcResult<()>
fn segment_headers<'life0, 'async_trait>(
&'life0 self,
segment_indexes: Vec<SegmentIndex>
diff --git a/search-index.js b/search-index.js
index f1b29fd412..066169cbd7 100644
--- a/search-index.js
+++ b/search-index.js
@@ -43,7 +43,7 @@ var searchIndex = JSON.parse('{\
"subspace_archiving":{"doc":"Collection of modules used for dealing with archived state …","t":"AAADENNNNNNDNNEENLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFFLLMLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMNNNNDEELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNDDEENLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLMM","n":["archiver","piece_reconstructor","reconstructor","Archiver","ArchiverInstantiationError","Block","BlockContinuation","BlockStart","FailedToInitializeErasureCoding","InvalidBlockSmallSize","InvalidLastArchivedBlock","NewArchivedSegment","Padding","ParentSegmentHeader","Segment","SegmentItem","V0","add_block","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","decode","decode","decode","decode_all","decode_all","decode_all","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","drop","encode_to","encode_to","encode_to","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","hash","init","init","init","init","init","into","into","into","into","into","is_piece_valid","is_record_commitment_hash_valid","last_archived_block_number","new","object_mapping","partial_cmp","pieces","segment_header","serialize","size_hint","size_hint","size_hint","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","with_initial_state","archived_block_bytes","block_bytes","items","bytes","bytes","bytes","DataShardsReconstruction","FailedToInitializeErasureCoding","IncorrectPiecePosition","InvalidInputPieceCommitment","PiecesReconstructor","ReconstructorError","ReconstructorInstantiationError","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","eq","eq","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","hash","init","init","init","into","into","into","new","partial_cmp","reconstruct_piece","reconstruct_segment","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","DataShardsReconstruction","FailedToInitializeErasureCoding","IncorrectSegmentOrder","ReconstructedContents","Reconstructor","ReconstructorError","ReconstructorInstantiationError","SegmentDecoding","add_segment","blocks","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","eq","eq","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","hash","init","init","init","init","into","into","into","into","new","partial_cmp","segment_header","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","actual_segment_index","expected_segment_index"],"q":[[0,"subspace_archiving"],[3,"subspace_archiving::archiver"],[137,"subspace_archiving::archiver::ArchiverInstantiationError"],[139,"subspace_archiving::archiver::Segment"],[140,"subspace_archiving::archiver::SegmentItem"],[143,"subspace_archiving::piece_reconstructor"],[208,"subspace_archiving::reconstructor"],[293,"subspace_archiving::reconstructor::ReconstructorError"],[295,"alloc::vec"],[296,"subspace_core_primitives::objects"],[297,"core::cmp"],[298,"parity_scale_codec::error"],[299,"core::result"],[300,"parity_scale_codec::codec"],[301,"serde::de"],[302,"parity_scale_codec::codec"],[303,"core::fmt"],[304,"core::fmt"],[305,"subspace_core_primitives::crypto::kzg"],[306,"subspace_core_primitives::pieces"],[307,"subspace_core_primitives::segments"],[308,"subspace_core_primitives::crypto"],[309,"subspace_core_primitives::pieces"],[310,"core::option"],[311,"serde::ser"],[312,"alloc::alloc"],[313,"alloc::string"],[314,"core::any"],[315,"subspace_core_primitives"]],"d":["","","","Block archiver for Subspace blockchain.","Archiver instantiation error","Contains full block inside","Continuation of the partial block spilled over into the …","Contains the beginning of the block inside, remainder will …","Failed to initialize erasure coding","Invalid block, its size is smaller than already archived …","Invalid last archived block, its size is the same as …","Newly archived segment as a combination of segment header …","Special dummy enum variant only used as an implementation …","Segment header of the parent","Segment represents a collection of items stored in …","Kinds of items that are contained within a segment","","Adds new block to internal buffer, potentially producing …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Validate witness embedded within a piece produced by …","Validate witness for record commitment hash produced by …","Get last archived block if there was any","Create a new instance with specified record size and …","Mappings for objects stored in corresponding pieces.","","Segment of archived history containing pieces","Segment header","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a new instance of the archiver with initial state …","Already archived portion of the block","Full block size","Segment items","Block bytes","Block bytes","Block bytes","Segment size is not bigger than record size","Failed to initialize erasure coding","Incorrect piece position provided.","Commitment of input piece is invalid.","Reconstructor helps to retrieve blocks from archived …","Reconstructor-related instantiation error","Reconstructor-related instantiation error.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","Returns the missing piece for a segment using given set of …","Returns all the pieces for a segment using given set of …","","","","","","","","","","","","","","","Error during data shards reconstruction","Failed to initialize erasure coding","Incorrect segment order, each next segment must have …","Data structure that contains information reconstructed …","Reconstructor helps to retrieve blocks from archived …","Reconstructor-related instantiation error","Reconstructor-related instantiation error.","Segment size is not bigger than record size","Given a set of pieces of a segment of the archived history …","Reconstructed encoded blocks with their block numbers","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","Segment header stored in a segment","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,8,8,8,9,9,9,0,8,8,0,0,7,1,7,8,6,9,1,7,8,6,9,1,7,8,6,9,1,7,8,6,9,1,9,7,8,6,7,8,6,7,8,6,7,8,6,7,8,6,9,1,7,8,6,9,1,6,7,8,6,9,1,7,8,6,7,8,6,9,7,8,6,9,7,8,6,9,9,1,7,8,6,9,1,9,7,8,6,9,1,7,8,6,9,1,0,0,1,1,6,9,6,6,6,7,8,6,7,8,6,7,8,6,9,1,9,7,8,6,9,1,7,8,6,9,1,7,8,6,9,1,1,45,45,46,47,48,49,37,36,37,37,0,0,0,36,37,38,36,37,38,36,37,38,36,37,38,36,36,37,38,36,37,38,36,37,38,36,37,36,36,36,37,37,38,36,37,38,36,36,37,38,36,37,38,38,36,38,38,36,37,38,36,37,36,37,38,36,37,38,36,37,38,43,44,43,0,0,0,0,43,41,42,44,43,42,41,44,43,42,41,44,43,42,41,44,43,42,41,44,42,44,43,42,41,44,43,42,41,44,43,42,41,44,43,42,44,42,44,44,43,43,42,41,44,43,42,41,44,44,43,42,41,44,43,42,41,41,44,42,44,43,42,41,44,43,44,43,42,41,44,43,42,41,44,43,42,41,50,50],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[1,[3,[2]],4,5],[[3,[6]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[7,7],[8,8],[6,6],[9,9],[1,1],[[-1,-2],10,[],[]],[[-1,-2],10,[],[]],[[-1,-2],10,[],[]],[[-1,-2],10,[],[]],[[-1,-2],10,[],[]],[[9,9],11],[-1,[[13,[7,12]]],14],[-1,[[13,[8,12]]],14],[-1,[[13,[6,12]]],14],[[[15,[2]]],[[13,[-1,12]]],[]],[[[15,[2]]],[[13,[-1,12]]],[]],[[[15,[2]]],[[13,[-1,12]]],[]],[[16,[15,[2]]],[[13,[-1,12]]],[]],[[16,[15,[2]]],[[13,[-1,12]]],[]],[[16,[15,[2]]],[[13,[-1,12]]],[]],[[16,-1],[[13,[-2,12]]],14,[]],[[16,-1],[[13,[-2,12]]],14,[]],[[16,-1],[[13,[-2,12]]],14,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[-1,[[13,[6]]],18],[17,10],[17,10],[17,10],[17,10],[17,10],[[7,-1],10,[19,20]],[[8,-1],10,[19,20]],[[6,-1],10,[19,20]],[[7,7],5],[[8,8],5],[[6,6],5],[[9,9],5],[[-1,-2],5,[],[]],[[-1,-2],5,[],[]],[[-1,-2],5,[],[]],[[-1,-2],5,[],[]],[[7,21],22],[[8,21],22],[[6,21],22],[[9,21],22],[[9,21],22],[[1,21],22],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[9,-1],10,23],[[],17],[[],17],[[],17],[[],17],[[],17],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[24,25,26,16],5],[[24,27,26,28,16],5],[1,[[30,[29]]]],[24,[[13,[1,9]]]],0,[[9,9],[[30,[11]]]],0,0,[[6,-1],13,31],[7,17],[8,17],[6,17],[[-1,[15,[2]]],[[3,[2,32]]],[]],[[-1,[15,[2]]],[[3,[2,32]]],[]],[[-1,[15,[2]]],[[3,[2,32]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,33,[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[[24,35,[15,[2]],4],[[13,[1,9]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[36,36],[37,37],[38,38],[[-1,-2],10,[],[]],[[-1,-2],10,[],[]],[[-1,-2],10,[],[]],[[36,36],11],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,10],[17,10],[17,10],[[36,36],5],[[37,37],5],[[-1,-2],5,[],[]],[[36,21],22],[[36,21],22],[[37,21],22],[[37,21],22],[[38,21],22],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[36,-1],10,23],[[],17],[[],17],[[],17],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[24,[[13,[38,36]]]],[[36,36],[[30,[11]]]],[[38,[15,[[30,[39]]]],17],[[13,[39,37]]]],[[38,[15,[[30,[39]]]]],[[13,[40,37]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,33,[]],[-1,33,[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],0,0,0,0,0,0,0,0,[[41,[15,[[30,[39]]]]],[[13,[42,43]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[44,44],[43,43],[42,42],[41,41],[[-1,-2],10,[],[]],[[-1,-2],10,[],[]],[[-1,-2],10,[],[]],[[-1,-2],10,[],[]],[[44,44],11],[[],42],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,-1,[]],[17,10],[17,10],[17,10],[17,10],[[44,44],5],[[43,43],5],[[42,42],5],[[-1,-2],5,[],[]],[[-1,-2],5,[],[]],[[44,21],22],[[44,21],22],[[43,21],22],[[43,21],22],[[42,21],22],[[41,21],22],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[44,-1],10,23],[[],17],[[],17],[[],17],[[],17],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[13,[41,44]]]],[[44,44],[[30,[11]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,33,[]],[-1,33,[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],0,0],"c":[],"p":[[3,"Archiver",3],[15,"u8"],[3,"Vec",295],[3,"BlockObjectMapping",296],[15,"bool"],[3,"NewArchivedSegment",3],[4,"Segment",3],[4,"SegmentItem",3],[4,"ArchiverInstantiationError",3],[15,"tuple"],[4,"Ordering",297],[3,"Error",298],[4,"Result",299],[8,"Input",300],[15,"slice"],[15,"u32"],[15,"usize"],[8,"Deserializer",301],[8,"Output",300],[8,"Sized",302],[3,"Formatter",303],[6,"Result",303],[8,"Hasher",304],[3,"Kzg",305],[3,"PieceArray",306],[3,"SegmentCommitment",307],[3,"Scalar",308],[3,"RecordWitness",306],[6,"BlockNumber",309],[4,"Option",310],[8,"Serializer",311],[3,"Global",312],[3,"String",313],[3,"TypeId",314],[4,"SegmentHeader",309],[4,"ReconstructorInstantiationError",143],[4,"ReconstructorError",143],[3,"PiecesReconstructor",143],[3,"Piece",306],[3,"ArchivedHistorySegment",307],[3,"Reconstructor",208],[3,"ReconstructedContents",208],[4,"ReconstructorError",208],[4,"ReconstructorInstantiationError",208],[13,"InvalidBlockSmallSize",137],[13,"V0",139],[13,"Block",140],[13,"BlockStart",140],[13,"BlockContinuation",140],[13,"IncorrectSegmentOrder",293]],"b":[[81,"impl-Display-for-ArchiverInstantiationError"],[82,"impl-Debug-for-ArchiverInstantiationError"],[175,"impl-Debug-for-ReconstructorInstantiationError"],[176,"impl-Display-for-ReconstructorInstantiationError"],[177,"impl-Display-for-ReconstructorError"],[178,"impl-Debug-for-ReconstructorError"],[253,"impl-Display-for-ReconstructorInstantiationError"],[254,"impl-Debug-for-ReconstructorInstantiationError"],[255,"impl-Debug-for-ReconstructorError"],[256,"impl-Display-for-ReconstructorError"]]},\
"subspace_core_primitives":{"doc":"Core primitives for Subspace Network.","t":"EDRGGGGDNSNDDDSSSSSSSSSDESSSRNDDDDDDDDDDDDRRRDDDDDDDDSSSSSSSSSSSSSSSSDGDDEDGDGDNSSSSLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMALLLLLLLLLLLLLLLLLLLLLLLLLMLLMMLLMLMLMLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMDLLLLLLLLLLLLLLLLLLLLLLLSSDLLFFFFFLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLDRDRRDDLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLEDEEDNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMM","n":["ArchivedBlockProgress","ArchivedHistorySegment","BLAKE3_HASH_SIZE","Blake3Hash","BlockHash","BlockNumber","BlockWeight","ChunkWitness","Complete","ERASURE_CODING_RATE","EmptyVec","FlatPieces","HistorySize","LastArchivedBlock","MAX","MAX","MIDDLE","NUM_CHECKPOINTS","NUM_CHUNKS","NUM_CHUNKS","NUM_PIECES","NUM_RAW_RECORDS","NUM_S_BUCKETS","NonEmptyVec","NonEmptyVecErr","ONE","ONE","ONE","PUBLIC_KEY_LENGTH","Partial","Piece","PieceArray","PieceIndex","PieceOffset","PosProof","PosQualityBytes","PosSeed","PotCheckpoints","PotKey","PotOutput","PotSeed","PublicKey","RANDOMNESS_LENGTH","REWARD_SIGNATURE_LENGTH","REWARD_SIGNING_CONTEXT","Randomness","RawRecord","Record","RecordCommitment","RecordWitness","RecordedHistorySegment","RewardSignature","SBucket","SIZE","SIZE","SIZE","SIZE","SIZE","SIZE","SIZE","SIZE","SIZE","SIZE","SIZE","SIZE","SIZE","SIZE","SIZE","SIZE","SectorId","SectorIndex","SectorSlotChallenge","SegmentCommitment","SegmentHeader","SegmentIndex","SlotNumber","Solution","SolutionRange","U256","V0","ZERO","ZERO","ZERO","ZERO","add","add","add","add","add","add_assign","add_assign","add_assign","add_assign","archived_progress","as_byte_slice","as_byte_slice","as_byte_slice","as_byte_slice","as_byte_slice","as_byte_slice","as_byte_slice","as_byte_slice","as_byte_slice","as_byte_slice","as_byte_slice","as_byte_slice","as_byte_slice","as_byte_slice","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut_byte_slice","as_mut_byte_slice","as_mut_byte_slice","as_mut_byte_slice","as_mut_byte_slice","as_mut_byte_slice","as_mut_byte_slice","as_mut_byte_slice","as_mut_byte_slice","as_mut_byte_slice","as_mut_byte_slice","as_mut_slice_of","as_mut_slice_of","as_mut_slice_of","as_mut_slice_of","as_mut_slice_of","as_mut_slice_of","as_mut_slice_of","as_mut_slice_of","as_mut_slice_of","as_mut_slice_of","as_mut_slice_of","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_slice","as_slice_of","as_slice_of","as_slice_of","as_slice_of","as_slice_of","as_slice_of","as_slice_of","as_slice_of","as_slice_of","as_slice_of","as_slice_of","as_slice_of","as_slice_of","as_slice_of","audit_chunk_offset","backward_checked","backward_checked","backward_checked","backward_checked","bidirectional_distance","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","checked_add","checked_div","checked_mul","checked_sub","checksum","chunk","chunk_witness","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","commitment","commitment_mut","crypto","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_into","decode_into","decode_into","decode_into","decode_into","decode_into","decode_into","decode_into","decode_into","decode_into","decode_into","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","derive_evaluation_seed","derive_expiration_history_size","derive_global_challenge","derive_global_randomness","derive_piece_index","derive_sector_slot_challenge","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","div","div","div","div","div","div_assign","div_assign","div_assign","div_assign","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","encode_to","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","first","first_piece_index","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","forward_checked","forward_checked","forward_checked","forward_checked","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_be_bytes","from_bytes","from_genesis","from_hex","from_hex","from_hex","from_le_bytes","from_str","genesis_solution","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","history_size","in_pieces","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_inner","into_reward_address_format","iter","iter_mut","key","last","last_archived_block","last_piece_index","len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","max_encoded_len","mul","mul","mul","mul","mul","mul_assign","mul_assign","mul_assign","mul_assign","new","new","new","new","new_boxed","new_boxed","new_boxed","new_boxed","new_with_entry","new_zero_vec","number","objects","one","output","par_parity","par_parity_mut","par_source","par_source_mut","parity","parity_mut","partial","partial_archived","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","piece_offset","position","prev_segment_header_hash","proof_of_space","public_key","push","record","record_commitment","record_mut","record_witness","rem","reward_address","s_bucket_audit_index","saturating_add","saturating_mul","saturating_sub","sector_expiration_check","sector_index","seed","seed_with_entropy","segment_commitment","segment_index","segment_index","segment_index","segment_piece_indexes","segment_piece_indexes_source_first","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_complete","set_partial","set_partial_archived","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","slice_from_repr","slice_mut_from_repr","slice_mut_to_repr","slice_to_repr","source","source_mut","split","split_mut","steps_between","steps_between","steps_between","steps_between","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","to_be_bytes","to_bytes","to_bytes","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_le_bytes","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_vec","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","type_info","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","using_encoded","witness","witness_mut","wrapping_add","wrapping_sub","zero","last_archived_block","prev_segment_header_hash","segment_commitment","segment_index","Blake3Checksummed","borrow","borrow_mut","clone","clone_into","decode","decode_all","decode_all_with_depth_limit","decode_with_depth_limit","deref","deref_mut","drop","encode_to","encoded_size","fmt","from","init","into","size_hint","to_keyed_vec","to_owned","try_from","try_into","type_id","FULL_BYTES","SAFE_BYTES","Scalar","as_mut","as_ref","blake3_254_hash_to_scalar","blake3_hash","blake3_hash_list","blake3_hash_parallel","blake3_hash_with_key","borrow","borrow_mut","clone","clone_into","cmp","decode","decode_all","decode_all_with_depth_limit","decode_with_depth_limit","default","deref","deref","deref_mut","deref_mut","deserialize","drop","encoded_fixed_size","encoded_size","eq","equivalent","fmt","from","from","from","from","hash","init","into","kzg","max_encoded_len","partial_cmp","serialize","size_hint","slice_from_repr","slice_mut_from_repr","slice_mut_to_repr","slice_option_from_repr","slice_option_mut_from_repr","slice_option_mut_to_repr","slice_option_to_repr","slice_to_repr","to_bytes","to_keyed_vec","to_owned","try_from","try_from","try_from","try_into","type_id","type_info","using_encoded","vec_from_repr","vec_option_from_repr","vec_option_to_repr","vec_to_repr","Commitment","EMBEDDED_KZG_SETTINGS_BYTES","Kzg","NUM_G1_POWERS","NUM_G2_POWERS","Polynomial","Witness","as_mut","as_mut","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes_to_kzg_settings","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","commit","create_witness","default","default","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","embedded_kzg_settings","eq","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get_fft_settings","init","init","init","init","into","into","into","into","new","normalize","poly","slice_from_repr","slice_mut_from_repr","slice_mut_to_repr","slice_option_from_repr","slice_option_mut_from_repr","slice_option_mut_to_repr","slice_option_to_repr","slice_to_repr","to_bytes","to_bytes","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_bytes","try_from_bytes","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vec_from_repr","vec_option_from_repr","vec_option_to_repr","vec_to_repr","verify","BlockObject","BlockObjectMapping","GlobalObject","PieceObject","PieceObjectMapping","V0","V0","V0","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","decode","decode","decode","decode","decode","decode_all","decode_all","decode_all","decode_all","decode_all","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","default","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","encode","encode","encode_to","encode_to","encode_to","encode_to","encode_to","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","hash","hash","hash","hash","hash","hash","hash","init","init","init","init","init","into","into","into","into","into","objects","objects","offset","offset","offset","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","piece_index","serialize","serialize","serialize","serialize","serialize","set_offset","size_hint","size_hint","size_hint","size_hint","size_hint","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_info","type_info","type_info","type_info","type_info","using_encoded","using_encoded","hash","offset","offset","piece_index","hash","offset"],"q":[[0,"subspace_core_primitives"],[1470,"subspace_core_primitives::SegmentHeader"],[1474,"subspace_core_primitives::checksum"],[1498,"subspace_core_primitives::crypto"],[1563,"subspace_core_primitives::crypto::kzg"],[1684,"subspace_core_primitives::objects"],[1857,"subspace_core_primitives::objects::BlockObject"],[1859,"subspace_core_primitives::objects::GlobalObject"],[1861,"subspace_core_primitives::objects::PieceObject"],[1863,"byte_slice_cast"],[1864,"core::result"],[1865,"byte_slice_cast"],[1866,"core::option"],[1867,"num_traits::ops::wrapping"],[1868,"core::cmp"],[1869,"core::cmp"],[1870,"parity_scale_codec::codec"],[1871,"parity_scale_codec::codec"],[1872,"parity_scale_codec::decode_finished"],[1873,"serde::de"],[1874,"serde::de"],[1875,"core::iter::traits::collect"],[1876,"parity_scale_codec::codec"],[1877,"parity_scale_codec::codec"],[1878,"core::fmt"],[1879,"core::convert"],[1880,"core::hash"],[1881,"core::convert"],[1882,"alloc::boxed"],[1883,"rayon::iter"],[1884,"core::iter::traits::exact_size"],[1885,"serde::ser"],[1886,"serde::ser"],[1887,"alloc::string"],[1888,"core::any"],[1889,"scale_info::ty"],[1890,"core::ops::function"],[1891,"blst_rust::types::fr"],[1892,"blst_rust::types::g1"],[1893,"blst_rust::types::kzg_settings"],[1894,"blst_rust::types::poly"],[1895,"blst_rust::types::fft_settings"],[1896,"alloc::sync"]],"d":["Progress of an archived block.","Archived history segment after archiving is applied.","Size of BLAKE3 hash output (in bytes).","BLAKE3 hash output","Block hash in Subspace network.","Block number in Subspace network.","BlockWeight type for fork choice rules.","Witness for chunk contained within a record.","The block has been fully archived.","Erasure coding rate for records during archiving process.","Tried to create with an empty Vec","Flat representation of multiple pieces concatenated for …","Size of blockchain history in segments.","Last archived block","Max s-bucket index","Maximum value.","The middle of the piece distance field. The analogue of …","Number of PoT checkpoints produced (used to optimize …","Number of chunks (scalars) within one raw record.","Number of chunks (scalars) within one record.","Number of pieces in one segment of archived history.","Number of raw records in one segment of recorded history.","Number of s-buckets contained within one record (and by …","A Vec<> that enforces the invariant that it cannot be …","Error codes for NonEmptyVec
.","Piece index 1.","Piece index 1.","Segment index 1.","Length of public key in bytes.","Number of partially archived bytes of a block.","A piece of archival history in Subspace Network.","A piece of archival history in Subspace Network.","Piece index in consensus","Piece offset in sector","Proof of space proof bytes.","Proof of space quality.","Proof of space seed.","Proof of time checkpoints, result of proving","Proof of time key(input to the encryption).","Proof of time output, can be intermediate checkpoint or …","Proof of time seed","A Ristretto Schnorr public key as bytes produced by …","Byte length of a randomness type.","Length of signature in bytes","Signing context used for creating reward signatures by …","Type of randomness.","Raw record contained within recorded history segment …","Record contained within a piece.","Record commitment contained within a piece.","Record witness contained within a piece.","Recorded history segment before archiving is applied.","A Ristretto Schnorr signature as bytes produced by …","S-bucket used in consensus","Size in bytes.","Size of raw record in bytes, is guaranteed to be a …","Size of a segment record given the global piece size (in …","Size of record commitment in bytes.","Size of record witness in bytes.","Size of chunk witness in bytes.","Size of a piece (in bytes).","Size of segment commitment in bytes.","Size of recorded history segment in bytes.","Size of archived history segment in bytes.","Size of proof of space seed in bytes.","Size of proof of space quality in bytes.","Size of proof of space proof in bytes.","Size of proof of time key in bytes","Size of proof of time seed in bytes","Size of proof of time proof in bytes","Data structure representing sector ID in farmer’s plot","Sector index in consensus","Challenge used for a particular sector for particular slot","Segment commitment contained within segment header.","Segment header for a specific segment.","Segment index type.","Slot number in Subspace network.","Farmer solution for slot challenge.","Type of solution range.","256-bit unsigned integer","V0 of the segment header data structure","S-bucket 0.","Piece index 0.","Piece index 0.","Segment index 0.","","","","","","","","","","Progress of an archived block.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the slice of the entries.","","","","","","","","","","","","","","","Audit chunk offset within above chunk","","","","","Bidirectional distance metric implemented on top of …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Adds two numbers, checking for overflow. If overflow …","Divides two numbers, checking for underflow, overflow and …","Multiplies two numbers, checking for underflow or …","Subtracts two numbers, checking for underflow. If …","Module containing wrapper for SCALE encoding/decoding with …","Chunk at above offset","Witness for above chunk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Commitment contained within a piece.","Mutable commitment contained within a piece.","Various cryptographic utilities used across Subspace …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","We assume a block can always fit into the segment …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Derive evaluation seed","Derive history size when sector created at history_size
…","Derive global slot challenge from global randomness.","Derives the global randomness from the output","Derive piece index that should be stored in sector at …","Derive sector slot challenge for this sector from provided …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the first entry.","Get the first piece index in this segment.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create from big endian bytes","Create piece index from bytes.","Derive initial PoT seed from genesis block hash","","","","Create from little endian bytes","","Dummy solution for the genesis block","","","","","","","","","","","","","Proof hash.","","","","","Public key hash.","","","","","Hash of the whole segment header","","","","Size of the blockchain history at time of sector creation","Size of blockchain history in pieces.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Extract internal representation.","Transform solution with one reward address type into …","Returns an iterator for the entries.","Returns a mutable iterator for the entries.","Derive key from proof of time seed","Returns the last entry.","Last archived block","Get the last piece index in this segment.","Returns the number of entries.","","","","","","","","","","","","","","","","","","","","","","","","","","","Allocate FlatPieces
that will hold piece_count
pieces …","Create new instance.","Create new sector ID by deriving it from public key and …","Creates the Vec.","Create boxed value without hitting stack overflow","Create boxed value without hitting stack overflow","Create boxed value without hitting stack overflow","Create boxed value without hitting stack overflow","Creates the Vec with the entry.","Create vector filled with zeroe records without hitting …","Block number","Data structures related to objects (useful data) stored on …","One (multiplicative identity) of this type.","Get proof of time output out of checkpoints (last …","Parallel iterator over parity pieces (odd indices).","Mutable parallel iterator over parity pieces (odd indices).","Parallel iterator over source pieces (even indices).","Mutable parallel iterator over source pieces (even …","Iterator over parity pieces (odd indices).","Mutable iterator over parity pieces (odd indices).","Return the number of partially archived bytes if the …","Returns the number of partially archived bytes for a block.","","","","","","","","","","","","","","","","Pieces offset within sector","Position of a piece in a segment","Hash of the segment header of the previous segment","Proof of space for piece offset","Public key of the farmer that created the solution","Adds an entry to the end.","Record contained within a piece.","Record commitment that can use used to verify that piece …","Mutable record contained within a piece.","Witness for above record commitment","","Address for receiving block reward","Index of s-bucket within sector to be audited","Saturating addition. Computes self + other
, saturating at …","Saturating multiplication. Computes self * other
, …","Saturating subtraction. Computes self - other
, saturating …","History size at which expiration check for sector happens.","Index of the sector where solution was found","Derive seed from proof of time in case entropy injection …","Derive seed from proof of time with entropy injection","Segment commitment of the records in a segment.","Segment index piece index corresponds to","Segment index that corresponds to this history size.","Segment index","List of piece indexes that belong to this segment.","List of piece indexes that belong to this segment with …","","","","","","","","","","","","","","","","","","","","","","","","","","Sets the archived state of this block to …","Sets new number of partially archived bytes.","Sets new number of partially archived bytes.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Convenient conversion from slice of underlying …","Convenient conversion from mutable slice of underlying …","Convenient conversion from mutable slice of record to …","Convenient conversion from slice of record to underlying …","Iterator over source pieces (even indices).","Mutable iterator over source pieces (even indices).","Split piece into underlying components.","Split piece into underlying mutable components.","","","","","","","","","","","","","","Convert to big endian bytes","Convert piece index to bytes.","Convert piece offset to bytes.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Convert to little endian bytes","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the entries in the collection.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witness contained within a piece.","Mutable witness contained within a piece.","","","Zero (additive identity) of this type.","Last archived block","Hash of the segment header of the previous segment","Root of commitments of all records in a segment.","Segment index","Wrapper data structure that when encoded/decoded will …","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","","","","","How many bytes Scalar contains physically, use …","How many full bytes can be stored in BLS12-381 scalar (for …","Representation of a single BLS12-381 scalar value.","","","BLAKE3 hashing of a single value truncated to 254 bits.","BLAKE3 hashing of a single value.","BLAKE3 hashing of a list of values.","BLAKE3 hashing of a single value in parallel (only useful …","BLAKE3 keyed hashing of a single value.","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","Calls U::from(self)
.","Tools for KZG commitment scheme","","","","","Convenient conversion from slice of underlying …","Convenient conversion from mutable slice of underlying …","Convenient conversion from mutable slice of scalar to …","Convenient conversion from slice of optional underlying …","Convenient conversion from optional mutable slice of …","Convenient conversion from optional mutable slice of …","Convenient conversion from slice of optional scalar to …","Convenient conversion from slice of scalar to underlying …","Convert scalar into bytes","","","","","","","","","","Convenient conversion from vector of underlying …","Convenient conversion from vector of optional underlying …","Convenient conversion from vector of optional scalar to …","Convenient conversion from vector of scalar to underlying …","Commitment to polynomial","Embedded KZG settings as bytes, too big for no_std
in most …","Wrapper data structure for working with KZG commitment …","Number of G1 powers stored in EMBEDDED_KZG_SETTINGS_BYTES
","Number of G2 powers stored in EMBEDDED_KZG_SETTINGS_BYTES
","Commitment to polynomial","Witness for polynomial evaluation","","","","","","","","","","","","","Function turns bytes into FsKZGSettings
, it is up to the …","","","","","","","","","Computes a Commitment
to polynomial
","Computes a Witness
of evaluation of polynomial
at index
","","","","","","","","","","","","","","","","","","","Embedded KZG settings","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Get FFT settings for specified number of values, uses …","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Create new instance with given KZG settings.","Normalize polynomial by removing trailing zeroes","Create polynomial from data. Data must be multiple of 32 …","Convenient conversion from slice of underlying …","Convenient conversion from mutable slice of underlying …","Convenient conversion from mutable slice of commitment to …","Convenient conversion from slice of optional underlying …","Convenient conversion from optional mutable slice of …","Convenient conversion from optional mutable slice of …","Convenient conversion from slice of optional commitment to …","Convenient conversion from slice of commitment to …","Convert commitment to raw bytes","Convert witness to raw bytes","","","","","","","","","","","","","","","","","","","","","Try to deserialize commitment from raw bytes","Try to deserialize witness from raw bytes","","","","","","","","","Convenient conversion from vector of underlying …","Convenient conversion from vector of optional underlying …","Convenient conversion from vector of optional commitment …","Convenient conversion from vector of commitment to …","Verifies that value
is the evaluation at index
of the …","Object stored inside of the block","Mapping of objects stored inside of the block","Object stored inside in the history of the blockchain","Object stored inside of the block","Mapping of objects stored inside of the piece","V0 of object mapping data structure","V0 of object mapping data structure","V0 of object mapping data structure","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Object hash","","","Object hash","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Objects stored inside of the block","Objects stored inside of the block","Offset of object in the encoded block.","Offset of the object","Offset of the object","","","","","","Piece index where object is contained (at least its …","","","","","","Sets new offset.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Object hash","Offset of object in the encoded block.","Offset of the object","Piece index where object is contained (at least its …","Object hash","Offset of the object"],"i":[0,0,0,0,0,0,0,0,42,19,70,0,0,0,1,5,5,41,9,10,37,19,10,0,0,2,3,4,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,9,10,11,12,13,14,18,19,37,38,39,40,21,22,23,0,0,0,0,0,0,0,0,0,0,44,1,2,3,4,1,2,3,4,5,1,2,3,4,43,9,10,11,12,13,14,15,17,18,19,20,27,28,29,9,10,11,12,13,14,15,15,17,18,19,20,21,22,23,9,10,11,12,13,14,15,17,18,19,20,9,10,11,12,13,14,15,17,18,19,20,9,10,11,12,13,14,15,15,17,18,19,20,21,22,23,27,28,29,30,9,10,11,12,13,14,15,17,18,19,20,27,28,29,45,1,2,3,4,0,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,70,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,70,5,5,5,5,0,45,45,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,1,2,3,14,15,17,4,36,27,28,42,43,5,46,29,15,15,0,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,41,27,28,42,43,44,45,5,29,30,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,41,27,28,42,43,44,45,5,29,30,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,41,27,28,42,43,44,45,5,29,30,1,2,3,11,12,13,15,4,18,36,37,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,41,27,28,42,43,44,45,5,29,30,1,2,3,9,10,11,12,13,14,15,17,4,18,19,37,20,40,21,22,23,41,27,42,5,1,2,3,9,9,10,10,11,11,12,12,13,13,14,14,15,15,17,17,4,18,18,36,36,19,19,37,37,20,20,38,38,39,39,40,40,21,21,22,22,23,23,41,41,27,27,28,28,42,43,44,45,5,46,46,29,30,70,1,2,3,9,9,10,10,11,11,12,12,13,13,14,14,15,15,17,17,4,18,18,36,36,19,19,37,37,20,38,39,40,40,21,21,22,22,23,23,41,41,27,28,42,43,44,45,5,46,29,30,70,29,29,20,23,29,29,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,27,28,42,43,44,45,29,1,2,3,4,5,1,2,3,4,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,70,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,41,27,28,5,29,30,9,10,11,12,13,14,15,17,18,19,20,27,28,29,9,10,11,12,13,14,15,17,18,19,20,27,28,29,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,41,27,28,42,43,44,45,5,29,30,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,30,4,1,1,2,2,3,3,9,10,11,12,13,14,15,17,4,4,18,36,36,19,37,20,38,39,40,21,21,22,22,23,23,41,27,27,28,42,43,44,45,5,5,46,29,30,70,1,2,3,4,1,1,2,2,3,3,9,10,11,11,11,12,12,12,13,13,13,14,14,15,17,17,4,4,18,18,18,36,36,36,19,37,20,20,38,38,39,39,40,40,21,21,22,22,23,23,41,27,27,28,28,42,43,44,45,5,5,5,5,5,5,46,29,30,70,5,2,22,15,17,40,5,21,45,1,2,3,11,12,13,14,15,17,4,18,36,40,22,23,41,27,27,28,42,43,44,44,5,46,29,45,36,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,70,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,70,17,45,30,30,22,30,44,4,30,1,2,3,11,12,13,15,4,18,36,37,20,40,21,22,23,41,1,2,3,4,5,1,2,3,4,17,36,29,30,9,10,15,19,30,10,43,0,5,41,17,17,17,17,17,17,42,43,1,2,3,14,15,17,4,36,27,28,42,43,5,46,29,45,2,44,45,45,30,15,45,15,45,5,45,46,5,5,5,36,45,23,23,44,2,36,44,4,4,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,27,28,42,43,44,45,29,43,42,43,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,41,27,28,42,43,44,45,5,29,30,10,10,10,10,17,17,15,15,1,2,3,4,1,2,3,4,5,1,2,3,4,5,2,3,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,41,27,28,42,43,44,45,5,29,30,5,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,1,2,3,4,36,21,22,23,27,5,30,1,1,2,3,9,10,11,11,12,12,13,13,14,14,14,15,17,4,18,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,70,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,70,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,40,21,22,23,41,27,28,42,43,44,45,5,46,29,30,70,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,41,27,28,42,43,44,45,5,29,1,2,3,11,12,13,14,15,17,4,18,36,37,20,40,21,22,23,41,27,28,5,29,30,15,15,5,5,5,108,108,108,108,0,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,94,94,0,94,94,0,0,0,0,0,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,0,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,0,0,0,0,0,0,0,72,73,72,73,98,72,73,99,98,72,73,99,0,98,72,73,99,98,72,73,99,99,99,72,73,98,72,72,73,73,99,98,72,72,73,73,99,98,72,73,99,0,72,73,72,73,98,72,73,99,98,98,72,72,73,73,99,99,98,72,73,99,98,72,73,99,99,98,99,72,72,72,72,72,72,72,72,72,73,98,72,73,99,98,72,72,72,72,72,72,72,73,73,73,73,73,73,73,99,72,73,98,72,73,99,98,72,73,99,72,72,72,72,99,0,0,0,0,0,103,105,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,104,106,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,104,106,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,103,104,105,105,106,107,103,104,105,106,107,103,104,105,106,107,104,106,103,105,107,103,104,105,106,107,107,103,104,105,106,107,103,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,103,104,105,106,107,104,106,109,109,110,110,111,111],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[1,1],1],[[2,2],2],[[3,3],3],[[4,4],4],[[5,5],5],[[1,1],6],[[2,2],6],[[3,3],6],[[4,4],6],0,[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[9,[[8,[7]]]],[10,[[8,[7]]]],[11,[[8,[7]]]],[12,[[8,[7]]]],[13,[[8,[7]]]],[14,[[8,[7]]]],[15,[[16,[7]]]],[15,[[8,[7]]]],[17,[[8,[7]]]],[18,[[8,[7]]]],[19,[[8,[7]]]],[20,[[8,[7]]]],[21,[[16,[7]]]],[22,[[16,[7]]]],[23,[[16,[7]]]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[8,[7]]],[]],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[9,[[8,[7]]]],[10,[[8,[7]]]],[11,[[8,[7]]]],[12,[[8,[7]]]],[13,[[8,[7]]]],[14,[[8,[7]]]],[15,[[8,[7]]]],[15,[[16,[7]]]],[17,[[8,[7]]]],[18,[[8,[7]]]],[19,[[8,[7]]]],[20,[[8,[7]]]],[21,[[16,[7]]]],[22,[[16,[7]]]],[23,[[16,[7]]]],[27,[[8,[7]]]],[28,[[8,[7]]]],[29,[[8,[7]]]],[[[30,[-1]]],[[8,[-1]]],31],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],[-1,[[25,[[8,[-2]],24]]],[],26],0,[[1,32],[[33,[1]]]],[[2,32],[[33,[2]]]],[[3,32],[[33,[3]]]],[[4,32],[[33,[4]]]],[[-1,-1],-1,[34,35]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[5,5],[[33,[5]]]],[[5,5],[[33,[5]]]],[[5,5],[[33,[5]]]],[[5,5],[[33,[5]]]],0,0,0,[1,1],[2,2],[3,3],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[17,17],[4,4],[18,18],[36,36],[19,19],[37,37],[20,20],[38,38],[39,39],[40,40],[21,21],[22,22],[23,23],[41,41],[27,27],[28,28],[42,42],[43,43],[44,44],[[[45,[-1,-2]]],[[45,[-1,-2]]],31,31],[5,5],[46,46],[29,29],[[[30,[-1]]],[[30,[-1]]],31],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[1,1],47],[[2,2],47],[[3,3],47],[[14,14],47],[[15,15],47],[[17,17],47],[[4,4],47],[[36,36],47],[[27,27],47],[[28,28],47],[[42,42],47],[[43,43],47],[[5,5],47],[[46,46],47],[[29,29],47],[15,11],[15,11],0,[-1,[[25,[1,48]]],49],[-1,[[25,[2,48]]],49],[-1,[[25,[3,48]]],49],[-1,[[25,[11,48]]],49],[-1,[[25,[12,48]]],49],[-1,[[25,[13,48]]],49],[-1,[[25,[14,48]]],49],[-1,[[25,[15,48]]],49],[-1,[[25,[17,48]]],49],[-1,[[25,[4,48]]],49],[-1,[[25,[18,48]]],49],[-1,[[25,[36,48]]],49],[-1,[[25,[37,48]]],49],[-1,[[25,[20,48]]],49],[-1,[[25,[40,48]]],49],[-1,[[25,[21,48]]],49],[-1,[[25,[22,48]]],49],[-1,[[25,[23,48]]],49],[-1,[[25,[41,48]]],49],[-1,[[25,[27,48]]],49],[-1,[[25,[28,48]]],49],[-1,[[25,[42,48]]],49],[-1,[[25,[43,48]]],49],[-1,[[25,[44,48]]],49],[-1,[[25,[[45,[-2,-3]],48]]],49,50,50],[-1,[[25,[5,48]]],49],[-1,[[25,[29,48]]],49],[-1,[[25,[[30,[-2]],48]]],49,[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[-1,[52,[1]]],[[25,[53,48]]],49],[[-1,[52,[2]]],[[25,[53,48]]],49],[[-1,[52,[3]]],[[25,[53,48]]],49],[[-1,[52,[11]]],[[25,[53,48]]],49],[[-1,[52,[12]]],[[25,[53,48]]],49],[[-1,[52,[13]]],[[25,[53,48]]],49],[[-1,[52,[15]]],[[25,[53,48]]],49],[[-1,[52,[4]]],[[25,[53,48]]],49],[[-1,[52,[18]]],[[25,[53,48]]],49],[[-1,[52,[36]]],[[25,[53,48]]],49],[[-1,[52,[37]]],[[25,[53,48]]],49],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[],1],[[],2],[[],3],[[],9],[[],10],[[],11],[[],12],[[],13],[[],14],[[],15],[[],17],[[],4],[[],18],[[],19],[[],37],[[],20],[[],40],[[],21],[[],22],[[],23],[[],41],[[],27],[[],42],[[],5],[32,-1,[]],[32,-1,[]],[32,-1,[]],[9],[32,-1,[]],[10],[32,-1,[]],[11],[32,-1,[]],[12],[32,-1,[]],[32,-1,[]],[13],[14],[32,-1,[]],[15],[32,-1,[]],[17],[32,-1,[]],[32,-1,[]],[18],[32,-1,[]],[32,-1,[]],[36],[19],[32,-1,[]],[37],[32,-1,[]],[20],[32,-1,[]],[38],[32,-1,[]],[39],[32,-1,[]],[32,-1,[]],[40],[32,-1,[]],[21],[22],[32,-1,[]],[32,-1,[]],[23],[32,-1,[]],[41],[32,-1,[]],[27],[32,-1,[]],[28],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[46],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[9],[32,-1,[]],[32,-1,[]],[10],[32,-1,[]],[11],[12],[32,-1,[]],[13],[32,-1,[]],[14],[32,-1,[]],[15],[32,-1,[]],[32,-1,[]],[17],[32,-1,[]],[32,-1,[]],[18],[36],[32,-1,[]],[19],[32,-1,[]],[32,-1,[]],[37],[32,-1,[]],[32,-1,[]],[32,-1,[]],[40],[32,-1,[]],[32,-1,[]],[21],[22],[32,-1,[]],[23],[32,-1,[]],[32,-1,[]],[41],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[[29,3,36],38],[[29,36,18,36],[[33,[36]]]],[[20,54],55],[23,20],[[29,3,36,56,36,[6,[36,36]]],2],[[29,55],46],[-1,[[25,[1]]],57],[-1,[[25,[2]]],57],[-1,[[25,[3]]],57],[-1,[[25,[11]]],57],[-1,[[25,[12]]],57],[-1,[[25,[13]]],57],[-1,[[25,[14]]],57],[-1,[[25,[15]]],57],[-1,[[25,[17]]],57],[-1,[[25,[4]]],57],[-1,[[25,[18]]],57],[-1,[[25,[36]]],57],[-1,[[25,[37]]],57],[-1,[[25,[20]]],57],[-1,[[25,[40]]],57],[-1,[[25,[21]]],57],[-1,[[25,[22]]],57],[-1,[[25,[23]]],57],[-1,[[25,[27]]],57],[-1,[[25,[28]]],57],[-1,[[25,[42]]],57],[-1,[[25,[43]]],57],[-1,[[25,[44]]],57],[-1,[[25,[[45,[-2,-3]]]]],57,58,58],[-1,[[25,[29]]],57],[[1,-1],1,[]],[[2,-1],2,[]],[[3,-1],3,[]],[[4,-1],4,[]],[[5,-1],5,[]],[[1,-1],6,[]],[[2,-1],6,[]],[[3,-1],6,[]],[[4,-1],6,[]],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[32,6],[1,[[59,[7]]]],[2,[[59,[7]]]],[3,[[59,[7]]]],[11,[[59,[7]]]],[12,[[59,[7]]]],[13,[[59,[7]]]],[14,[[59,[7]]]],[15,[[59,[7]]]],[17,[[59,[7]]]],[4,[[59,[7]]]],[18,[[59,[7]]]],[36,[[59,[7]]]],[37,[[59,[7]]]],[20,[[59,[7]]]],[40,[[59,[7]]]],[21,[[59,[7]]]],[22,[[59,[7]]]],[23,[[59,[7]]]],[41,[[59,[7]]]],[27,[[59,[7]]]],[28,[[59,[7]]]],[5,[[59,[7]]]],[29,[[59,[7]]]],[[[30,[-1]]],[[59,[7]]],[]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[-1,-2,[],[[61,[60]]]],[[1,-1],6,[62,63]],[[2,-1],6,[62,63]],[[3,-1],6,[62,63]],[[11,-1],6,[62,63]],[[12,-1],6,[62,63]],[[13,-1],6,[62,63]],[[14,-1],6,[62,63]],[[15,-1],6,[62,63]],[[17,-1],6,[62,63]],[[4,-1],6,[62,63]],[[18,-1],6,[62,63]],[[36,-1],6,[62,63]],[[37,-1],6,[62,63]],[[20,-1],6,[62,63]],[[40,-1],6,[62,63]],[[21,-1],6,[62,63]],[[22,-1],6,[62,63]],[[23,-1],6,[62,63]],[[41,-1],6,[62,63]],[[27,-1],6,[62,63]],[[28,-1],6,[62,63]],[[42,-1],6,[62,63]],[[43,-1],6,[62,63]],[[44,-1],6,[62,63]],[[[45,[-1,-2]],-3],6,64,64,[62,63]],[[5,-1],6,[62,63]],[[29,-1],6,[62,63]],[[[30,[-1]],-2],6,[],[62,63]],[[1,1],65],[[2,2],65],[[3,3],65],[[9,9],65],[[10,10],65],[[11,11],65],[[12,12],65],[[13,13],65],[[14,14],65],[[15,15],65],[[17,17],65],[[4,4],65],[[18,18],65],[[36,36],65],[[19,19],65],[[37,37],65],[[20,20],65],[[38,38],65],[[39,39],65],[[40,40],65],[[21,21],65],[[22,22],65],[[23,23],65],[[41,41],65],[[27,27],65],[[28,28],65],[[42,42],65],[[43,43],65],[[44,44],65],[[[45,[-1,-2]],[45,[-1,-2]]],65,66,66],[[5,5],65],[[46,46],65],[[29,29],65],[[[30,[-1]],[30,[-1]]],65,66],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[[30,[-1]]],-1,31],[4,2],[[1,67],68],[[1,67],68],[[2,67],68],[[2,67],68],[[3,67],68],[[3,67],68],[[9,67],68],[[10,67],68],[[11,67],68],[[12,67],68],[[13,67],68],[[14,67],68],[[15,67],68],[[17,67],68],[[4,67],68],[[4,67],68],[[18,67],68],[[36,67],68],[[36,67],68],[[19,67],68],[[37,67],68],[[20,67],68],[[38,67],68],[[39,67],68],[[40,67],68],[[21,67],68],[[21,67],68],[[22,67],68],[[22,67],68],[[23,67],68],[[23,67],68],[[41,67],68],[[27,67],68],[[27,67],68],[[28,67],68],[[42,67],68],[[43,67],68],[[44,67],68],[[[45,[-1,-2]],67],68,69,69],[[5,67],68],[[5,67],68],[[46,67],68],[[29,67],68],[[[30,[-1]],67],68,69],[[70,67],68],[[1,32],[[33,[1]]]],[[2,32],[[33,[2]]]],[[3,32],[[33,[3]]]],[[4,32],[[33,[4]]]],[56,1],[-1,-1,[]],[71,2],[-1,-1,[]],[56,3],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[16,[7]]],11],[72,11],[[[16,[7]]],12],[-1,-1,[]],[73,12],[73,13],[[[16,[7]]],13],[-1,-1,[]],[15,14],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[15,17],[-1,-1,[]],[71,4],[[[16,[7]]],18],[-1,-1,[]],[72,18],[74,36],[-1,-1,[]],[4,36],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[16,[7]]],20],[[[16,[7]]],38],[-1,-1,[]],[[[16,[7]]],39],[-1,-1,[]],[-1,-1,[]],[[[16,[7]]],40],[[[16,[7]]],21],[-1,-1,[]],[[[16,[7]]],22],[-1,-1,[]],[-1,-1,[]],[[[16,[7]]],23],[-1,-1,[]],[[[16,[7]]],27],[-1,-1,[]],[[[16,[7]]],28],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[56,5],[71,5],[75,5],[-1,-1,[]],[51,5],[7,5],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[16,[7]]],5],[[[16,[7]]],2],[[[8,[7]],[8,[7]]],22],[-1,[[25,[15]]],[[76,[[8,[7]]]]]],[-1,[[25,[17]]],[[76,[[8,[7]]]]]],[-1,[[25,[40]]],[[76,[[8,[7]]]]]],[[[16,[7]]],5],[77,[[25,[21]]]],[[-1,-2],[[45,[-1,-2]]],[],[]],[[1,-1],6,78],[[2,-1],6,78],[[3,-1],6,78],[[11,-1],6,78],[[12,-1],6,78],[[13,-1],6,78],[[14,-1],6,78],[[15,-1],6,78],[[17,-1],6,78],[[4,-1],6,78],[[18,-1],6,78],[[36,-1],6,78],[40,55],[[22,-1],6,78],[[23,-1],6,78],[[41,-1],6,78],[[27,-1],6,78],[27,55],[[28,-1],6,78],[[42,-1],6,78],[[43,-1],6,78],[[44,-1],6,78],[44,55],[[5,-1],6,78],[[46,-1],6,78],[[29,-1],6,78],0,[36,74],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[17,[[59,[15]]]],[[[45,[-1,-4]]],[[45,[-1,-2]]],[],[],[[79,[-2]]],[[79,[-3]]]],[[[30,[-1]]],[[81,[80]]],31],[[[30,[-1]]],[[81,[80]]],31],[22,21],[[[30,[-1]]],-1,31],[44,43],[4,2],[[[30,[-1]]],32,31],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[],32],[[1,-1],1,[]],[[2,-1],2,[]],[[3,-1],3,[]],[[4,-1],4,[]],[[5,-1],5,[]],[[1,-1],6,[]],[[2,-1],6,[]],[[3,-1],6,[]],[[4,-1],6,[]],[32,17],[74,36],[[55,82],29],[[[59,[-1]]],[[25,[[30,[-1]],70]]],31],[[],[[81,[9]]]],[[],[[81,[10]]]],[[],[[81,[15]]]],[[],[[81,[19]]]],[-1,[[30,[-1]]],31],[32,[[59,[10]]]],0,0,[[],5],[41,23],[17,[[0,[83]]]],[17,[[0,[83]]]],[17,[[0,[83]]]],[17,[[0,[83]]]],[17,[[0,[84]]]],[17,[[0,[84]]]],[42,[[33,[51]]]],[43,[[33,[51]]]],[[1,1],[[33,[47]]]],[[2,2],[[33,[47]]]],[[3,3],[[33,[47]]]],[[14,14],[[33,[47]]]],[[15,15],[[33,[47]]]],[[17,17],[[33,[47]]]],[[4,4],[[33,[47]]]],[[36,36],[[33,[47]]]],[[27,27],[[33,[47]]]],[[28,28],[[33,[47]]]],[[42,42],[[33,[47]]]],[[43,43],[[33,[47]]]],[[5,5],[[33,[47]]]],[[46,46],[[33,[47]]]],[[29,29],[[33,[47]]]],0,[2,51],[44,55],0,0,[[[30,[-1]],-1],6,31],[15,10],0,[15,10],0,[[5,-1],5,[]],0,[46,1],[[5,5],5],[[5,5],5],[[5,5],5],[[36,36],[[33,[36]]]],0,[23,22],[[23,55],22],[44,18],[2,4],[36,4],[44,4],[4,[[16,[2]]]],[4,[[16,[2]]]],[[1,-1],25,85],[[2,-1],25,85],[[3,-1],25,85],[[11,-1],25,85],[[12,-1],25,85],[[13,-1],25,85],[[14,-1],25,85],[[15,-1],25,85],[[17,-1],25,85],[[4,-1],25,85],[[18,-1],25,85],[[36,-1],25,85],[[37,-1],25,85],[[20,-1],25,85],[[40,-1],25,85],[[21,-1],25,85],[[22,-1],25,85],[[23,-1],25,85],[[27,-1],25,85],[[28,-1],25,85],[[42,-1],25,85],[[43,-1],25,85],[[44,-1],25,85],[[[45,[-1,-2]],-3],25,86,86,85],[[29,-1],25,85],[43,6],[[42,51],6],[[43,87],6],[1,32],[2,32],[3,32],[11,32],[12,32],[13,32],[14,32],[15,32],[17,32],[4,32],[18,32],[36,32],[37,32],[20,32],[40,32],[21,32],[22,32],[23,32],[41,32],[27,32],[28,32],[42,32],[43,32],[44,32],[[[45,[-1,-2]]],32,64,64],[5,32],[29,32],[[[30,[-1]]],32,[]],[[[8,[[16,[7]]]]],[[8,[10]]]],[[[8,[[16,[7]]]]],[[8,[10]]]],[[[8,[10]]],[[8,[[16,[7]]]]]],[[[8,[10]]],[[8,[[16,[7]]]]]],[17,[[0,[84]]]],[17,[[0,[84]]]],[15,[[6,[10,11,12]]]],[15,[[6,[10,11,12]]]],[[1,1],[[33,[32]]]],[[2,2],[[33,[32]]]],[[3,3],[[33,[32]]]],[[4,4],[[33,[32]]]],[[1,1],1],[[2,2],2],[[3,3],3],[[4,4],4],[[5,5],5],[[1,1],6],[[2,2],6],[[3,3],6],[[4,4],6],[5,[[16,[7]]]],[2,[[16,[7]]]],[3,[[16,[7]]]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[5,[[16,[7]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[[[30,[-1]]],[[59,[-1]]],31],[32,[[25,[1]]]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[[[8,[7]]],[[25,[11]]]],[-1,[[25,[-2]]],[],[]],[[[8,[7]]],[[25,[12]]]],[-1,[[25,[-2]]],[],[]],[[[8,[7]]],[[25,[13]]]],[-1,[[25,[-2]]],[],[]],[[[8,[7]]],[[25,[14]]]],[[[59,[7]]],[[25,[14]]]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[[[8,[7]]],[[25,[18]]]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[],91],[[1,-1],-2,92,[]],[[2,-1],-2,92,[]],[[3,-1],-2,92,[]],[[11,-1],-2,92,[]],[[12,-1],-2,92,[]],[[13,-1],-2,92,[]],[[14,-1],-2,92,[]],[[15,-1],-2,92,[]],[[17,-1],-2,92,[]],[[4,-1],-2,92,[]],[[18,-1],-2,92,[]],[[36,-1],-2,92,[]],[[37,-1],-2,92,[]],[[20,-1],-2,92,[]],[[40,-1],-2,92,[]],[[21,-1],-2,92,[]],[[22,-1],-2,92,[]],[[23,-1],-2,92,[]],[[41,-1],-2,92,[]],[[27,-1],-2,92,[]],[[28,-1],-2,92,[]],[[5,-1],-2,92,[]],[[29,-1],-2,92,[]],[[[30,[-1]],-2],-3,[],92,[]],[15,12],[15,12],[[5,5],5],[[5,5],5],[[],5],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[93,[-1]]],[[93,[-1]]],31],[[-1,-2],6,[],[]],[-1,[[25,[[93,[-2]],48]]],49,50],[[[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,-1],[[25,[-2,48]]],49,[]],[32,-1,[]],[32,-1,[]],[32,6],[[[93,[-1]],-2],6,64,[62,63]],[[[93,[-1]]],32,64],[[[93,[-1]],67],68,69],[-1,-1,[]],[[],32],[-1,-2,[],[]],[[[93,[-1]]],32,64],[[-1,[8,[7]]],[[59,[7,88]]],[]],[-1,-2,[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,90,[]],0,0,0,[94,95],[94,95],[[[8,[7]]],94],[[[8,[7]]],55],[[[8,[[8,[7]]]]],55],[[[8,[7]]],55],[[[16,[7]],[8,[7]]],55],[-1,-2,[],[]],[-1,-2,[],[]],[94,94],[[-1,-2],6,[],[]],[[94,94],47],[-1,[[25,[94,48]]],49],[[[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,-1],[[25,[-2,48]]],49,[]],[[],94],[94],[32,-1,[]],[94],[32,-1,[]],[-1,[[25,[94]]],57],[32,6],[[],[[33,[32]]]],[94,32],[[94,94],65],[[-1,-2],65,[],[]],[[94,67],68],[-1,-1,[]],[[[16,[7]]],94],[95,94],[[[16,[7]]],94],[[94,-1],6,78],[[],32],[-1,-2,[],[]],0,[[],32],[[94,94],[[33,[47]]]],[[94,-1],25,85],[94,32],[[[8,[95]]],[[8,[94]]]],[[[8,[95]]],[[8,[94]]]],[[[8,[94]]],[[8,[95]]]],[[[8,[[33,[95]]]]],[[8,[[33,[94]]]]]],[[[8,[[33,[95]]]]],[[8,[[33,[94]]]]]],[[[8,[[33,[94]]]]],[[8,[[33,[95]]]]]],[[[8,[[33,[94]]]]],[[8,[[33,[95]]]]]],[[[8,[94]]],[[8,[95]]]],[94,[[16,[7]]]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[-1,-2,[],[]],[[[16,[7]]],[[25,[94]]]],[[[16,[7]]],[[25,[94]]]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,90,[]],[[],91],[[94,-1],-2,92,[]],[[[59,[95]]],[[59,[94]]]],[[[59,[[33,[95]]]]],[[59,[[33,[94]]]]]],[[[59,[[33,[94]]]]],[[59,[[33,[95]]]]]],[[[59,[94]]],[[59,[95]]]],0,0,0,0,0,0,0,[72,96],[73,96],[72,96],[73,96],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[8,[7]],32,32],[[25,[97,89]]]],[98,98],[72,72],[73,73],[99,99],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[99,98],[[25,[72,89]]]],[[99,98,32,51],[[25,[73,89]]]],[[],72],[[],73],[32,-1,[]],[72],[32,-1,[]],[32,-1,[]],[73],[32,-1,[]],[32,-1,[]],[72],[32,-1,[]],[32,-1,[]],[73],[32,-1,[]],[32,6],[32,6],[32,6],[32,6],[[],97],[[72,72],65],[[73,73],65],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[98,67],68],[[72,67],68],[[73,67],68],[[99,67],68],[-1,-1,[]],[100,98],[-1,-1,[]],[96,72],[-1,-1,[]],[96,73],[-1,-1,[]],[[99,32],[[25,[[102,[101]],89]]]],[[],32],[[],32],[[],32],[[],32],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[97,99],[98,6],[[99,[8,[94]]],[[25,[98,89]]]],[[[8,[96]]],[[8,[72]]]],[[[8,[96]]],[[8,[72]]]],[[[8,[72]]],[[8,[96]]]],[[[8,[[33,[96]]]]],[[8,[[33,[72]]]]]],[[[8,[[33,[96]]]]],[[8,[[33,[72]]]]]],[[[8,[[33,[72]]]]],[[8,[[33,[96]]]]]],[[[8,[[33,[72]]]]],[[8,[[33,[96]]]]]],[[[8,[72]]],[[8,[96]]]],[72,[[16,[7]]]],[73,[[16,[7]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[25,[-2]]],[],[]],[18,[[25,[72]]]],[[[16,[7]]],[[25,[72]]]],[[[16,[7]]],[[25,[72]]]],[18,[[25,[72]]]],[-1,[[25,[-2]]],[],[]],[11,[[25,[72]]]],[11,[[25,[72]]]],[13,[[25,[73]]]],[12,[[25,[73]]]],[12,[[25,[73]]]],[[[16,[7]]],[[25,[73]]]],[13,[[25,[73]]]],[[[16,[7]]],[[25,[73]]]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[[[16,[7]]],[[25,[72,89]]]],[[[16,[7]]],[[25,[73,89]]]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[[[59,[96]]],[[59,[72]]]],[[[59,[[33,[96]]]]],[[59,[[33,[72]]]]]],[[[59,[[33,[72]]]]],[[59,[[33,[96]]]]]],[[[59,[72]]],[[59,[96]]]],[[99,72,32,51,94,73],65],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[103,103],[104,104],[105,105],[106,106],[107,107],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[103,103],47],[[104,104],47],[[105,105],47],[[106,106],47],[[107,107],47],[-1,[[25,[103,48]]],49],[-1,[[25,[104,48]]],49],[-1,[[25,[105,48]]],49],[-1,[[25,[106,48]]],49],[-1,[[25,[107,48]]],49],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,[8,[7]]],[[25,[-1,48]]],[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[51,-1],[[25,[-2,48]]],49,[]],[[],104],[[],106],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[-1,[[25,[103]]],57],[-1,[[25,[104]]],57],[-1,[[25,[105]]],57],[-1,[[25,[106]]],57],[-1,[[25,[107]]],57],[32,6],[32,6],[32,6],[32,6],[32,6],[104,[[59,[7]]]],[106,[[59,[7]]]],[[103,-1],6,[62,63]],[[104,-1],6,[62,63]],[[105,-1],6,[62,63]],[[106,-1],6,[62,63]],[[107,-1],6,[62,63]],[[103,103],65],[[104,104],65],[[105,105],65],[[106,106],65],[[107,107],65],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[-1,-2],65,[],[]],[[103,67],68],[[104,67],68],[[105,67],68],[[106,67],68],[[107,67],68],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[103,-1],6,78],[103,55],[[104,-1],6,78],[[105,-1],6,78],[105,55],[[106,-1],6,78],[[107,-1],6,78],[[],32],[[],32],[[],32],[[],32],[[],32],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[103,51],[105,51],[107,51],[[103,103],[[33,[47]]]],[[104,104],[[33,[47]]]],[[105,105],[[33,[47]]]],[[106,106],[[33,[47]]]],[[107,107],[[33,[47]]]],[107,2],[[103,-1],25,85],[[104,-1],25,85],[[105,-1],25,85],[[106,-1],25,85],[[107,-1],25,85],[[103,51],6],[103,32],[104,32],[105,32],[106,32],[107,32],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[[-1,[8,[7]]],[[59,[7,88]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[-1,90,[]],[[],91],[[],91],[[],91],[[],91],[[],91],[[104,-1],-2,92,[]],[[106,-1],-2,92,[]],0,0,0,0,0,0],"c":[],"p":[[3,"SBucket",0],[3,"PieceIndex",0],[3,"PieceOffset",0],[3,"SegmentIndex",0],[3,"U256",0],[15,"tuple"],[15,"u8"],[15,"slice"],[3,"RawRecord",0],[3,"Record",0],[3,"RecordCommitment",0],[3,"RecordWitness",0],[3,"ChunkWitness",0],[3,"Piece",0],[3,"PieceArray",0],[15,"array"],[3,"FlatPieces",0],[3,"SegmentCommitment",0],[3,"RecordedHistorySegment",0],[3,"Randomness",0],[3,"PotKey",0],[3,"PotSeed",0],[3,"PotOutput",0],[4,"Error",1863],[4,"Result",1864],[8,"FromByteSlice",1863],[3,"PublicKey",0],[3,"RewardSignature",0],[3,"SectorId",0],[3,"NonEmptyVec",0],[8,"Clone",1865],[15,"usize"],[4,"Option",1866],[8,"WrappingSub",1867],[8,"Ord",1868],[3,"HistorySize",0],[3,"ArchivedHistorySegment",0],[3,"PosSeed",0],[3,"PosQualityBytes",0],[3,"PosProof",0],[3,"PotCheckpoints",0],[4,"ArchivedBlockProgress",0],[3,"LastArchivedBlock",0],[4,"SegmentHeader",0],[3,"Solution",0],[3,"SectorSlotChallenge",0],[4,"Ordering",1868],[3,"Error",1869],[8,"Input",1870],[8,"Decode",1870],[15,"u32"],[19,"MaybeUninit",1871],[3,"DecodeFinished",1872],[6,"SlotNumber",0],[6,"Blake3Hash",0],[15,"u16"],[8,"Deserializer",1873],[8,"Deserialize",1873],[3,"Vec",1874],[15,"char"],[8,"FromIterator",1875],[8,"Output",1870],[8,"Sized",1876],[8,"Encode",1870],[15,"bool"],[8,"PartialEq",1868],[3,"Formatter",1877],[6,"Result",1877],[8,"Debug",1877],[4,"NonEmptyVecErr",0],[15,"u64"],[3,"Commitment",1563],[3,"Witness",1563],[3,"NonZeroU64",1878],[15,"u128"],[8,"AsRef",1879],[15,"str"],[8,"Hasher",1880],[8,"Into",1879],[8,"Iterator",1881],[3,"Box",1882],[6,"SectorIndex",0],[8,"IndexedParallelIterator",1883],[8,"ExactSizeIterator",1884],[8,"Serializer",1885],[8,"Serialize",1885],[6,"BlockNumber",0],[3,"Global",1886],[3,"String",1887],[3,"TypeId",1888],[3,"Type",1889],[8,"FnOnce",1890],[3,"Blake3Checksummed",1474],[3,"Scalar",1498],[3,"FsFr",1891],[3,"FsG1",1892],[3,"FsKZGSettings",1893],[3,"Polynomial",1563],[3,"Kzg",1563],[3,"FsPoly",1894],[3,"FsFFTSettings",1895],[3,"Arc",1896],[4,"BlockObject",1684],[3,"BlockObjectMapping",1684],[4,"PieceObject",1684],[3,"PieceObjectMapping",1684],[4,"GlobalObject",1684],[13,"V0",1470],[13,"V0",1857],[13,"V0",1859],[13,"V0",1861]],"b":[[114,"impl-AsMut%3C%5Bu8;+Piece::SIZE%5D%3E-for-PieceArray"],[115,"impl-AsMut%3C%5Bu8%5D%3E-for-PieceArray"],[151,"impl-AsRef%3C%5Bu8%5D%3E-for-PieceArray"],[152,"impl-AsRef%3C%5Bu8;+Piece::SIZE%5D%3E-for-PieceArray"],[829,"impl-Display-for-SBucket"],[830,"impl-Debug-for-SBucket"],[831,"impl-Display-for-PieceIndex"],[832,"impl-Debug-for-PieceIndex"],[833,"impl-Debug-for-PieceOffset"],[834,"impl-Display-for-PieceOffset"],[843,"impl-Display-for-SegmentIndex"],[844,"impl-Debug-for-SegmentIndex"],[846,"impl-Display-for-HistorySize"],[847,"impl-Debug-for-HistorySize"],[854,"impl-Display-for-PotKey"],[855,"impl-Debug-for-PotKey"],[856,"impl-Display-for-PotSeed"],[857,"impl-Debug-for-PotSeed"],[858,"impl-Debug-for-PotOutput"],[859,"impl-Display-for-PotOutput"],[861,"impl-Debug-for-PublicKey"],[862,"impl-Display-for-PublicKey"],[868,"impl-Debug-for-U256"],[869,"impl-Display-for-U256"],[887,"impl-From%3C%5Bu8;+RecordCommitment::SIZE%5D%3E-for-RecordCommitment"],[888,"impl-From%3CCommitment%3E-for-RecordCommitment"],[889,"impl-From%3C%5Bu8;+RecordWitness::SIZE%5D%3E-for-RecordWitness"],[891,"impl-From%3CWitness%3E-for-RecordWitness"],[892,"impl-From%3CWitness%3E-for-ChunkWitness"],[893,"impl-From%3C%5Bu8;+ChunkWitness::SIZE%5D%3E-for-ChunkWitness"],[902,"impl-From%3C%5Bu8;+SegmentCommitment::SIZE%5D%3E-for-SegmentCommitment"],[904,"impl-From%3CCommitment%3E-for-SegmentCommitment"],[905,"impl-From%3CNonZeroU64%3E-for-HistorySize"],[907,"impl-From%3CSegmentIndex%3E-for-HistorySize"],[933,"impl-From%3Cu16%3E-for-U256"],[934,"impl-From%3Cu64%3E-for-U256"],[935,"impl-From%3Cu128%3E-for-U256"],[937,"impl-From%3Cu32%3E-for-U256"],[938,"impl-From%3Cu8%3E-for-U256"],[968,"impl-Hash-for-PublicKey"],[969,"impl-PublicKey"],[973,"impl-Hash-for-SegmentHeader"],[974,"impl-SegmentHeader"],[1315,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-Piece"],[1316,"impl-TryFrom%3CVec%3Cu8%3E%3E-for-Piece"],[1530,"impl-From%3C%26%5Bu8;+Self::SAFE_BYTES%5D%3E-for-Scalar"],[1531,"impl-From%3CFsFr%3E-for-Scalar"],[1532,"impl-From%3C%5Bu8;+Self::SAFE_BYTES%5D%3E-for-Scalar"],[1552,"impl-TryFrom%3C%26%5Bu8;+Self::FULL_BYTES%5D%3E-for-Scalar"],[1553,"impl-TryFrom%3C%5Bu8;+Self::FULL_BYTES%5D%3E-for-Scalar"],[1654,"impl-TryFrom%3CSegmentCommitment%3E-for-Commitment"],[1655,"impl-TryFrom%3C%26%5Bu8;+Self::SIZE%5D%3E-for-Commitment"],[1656,"impl-TryFrom%3C%5Bu8;+Self::SIZE%5D%3E-for-Commitment"],[1657,"impl-TryFrom%3C%26SegmentCommitment%3E-for-Commitment"],[1659,"impl-TryFrom%3CRecordCommitment%3E-for-Commitment"],[1660,"impl-TryFrom%3C%26RecordCommitment%3E-for-Commitment"],[1661,"impl-TryFrom%3C%26ChunkWitness%3E-for-Witness"],[1662,"impl-TryFrom%3C%26RecordWitness%3E-for-Witness"],[1663,"impl-TryFrom%3CRecordWitness%3E-for-Witness"],[1664,"impl-TryFrom%3C%5Bu8;+Self::SIZE%5D%3E-for-Witness"],[1665,"impl-TryFrom%3CChunkWitness%3E-for-Witness"],[1666,"impl-TryFrom%3C%26%5Bu8;+Self::SIZE%5D%3E-for-Witness"],[1786,"impl-Hash-for-BlockObject"],[1787,"impl-BlockObject"],[1789,"impl-Hash-for-PieceObject"],[1790,"impl-PieceObject"]]},\
"subspace_erasure_coding":{"doc":"","t":"DLLLLLLLLLLLLLLLLLLLLLL","n":["ErasureCoding","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","extend","extend_commitments","fmt","from","init","into","max_shards","new","recover","recover_poly","recover_source","to_owned","try_from","try_into","type_id"],"q":[[0,"subspace_erasure_coding"],[23,"subspace_core_primitives::crypto"],[24,"alloc::vec"],[25,"alloc::string"],[26,"core::result"],[27,"subspace_core_primitives::crypto::kzg"],[28,"core::fmt"],[29,"core::fmt"],[30,"core::option"],[31,"subspace_core_primitives::crypto::kzg"],[32,"core::any"]],"d":["Erasure coding abstraction.","","","","","","","","Extend sources using erasure coding.","Extend commitments using erasure coding.","","Returns the argument unchanged.","","Calls U::from(self)
.","Max number of shards supported (both source and parity …","Create new erasure coding instance.","Recovery of missing shards from given shards (at least 1/2 …","Recovery of missing shards from given shards (at least 1/2 …","Recovery of source shards from given shards (at least 1/2 …","","","",""],"i":[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"f":[0,[-1,-2,[],[]],[-1,-2,[],[]],[1,1],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],[3,2],[[1,[5,[4]]],[[8,[[6,[4]],7]]]],[[1,[5,[9]]],[[8,[[6,[9]],7]]]],[[1,10],11],[-1,-1,[]],[[],3],[-1,-2,[],[]],[1,3],[12,[[8,[1,7]]]],[[1,[5,[[13,[4]]]]],[[8,[[6,[4]],7]]]],[[1,[5,[[13,[4]]]]],[[8,[14,7]]]],[[1,[5,[[13,[4]]]]],[[8,[[0,[15]],7]]]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,16,[]]],"c":[],"p":[[3,"ErasureCoding",0],[15,"tuple"],[15,"usize"],[3,"Scalar",23],[15,"slice"],[3,"Vec",24],[3,"String",25],[4,"Result",26],[3,"Commitment",27],[3,"Formatter",28],[6,"Result",28],[3,"NonZeroUsize",29],[4,"Option",30],[3,"Polynomial",27],[8,"ExactSizeIterator",31],[3,"TypeId",32]],"b":[]},\
-"subspace_farmer":{"doc":"subspace-farmer
library implementation overview","t":"DCDCLLLLLLLLLLLLLLLLLLLLLLLLLLLCLLALLLALALLLALLLLLLLLLLLLLLLLALLGIKKKKKKKKKKKDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFENNNNNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNNNNNNENDEEEDEEDNNNNNLLMLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMLLLLMLLLALMALLLLMLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNDENDNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMDLLLLLLLLLLLLLLLLLLAAAFFDLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLL","n":["Identity","NodeClient","NodeRpcClient","RpcClientError","acknowledge_archived_segment_header","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","create","deref","deref","deref","deref_mut","deref_mut","drop","drop","entropy","farmer_app_info","file_size","fmt","from","from","init","init","into","into","jsonrpsee","last_segment_headers","new","node_client","open","open_or_create","piece","piece_cache","public_key","reward_signing","secret_key","segment_headers","sign_reward_hash","single_disk_farm","submit_reward_signature","submit_solution_response","subscribe_archived_segment_headers","subscribe_node_sync_status_change","subscribe_reward_signing","subscribe_slot_info","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unique_saturated_into","unique_saturated_into","utils","vzip","vzip","Error","NodeClient","acknowledge_archived_segment_header","farmer_app_info","last_segment_headers","piece","segment_headers","submit_reward_signature","submit_solution_response","subscribe_archived_segment_headers","subscribe_node_sync_status_change","subscribe_reward_signing","subscribe_slot_info","CacheWorker","PieceCache","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","fmt","from","from","get_piece","init","init","into","into","new","record","replace_backing_caches","run","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unique_saturated_into","unique_saturated_into","vzip","vzip","reward_signing","BackgroundTaskError","CacheCantBeOpened","CacheFileDoesNotExist","CantPreallocateMetadataFile","CantPreallocatePlotFile","Error","FailedToCreateThreadPool","FailedToDecodeMetadataHeader","FailedToDecodeMetadataHeader","FailedToDecodeSectorMetadata","FailedToDetermineFileSize","FailedToGetFarmerInfo","FailedToGetFarmerInfo","FailedToGetSegmentHeader","FailedToReadBytes","FailedToSubscribeArchivedSegments","FailedToSubscribeSlotInfo","FailedToWriteBytes","FarmInfoCantBeOpened","FarmInfoFileDoesNotExist","FarmTooLarge","Farming","FarmingError","Found","IdentityCantBeOpened","IdentityFileDoesNotExist","IdentityMismatch","InsufficientAllocatedSpace","InvalidPiecesInSector","Io","Io","Io","LowLevel","LowLevelProving","MetadataCantBeOpened","MetadataFileDoesNotExist","MetadataFileTooSmall","MissingArchivedSegmentHeader","NotFound","PieceCacheError","Plotting","PlottingError","PublicKeyMismatch","SingleDiskFarm","SingleDiskFarmError","SingleDiskFarmId","SingleDiskFarmInfo","SingleDiskFarmOptions","SingleDiskFarmScrubError","SingleDiskFarmSummary","SingleDiskSemaphore","Ulid","UnexpectedMetadataVersion","UnexpectedMetadataVersion","V0","WrongChain","acquire","allocated_space","allocated_space","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cache_percentage","clone","clone","clone","clone_into","clone_into","clone_into","cmp","collect_summary","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","directory","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","erasure_coding","farmer_app_info","farming_thread_pool_size","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","genesis_hash","get_hash","hash","id","id","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","into","kzg","load_from","max_pieces_in_sector","new","new","new","new","node_client","on_sector_plotted","on_solution","partial_cmp","piece_cache","piece_cache","piece_getter","piece_reader","piece_reader","pieces_in_sector","plotted_sectors","plotted_sectors_count","plotting_thread_pool","public_key","replotting_thread_pool","reward_address","run","scrub","serialize","serialize","source","source","source","source","store_to","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wipe","error","error","error","error","error","segment_index","allocated_sectors","allocated_space","allocated_space","correct_chain","correct_public_key","id","id","id","initialized_with","max_sectors","max_space","max_supported","min_space","wrong_chain","wrong_public_key","allocated_space","genesis_hash","id","pieces_in_sector","public_key","error","error","error","error","error","error","error","file","file","file","file","file","file","file","file","file","file","file","file","identity","info","offset","offset","reserved_size","size","size","size","directory","directory","directory","error","info","CantPreallocateCacheFile","ChecksumMismatch","DiskPieceCache","DiskPieceCacheError","Io","Offset","OffsetOutsideOfRange","ZeroCapacity","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","into","into","into","source","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unique_saturated_into","unique_saturated_into","unique_saturated_into","vzip","vzip","vzip","max","provided","PieceReader","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","into","read_piece","to_owned","try_from","try_into","type_id","unique_saturated_into","vzip","farmer_piece_getter","piece_validator","readers_and_pieces","run_future_in_dedicated_thread","tokio_rayon_spawn_handler","FarmerPieceGetter","borrow","borrow_mut","deref","deref_mut","drop","from","get_piece","init","into","new","try_from","try_into","type_id","unique_saturated_into","vzip","SegmentCommitmentPieceValidator","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","new","try_from","try_into","type_id","unique_saturated_into","validate_piece","vzip","ReadersAndPieces","add_sector","borrow","borrow_mut","contains_piece","delete_sector","deref","deref_mut","drop","fmt","from","init","into","new","piece_indices","read_piece","try_from","try_into","type_id","unique_saturated_into","vzip"],"q":[[0,"subspace_farmer"],[64,"subspace_farmer::node_client"],[77,"subspace_farmer::piece_cache"],[114,"subspace_farmer::reward_signing"],[115,"subspace_farmer::single_disk_farm"],[409,"subspace_farmer::single_disk_farm::FarmingError"],[411,"subspace_farmer::single_disk_farm::PlottingError"],[415,"subspace_farmer::single_disk_farm::SingleDiskFarmError"],[430,"subspace_farmer::single_disk_farm::SingleDiskFarmInfo"],[435,"subspace_farmer::single_disk_farm::SingleDiskFarmScrubError"],[462,"subspace_farmer::single_disk_farm::SingleDiskFarmSummary"],[467,"subspace_farmer::single_disk_farm::piece_cache"],[529,"subspace_farmer::single_disk_farm::piece_cache::DiskPieceCacheError"],[531,"subspace_farmer::single_disk_farm::piece_reader"],[550,"subspace_farmer::utils"],[555,"subspace_farmer::utils::farmer_piece_getter"],[571,"subspace_farmer::utils::piece_validator"],[587,"subspace_farmer::utils::readers_and_pieces"],[608,"subspace_core_primitives::segments"],[609,"core::future::future"],[610,"alloc::boxed"],[611,"core::pin"],[612,"core::result"],[613,"std::path"],[614,"core::convert"],[615,"core::fmt"],[616,"core::fmt"],[617,"core::option"],[618,"subspace_core_primitives::pieces"],[619,"schnorrkel::keys"],[620,"schnorrkel::keys"],[621,"schnorrkel::sign"],[622,"subspace_rpc_primitives"],[623,"subspace_rpc_primitives"],[624,"libp2p_kad::record_priv"],[625,"subspace_core_primitives::pieces"],[626,"libp2p_kad::record_priv"],[627,"core::error"],[628,"std_semaphore"],[629,"core::cmp"],[630,"std::path"],[631,"rayon_core"],[632,"subspace_farmer_components::proving"],[633,"std::io::error"],[634,"subspace_farmer_components::plotting"],[635,"core::hash"],[636,"core::marker"],[637,"core::hash"],[638,"core::marker"],[639,"subspace_core_primitives"],[640,"core::ops::function"],[641,"alloc::sync"],[642,"event_listener_primitives::handler_id"],[643,"core::iter::traits::iterator"],[644,"anyhow"],[645,"serde::ser"],[646,"alloc::string"],[647,"subspace_core_primitives"],[648,"subspace_networking::node"],[649,"subspace_networking::utils::piece_provider"],[650,"subspace_core_primitives::crypto::kzg"],[651,"subspace_core_primitives::segments"],[652,"subspace_farmer_components::plotting"]],"d":["Identity
struct is an abstraction of public & secret key …","","WsClient
wrapper.","","","","","","","","","","","Creates new identity, overrides identity that might …","","","","","","","","Returns entropy used to generate keypair.","","Size of the identity file on disk","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","","","Create a new instance of NodeClient
.","","Opens the existing identity, returns Ok(None)
if it doesn…","Opens the existing identity, or creates a new one.","","","Returns the public key of the identity.","","Returns the secret key of the identity.","","Sign reward hash.","","Submit a block signature","","","","","","","","","","","","","","","","","","","To become error type agnostic","Abstraction of the Node Client","Acknowledge segment header.","Get farmer app info","Get the last segment headers.","Get piece by index.","Get segment headers for the segments","Submit a block signature","Submit a slot solution","Subscribe to archived segment headers","Subscribe to node sync status change","Subscribe to block signing request","Subscribe to slot","Cache worker used to drive the cache","Piece cache that aggregates caches of multiple disks","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Get piece from cache","","","Calls U::from(self)
.","Calls U::from(self)
.","Create new piece cache instance and corresponding worker.","","","Run the cache worker with provided piece getter","","","","","","","","","","","","","Errors that happen in background tasks","Cache can’t be opened","Cache file does not exist","Can’t preallocate metadata file, probably not enough …","Can’t preallocate plot file, probably not enough space …","Failed to open farm","Failed to create thread pool","Failed to decode metadata header","Failed to decode metadata header","Failed to decode sector metadata","Failed to determine file size","Failed to retrieve farmer info","Failed to retrieve farmer info","Failed to get segment header","Failed to read bytes from file","Failed to subscribe to archived segments","Failed to subscribe to slot info notifications","Failed to write bytes from file","Farm info can’t be opened","Farm info file does not exist","Farm is too large","Farming error","Errors that happen during farming","Farm was found and read successfully","Identity can’t be opened","Identity file does not exist","Public key in identity doesn’t match metadata","Allocated space is not enough for one sector","Invalid number pieces in sector","I/O error occurred","I/O error occurred","I/O error occurred","Low-level plotting error","Low-level proving error","Metadata can’t be opened","Metadata file does not exist","Metadata file too small","Missing archived segment header","Farm was not found","Piece cache error","Plotting error","Errors that happen during plotting","Identity public key doesn’t match public key in the disk …","Single disk farm abstraction is a container for everything …","Errors happening when trying to create/open single disk …","An identifier for single disk farm, can be used for in …","Important information about the contents of the …","Options used to open single disk farm","Errors happening during scrubbing","Summary of single disk farm for presentational purposes","Semaphore that limits disk access concurrency in strategic …","Farm ID","Unexpected metadata version","Unexpected metadata version","V0 of the info","Wrong chain (genesis hash)","Acquire access, will block current thread until previously …","How much space in bytes is allocated for this farm","How much space in bytes was allocated","","","","","","","","","","","","","","","","","","","","","","","Percentage of allocated space dedicated for caching …","","","","","","","","Collect summary of single disk farm for presentational …","","","","","","","","","","","","","","","","","","","","","","","","","Path to directory where farm is stored.","","","","","","","","","","","","","","","","","","Erasure coding instance to use.","Information necessary for farmer application","Thread pool size used for farming (mostly for blocking …","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","ID of this farm","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Kzg instance to use.","Load SingleDiskFarm
from path is supposed to be stored, …","How many pieces one sector is supposed to contain (max)","Create new single disk farm instance","Create new semaphore for limiting concurrency of the major …","Creates new ID","","RPC client connected to Subspace node","Subscribe to sector plotting notification","Subscribe to new solution notification","","","Get piece cache instance","Piece receiver implementation for plotting purposes.","","Get piece reader to read plotted pieces later","How many pieces does one sector contain.","Read information about sectors plotted so far","Number of sectors successfully plotted so far","Thread pool used for plotting","","Thread pool used for replotting, typically smaller pool …","Address where farming rewards should go","Run and wait for background threads to exit or return an …","Check the farm for corruption and repair errors (caused by …","","","","","","","Store SingleDiskFarm
info to path so it can be loaded …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Wipe everything that belongs to this single disk farm","Lower-level error","Lower-level error","Lower-level error","Lower-level error","Lower-level error","Segment index that was missing","","Current allocated space","","Hex-encoded genesis hash during farm creation","Public key used during farm creation","Farm ID","Farm ID","Farm ID","Number of pieces in sector farm is initialized with","","","Max supported pieces in sector","Minimal allocated space","Hex-encoded current genesis hash","Current public key","How much space in bytes is allocated for this farm","Genesis hash of the chain used for farm creation","ID of the farm","How many pieces does one sector contain.","Public key of identity used for farm creation","Low-level error","Low-level error","Low-level error","Low-level error","Low-level error","Low-level error","Low-level error","Affected file","Affected file","Affected file","Info file","Info file","Identity file","Identity file","Metadata file","Metadata file","Metadata file","Cache file","Cache file","Identity public key","Disk farm info public key","Offset in the file","Offset in the file","Reserved size","Number of bytes to read","Number of bytes to read","File size","Path to directory where farm is stored.","Path to directory where farm is stored.","Path to directory where farm is stored.","Error itself","Farm info","Can’t preallocate cache file, probably not enough space …","Checksum mismatch","Piece cache stored on one disk","Disk piece cache open error","I/O error occurred","Offset wrapper for pieces in DiskPieceCache
","Offset outsize of range","Cache size has zero capacity, this is not supported","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","Max offset","Provided offset","Wrapper data structure that can be used to read pieces …","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","Read piece from sector by offset, None
means input …","","","","","","","","","","Runs future on a dedicated thread with the specified name, …","This function is supposed to be used with …","","","","","","","Returns the argument unchanged.","","","Calls U::from(self)
.","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","","","","","","Wrapper data structure for pieces plotted under multiple …","","","","Check if piece is known and can be retrieved","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","Read piece from one of the associated readers.","","","","",""],"i":[0,0,0,0,1,6,1,6,1,6,1,6,1,6,6,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,0,1,1,0,6,6,1,0,6,0,6,1,6,0,1,1,1,1,1,1,6,1,6,1,6,1,6,1,6,1,0,6,1,0,0,33,33,33,33,33,33,33,33,33,33,33,0,0,32,28,32,28,28,28,32,28,32,28,32,28,28,32,28,28,32,28,32,28,28,28,28,32,28,32,28,32,28,32,28,32,28,32,28,0,0,51,51,50,50,44,48,50,51,50,51,48,49,49,51,49,48,51,51,51,50,52,0,44,51,51,50,50,50,48,49,50,49,48,51,51,51,49,44,50,52,0,51,0,0,0,0,0,0,0,0,41,50,51,40,50,38,40,65,44,65,46,48,49,38,41,40,50,51,52,44,65,46,48,49,38,41,40,50,51,52,65,38,41,40,38,41,40,41,46,44,65,46,48,49,38,41,40,50,51,52,44,65,46,48,49,38,41,40,50,51,52,41,40,65,44,65,46,46,48,49,38,41,40,50,51,52,41,41,41,41,41,65,65,65,48,48,49,49,38,41,41,40,50,50,51,51,52,52,44,65,46,48,48,48,48,49,49,49,38,41,41,40,50,50,50,51,52,52,52,40,41,41,46,40,44,65,46,48,49,38,41,40,50,51,52,44,65,46,48,49,38,41,40,50,51,52,65,40,65,46,38,41,40,65,46,46,41,0,46,65,0,46,40,46,46,65,40,65,65,46,46,41,40,48,49,50,52,40,38,41,40,48,49,41,50,51,52,44,65,46,48,49,38,41,40,50,51,52,44,65,46,48,49,38,41,40,50,51,52,44,65,46,48,49,38,41,40,50,51,52,44,65,46,48,49,38,41,40,50,51,52,44,65,46,48,49,38,41,40,50,51,52,46,96,97,98,99,100,101,102,103,102,104,105,104,105,106,106,102,102,106,103,104,105,107,107,107,107,107,108,109,110,111,112,113,114,108,109,110,115,111,116,112,117,113,118,119,114,120,120,109,110,118,109,110,118,121,122,123,123,121,58,58,0,0,58,0,58,58,58,79,35,58,79,35,79,35,79,35,58,79,35,58,79,35,58,79,35,58,58,79,79,35,58,58,79,35,58,79,35,58,79,35,58,79,35,58,79,58,79,35,58,79,35,58,79,35,58,79,35,58,79,35,124,124,0,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,0,0,0,0,0,0,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,0,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,0,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89],"f":[0,0,0,0,[[1,2],[[5,[[4,[3]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[6,6],[1,1],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[-1,[[8,[6,0]]],[[10,[9]]]],[11,-1,[]],[6],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,7],[11,7],[6,[[13,[12]]]],[1,[[5,[[4,[3]]]]]],[[],11],[[1,14],15],[-1,-1,[]],[-1,-1,[]],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],0,[[1,16],[[5,[[4,[3]]]]]],[17,[[8,[1,18]]]],0,[-1,[[8,[[19,[6]],0]]],[[10,[9]]]],[-1,[[8,[6,0]]],[[10,[9]]]],[[1,20],[[5,[[4,[3]]]]]],0,[6,21],0,[6,22],[[1,[23,[2]]],[[5,[[4,[3]]]]]],[[6,[13,[12]]],24],0,[[1,25],[[5,[[4,[3]]]]]],[[1,26],[[5,[[4,[3]]]]]],[1,[[5,[[4,[3]]]]]],[1,[[5,[[4,[3]]]]]],[1,[[5,[[4,[3]]]]]],[1,[[5,[[4,[3]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[-1,2],[[5,[[4,[3]]]]],[]],[-1,[[5,[[4,[3]]]]],[]],[[-1,16],[[5,[[4,[3]]]]],[]],[[-1,20],[[5,[[4,[3]]]]],[]],[[-1,[23,[2]]],[[5,[[4,[3]]]]],[]],[[-1,25],[[5,[[4,[3]]]]],[]],[[-1,26],[[5,[[4,[3]]]]],[]],[-1,[[5,[[4,[3]]]]],[]],[-1,[[5,[[4,[3]]]]],[]],[-1,[[5,[[4,[3]]]]],[]],[-1,[[5,[[4,[3]]]]],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[28,28],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,7],[11,7],[[28,14],15],[-1,-1,[]],[-1,-1,[]],[[28,29],[[19,[30]]]],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,31],[[7,[28,[32,[-1]]]]],33],[[28,29],[[19,[34]]]],[[28,[23,[35]]],7],[[[32,[-1]],-2],7,33,36],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,6],[[8,[[0,[3]],[4,[37]]]]],33],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[38,39],[40,16],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[38,38],[41,41],[40,40],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[[41,41],42],[43,44],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[-1,[[8,[41]]],45],[-1,[[8,[40]]],45],0,[11,7],[11,7],[46,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[[41,41],47],[[-1,-2],47,[],[]],[[-1,-2],47,[],[]],[[-1,-2],47,[],[]],[[-1,-2],47,[],[]],0,0,0,[[48,14],15],[[48,14],15],[[49,14],15],[[49,14],15],[[38,14],15],[[41,14],15],[[41,14],15],[[40,14],15],[[50,14],15],[[50,14],15],[[51,14],15],[[51,14],15],[[52,14],15],[[52,14],15],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[53,48],[54,48],[55,48],[-1,-1,[]],[-1,-1,[]],[56,49],[55,49],[-1,-1,[]],[-1,-1,[]],[57,41],[-1,-1,[]],[-1,-1,[]],[58,50],[55,50],[-1,-1,[]],[48,52],[49,52],[-1,-1,[]],[40,[[59,[12]]]],[[-1,-2],16,[60,61],62],[[41,-1],7,63],[46,41],[40,41],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[9,[[64,[[19,[40]]]]]],0,[[[65,[-1,-2]],11],[[8,[46,50]]],33,[36,66,67]],[68,38],[[],41],[[41,[59,[12]],69,70,16],40],0,[[46,[72,[71]]],73],[[46,[72,[71]]],73],[[41,41],[[19,[42]]]],0,[46,35],0,0,[46,74],[40,70],[46,[[0,[75]]]],[46,11],0,[40,69],0,0,[46,[[76,[7]]]],[9,[[8,[7,51]]]],[[41,-1],8,77],[[40,-1],8,77],[48,[[19,[37]]]],[49,[[19,[37]]]],[50,[[19,[37]]]],[52,[[19,[37]]]],[[40,9],[[64,[7]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[9,[[64,[7]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[79,79],[35,35],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,7],[11,7],[11,7],[[58,14],15],[[58,14],15],[[79,14],15],[[79,14],15],[[35,14],15],[55,58],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],11],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[58,[[19,[37]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,78,[]],[-1,78,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[74,74],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[[74,14],15],[-1,-1,[]],[[],11],[-1,-2,[],[]],[[74,80,81],[[19,[30]]]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[[-1,78],[[64,[[0,[3,67]]]]],[3,82,67]],[[],[[0,[83]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[-1,-1,[]],[[[84,[-1,-2]],20,85],[[5,[[4,[3]]]]],[86,67],33],[[],11],[-1,-2,[],[]],[[87,[88,[-1]],28,-2,[72,[[90,[[19,[89]]]]]]],[[84,[-1,-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[-1,-1,[]],[[],11],[-1,-2,[],[]],[[87,-1,91,[90,[[93,[2,92]]]]],[[94,[-1]]],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[[[94,[-1]],31,20,30],[[5,[[4,[3]]]]],33],[-1,-2,[],[]],0,[[89,12,95],7],[-1,-2,[],[]],[-1,-2,[],[]],[[89,20],47],[[89,12,95],7],[11,-1,[]],[11,-1,[]],[11,7],[[89,14],15],[-1,-1,[]],[[],11],[-1,-2,[],[]],[[[23,[74]]],89],[89,[[0,[75]]]],[[89,20],[[19,[[0,[3]]]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[3,"NodeRpcClient",0],[3,"SegmentIndex",608],[8,"Future",609],[3,"Box",610],[3,"Pin",611],[3,"Identity",0],[15,"tuple"],[4,"Result",612],[3,"Path",613],[8,"AsRef",614],[15,"usize"],[15,"u8"],[15,"slice"],[3,"Formatter",615],[6,"Result",615],[15,"u64"],[15,"str"],[4,"Error",616],[4,"Option",617],[3,"PieceIndex",618],[3,"PublicKey",619],[3,"SecretKey",619],[3,"Vec",620],[3,"Signature",621],[3,"RewardSignatureResponse",622],[3,"SolutionResponse",622],[3,"TypeId",623],[3,"PieceCache",77],[3,"Key",624],[3,"Piece",618],[3,"PeerId",625],[3,"CacheWorker",77],[8,"NodeClient",64],[3,"ProviderRecord",624],[3,"DiskPieceCache",467],[8,"PieceGetter",626],[8,"Error",627],[3,"SingleDiskSemaphore",115],[3,"SemaphoreGuard",628],[4,"SingleDiskFarmInfo",115],[4,"SingleDiskFarmId",115],[4,"Ordering",629],[3,"PathBuf",613],[4,"SingleDiskFarmSummary",115],[8,"Deserializer",630],[3,"SingleDiskFarm",115],[15,"bool"],[4,"FarmingError",115],[4,"PlottingError",115],[4,"SingleDiskFarmError",115],[4,"SingleDiskFarmScrubError",115],[4,"BackgroundTaskError",115],[3,"ThreadPoolBuildError",631],[4,"ProvingError",632],[3,"Error",633],[4,"PlottingError",626],[3,"Ulid",634],[4,"DiskPieceCacheError",467],[15,"array"],[8,"Hash",635],[8,"Sized",636],[8,"BuildHasher",635],[8,"Hasher",635],[6,"Result",633],[3,"SingleDiskFarmOptions",115],[8,"Clone",637],[8,"Send",636],[3,"NonZeroU16",638],[3,"PublicKey",639],[15,"u16"],[8,"Fn",640],[3,"Arc",641],[3,"HandlerId",642],[3,"PieceReader",531],[8,"Iterator",643],[6,"Result",644],[8,"Serializer",645],[3,"String",646],[3,"Offset",467],[6,"SectorIndex",639],[3,"PieceOffset",618],[8,"Unpin",636],[8,"FnMut",640],[3,"FarmerPieceGetter",555],[4,"PieceGetterRetryPolicy",626],[8,"PieceValidator",647],[3,"Node",648],[3,"PieceProvider",647],[3,"ReadersAndPieces",587],[6,"Mutex",649],[3,"Kzg",650],[3,"SegmentCommitment",608],[3,"LruCache",651],[3,"SegmentCommitmentPieceValidator",571],[3,"PlottedSector",626],[13,"FailedToSubscribeSlotInfo",409],[13,"FailedToGetFarmerInfo",409],[13,"FailedToGetFarmerInfo",411],[13,"FailedToGetSegmentHeader",411],[13,"FailedToSubscribeArchivedSegments",411],[13,"MissingArchivedSegmentHeader",411],[13,"FarmTooLarge",415],[13,"InsufficientAllocatedSpace",415],[13,"WrongChain",415],[13,"IdentityMismatch",415],[13,"InvalidPiecesInSector",415],[13,"V0",430],[13,"FailedToDetermineFileSize",435],[13,"FailedToReadBytes",435],[13,"FailedToWriteBytes",435],[13,"FarmInfoCantBeOpened",435],[13,"IdentityCantBeOpened",435],[13,"MetadataCantBeOpened",435],[13,"CacheCantBeOpened",435],[13,"FarmInfoFileDoesNotExist",435],[13,"IdentityFileDoesNotExist",435],[13,"MetadataFileDoesNotExist",435],[13,"MetadataFileTooSmall",435],[13,"CacheFileDoesNotExist",435],[13,"PublicKeyMismatch",435],[13,"Found",462],[13,"NotFound",462],[13,"Error",462],[13,"OffsetOutsideOfRange",529]],"b":[[250,"impl-Display-for-FarmingError"],[251,"impl-Debug-for-FarmingError"],[252,"impl-Debug-for-PlottingError"],[253,"impl-Display-for-PlottingError"],[255,"impl-Display-for-SingleDiskFarmId"],[256,"impl-Debug-for-SingleDiskFarmId"],[258,"impl-Display-for-SingleDiskFarmError"],[259,"impl-Debug-for-SingleDiskFarmError"],[260,"impl-Display-for-SingleDiskFarmScrubError"],[261,"impl-Debug-for-SingleDiskFarmScrubError"],[262,"impl-Display-for-BackgroundTaskError"],[263,"impl-Debug-for-BackgroundTaskError"],[267,"impl-From%3CThreadPoolBuildError%3E-for-FarmingError"],[268,"impl-From%3CProvingError%3E-for-FarmingError"],[269,"impl-From%3CError%3E-for-FarmingError"],[272,"impl-From%3CPlottingError%3E-for-PlottingError"],[273,"impl-From%3CError%3E-for-PlottingError"],[279,"impl-From%3CDiskPieceCacheError%3E-for-SingleDiskFarmError"],[280,"impl-From%3CError%3E-for-SingleDiskFarmError"],[282,"impl-From%3CFarmingError%3E-for-BackgroundTaskError"],[283,"impl-From%3CPlottingError%3E-for-BackgroundTaskError"],[494,"impl-Debug-for-DiskPieceCacheError"],[495,"impl-Display-for-DiskPieceCacheError"],[496,"impl-Debug-for-Offset"],[497,"impl-Display-for-Offset"]]},\
+"subspace_farmer":{"doc":"subspace-farmer
library implementation overview","t":"DCDCLLLLLLLLLLLLLLLLLLLLLLLLLLLCLLALLLALALLLALLLLLLLLLLLLLLLLALLGIKKKKKKKKKKKDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFENNNNNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNNNNNNENDDEEEDEEDNNNNNLLMLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLMLLLLMLLLLALMALLLLMMLMMMLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNDENDNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMDLLLLLLLLLLLLLLLLLLAAAFFDLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLL","n":["Identity","NodeClient","NodeRpcClient","RpcClientError","acknowledge_archived_segment_header","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","create","deref","deref","deref","deref_mut","deref_mut","drop","drop","entropy","farmer_app_info","file_size","fmt","from","from","init","init","into","into","jsonrpsee","last_segment_headers","new","node_client","open","open_or_create","piece","piece_cache","public_key","reward_signing","secret_key","segment_headers","sign_reward_hash","single_disk_farm","submit_reward_signature","submit_solution_response","subscribe_archived_segment_headers","subscribe_node_sync_status_change","subscribe_reward_signing","subscribe_slot_info","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unique_saturated_into","unique_saturated_into","utils","vzip","vzip","Error","NodeClient","acknowledge_archived_segment_header","farmer_app_info","last_segment_headers","piece","segment_headers","submit_reward_signature","submit_solution_response","subscribe_archived_segment_headers","subscribe_node_sync_status_change","subscribe_reward_signing","subscribe_slot_info","CacheWorker","PieceCache","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","fmt","from","from","get_piece","init","init","into","into","new","record","replace_backing_caches","run","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unique_saturated_into","unique_saturated_into","vzip","vzip","reward_signing","BackgroundTaskError","CacheCantBeOpened","CacheFileDoesNotExist","CantPreallocateMetadataFile","CantPreallocatePlotFile","Error","FailedToCreateThreadPool","FailedToDecodeMetadataHeader","FailedToDecodeMetadataHeader","FailedToDecodeSectorMetadata","FailedToDetermineFileSize","FailedToGetFarmerInfo","FailedToGetFarmerInfo","FailedToGetSegmentHeader","FailedToReadBytes","FailedToSubscribeArchivedSegments","FailedToSubscribeSlotInfo","FailedToWriteBytes","FarmInfoCantBeOpened","FarmInfoFileDoesNotExist","FarmTooLarge","Farming","FarmingError","Found","IdentityCantBeOpened","IdentityFileDoesNotExist","IdentityMismatch","InsufficientAllocatedSpace","InvalidPiecesInSector","Io","Io","Io","LowLevel","LowLevelProving","MetadataCantBeOpened","MetadataFileDoesNotExist","MetadataFileTooSmall","MissingArchivedSegmentHeader","NotFound","PieceCacheError","Plotting","PlottingError","PublicKeyMismatch","SectorPlottingDetails","SingleDiskFarm","SingleDiskFarmError","SingleDiskFarmId","SingleDiskFarmInfo","SingleDiskFarmOptions","SingleDiskFarmScrubError","SingleDiskFarmSummary","SingleDiskSemaphore","Ulid","UnexpectedMetadataVersion","UnexpectedMetadataVersion","V0","WrongChain","acquire","allocated_space","allocated_space","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cache_percentage","clone","clone","clone","clone_into","clone_into","clone_into","cmp","collect_summary","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","directory","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","erasure_coding","farmer_app_info","farming_thread_pool_size","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","genesis_hash","get_hash","hash","id","id","init","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","into","into","kzg","last_queued","load_from","max_pieces_in_sector","new","new","new","new","node_client","on_sector_plotted","on_sector_plotting","on_solution","partial_cmp","piece_cache","piece_cache","piece_getter","piece_reader","piece_reader","pieces_in_sector","plotted_sectors","plotted_sectors_count","plotting_thread_pool","progress","public_key","replotting","replotting_thread_pool","reward_address","run","scrub","sector_index","serialize","serialize","source","source","source","source","store_to","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wipe","error","error","error","error","error","segment_index","allocated_sectors","allocated_space","allocated_space","correct_chain","correct_public_key","id","id","id","initialized_with","max_sectors","max_space","max_supported","min_space","wrong_chain","wrong_public_key","allocated_space","genesis_hash","id","pieces_in_sector","public_key","error","error","error","error","error","error","error","file","file","file","file","file","file","file","file","file","file","file","file","identity","info","offset","offset","reserved_size","size","size","size","directory","directory","directory","error","info","CantPreallocateCacheFile","ChecksumMismatch","DiskPieceCache","DiskPieceCacheError","Io","Offset","OffsetOutsideOfRange","ZeroCapacity","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","into","into","into","source","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unique_saturated_into","unique_saturated_into","unique_saturated_into","vzip","vzip","vzip","max","provided","PieceReader","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","into","read_piece","to_owned","try_from","try_into","type_id","unique_saturated_into","vzip","farmer_piece_getter","piece_validator","readers_and_pieces","run_future_in_dedicated_thread","tokio_rayon_spawn_handler","FarmerPieceGetter","borrow","borrow_mut","deref","deref_mut","drop","from","get_piece","init","into","new","try_from","try_into","type_id","unique_saturated_into","vzip","SegmentCommitmentPieceValidator","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","new","try_from","try_into","type_id","unique_saturated_into","validate_piece","vzip","ReadersAndPieces","add_sector","borrow","borrow_mut","contains_piece","delete_sector","deref","deref_mut","drop","fmt","from","init","into","new","piece_indices","read_piece","try_from","try_into","type_id","unique_saturated_into","vzip"],"q":[[0,"subspace_farmer"],[64,"subspace_farmer::node_client"],[77,"subspace_farmer::piece_cache"],[114,"subspace_farmer::reward_signing"],[115,"subspace_farmer::single_disk_farm"],[428,"subspace_farmer::single_disk_farm::FarmingError"],[430,"subspace_farmer::single_disk_farm::PlottingError"],[434,"subspace_farmer::single_disk_farm::SingleDiskFarmError"],[449,"subspace_farmer::single_disk_farm::SingleDiskFarmInfo"],[454,"subspace_farmer::single_disk_farm::SingleDiskFarmScrubError"],[481,"subspace_farmer::single_disk_farm::SingleDiskFarmSummary"],[486,"subspace_farmer::single_disk_farm::piece_cache"],[548,"subspace_farmer::single_disk_farm::piece_cache::DiskPieceCacheError"],[550,"subspace_farmer::single_disk_farm::piece_reader"],[569,"subspace_farmer::utils"],[574,"subspace_farmer::utils::farmer_piece_getter"],[590,"subspace_farmer::utils::piece_validator"],[606,"subspace_farmer::utils::readers_and_pieces"],[627,"subspace_core_primitives::segments"],[628,"core::future::future"],[629,"alloc::boxed"],[630,"core::pin"],[631,"core::result"],[632,"std::path"],[633,"core::convert"],[634,"core::fmt"],[635,"core::fmt"],[636,"core::option"],[637,"subspace_core_primitives::pieces"],[638,"schnorrkel::keys"],[639,"schnorrkel::keys"],[640,"schnorrkel::sign"],[641,"subspace_rpc_primitives"],[642,"subspace_rpc_primitives"],[643,"libp2p_kad::record_priv"],[644,"subspace_core_primitives::pieces"],[645,"libp2p_kad::record_priv"],[646,"core::error"],[647,"std_semaphore"],[648,"core::cmp"],[649,"std::path"],[650,"std::io::error"],[651,"rayon_core"],[652,"subspace_farmer_components::proving"],[653,"subspace_farmer_components::plotting"],[654,"core::hash"],[655,"core::marker"],[656,"core::hash"],[657,"core::marker"],[658,"subspace_core_primitives"],[659,"core::ops::function"],[660,"alloc::sync"],[661,"event_listener_primitives::handler_id"],[662,"core::iter::traits::iterator"],[663,"anyhow"],[664,"serde::ser"],[665,"alloc::string"],[666,"subspace_core_primitives"],[667,"subspace_networking::node"],[668,"subspace_networking::utils::piece_provider"],[669,"subspace_core_primitives::crypto::kzg"],[670,"subspace_core_primitives::segments"],[671,"subspace_farmer_components::plotting"]],"d":["Identity
struct is an abstraction of public & secret key …","","WsClient
wrapper.","","","","","","","","","","","Creates new identity, overrides identity that might …","","","","","","","","Returns entropy used to generate keypair.","","Size of the identity file on disk","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","","","Create a new instance of NodeClient
.","","Opens the existing identity, returns Ok(None)
if it doesn…","Opens the existing identity, or creates a new one.","","","Returns the public key of the identity.","","Returns the secret key of the identity.","","Sign reward hash.","","Submit a block signature","","","","","","","","","","","","","","","","","","","To become error type agnostic","Abstraction of the Node Client","Acknowledge segment header.","Get farmer app info","Get the last segment headers.","Get piece by index.","Get segment headers for the segments","Submit a block signature","Submit a slot solution","Subscribe to archived segment headers","Subscribe to node sync status change","Subscribe to block signing request","Subscribe to slot","Cache worker used to drive the cache","Piece cache that aggregates caches of multiple disks","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Get piece from cache","","","Calls U::from(self)
.","Calls U::from(self)
.","Create new piece cache instance and corresponding worker.","","","Run the cache worker with provided piece getter","","","","","","","","","","","","","Errors that happen in background tasks","Cache can’t be opened","Cache file does not exist","Can’t preallocate metadata file, probably not enough …","Can’t preallocate plot file, probably not enough space …","Failed to open farm","Failed to create thread pool","Failed to decode metadata header","Failed to decode metadata header","Failed to decode sector metadata","Failed to determine file size","Failed to retrieve farmer info","Failed to retrieve farmer info","Failed to get segment header","Failed to read bytes from file","Failed to subscribe to archived segments","Failed to subscribe to slot info notifications","Failed to write bytes from file","Farm info can’t be opened","Farm info file does not exist","Farm is too large","Farming error","Errors that happen during farming","Farm was found and read successfully","Identity can’t be opened","Identity file does not exist","Public key in identity doesn’t match metadata","Allocated space is not enough for one sector","Invalid number pieces in sector","I/O error occurred","I/O error occurred","I/O error occurred","Low-level plotting error","Low-level proving error","Metadata can’t be opened","Metadata file does not exist","Metadata file too small","Missing archived segment header","Farm was not found","Piece cache error","Plotting error","Errors that happen during plotting","Identity public key doesn’t match public key in the disk …","Details about sector currently being plotted","Single disk farm abstraction is a container for everything …","Errors happening when trying to create/open single disk …","An identifier for single disk farm, can be used for in …","Important information about the contents of the …","Options used to open single disk farm","Errors happening during scrubbing","Summary of single disk farm for presentational purposes","Semaphore that limits disk access concurrency in strategic …","Farm ID","Unexpected metadata version","Unexpected metadata version","V0 of the info","Wrong chain (genesis hash)","Acquire access, will block current thread until previously …","How much space in bytes is allocated for this farm","How much space in bytes was allocated","","","","","","","","","","","","","","","","","","","","","","","","","Percentage of allocated space dedicated for caching …","","","","","","","","Collect summary of single disk farm for presentational …","","","","","","","","","","","","","","","","","","","","","","","","","","","Path to directory where farm is stored.","","","","","","","","","","","","","","","","","","","Erasure coding instance to use.","Information necessary for farmer application","Thread pool size used for farming (mostly for blocking …","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","ID of this farm","","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Kzg instance to use.","Whether this is the last sector queued so far","Load SingleDiskFarm
from path is supposed to be stored, …","How many pieces one sector is supposed to contain (max)","Create new single disk farm instance","Create new semaphore for limiting concurrency of the major …","Creates new ID","","RPC client connected to Subspace node","Subscribe to notification about plotted sectors","Subscribe to sector plotting notification","Subscribe to new solution notification","","","Get piece cache instance","Piece receiver implementation for plotting purposes.","","Get piece reader to read plotted pieces later","How many pieces does one sector contain.","Read information about sectors plotted so far","Number of sectors successfully plotted so far","Thread pool used for plotting","Progress so far in % (not including this sector)","","Whether sector is being replotted","Thread pool used for replotting, typically smaller pool …","Address where farming rewards should go","Run and wait for background threads to exit or return an …","Check the farm for corruption and repair errors (caused by …","Sector index","","","","","","","Store SingleDiskFarm
info to path so it can be loaded …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Wipe everything that belongs to this single disk farm","Lower-level error","Lower-level error","Lower-level error","Lower-level error","Lower-level error","Segment index that was missing","","Current allocated space","","Hex-encoded genesis hash during farm creation","Public key used during farm creation","Farm ID","Farm ID","Farm ID","Number of pieces in sector farm is initialized with","","","Max supported pieces in sector","Minimal allocated space","Hex-encoded current genesis hash","Current public key","How much space in bytes is allocated for this farm","Genesis hash of the chain used for farm creation","ID of the farm","How many pieces does one sector contain.","Public key of identity used for farm creation","Low-level error","Low-level error","Low-level error","Low-level error","Low-level error","Low-level error","Low-level error","Affected file","Affected file","Affected file","Info file","Info file","Identity file","Identity file","Metadata file","Metadata file","Metadata file","Cache file","Cache file","Identity public key","Disk farm info public key","Offset in the file","Offset in the file","Reserved size","Number of bytes to read","Number of bytes to read","File size","Path to directory where farm is stored.","Path to directory where farm is stored.","Path to directory where farm is stored.","Error itself","Farm info","Can’t preallocate cache file, probably not enough space …","Checksum mismatch","Piece cache stored on one disk","Disk piece cache open error","I/O error occurred","Offset wrapper for pieces in DiskPieceCache
","Offset outsize of range","Cache size has zero capacity, this is not supported","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","Max offset","Provided offset","Wrapper data structure that can be used to read pieces …","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","Read piece from sector by offset, None
means input …","","","","","","","","","","Runs future on a dedicated thread with the specified name, …","This function is supposed to be used with …","","","","","","","Returns the argument unchanged.","","","Calls U::from(self)
.","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","","","","","","Wrapper data structure for pieces plotted under multiple …","","","","Check if piece is known and can be retrieved","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","","","Read piece from one of the associated readers.","","","","",""],"i":[0,0,0,0,1,6,1,6,1,6,1,6,1,6,6,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,0,1,1,0,6,6,1,0,6,0,6,1,6,0,1,1,1,1,1,1,6,1,6,1,6,1,6,1,6,1,0,6,1,0,0,33,33,33,33,33,33,33,33,33,33,33,0,0,32,28,32,28,28,28,32,28,32,28,32,28,28,32,28,28,32,28,32,28,28,28,28,32,28,32,28,32,28,32,28,32,28,32,28,0,0,51,51,50,50,44,48,50,51,50,51,48,49,49,51,49,48,51,51,51,50,52,0,44,51,51,50,50,50,48,49,50,49,48,51,51,51,49,44,50,52,0,51,0,0,0,0,0,0,0,0,0,41,50,51,40,50,38,40,65,44,65,96,46,48,49,38,41,40,50,51,52,44,65,96,46,48,49,38,41,40,50,51,52,65,38,41,40,38,41,40,41,46,44,65,96,46,48,49,38,41,40,50,51,52,44,65,96,46,48,49,38,41,40,50,51,52,41,40,65,44,65,96,46,46,48,49,38,41,40,50,51,52,41,41,41,41,41,65,65,65,48,48,49,49,38,41,41,40,50,50,51,51,52,52,44,65,96,46,48,48,48,48,49,49,49,38,41,41,40,50,50,50,51,52,52,52,40,41,41,46,40,44,65,96,46,48,49,38,41,40,50,51,52,44,65,96,46,48,49,38,41,40,50,51,52,65,96,40,65,46,38,41,40,65,46,46,46,41,0,46,65,0,46,40,46,46,65,96,40,96,65,65,46,46,96,41,40,48,49,50,52,40,38,41,40,48,49,41,50,51,52,44,65,96,46,48,49,38,41,40,50,51,52,44,65,96,46,48,49,38,41,40,50,51,52,44,65,96,46,48,49,38,41,40,50,51,52,44,65,96,46,48,49,38,41,40,50,51,52,44,65,96,46,48,49,38,41,40,50,51,52,46,97,98,99,100,101,102,103,104,103,105,106,105,106,107,107,103,103,107,104,105,106,108,108,108,108,108,109,110,111,112,113,114,115,109,110,111,116,112,117,113,118,114,119,120,115,121,121,110,111,119,110,111,119,122,123,124,124,122,58,58,0,0,58,0,58,58,58,79,35,58,79,35,79,35,79,35,58,79,35,58,79,35,58,79,35,58,58,79,79,35,58,58,79,35,58,79,35,58,79,35,58,79,35,58,79,58,79,35,58,79,35,58,79,35,58,79,35,58,79,35,125,125,0,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,0,0,0,0,0,0,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,0,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,0,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89],"f":[0,0,0,0,[[1,2],[[5,[[4,[3]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[6,6],[1,1],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[-1,[[8,[6,0]]],[[10,[9]]]],[11,-1,[]],[6],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,7],[11,7],[6,[[13,[12]]]],[1,[[5,[[4,[3]]]]]],[[],11],[[1,14],15],[-1,-1,[]],[-1,-1,[]],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],0,[[1,16],[[5,[[4,[3]]]]]],[17,[[8,[1,18]]]],0,[-1,[[8,[[19,[6]],0]]],[[10,[9]]]],[-1,[[8,[6,0]]],[[10,[9]]]],[[1,20],[[5,[[4,[3]]]]]],0,[6,21],0,[6,22],[[1,[23,[2]]],[[5,[[4,[3]]]]]],[[6,[13,[12]]],24],0,[[1,25],[[5,[[4,[3]]]]]],[[1,26],[[5,[[4,[3]]]]]],[1,[[5,[[4,[3]]]]]],[1,[[5,[[4,[3]]]]]],[1,[[5,[[4,[3]]]]]],[1,[[5,[[4,[3]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[-1,2],[[5,[[4,[3]]]]],[]],[-1,[[5,[[4,[3]]]]],[]],[[-1,16],[[5,[[4,[3]]]]],[]],[[-1,20],[[5,[[4,[3]]]]],[]],[[-1,[23,[2]]],[[5,[[4,[3]]]]],[]],[[-1,25],[[5,[[4,[3]]]]],[]],[[-1,26],[[5,[[4,[3]]]]],[]],[-1,[[5,[[4,[3]]]]],[]],[-1,[[5,[[4,[3]]]]],[]],[-1,[[5,[[4,[3]]]]],[]],[-1,[[5,[[4,[3]]]]],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[28,28],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,7],[11,7],[[28,14],15],[-1,-1,[]],[-1,-1,[]],[[28,29],[[19,[30]]]],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,31],[[7,[28,[32,[-1]]]]],33],[[28,29],[[19,[34]]]],[[28,[23,[35]]],7],[[[32,[-1]],-2],7,33,36],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,6],[[8,[[0,[3]],[4,[37]]]]],33],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[38,39],[40,16],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[38,38],[41,41],[40,40],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[[41,41],42],[43,44],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[-1,[[8,[41]]],45],[-1,[[8,[40]]],45],0,[11,7],[11,7],[11,7],[46,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[[41,41],47],[[-1,-2],47,[],[]],[[-1,-2],47,[],[]],[[-1,-2],47,[],[]],[[-1,-2],47,[],[]],0,0,0,[[48,14],15],[[48,14],15],[[49,14],15],[[49,14],15],[[38,14],15],[[41,14],15],[[41,14],15],[[40,14],15],[[50,14],15],[[50,14],15],[[51,14],15],[[51,14],15],[[52,14],15],[[52,14],15],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[53,48],[54,48],[55,48],[-1,-1,[]],[-1,-1,[]],[53,49],[56,49],[-1,-1,[]],[57,41],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[53,50],[58,50],[-1,-1,[]],[49,52],[-1,-1,[]],[48,52],[40,[[59,[12]]]],[[-1,-2],16,[60,61],62],[[41,-1],7,63],[46,41],[40,41],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[9,[[64,[[19,[40]]]]]],0,[[[65,[-1,-2]],11],[[8,[46,50]]],33,[36,66,67]],[68,38],[[],41],[[41,[59,[12]],69,70,16],40],0,[[46,[72,[71]]],73],[[46,[72,[71]]],73],[[46,[72,[71]]],73],[[41,41],[[19,[42]]]],0,[46,35],0,0,[46,74],[40,70],[46,[[0,[75]]]],[46,11],0,0,[40,69],0,0,0,[46,[[76,[7]]]],[9,[[8,[7,51]]]],0,[[41,-1],8,77],[[40,-1],8,77],[48,[[19,[37]]]],[49,[[19,[37]]]],[50,[[19,[37]]]],[52,[[19,[37]]]],[[40,9],[[64,[7]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[9,[[64,[7]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[79,79],[35,35],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,7],[11,7],[11,7],[[58,14],15],[[58,14],15],[[79,14],15],[[79,14],15],[[35,14],15],[53,58],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],11],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[58,[[19,[37]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,78,[]],[-1,78,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[74,74],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[[74,14],15],[-1,-1,[]],[[],11],[-1,-2,[],[]],[[74,80,81],[[19,[30]]]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[[-1,78],[[64,[[0,[3,67]]]]],[3,82,67]],[[],[[0,[83]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[-1,-1,[]],[[[84,[-1,-2]],20,85],[[5,[[4,[3]]]]],[86,67],33],[[],11],[-1,-2,[],[]],[[87,[88,[-1]],28,-2,[72,[[90,[[19,[89]]]]]]],[[84,[-1,-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[-1,-1,[]],[[],11],[-1,-2,[],[]],[[87,-1,91,[90,[[93,[2,92]]]]],[[94,[-1]]],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[[[94,[-1]],31,20,30],[[5,[[4,[3]]]]],33],[-1,-2,[],[]],0,[[89,12,95],7],[-1,-2,[],[]],[-1,-2,[],[]],[[89,20],47],[[89,12,95],7],[11,-1,[]],[11,-1,[]],[11,7],[[89,14],15],[-1,-1,[]],[[],11],[-1,-2,[],[]],[[[23,[74]]],89],[89,[[0,[75]]]],[[89,20],[[19,[[0,[3]]]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[3,"NodeRpcClient",0],[3,"SegmentIndex",627],[8,"Future",628],[3,"Box",629],[3,"Pin",630],[3,"Identity",0],[15,"tuple"],[4,"Result",631],[3,"Path",632],[8,"AsRef",633],[15,"usize"],[15,"u8"],[15,"slice"],[3,"Formatter",634],[6,"Result",634],[15,"u64"],[15,"str"],[4,"Error",635],[4,"Option",636],[3,"PieceIndex",637],[3,"PublicKey",638],[3,"SecretKey",638],[3,"Vec",639],[3,"Signature",640],[3,"RewardSignatureResponse",641],[3,"SolutionResponse",641],[3,"TypeId",642],[3,"PieceCache",77],[3,"Key",643],[3,"Piece",637],[3,"PeerId",644],[3,"CacheWorker",77],[8,"NodeClient",64],[3,"ProviderRecord",643],[3,"DiskPieceCache",486],[8,"PieceGetter",645],[8,"Error",646],[3,"SingleDiskSemaphore",115],[3,"SemaphoreGuard",647],[4,"SingleDiskFarmInfo",115],[4,"SingleDiskFarmId",115],[4,"Ordering",648],[3,"PathBuf",632],[4,"SingleDiskFarmSummary",115],[8,"Deserializer",649],[3,"SingleDiskFarm",115],[15,"bool"],[4,"FarmingError",115],[4,"PlottingError",115],[4,"SingleDiskFarmError",115],[4,"SingleDiskFarmScrubError",115],[4,"BackgroundTaskError",115],[3,"Error",650],[3,"ThreadPoolBuildError",651],[4,"ProvingError",652],[4,"PlottingError",645],[3,"Ulid",653],[4,"DiskPieceCacheError",486],[15,"array"],[8,"Hash",654],[8,"Sized",655],[8,"BuildHasher",654],[8,"Hasher",654],[6,"Result",650],[3,"SingleDiskFarmOptions",115],[8,"Clone",656],[8,"Send",655],[3,"NonZeroU16",657],[3,"PublicKey",658],[15,"u16"],[8,"Fn",659],[3,"Arc",660],[3,"HandlerId",661],[3,"PieceReader",550],[8,"Iterator",662],[6,"Result",663],[8,"Serializer",664],[3,"String",665],[3,"Offset",486],[6,"SectorIndex",658],[3,"PieceOffset",637],[8,"Unpin",655],[8,"FnMut",659],[3,"FarmerPieceGetter",574],[4,"PieceGetterRetryPolicy",645],[8,"PieceValidator",666],[3,"Node",667],[3,"PieceProvider",666],[3,"ReadersAndPieces",606],[6,"Mutex",668],[3,"Kzg",669],[3,"SegmentCommitment",627],[3,"LruCache",670],[3,"SegmentCommitmentPieceValidator",590],[3,"PlottedSector",645],[3,"SectorPlottingDetails",115],[13,"FailedToSubscribeSlotInfo",428],[13,"FailedToGetFarmerInfo",428],[13,"FailedToGetFarmerInfo",430],[13,"FailedToGetSegmentHeader",430],[13,"FailedToSubscribeArchivedSegments",430],[13,"MissingArchivedSegmentHeader",430],[13,"FarmTooLarge",434],[13,"InsufficientAllocatedSpace",434],[13,"WrongChain",434],[13,"IdentityMismatch",434],[13,"InvalidPiecesInSector",434],[13,"V0",449],[13,"FailedToDetermineFileSize",454],[13,"FailedToReadBytes",454],[13,"FailedToWriteBytes",454],[13,"FarmInfoCantBeOpened",454],[13,"IdentityCantBeOpened",454],[13,"MetadataCantBeOpened",454],[13,"CacheCantBeOpened",454],[13,"FarmInfoFileDoesNotExist",454],[13,"IdentityFileDoesNotExist",454],[13,"MetadataFileDoesNotExist",454],[13,"MetadataFileTooSmall",454],[13,"CacheFileDoesNotExist",454],[13,"PublicKeyMismatch",454],[13,"Found",481],[13,"NotFound",481],[13,"Error",481],[13,"OffsetOutsideOfRange",548]],"b":[[256,"impl-Debug-for-FarmingError"],[257,"impl-Display-for-FarmingError"],[258,"impl-Debug-for-PlottingError"],[259,"impl-Display-for-PlottingError"],[261,"impl-Debug-for-SingleDiskFarmId"],[262,"impl-Display-for-SingleDiskFarmId"],[264,"impl-Display-for-SingleDiskFarmError"],[265,"impl-Debug-for-SingleDiskFarmError"],[266,"impl-Display-for-SingleDiskFarmScrubError"],[267,"impl-Debug-for-SingleDiskFarmScrubError"],[268,"impl-Debug-for-BackgroundTaskError"],[269,"impl-Display-for-BackgroundTaskError"],[274,"impl-From%3CError%3E-for-FarmingError"],[275,"impl-From%3CThreadPoolBuildError%3E-for-FarmingError"],[276,"impl-From%3CProvingError%3E-for-FarmingError"],[279,"impl-From%3CError%3E-for-PlottingError"],[280,"impl-From%3CPlottingError%3E-for-PlottingError"],[286,"impl-From%3CError%3E-for-SingleDiskFarmError"],[287,"impl-From%3CDiskPieceCacheError%3E-for-SingleDiskFarmError"],[289,"impl-From%3CPlottingError%3E-for-BackgroundTaskError"],[291,"impl-From%3CFarmingError%3E-for-BackgroundTaskError"],[513,"impl-Display-for-DiskPieceCacheError"],[514,"impl-Debug-for-DiskPieceCacheError"],[515,"impl-Debug-for-Offset"],[516,"impl-Display-for-Offset"]]},\
"subspace_farmer_components":{"doc":"Components of the reference implementation of Subspace …","t":"DIDALLLLLLLLLLLLLLLALLLLMLLLLMMLAAKLLAMMALLLLLLLLLLLLLDFMLLLLLLLLLLLMLLLLLLIIKKKKKKKNNNNNIENNDENLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLMFMMMLLLLLLLLLLLLLLLLLLMMMMMMMMNNNNNIENDKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMNNNNNNDENLLLLLLMLLLLLLLLLLLLLLLLLFFFFMLLLLLLLLLLLLLMMMMMMMMMMMNDNNNNDEEEDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLMLLMMFFFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMM","n":["FarmerProtocolInfo","ReadAt","ReadAtOffset","auditing","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","drop","drop","file_ext","fmt","fmt","from","from","history_size","init","init","into","into","max_pieces_in_sector","min_sector_lifetime","offset","plotting","proving","read_at","read_at","read_at","reading","recent_history_fraction","recent_segments","sector","serialize","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unique_saturated_into","unique_saturated_into","vzip","vzip","AuditResult","audit_sector","best_solution_distance","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","into","solution_candidates","to_owned","try_from","try_into","type_id","unique_saturated_into","vzip","FileExt","OpenOptionsExt","advise_random_access","advise_random_access","advise_sequential_access","advise_sequential_access","preallocate","read_exact_at","write_all_at","BadSectorMetadataOutputSize","BadSectorOutputSize","FailedToRetrievePiece","InvalidErasureCodingInstance","Limited","PieceGetter","PieceGetterRetryPolicy","PieceNotFound","PieceRecoveryFailed","PlottedSector","PlottingError","Unlimited","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","eq","equivalent","fmt","fmt","fmt","fmt","from","from","from","get_piece","init","init","init","into","into","into","piece_indexes","plot_sector","sector_id","sector_index","sector_metadata","to_owned","to_owned","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unique_saturated_into","unique_saturated_into","unique_saturated_into","vzip","vzip","vzip","error","expected","expected","piece_index","piece_index","piece_index","provided","provided","FailedToCreateChunkWitness","FailedToCreatePolynomialForRecord","FailedToDecodeSectorContentsMap","InvalidErasureCodingInstance","Io","ProvableSolutions","ProvingError","RecordReadingError","SolutionCandidates","best_solution_distance","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","from","from","from","from","from","init","init","into","into","into_solutions","is_empty","len","source","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","unique_saturated_into","unique_saturated_into","vzip","vzip","chunk_offset","error","error","piece_offset","piece_offset","ChecksumMismatch","FailedToDecodeSectorContentsMap","FailedToErasureDecodeRecord","FailedToReadChunk","InvalidChunk","Io","PlotRecord","ReadingError","WrongRecordSizeAfterDecoding","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commitment","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","from","from","from","from","init","init","into","into","read_piece","read_sector_record_chunks","recover_extended_record_chunks","recover_source_record_chunks","scalars","source","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","unique_saturated_into","unique_saturated_into","vzip","vzip","witness","actual","chunk_location","chunk_location","encoded_chunk_used","error","error","error","expected","piece_offset","s_bucket","ChecksumMismatch","EncodedChunksUsed","InvalidBytesLength","InvalidBytesLength","InvalidEncodedRecordChunks","SBucketOutOfRange","SectorContentsMap","SectorContentsMapEncodeIntoError","SectorContentsMapFromBytesError","SectorContentsMapIterationError","SectorMetadata","SectorMetadataChecksummed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","decode","decode","decode_all","decode_all","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","encode","encode_into","encode_to","encode_to","encoded_size","encoded_size","eq","eq","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bytes","history_size","init","init","init","init","init","init","init","into","into","into","into","into","into","into","iter","iter_mut","iter_record_bitfields","iter_record_bitfields_mut","iter_record_chunk_to_plot","iter_s_bucket_encoded_record_chunks_used","iter_s_bucket_records","new","num_encoded_record_chunks","par_iter_record_chunk_to_plot","pieces_in_sector","s_bucket_offsets","s_bucket_sizes","s_bucket_sizes","sector_index","sector_record_chunks_size","sector_record_metadata_size","sector_size","size_hint","size_hint","to_keyed_vec","to_keyed_vec","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","using_encoded","vzip","vzip","vzip","vzip","vzip","vzip","vzip","actual","expected","actual","actual","expected","max","max","provided"],"q":[[0,"subspace_farmer_components"],[54,"subspace_farmer_components::auditing"],[75,"subspace_farmer_components::file_ext"],[84,"subspace_farmer_components::plotting"],[155,"subspace_farmer_components::plotting::PlottingError"],[163,"subspace_farmer_components::proving"],[213,"subspace_farmer_components::proving::ProvingError"],[218,"subspace_farmer_components::reading"],[270,"subspace_farmer_components::reading::ReadingError"],[280,"subspace_farmer_components::sector"],[462,"subspace_farmer_components::sector::SectorContentsMapEncodeIntoError"],[464,"subspace_farmer_components::sector::SectorContentsMapFromBytesError"],[468,"subspace_farmer_components::sector::SectorContentsMapIterationError"],[470,"core::clone"],[471,"core::result"],[472,"serde::de"],[473,"core::fmt"],[474,"core::fmt"],[475,"std::io::error"],[476,"serde::ser"],[477,"core::any"],[478,"subspace_core_primitives"],[479,"subspace_core_primitives"],[480,"subspace_core_primitives::pieces"],[481,"core::future::future"],[482,"alloc::boxed"],[483,"core::pin"],[484,"subspace_core_primitives::crypto::kzg"],[485,"subspace_erasure_coding"],[486,"alloc::vec"],[487,"alloc::string"],[488,"std::io::error"],[489,"core::error"],[490,"subspace_core_primitives::pieces"],[491,"subspace_proof_of_space"],[492,"core::iter::traits::exact_size"],[493,"parity_scale_codec::error"],[494,"parity_scale_codec::codec"],[495,"parity_scale_codec::codec"],[496,"core::iter::traits::iterator"],[497,"subspace_core_primitives::pieces"],[498,"alloc::alloc"],[499,"core::ops::function"]],"d":["Information about the protocol necessary for farmer …","Trait for reading data at specific offset","Reader with fixed offset added to all attempted reads","","","","","","","","","","","","","","","","","File extension trait","","","Returns the argument unchanged.","Returns the argument unchanged.","Size of the blockchain history","","","Calls U::from(self)
.","Calls U::from(self)
.","How many pieces one sector is supposed to contain (max)","Minimum lifetime of a plotted sector, measured in archived …","Get implementation of ReadAt
that add specified offset to …","","","Fill the buffer by reading bytes at a specific offset","","","","Fraction of pieces from the “recent history” (…","Number of latest archived segments that are considered “…","","","","","","","","","","","","","","","Result of sector audit","Audit a single sector and generate a stream of solutions, …","Best solution distance found","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self)
.","Solution candidates","","","","","","","Extension convenience trait that allows pre-allocating …","","Advise OS/file system that file will use random access and …","Advise OS/file system that file will use random access and …","Advise OS/file system that file will use sequential access …","Advise OS/file system that file will use sequential access …","Make sure file has specified number of bytes allocated for …","Read exact number of bytes at a specific offset","Write all provided bytes at a specific offset","Bad sector metadata output size","Bad sector output size","Failed to retrieve piece","Invalid erasure coding instance","Retry N times (including zero)","Duplicate trait for the …","Defines retry policy on error during piece acquiring.","Piece not found, can’t create sector, this should never …","Can’t recover missing piece","Information about sector that was plotted","Plotting status","No restrictions on retries","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Indexes of pieces that were plotted","Plot a single sector, where sector
and sector_metadata
…","Sector ID","Sector index","Sector metadata","","","","","","","","","","","","","","","","","","","Lower-level error","Expected size","Expected size","Piece index","Piece index","Piece index","Actual size","Actual size","Failed to create chunk witness","Failed to create polynomial for record","Failed to decode sector contents map","Invalid erasure coding instance","I/O error occurred","Solutions that can be proven if necessary","Errors that happen during proving","Record reading error","Container for solutions","Best solution distance found, None
in case iterator is …","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","","Returns true if no candidates inside","Total number of candidates","","","","","","","","","","","","","","Chunk index","Lower-level error","Lower-level error","Piece offset","Piece offset","Checksum mismatch","Failed to decode sector contents map","Failed to erasure-decode record","Failed to read chunk.","Invalid chunk, possible disk corruption","I/O error occurred","Record contained in the plot","Errors that happen during reading","Wrong record size after decoding","","","","","","","Record commitment","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","Read piece from sector","Read sector record chunks, only plotted s-buckets are …","Given sector record chunks recover extended record chunks …","Given sector record chunks recover source record chunks in …","Record scalars","","","","","","","","","","","","","","Record witness","Actual size in bytes","Chunk location","Chunk location","Indicates whether chunk was encoded","Low-level error","Lower-level error","Lower-level error","Expected size in bytes","Piece offset","S-bucket","Checksum mismatch","Wrapper data structure that allows to iterate mutably over …","Invalid bytes length","Invalid bytes length","Invalid number of encoded record chunks","S-bucket provided is out of range","Abstraction on top of bitfields that allow making sense of …","Error happening when trying to encode SectorContentsMap
…","Error happening when trying to create SectorContentsMap
…","Error happening when trying to create SectorContentsMap
…","Metadata of the plotted sector","Same as SectorMetadata
, but with checksums verified during …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Encode internal contents into output
","","","Size of encoded checksummed sector metadata.","Size of sector contents map when encoded and stored in the …","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Reconstruct sector contents map from bytes.","Size of the blockchain history at time of sector creation","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Produces an iterator over encoded chunks bitfields.","Produces a mutable iterator over encoded chunks bitfields.","Iterate over individual record bitfields","Iterate mutably over individual record bitfields","Creates an iterator of …","Iterate over chunks of s-bucket indicating if encoded …","Creates an iterator of (piece_offset, encoded_chunk_used)
, …","Create new sector contents map initialized with zeroes to …","Number of encoded chunks in each record","Creates an iterator of …","Number of pieces stored in this sector","Returns offsets of each s-bucket relatively to the …","Returns sizes of each s-bucket","S-bucket sizes in a sector","Sector index","Size of the part of the plot containing record chunks …","Size of the part of the plot containing record metadata.","Exact sector plot size (sector contents map, record …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Actual length","Expected length","Actual length","Actual number of encoded record chunks","Expected length","Max supported","Max s-bucket","Provided s-bucket"],"i":[0,0,0,0,1,3,1,3,1,3,1,3,1,3,1,3,3,1,3,0,1,3,1,3,3,1,3,1,3,3,3,15,0,0,15,1,1,0,3,3,0,3,1,3,1,3,1,3,1,3,1,3,1,3,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,72,73,72,73,73,73,73,29,29,29,29,26,0,0,29,29,0,0,26,26,27,29,26,27,29,26,27,26,27,26,26,27,29,26,27,29,26,27,29,26,26,26,27,29,29,26,27,29,38,26,27,29,26,27,29,27,0,27,27,27,26,27,29,26,27,29,26,27,29,26,27,29,26,27,29,26,27,29,74,75,76,77,78,74,75,76,41,41,41,41,41,0,0,41,0,45,41,40,41,40,40,40,41,40,41,40,41,40,41,41,40,41,41,41,41,40,41,40,41,40,40,40,40,41,40,41,41,40,41,40,41,40,41,40,41,40,79,80,79,80,79,44,44,44,44,44,44,0,0,44,44,49,44,49,49,49,49,44,49,44,49,44,49,44,44,49,44,44,44,49,44,49,44,49,0,0,0,0,49,44,49,44,44,49,44,49,44,49,44,49,44,49,49,81,82,83,83,82,83,84,81,84,83,42,0,42,60,42,61,0,0,0,0,0,0,64,59,22,42,60,61,55,64,59,22,42,60,61,55,59,22,42,60,61,55,59,22,42,60,61,55,59,22,59,22,59,22,59,22,64,59,22,22,42,60,61,55,64,59,22,22,42,60,61,55,64,64,59,22,42,60,61,55,22,55,59,22,22,55,42,60,61,42,60,61,59,22,42,42,60,60,61,61,55,64,59,22,22,42,60,61,55,55,59,64,59,22,42,60,61,55,64,59,22,42,60,61,55,64,64,55,55,55,55,55,55,55,55,59,59,55,59,59,0,0,0,59,22,59,22,59,22,42,60,61,55,42,60,61,64,59,22,42,60,61,55,64,59,22,42,60,61,55,64,59,22,42,60,61,55,64,59,22,42,60,61,55,22,64,59,22,42,60,61,55,85,85,86,87,86,87,88,88],"f":[0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[1,[-1]]],[[1,[-1]]],2],[3,3],[[-1,-2],4,[],[]],[[-1,-2],4,[],[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[6,[3]]],7],[5,4],[5,4],0,[[[1,[-1]],8],9,10],[[3,8],9],[-1,-1,[]],[-1,-1,[]],0,[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[-1,5],[[1,[-1]]],11],0,0,[[-1,[13,[12]],5],[[14,[4]]],[]],[[[1,[-1]],[13,[12]],5],[[14,[4]]],15],[[[1,[-1]],[13,[12]],5],[[14,[4]]],15],0,0,0,0,[[3,-1],6,16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,17,[]],[-1,17,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[18,19,20,21,-1,22],[[24,[[23,[-1]]]]],15],0,[-1,-2,[],[]],[-1,-2,[],[]],[[[23,[-1]]],[[23,[-1]]],2],[[-1,-2],4,[],[]],[5,-1,[]],[5,-1,[]],[5,4],[[[23,[-1]],8],9,10],[-1,-1,[]],[[],5],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,17,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-1,[]],[-1,[[14,[4]]],[]],[-1,-1,[]],[-1,[[14,[4]]],[]],[[-1,25],[[14,[4]]],[]],[[-1,[13,[12]],25],[[14,[4]]],[]],[[-1,[13,[12]],25],[[14,[4]]],[]],0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[26,26],[27,27],[[-1,-2],4,[],[]],[[-1,-2],4,[],[]],[[],26],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,4],[5,4],[5,4],[[26,26],28],[[-1,-2],28,[],[]],[[26,8],9],[[27,8],9],[[29,8],9],[[29,8],9],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[-1,30,26],[[33,[[32,[31]]]]],[]],[[],5],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[18,19,-1,26,3,34,35,36,[37,[12]],[37,[12]]],[[6,[27,29]]],38],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,39,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,17,[]],[-1,17,[]],[-1,17,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,[[24,[21]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[40,[-1]]],[[40,[-1]]],2],[[-1,-2],4,[],[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,4],[5,4],[[41,8],9],[[41,8],9],[[[40,[-1]],8],9,10],[-1,-1,[]],[42,41],[43,41],[44,41],[-1,-1,[]],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[[40,[-1]],-2,34,35,-3],[[6,[[0,[45]],41]]],15,46,47],[[[40,[-1]]],28,15],[[[40,[-1]]],5,15],[41,[[24,[48]]]],[-1,-2,[],[]],[-1,39,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,17,[]],[-1,17,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[49,49],[[-1,-2],4,[],[]],0,[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,4],[5,4],[[44,8],9],[[44,8],9],[[49,8],9],[43,44],[-1,-1,[]],[42,44],[-1,-1,[]],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[50,51,22,-1,35],[[6,[52,44]]],[15,11]],[[50,36,[54,[53]],55,-1,-2],[[6,[[32,[[54,[[24,[56]]]]]],44]]],57,[15,11]],[[[54,[[24,[56]]]],50,35],[[6,[[32,[[54,[56]]]],44]]]],[[[54,[[24,[56]]]],50,35],[[6,[[0,[58]],44]]]],0,[44,[[24,[48]]]],[-1,-2,[],[]],[-1,39,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,17,[]],[-1,17,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[59,59],[22,22],[42,42],[60,60],[61,61],[55,55],[[-1,-2],4,[],[]],[[-1,-2],4,[],[]],[[-1,-2],4,[],[]],[[-1,-2],4,[],[]],[[-1,-2],4,[],[]],[[-1,-2],4,[],[]],[-1,[[6,[59,62]]],63],[-1,[[6,[22,62]]],63],[[[13,[12]]],[[6,[-1,62]]],[]],[[[13,[12]]],[[6,[-1,62]]],[]],[[53,[13,[12]]],[[6,[-1,62]]],[]],[[53,[13,[12]]],[[6,[-1,62]]],[]],[[53,-1],[[6,[-2,62]]],63,[]],[[53,-1],[[6,[-2,62]]],63,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[22],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[22],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,4],[64,4],[5,4],[5,4],[5,4],[5,4],[5,4],[5,4],[22,[[37,[12]]]],[[55,[13,[12]]],[[6,[4,60]]]],[[59,-1],4,[65,11]],[[22,-1],4,[65,11]],[[],5],[36,5],[[42,42],28],[[60,60],28],[[61,61],28],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[59,8],9],[[22,8],9],[[42,8],9],[[42,8],9],[[60,8],9],[[60,8],9],[[61,8],9],[[61,8],9],[[55,8],9],[-1,-1,[]],[-1,-1,[]],[59,22],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[13,[12]],36],[[6,[55,42]]]],0,[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[64,[[0,[58]]]],[64,[[0,[58]]]],[55,[[13,[[66,[[54,[12]]]]]]]],[55,[[0,[58]]]],[[55,50],[[0,[67]]]],[[55,68],[[6,[[0,[67]],61]]]],[[55,68],[[6,[[0,[67]],61]]]],[36,55],[55,[[13,[68]]]],[[55,50],[[0,[69]]]],0,[59,[[32,[[54,[53]]]]]],[55,[[32,[[54,[36]]]]]],0,0,[36,5],[36,5],[36,5],[59,5],[22,5],[[-1,[13,[12]]],[[37,[12,70]]],[]],[[-1,[13,[12]]],[[37,[12,70]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,17,[]],[-1,17,[]],[-1,17,[]],[-1,17,[]],[-1,17,[]],[-1,17,[]],[-1,17,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[22,-1],-2,71,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0],"c":[],"p":[[3,"ReadAtOffset",0],[8,"Clone",470],[3,"FarmerProtocolInfo",0],[15,"tuple"],[15,"usize"],[4,"Result",471],[8,"Deserializer",472],[3,"Formatter",473],[6,"Result",473],[8,"Debug",473],[8,"Sized",474],[15,"u8"],[15,"slice"],[6,"Result",475],[8,"ReadAt",0],[8,"Serializer",476],[3,"TypeId",477],[3,"PublicKey",478],[6,"SectorIndex",478],[6,"Blake3Hash",478],[6,"SolutionRange",478],[3,"SectorMetadataChecksummed",280],[3,"AuditResult",54],[4,"Option",479],[15,"u64"],[4,"PieceGetterRetryPolicy",84],[3,"PlottedSector",84],[15,"bool"],[4,"PlottingError",84],[3,"PieceIndex",480],[8,"Future",481],[3,"Box",482],[3,"Pin",483],[3,"Kzg",484],[3,"ErasureCoding",485],[15,"u16"],[3,"Vec",486],[8,"PieceGetter",84],[3,"String",487],[3,"SolutionCandidates",163],[4,"ProvingError",163],[4,"SectorContentsMapFromBytesError",280],[3,"Error",475],[4,"ReadingError",218],[8,"ProvableSolutions",163],[8,"Copy",474],[8,"FnMut",488],[8,"Error",489],[3,"PlotRecord",218],[3,"PieceOffset",480],[3,"SectorId",478],[3,"Piece",480],[15,"u32"],[15,"array"],[3,"SectorContentsMap",280],[3,"Scalar",490],[8,"Table",491],[8,"ExactSizeIterator",492],[3,"SectorMetadata",280],[4,"SectorContentsMapEncodeIntoError",280],[4,"SectorContentsMapIterationError",280],[3,"Error",493],[8,"Input",494],[3,"EncodedChunksUsed",280],[8,"Output",494],[3,"BitArray",495],[8,"Iterator",496],[3,"SBucket",480],[8,"IndexedParallelIterator",497],[3,"Global",498],[8,"FnOnce",488],[8,"OpenOptionsExt",75],[8,"FileExt",75],[13,"FailedToRetrievePiece",155],[13,"BadSectorOutputSize",155],[13,"BadSectorMetadataOutputSize",155],[13,"PieceNotFound",155],[13,"PieceRecoveryFailed",155],[13,"FailedToCreateChunkWitness",213],[13,"FailedToCreatePolynomialForRecord",213],[13,"WrongRecordSizeAfterDecoding",270],[13,"FailedToReadChunk",270],[13,"InvalidChunk",270],[13,"FailedToErasureDecodeRecord",270],[13,"InvalidBytesLength",462],[13,"InvalidBytesLength",464],[13,"InvalidEncodedRecordChunks",464],[13,"SBucketOutOfRange",468]],"b":[[35,"impl-ReadAt-for-ReadAtOffset%3CT%3E"],[36,"impl-ReadAt-for-%26ReadAtOffset%3CT%3E"],[120,"impl-Display-for-PlottingError"],[121,"impl-Debug-for-PlottingError"],[185,"impl-Debug-for-ProvingError"],[186,"impl-Display-for-ProvingError"],[189,"impl-From%3CSectorContentsMapFromBytesError%3E-for-ProvingError"],[190,"impl-From%3CError%3E-for-ProvingError"],[191,"impl-From%3CReadingError%3E-for-ProvingError"],[240,"impl-Display-for-ReadingError"],[241,"impl-Debug-for-ReadingError"],[243,"impl-From%3CError%3E-for-ReadingError"],[245,"impl-From%3CSectorContentsMapFromBytesError%3E-for-ReadingError"],[364,"impl-Display-for-SectorContentsMapFromBytesError"],[365,"impl-Debug-for-SectorContentsMapFromBytesError"],[366,"impl-Debug-for-SectorContentsMapEncodeIntoError"],[367,"impl-Display-for-SectorContentsMapEncodeIntoError"],[368,"impl-Debug-for-SectorContentsMapIterationError"],[369,"impl-Display-for-SectorContentsMapIterationError"]]},\
"subspace_fraud_proof":{"doc":"Subspace fraud proof","t":"DILLLLLLLLLLLLLLLLLAALLLLLLLFALKLLDDILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLDILLLLLLLLLLLLLLLLLLLLLLLLLKLLIDLLLLLLLLLLLLLLLLLLKLKLLLLLLLKLKLL","n":["ProofVerifier","VerifyFraudProof","__clone_box","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","from","from_mut","from_mut","from_ref","from_ref","init","into","into_mut","into_ref","invalid_state_transition_proof","invalid_transaction_proof","new","to_owned","try_from","try_into","type_id","unchecked_into","unique_saturated_into","validate_fraud_proof_in_tx_pool","verifier_api","verify","verify_fraud_proof","verify_fraud_proof","vzip","ExecutionProver","InvalidStateTransitionProofVerifier","VerifyInvalidStateTransitionProof","__clone_box","borrow","borrow","borrow_mut","borrow_mut","check_execution_proof","clone","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","from","from","from_mut","from_mut","from_mut","from_mut","from_ref","from_ref","from_ref","from_ref","init","init","into","into","into_mut","into_mut","into_ref","into_ref","new","new","prove_execution","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unchecked_into","unchecked_into","unique_saturated_into","unique_saturated_into","verify","verify_invalid_state_transition_proof","verify_invalid_state_transition_proof","vzip","vzip","InvalidTransactionProofVerifier","VerifyInvalidTransactionProof","__clone_box","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","from","from_mut","from_mut","from_ref","from_ref","init","into","into_mut","into_ref","new","to_owned","try_from","try_into","type_id","unchecked_into","unique_saturated_into","verify","verify_invalid_transaction_proof","verify_invalid_transaction_proof","vzip","VerifierApi","VerifierClient","__clone_box","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","from","from_mut","from_mut","from_ref","from_ref","init","into","into_mut","into_ref","new","primary_hash","primary_hash","state_root","state_root","to_owned","try_from","try_into","type_id","unchecked_into","unique_saturated_into","verify_post_state_root","verify_post_state_root","verify_pre_state_root","verify_pre_state_root","vzip"],"q":[[0,"subspace_fraud_proof"],[34,"subspace_fraud_proof::invalid_state_transition_proof"],[88,"subspace_fraud_proof::invalid_transaction_proof"],[118,"subspace_fraud_proof::verifier_api"],[153,"dyn_clone::sealed"],[154,"alloc::sync"],[155,"sp_runtime::traits"],[156,"core::result"],[157,"core::any"],[158,"sp_core::traits"],[159,"sp_runtime::traits"],[160,"sp_domains::fraud_proof"],[161,"sp_domains::fraud_proof"],[162,"sp_trie::storage_proof"],[163,"alloc::vec"],[164,"sp_blockchain::error"],[165,"sc_client_api::backend"],[166,"sp_core::traits"],[167,"sp_api"],[168,"core::marker"],[169,"parity_scale_codec::codec"],[170,"sp_runtime::traits"],[171,"hash_db"],[172,"sp_domains::fraud_proof"],[173,"sp_domains::fraud_proof"],[174,"domain_runtime_primitives"]],"d":["Fraud proof verifier.","Verify fraud proof.","","","","","","","","","Returns the argument unchanged.","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","Calls U::from(self)
.","","","Invalid state transition proof","Invalid transaction proof.","Constructs a new instance of ProofVerifier
.","","","","","","","Verifies the fraud proof extracted from extrinsic in the …","This module derives an trait VerifierApi
from the runtime …","Verifies the fraud proof.","Verifies fraud proof.","","","Creates storage proof for verifying an execution without …","Invalid state transition proof verifier.","Verifies invalid state transition proof.","","","","","","Runs the execution using the partial state constructed …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Get a mutable reference to the inner from the outer.","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","Get a reference to the inner from the outer.","","","","Calls U::from(self)
.","Calls U::from(self)
.","","","","","Constructs a new instance of ExecutionProver
.","Constructs a new instance of …","Returns a storage proof which can be used to reconstruct a …","","","","","","","","","","","","Verifies the invalid state transition proof.","Returns Ok(())
if given invalid_state_transition_proof
is …","","","","Invalid transaction proof verifier.","Verifies invalid transaction proof.","","","","","","","","","Returns the argument unchanged.","","Get a mutable reference to the inner from the outer.","Get a reference to the inner from the outer.","","","Calls U::from(self)
.","","","Constructs a new instance of …","","","","","","","Verifies the invalid transaction proof.","Returns Ok(())
if given invalid_transaction_proof
is …","","","This trait abstracts convenient APIs for the fraud proof …","A wrapper of primary chain client/system domain client in …","","","","","","","","","Returns the argument unchanged.","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","Calls U::from(self)
.","","","Constructs a new instance of VerifierClient
.","Returns the hash of primary block at height …","","Returns the state root of specified domain block.","","","","","","","","Verifies whether post_state_root
declared in the proof is …","","Verifies whether pre_state_root
declared in the proof is …","",""],"i":[0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,0,0,3,15,3,3,0,0,0,27,17,27,17,27,17,27,27,17,27,17,27,17,27,17,27,17,17,27,27,17,17,27,27,17,27,17,27,17,27,17,27,17,27,17,27,17,27,17,27,17,27,17,27,17,27,27,7,27,17,27,0,0,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,6,39,39,0,0,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,31,42,31,42,42,42,42,42,42,42,31,42,31,42,42],"f":[0,0,[[-1,1],2,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[3,[-1,-2,-3]]],[[3,[-1,-2,-3]]],[],[],[]],[[-1,-2],2,[],[]],[4,-1,[]],[4,-1,[]],[4,2],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[[],4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[5,[-1]],[5,[-2]]],[[3,[-3,-1,-2]]],6,7,8],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,10,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[11,-2,[13,[[12,[-1]]]]],[[9,[2,14]]],8,[[15,[-1]],16]],0,[[[3,[-1,-2,-3]],[13,[[12,[-1]]]]],[[9,[2,14]]],8,6,7],[[-1,[13,[[12,[-2]]]]],[[9,[2,14]]],[],[]],[[[3,[-1,-2,-3]],[13,[[12,[-1]]]]],[[9,[2,14]]],8,6,7],[-1,-2,[],[]],0,0,0,[[-1,1],2,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[17,[-1,-2,-3]],18,[20,[19]],21,22],[[24,[[23,[19]]]]],8,[[25,[-1]]],26],[[[27,[-1,-2,-3,-4,-5]]],[[27,[-1,-2,-3,-4,-5]]],[],[],28,[],28],[[-1,-2],2,[],[]],[4,-1,[]],[4,-1,[]],[4,-1,[]],[4,-1,[]],[4,2],[4,2],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[[],4],[[],4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[5,[-2]],[5,[-3]]],[[17,[-1,-2,-3]]],8,[[25,[-1]]],26],[[[5,[-2]],-3,-4],[[27,[-1,-2,-3,-5,-4]]],8,[[29,[-1]],16,30],[26,28],31,[32,33]],[[[17,[-1,-2,-3]],18,[20,[19]],[34,[[2,[-4]]]]],[[24,[22]]],8,[[25,[-1]]],26,[[37,[[35,[-1]],36]]]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,10,[]],[-1,10,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[27,[-1,-2,-3,-4,-5]],38],[[9,[2,14]]],8,[[29,[-1]],16,30],[26,28],[32,33],31],[[-1,38],[[9,[2,14]]],[]],[[[27,[-1,-2,-3,-4,-5]],38],[[9,[2,14]]],8,[[29,[-1]],16,30],[26,28],[32,33],31],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[-1,1],2,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[39,[-1,-2,-3,-4,-5]]],[[39,[-1,-2,-3,-4,-5]]],[],[],[],[],28],[[-1,-2],2,[],[]],[4,-1,[]],[4,-1,[]],[4,2],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[[],4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[5,[-2]],[5,[-3]],-4],[[39,[-1,-2,-5,-3,-4]]],8,[[40,[-1]],[29,[-1]],16,30],26,31,[32,33]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,10,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[39,[-1,-2,-3,-4,-5]],41],[[9,[2,14]]],8,[[40,[-1]],[29,[-1]],16,30],[32,33],26,31],[[-1,41],[[9,[2,14]]],[]],[[[39,[-1,-2,-3,-4,-5]],41],[[9,[2,14]]],8,[[40,[-1]],[29,[-1]],16,30],[32,33],26,31],[-1,-2,[],[]],0,0,[[-1,1],2,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[42,[-1,-2]]],[[42,[-1,-2]]],[],[]],[[-1,-2],2,[],[]],[4,-1,[]],[4,-1,[]],[4,2],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[[],4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[5,[-1]]],[[42,[-1,-2]]],[],[]],[[-1,43,44],[[9,[21,14]]],[]],[[[42,[-2,-1]],43,44],[[9,[21,14]]],8,[[29,[-1]],[40,[-1]]]],[[-1,43,44,21],[[9,[45,14]]],[]],[[[42,[-2,-1]],43,44,21],[[9,[45,14]]],8,[[29,[-1]],[40,[-1]]]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,10,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,38],[[9,[2,14]]],[]],[[[42,[-2,-1]],38],[[9,[2,14]]],8,[[29,[-1]],[40,[-1]]]],[[-1,38],[[9,[2,14]]],[]],[[[42,[-2,-1]],38],[[9,[2,14]]],8,[[29,[-1]],[40,[-1]]]],[-1,-2,[],[]]],"c":[],"p":[[3,"Private",153],[15,"tuple"],[3,"ProofVerifier",0],[15,"usize"],[3,"Arc",154],[8,"VerifyInvalidTransactionProof",88],[8,"VerifyInvalidStateTransitionProof",34],[8,"Block",155],[4,"Result",156],[3,"TypeId",157],[8,"SpawnNamed",158],[6,"NumberFor",155],[4,"FraudProof",159],[4,"VerificationError",159],[8,"VerifyFraudProof",0],[8,"Send",160],[3,"ExecutionProver",34],[4,"ExecutionPhase",159],[15,"u8"],[15,"slice"],[3,"H256",161],[3,"StorageProof",162],[3,"Vec",163],[6,"Result",164],[8,"Backend",165],[8,"CodeExecutor",158],[3,"InvalidStateTransitionProofVerifier",34],[8,"Clone",166],[8,"ProvideRuntimeApi",167],[8,"Sync",160],[8,"VerifierApi",118],[8,"Encode",168],[8,"Decode",168],[4,"Option",169],[6,"HashingFor",155],[6,"DBValue",170],[8,"HashDB",171],[3,"InvalidStateTransitionProof",159],[3,"InvalidTransactionProofVerifier",88],[8,"HeaderBackend",172],[3,"InvalidTransactionProof",159],[3,"VerifierClient",118],[3,"DomainId",173],[15,"u32"],[6,"Hash",174]],"b":[]},\
"subspace_metrics":{"doc":"This Rust module serves as a bridge between two different …","t":"NNENLLLLLLLLDLFLLLLLLLL","n":["Both","Libp2p","RegistryAdapter","Substrate","borrow","borrow","borrow_mut","borrow_mut","from","from","into","into","metrics","register","start_prometheus_metrics_server","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":[[0,"subspace_metrics"],[23,"actix_web::config"],[24,"core::net::socket_addr"],[25,"alloc::vec"],[26,"core::future::future"],[27,"std::io::error"],[28,"core::result"],[29,"core::any"]],"d":["We use both Substrate and Libp2p metrics registries.","Uses only the Libp2p metrics registry.","An metrics registry adapter for Libp2p and Substrate …","Uses only the Substrate metrics registry.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self)
.","Calls U::from(self)
.","","","Start prometheus metrics server on the provided address.","","","","","","","",""],"i":[6,6,0,6,6,1,6,1,6,1,6,1,0,1,0,6,1,6,1,6,1,6,1],"f":[0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[1,2],3],[[[5,[4]],6],[[8,[[0,[7]]]]]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,10,[]],[-1,10,[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[3,"metrics",0],[3,"AppService",23],[15,"tuple"],[4,"SocketAddr",24],[3,"Vec",25],[4,"RegistryAdapter",0],[8,"Future",26],[6,"Result",27],[4,"Result",28],[3,"TypeId",29]],"b":[]},\
diff --git a/src/subspace_farmer/single_disk_farm.rs.html b/src/subspace_farmer/single_disk_farm.rs.html
index 92dccf9470..ba8ce7a23e 100644
--- a/src/subspace_farmer/single_disk_farm.rs.html
+++ b/src/subspace_farmer/single_disk_farm.rs.html
@@ -1808,6 +1808,20 @@
1808
1809
1810
+1811
+1812
+1813
+1814
+1815
+1816
+1817
+1818
+1819
+1820
+1821
+1822
+1823
+1824
mod farming;
pub mod piece_cache;
pub mod piece_reader;
@@ -2335,8 +2349,21 @@
type HandlerFn<A> = Arc<dyn Fn(&A) + Send + Sync + 'static>;
type Handler<A> = Bag<HandlerFn<A>, A>;
+/// Details about sector currently being plotted
+pub struct SectorPlottingDetails {
+ /// Sector index
+ pub sector_index: SectorIndex,
+ /// Progress so far in % (not including this sector)
+ pub progress: f32,
+ /// Whether sector is being replotted
+ pub replotting: bool,
+ /// Whether this is the last sector queued so far
+ pub last_queued: bool,
+}
+
#[derive(Default, Debug)]
struct Handlers {
+ sector_plotting: Handler<SectorPlottingDetails>,
sector_plotted: Handler<(PlottedSector, Option<PlottedSector>)>,
solution: Handler<SolutionResponse>,
}
@@ -2715,7 +2742,6 @@
erasure_coding,
handlers,
modifying_sector_index,
- target_sector_count,
sectors_to_plot_receiver,
plotting_thread_pool,
replotting_thread_pool,
@@ -2972,9 +2998,11 @@
}
/// Subscribe to sector plotting notification
- ///
- /// Plotting permit is given such that it can be dropped later by the implementation is
- /// throttling of the plotting process is desired.
+ pub fn on_sector_plotting(&self, callback: HandlerFn<SectorPlottingDetails>) -> HandlerId {
+ self.handlers.sector_plotting.add(callback)
+ }
+
+ /// Subscribe to notification about plotted sectors
pub fn on_sector_plotted(
&self,
callback: HandlerFn<(PlottedSector, Option<PlottedSector>)>,
diff --git a/src/subspace_farmer/single_disk_farm/plotting.rs.html b/src/subspace_farmer/single_disk_farm/plotting.rs.html
index 5f18eeceba..3a3f51aae5 100644
--- a/src/subspace_farmer/single_disk_farm/plotting.rs.html
+++ b/src/subspace_farmer/single_disk_farm/plotting.rs.html
@@ -663,8 +663,42 @@
663
664
665
+666
+667
+668
+669
+670
+671
+672
+673
+674
+675
+676
+677
+678
+679
+680
+681
+682
+683
+684
+685
+686
+687
+688
+689
+690
+691
+692
+693
+694
+695
+696
+697
+698
use crate::single_disk_farm::{
- BackgroundTaskError, Handlers, PlotMetadataHeader, RESERVED_PLOT_METADATA,
+ BackgroundTaskError, Handlers, PlotMetadataHeader, SectorPlottingDetails,
+ RESERVED_PLOT_METADATA,
};
use crate::{node_client, NodeClient};
use async_lock::RwLock;
@@ -705,6 +739,15 @@
/// Get piece retry attempts number.
const PIECE_GETTER_RETRY_NUMBER: NonZeroU16 = NonZeroU16::new(4).expect("Not zero; qed");
+pub(super) struct SectorToPlot {
+ sector_index: SectorIndex,
+ /// Progress so far in % (not including this sector)
+ progress: f32,
+ /// Whether this is the last sector queued so far
+ last_queued: bool,
+ acknowledgement_sender: oneshot::Sender<()>,
+}
+
/// Errors that happen during plotting
#[derive(Debug, Error)]
pub enum PlottingError {
@@ -755,8 +798,7 @@
pub(super) erasure_coding: ErasureCoding,
pub(super) handlers: Arc<Handlers>,
pub(super) modifying_sector_index: Arc<RwLock<Option<SectorIndex>>>,
- pub(super) target_sector_count: u16,
- pub(super) sectors_to_plot_receiver: mpsc::Receiver<(SectorIndex, oneshot::Sender<()>)>,
+ pub(super) sectors_to_plot_receiver: mpsc::Receiver<SectorToPlot>,
pub(super) plotting_thread_pool: Arc<ThreadPool>,
pub(super) replotting_thread_pool: Arc<ThreadPool>,
}
@@ -788,7 +830,6 @@
erasure_coding,
handlers,
modifying_sector_index,
- target_sector_count,
mut sectors_to_plot_receiver,
plotting_thread_pool,
replotting_thread_pool,
@@ -796,8 +837,13 @@
let mut table_generator = PosTable::generator();
// TODO: Concurrency
- while let Some((sector_index, _acknowledgement_sender)) = sectors_to_plot_receiver.next().await
- {
+ while let Some(sector_to_plot) = sectors_to_plot_receiver.next().await {
+ let SectorToPlot {
+ sector_index,
+ progress,
+ last_queued,
+ acknowledgement_sender: _acknowledgement_sender,
+ } = sector_to_plot;
trace!(%sector_index, "Preparing to plot sector");
let maybe_old_sector_metadata = sectors_metadata
@@ -808,11 +854,20 @@
let replotting = maybe_old_sector_metadata.is_some();
if replotting {
- debug!(%sector_index, "Replotting sector");
+ info!(%sector_index, "Replotting sector ({progress:.2}% complete)");
} else {
- debug!(%sector_index, "Plotting sector");
+ info!(%sector_index, "Plotting sector ({progress:.2}% complete)");
}
+ handlers
+ .sector_plotting
+ .call_simple(&SectorPlottingDetails {
+ sector_index,
+ progress,
+ replotting,
+ last_queued,
+ });
+
// This `loop` is a workaround for edge-case in local setup if expiration is configured to
// 1. In that scenario we get replotting notification essentially straight from block import
// pipeline of the node, before block is imported. This can result in subsequent request for
@@ -937,13 +992,15 @@
modifying_sector_index.write().await.take();
if replotting {
- info!(%sector_index, "Sector replotted successfully");
+ debug!(%sector_index, "Sector replotted successfully");
+ if last_queued {
+ info!("Replotting complete");
+ }
} else {
- info!(
- %sector_index,
- "Sector plotted successfully ({:.2}%)",
- (sector_index + 1) as f32 / target_sector_count as f32 * 100.0
- );
+ debug!(%sector_index, "Sector plotted successfully");
+ if last_queued {
+ info!("Initial plotting complete");
+ }
}
handlers
@@ -962,7 +1019,7 @@
pub(super) min_sector_lifetime: HistorySize,
pub(super) node_client: NC,
pub(super) sectors_metadata: Arc<RwLock<Vec<SectorMetadataChecksummed>>>,
- pub(super) sectors_to_plot_sender: mpsc::Sender<(SectorIndex, oneshot::Sender<()>)>,
+ pub(super) sectors_to_plot_sender: mpsc::Sender<SectorToPlot>,
}
pub(super) async fn plotting_scheduler<NC>(
@@ -1080,8 +1137,8 @@
async fn pause_plotting_if_node_not_synced<NC>(
node_client: &NC,
- sectors_to_plot_proxy_receiver: mpsc::Receiver<(SectorIndex, oneshot::Sender<()>)>,
- mut sectors_to_plot_sender: mpsc::Sender<(SectorIndex, oneshot::Sender<()>)>,
+ sectors_to_plot_proxy_receiver: mpsc::Receiver<SectorToPlot>,
+ mut sectors_to_plot_sender: mpsc::Sender<SectorToPlot>,
) -> Result<(), BackgroundTaskError>
where
NC: NodeClient,
@@ -1159,7 +1216,7 @@
sectors_metadata: Arc<RwLock<Vec<SectorMetadataChecksummed>>>,
last_archived_segment: &Atomic<SegmentHeader>,
mut archived_segments_receiver: mpsc::Receiver<()>,
- mut sectors_to_plot_sender: mpsc::Sender<(SectorIndex, oneshot::Sender<()>)>,
+ mut sectors_to_plot_sender: mpsc::Sender<SectorToPlot>,
) -> Result<(), BackgroundTaskError>
where
NC: NodeClient,
@@ -1168,7 +1225,12 @@
for sector_index in sectors_indices_left_to_plot {
let (acknowledgement_sender, acknowledgement_receiver) = oneshot::channel();
if let Err(error) = sectors_to_plot_sender
- .send((sector_index, acknowledgement_sender))
+ .send(SectorToPlot {
+ sector_index,
+ progress: sector_index as f32 / target_sector_count as f32 * 100.0,
+ last_queued: sector_index + 1 == target_sector_count,
+ acknowledgement_sender,
+ })
.await
{
warn!(%error, "Failed to send sector index for initial plotting");
@@ -1307,10 +1369,16 @@
}
}
- for sector_index in sector_indices_to_replot.iter() {
+ let sectors_queued = sector_indices_to_replot.len();
+ for (index, sector_index) in sector_indices_to_replot.drain(..).enumerate() {
let (acknowledgement_sender, acknowledgement_receiver) = oneshot::channel();
if let Err(error) = sectors_to_plot_sender
- .send((*sector_index, acknowledgement_sender))
+ .send(SectorToPlot {
+ sector_index,
+ progress: index as f32 / sectors_queued as f32 * 100.0,
+ last_queued: index + 1 == sectors_queued,
+ acknowledgement_sender,
+ })
.await
{
warn!(%error, "Failed to send sector index for replotting");
@@ -1320,10 +1388,8 @@
// We do not care if message was sent back or sender was just dropped
let _ = acknowledgement_receiver.await;
- sectors_expire_at.remove(sector_index);
+ sectors_expire_at.remove(§or_index);
}
-
- sector_indices_to_replot.clear();
}
Ok(())
diff --git a/subspace_archiving/archiver/enum.ArchiverInstantiationError.html b/subspace_archiving/archiver/enum.ArchiverInstantiationError.html
index 5c27ecf2c2..b710092359 100644
--- a/subspace_archiving/archiver/enum.ArchiverInstantiationError.html
+++ b/subspace_archiving/archiver/enum.ArchiverInstantiationError.html
@@ -1,13 +1,13 @@
ArchiverInstantiationError in subspace_archiving::archiver - Rust pub enum ArchiverInstantiationError {
FailedToInitializeErasureCoding(String),
- InvalidLastArchivedBlock(BlockNumber),
+ InvalidLastArchivedBlock(BlockNumber),
InvalidBlockSmallSize {
block_bytes: u32,
archived_block_bytes: u32,
},
}
Expand description
Archiver instantiation error
Variants§
§FailedToInitializeErasureCoding(String)
Failed to initialize erasure coding
-§InvalidLastArchivedBlock(BlockNumber)
Invalid last archived block, its size is the same as encoded block
+§InvalidLastArchivedBlock(BlockNumber)
Invalid last archived block, its size is the same as encoded block
§InvalidBlockSmallSize
Fields
Invalid block, its size is smaller than already archived number of bytes
diff --git a/subspace_archiving/archiver/enum.SegmentItem.html b/subspace_archiving/archiver/enum.SegmentItem.html
index dcbcea205c..e6db9d12bc 100644
--- a/subspace_archiving/archiver/enum.SegmentItem.html
+++ b/subspace_archiving/archiver/enum.SegmentItem.html
@@ -12,7 +12,7 @@
bytes: Vec<u8>,
/* private fields */
},
- ParentSegmentHeader(SegmentHeader),
+ ParentSegmentHeader(SegmentHeader),
}Expand description
Kinds of items that are contained within a segment
Variants§
§Padding
Special dummy enum variant only used as an implementation detail for padding purposes
§Block
Contains the beginning of the block inside, remainder will be found in subsequent segments
§BlockContinuation
Continuation of the partial block spilled over into the next segment
-§ParentSegmentHeader(SegmentHeader)
Segment header of the parent
+§ParentSegmentHeader(SegmentHeader)
Segment header of the parent
Trait Implementations§
source§impl Clone for SegmentItem
source§fn clone(&self) -> SegmentItem
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresource§impl Debug for SegmentItem
source§impl Decode for SegmentItem
source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
Attempt to deserialise the value from input.§fn decode_into<I>(
diff --git a/subspace_archiving/archiver/fn.is_piece_valid.html b/subspace_archiving/archiver/fn.is_piece_valid.html
index 13279efaab..7124eb0ec4 100644
--- a/subspace_archiving/archiver/fn.is_piece_valid.html
+++ b/subspace_archiving/archiver/fn.is_piece_valid.html
@@ -1,7 +1,7 @@
is_piece_valid in subspace_archiving::archiver - Rust Function subspace_archiving::archiver::is_piece_valid
source · pub fn is_piece_valid(
- kzg: &Kzg,
- piece: &PieceArray,
- segment_commitment: &SegmentCommitment,
+ kzg: &Kzg,
+ piece: &PieceArray,
+ segment_commitment: &SegmentCommitment,
position: u32
) -> bool
Expand description
Validate witness embedded within a piece produced by archiver
\ No newline at end of file
diff --git a/subspace_archiving/archiver/fn.is_record_commitment_hash_valid.html b/subspace_archiving/archiver/fn.is_record_commitment_hash_valid.html
index ba437d5cf9..a54d6d726d 100644
--- a/subspace_archiving/archiver/fn.is_record_commitment_hash_valid.html
+++ b/subspace_archiving/archiver/fn.is_record_commitment_hash_valid.html
@@ -1,8 +1,8 @@
is_record_commitment_hash_valid in subspace_archiving::archiver - Rust pub fn is_record_commitment_hash_valid(
- kzg: &Kzg,
- record_commitment_hash: &Scalar,
- commitment: &SegmentCommitment,
- witness: &RecordWitness,
+ kzg: &Kzg,
+ record_commitment_hash: &Scalar,
+ commitment: &SegmentCommitment,
+ witness: &RecordWitness,
position: u32
) -> bool
Expand description
Validate witness for record commitment hash produced by archiver
\ No newline at end of file
diff --git a/subspace_archiving/archiver/struct.Archiver.html b/subspace_archiving/archiver/struct.Archiver.html
index 936b831729..627b35cde8 100644
--- a/subspace_archiving/archiver/struct.Archiver.html
+++ b/subspace_archiving/archiver/struct.Archiver.html
@@ -1,27 +1,27 @@
Archiver in subspace_archiving::archiver - Rust Struct subspace_archiving::archiver::Archiver
source · pub struct Archiver { /* private fields */ }
Expand description
Block archiver for Subspace blockchain.
It takes new confirmed (at K
depth) blocks and concatenates them into a buffer, buffer is
-sliced into segments of [RecordedHistorySegment::SIZE
] size, segments are sliced into source
-records of [RawRecord::SIZE
], records are erasure coded, committed to with [Kzg
], then
+sliced into segments of RecordedHistorySegment::SIZE
size, segments are sliced into source
+records of RawRecord::SIZE
, records are erasure coded, committed to with Kzg
, then
commitments with witnesses are appended and records become pieces that are returned alongside
corresponding segment header header.
Panics
Panics when operating on blocks, whose length doesn’t fit into u32 (should never be the case in
blockchain context anyway).
-Implementations§
source§impl Archiver
sourcepub fn new(kzg: Kzg) -> Result<Self, ArchiverInstantiationError>
Create a new instance with specified record size and recorded history segment size.
+Implementations§
source§impl Archiver
sourcepub fn new(kzg: Kzg) -> Result<Self, ArchiverInstantiationError>
Create a new instance with specified record size and recorded history segment size.
Note: this is the only way to instantiate object archiver, while block archiver can be
instantiated with BlockArchiver::with_initial_state()
in case of restarts.
sourcepub fn with_initial_state(
- kzg: Kzg,
- segment_header: SegmentHeader,
+ kzg: Kzg,
+ segment_header: SegmentHeader,
encoded_block: &[u8],
- object_mapping: BlockObjectMapping
+ object_mapping: BlockObjectMapping
) -> Result<Self, ArchiverInstantiationError>
Create a new instance of the archiver with initial state in case of restart.
block
corresponds to last_archived_block
and will be processed accordingly to its state.
-sourcepub fn last_archived_block_number(&self) -> Option<BlockNumber>
Get last archived block if there was any
+sourcepub fn last_archived_block_number(&self) -> Option<BlockNumber>
Get last archived block if there was any
sourcepub fn add_block(
&mut self,
bytes: Vec<u8>,
- object_mapping: BlockObjectMapping,
+ object_mapping: BlockObjectMapping,
incremental: bool
) -> Vec<NewArchivedSegment>
Adds new block to internal buffer, potentially producing pieces and segment header headers.
Incremental archiving can be enabled if amortized block addition cost is preferred over
diff --git a/subspace_archiving/archiver/struct.NewArchivedSegment.html b/subspace_archiving/archiver/struct.NewArchivedSegment.html
index 09a4571109..4410102c15 100644
--- a/subspace_archiving/archiver/struct.NewArchivedSegment.html
+++ b/subspace_archiving/archiver/struct.NewArchivedSegment.html
@@ -1,12 +1,12 @@
NewArchivedSegment in subspace_archiving::archiver - Rust Struct subspace_archiving::archiver::NewArchivedSegment
source · pub struct NewArchivedSegment {
- pub segment_header: SegmentHeader,
- pub pieces: ArchivedHistorySegment,
- pub object_mapping: Vec<PieceObjectMapping>,
+ pub segment_header: SegmentHeader,
+ pub pieces: ArchivedHistorySegment,
+ pub object_mapping: Vec<PieceObjectMapping>,
}
Expand description
Newly archived segment as a combination of segment header hash, segment index and corresponding
archived history segment containing pieces
-Fields§
§segment_header: SegmentHeader
Segment header
-§pieces: ArchivedHistorySegment
Segment of archived history containing pieces
-§object_mapping: Vec<PieceObjectMapping>
Mappings for objects stored in corresponding pieces.
+Fields§
§segment_header: SegmentHeader
Segment header
+§pieces: ArchivedHistorySegment
Segment of archived history containing pieces
+§object_mapping: Vec<PieceObjectMapping>
Mappings for objects stored in corresponding pieces.
NOTE: Only half (source pieces) will have corresponding mapping item in this Vec
.
Trait Implementations§
source§impl Clone for NewArchivedSegment
source§fn clone(&self) -> NewArchivedSegment
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresource§impl Debug for NewArchivedSegment
source§impl Decode for NewArchivedSegment
source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
diff --git a/subspace_archiving/piece_reconstructor/struct.PiecesReconstructor.html b/subspace_archiving/piece_reconstructor/struct.PiecesReconstructor.html
index 461d7c0adb..b782b9061e 100644
--- a/subspace_archiving/piece_reconstructor/struct.PiecesReconstructor.html
+++ b/subspace_archiving/piece_reconstructor/struct.PiecesReconstructor.html
@@ -1,15 +1,15 @@
PiecesReconstructor in subspace_archiving::piece_reconstructor - Rust pub struct PiecesReconstructor { /* private fields */ }
Expand description
Reconstructor helps to retrieve blocks from archived pieces.
-Implementations§
source§impl PiecesReconstructor
sourcepub fn new(kzg: Kzg) -> Result<Self, ReconstructorInstantiationError>
sourcepub fn reconstruct_segment(
+
Implementations§
source§impl PiecesReconstructor
sourcepub fn new(kzg: Kzg) -> Result<Self, ReconstructorInstantiationError>
sourcepub fn reconstruct_segment(
&self,
- segment_pieces: &[Option<Piece>]
-) -> Result<ArchivedHistorySegment, ReconstructorError>
Returns all the pieces for a segment using given set of pieces of a segment of the archived
+ segment_pieces: &[Option<Piece>]
+) -> Result<ArchivedHistorySegment, ReconstructorError>
Returns all the pieces for a segment using given set of pieces of a segment of the archived
history (any half of all pieces are required to be present, the rest will be recovered
automatically due to use of erasure coding if needed).
sourcepub fn reconstruct_piece(
&self,
- segment_pieces: &[Option<Piece>],
+ segment_pieces: &[Option<Piece>],
piece_position: usize
-) -> Result<Piece, ReconstructorError>
Returns the missing piece for a segment using given set of pieces of a segment of the archived
+) -> Result<Piece, ReconstructorError>
Returns the missing piece for a segment using given set of pieces of a segment of the archived
history (any half of all pieces are required to be present).
Trait Implementations§
source§impl Clone for PiecesReconstructor
source§fn clone(&self) -> PiecesReconstructor
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moreAuto Trait Implementations§
§impl !RefUnwindSafe for PiecesReconstructor
§impl Send for PiecesReconstructor
§impl Sync for PiecesReconstructor
§impl Unpin for PiecesReconstructor
§impl !UnwindSafe for PiecesReconstructor
Blanket Implementations§
source§impl<T> Borrow<T> for Twhere
diff --git a/subspace_archiving/reconstructor/enum.ReconstructorError.html b/subspace_archiving/reconstructor/enum.ReconstructorError.html
index 1b4335b82b..67a679266a 100644
--- a/subspace_archiving/reconstructor/enum.ReconstructorError.html
+++ b/subspace_archiving/reconstructor/enum.ReconstructorError.html
@@ -2,13 +2,13 @@
DataShardsReconstruction(String),
SegmentDecoding(Error),
IncorrectSegmentOrder {
- expected_segment_index: SegmentIndex,
- actual_segment_index: SegmentIndex,
+ expected_segment_index: SegmentIndex,
+ actual_segment_index: SegmentIndex,
},
}Expand description
Reconstructor-related instantiation error
Variants§
§DataShardsReconstruction(String)
Error during data shards reconstruction
§SegmentDecoding(Error)
Segment size is not bigger than record size
-§IncorrectSegmentOrder
Incorrect segment order, each next segment must have monotonically increasing segment index
+§IncorrectSegmentOrder
Incorrect segment order, each next segment must have monotonically increasing segment index
Trait Implementations§
source§impl Clone for ReconstructorError
source§fn clone(&self) -> ReconstructorError
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresource§impl Debug for ReconstructorError
source§impl Display for ReconstructorError
source§impl Error for ReconstructorError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more1.0.0 · source§fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()source§impl PartialEq<ReconstructorError> for ReconstructorError
source§fn eq(&self, other: &ReconstructorError) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
.source§impl StructuralPartialEq for ReconstructorError
Auto Trait Implementations§
§impl RefUnwindSafe for ReconstructorError
§impl Send for ReconstructorError
§impl Sync for ReconstructorError
§impl Unpin for ReconstructorError
§impl UnwindSafe for ReconstructorError
Blanket Implementations§
source§impl<T> Any for Twhere
diff --git a/subspace_archiving/reconstructor/struct.ReconstructedContents.html b/subspace_archiving/reconstructor/struct.ReconstructedContents.html
index 141e516043..809e6d0f3d 100644
--- a/subspace_archiving/reconstructor/struct.ReconstructedContents.html
+++ b/subspace_archiving/reconstructor/struct.ReconstructedContents.html
@@ -1,10 +1,10 @@
ReconstructedContents in subspace_archiving::reconstructor - Rust pub struct ReconstructedContents {
- pub segment_header: Option<SegmentHeader>,
- pub blocks: Vec<(BlockNumber, Vec<u8>)>,
+ pub segment_header: Option<SegmentHeader>,
+ pub blocks: Vec<(BlockNumber, Vec<u8>)>,
}
Expand description
Data structure that contains information reconstructed from given segment (potentially using
information from segments that were added previously)
-Fields§
§segment_header: Option<SegmentHeader>
Segment header stored in a segment
-§blocks: Vec<(BlockNumber, Vec<u8>)>
Reconstructed encoded blocks with their block numbers
+Fields§
§segment_header: Option<SegmentHeader>
Segment header stored in a segment
+§blocks: Vec<(BlockNumber, Vec<u8>)>
Reconstructed encoded blocks with their block numbers
Trait Implementations§
source§impl Clone for ReconstructedContents
source§fn clone(&self) -> ReconstructedContents
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresource§impl Debug for ReconstructedContents
source§impl Default for ReconstructedContents
source§fn default() -> ReconstructedContents
Returns the “default value” for a type. Read moresource§impl PartialEq<ReconstructedContents> for ReconstructedContents
source§fn eq(&self, other: &ReconstructedContents) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
.source§impl Eq for ReconstructedContents
source§impl StructuralEq for ReconstructedContents
source§impl StructuralPartialEq for ReconstructedContents
Auto Trait Implementations§
§impl RefUnwindSafe for ReconstructedContents
§impl Send for ReconstructedContents
§impl Sync for ReconstructedContents
§impl Unpin for ReconstructedContents
§impl UnwindSafe for ReconstructedContents
Blanket Implementations§
source§impl<T> Any for Twhere
diff --git a/subspace_archiving/reconstructor/struct.Reconstructor.html b/subspace_archiving/reconstructor/struct.Reconstructor.html
index e17c010952..8f7a133c90 100644
--- a/subspace_archiving/reconstructor/struct.Reconstructor.html
+++ b/subspace_archiving/reconstructor/struct.Reconstructor.html
@@ -1,7 +1,7 @@
Reconstructor in subspace_archiving::reconstructor - Rust Struct subspace_archiving::reconstructor::Reconstructor
source · pub struct Reconstructor { /* private fields */ }
Expand description
Reconstructor helps to retrieve blocks from archived pieces.
Implementations§
source§impl Reconstructor
sourcepub fn new() -> Result<Self, ReconstructorInstantiationError>
sourcepub fn add_segment(
&mut self,
- segment_pieces: &[Option<Piece>]
+ segment_pieces: &[Option<Piece>]
) -> Result<ReconstructedContents, ReconstructorError>
Given a set of pieces of a segment of the archived history (any half of all pieces are
required to be present, the rest will be recovered automatically due to use of erasure
coding if needed), reconstructs and returns segment header and a list of encoded blocks with
diff --git a/subspace_erasure_coding/struct.ErasureCoding.html b/subspace_erasure_coding/struct.ErasureCoding.html
index 22933af23e..c9c8849385 100644
--- a/subspace_erasure_coding/struct.ErasureCoding.html
+++ b/subspace_erasure_coding/struct.ErasureCoding.html
@@ -4,28 +4,28 @@
Number of shards supported is 2^scale
, half of shards are source data and the other half
are parity.
sourcepub fn max_shards(&self) -> usize
Max number of shards supported (both source and parity together)
-sourcepub fn extend(&self, source: &[Scalar]) -> Result<Vec<Scalar>, String>
Extend sources using erasure coding.
+sourcepub fn extend(&self, source: &[Scalar]) -> Result<Vec<Scalar>, String>
Extend sources using erasure coding.
Returns parity data.
-sourcepub fn recover(&self, shards: &[Option<Scalar>]) -> Result<Vec<Scalar>, String>
Recovery of missing shards from given shards (at least 1/2 should be Some
).
+sourcepub fn recover(&self, shards: &[Option<Scalar>]) -> Result<Vec<Scalar>, String>
Recovery of missing shards from given shards (at least 1/2 should be Some
).
Both in input and output source shards are interleaved with parity shards:
source, parity, source, parity, …
sourcepub fn recover_poly(
&self,
- shards: &[Option<Scalar>]
-) -> Result<Polynomial, String>
Recovery of missing shards from given shards (at least 1/2 should be Some
) in form of
+ shards: &[Option<Scalar>]
+) -> Result<Polynomial, String>
Recovery of missing shards from given shards (at least 1/2 should be Some
) in form of
normalized polynomial (allows to not do inverse FFT afterwards if polynomial is desired).
Both in input and output source shards are interleaved with parity shards:
source, parity, source, parity, …
sourcepub fn recover_source(
&self,
- shards: &[Option<Scalar>]
-) -> Result<impl ExactSizeIterator<Item = Scalar>, String>
Recovery of source shards from given shards (at least 1/2 should be Some
).
+ shards: &[Option<Scalar>]
+) -> Result<impl ExactSizeIterator<Item = Scalar>, String>Recovery of source shards from given shards (at least 1/2 should be Some
).
The same as ErasureCoding::recover()
, but returns only source shards in form of an
iterator.
sourcepub fn extend_commitments(
&self,
- commitments: &[Commitment]
-) -> Result<Vec<Commitment>, String>
Extend commitments using erasure coding.
+ commitments: &[Commitment]
+) -> Result<Vec<Commitment>, String>Extend commitments using erasure coding.
Returns both source and parity commitments interleaved.
Trait Implementations§
source§impl Clone for ErasureCoding
source§fn clone(&self) -> ErasureCoding
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moreAuto Trait Implementations§
§impl RefUnwindSafe for ErasureCoding
§impl Send for ErasureCoding
§impl Sync for ErasureCoding
§impl Unpin for ErasureCoding
§impl UnwindSafe for ErasureCoding
Blanket Implementations§
source§impl<T> Borrow<T> for Twhere
diff --git a/subspace_farmer/all.html b/subspace_farmer/all.html
index 06eecf3925..b8c23ad97c 100644
--- a/subspace_farmer/all.html
+++ b/subspace_farmer/all.html
@@ -1 +1 @@
-List of all items in this crate List of all items
Structs
- Identity
- NodeRpcClient
- piece_cache::CacheWorker
- piece_cache::PieceCache
- single_disk_farm::SingleDiskFarm
- single_disk_farm::SingleDiskFarmOptions
- single_disk_farm::SingleDiskSemaphore
- single_disk_farm::piece_cache::DiskPieceCache
- single_disk_farm::piece_cache::Offset
- single_disk_farm::piece_reader::PieceReader
- utils::farmer_piece_getter::FarmerPieceGetter
- utils::piece_validator::SegmentCommitmentPieceValidator
- utils::readers_and_pieces::ReadersAndPieces
Enums
- single_disk_farm::BackgroundTaskError
- single_disk_farm::FarmingError
- single_disk_farm::PlottingError
- single_disk_farm::SingleDiskFarmError
- single_disk_farm::SingleDiskFarmId
- single_disk_farm::SingleDiskFarmInfo
- single_disk_farm::SingleDiskFarmScrubError
- single_disk_farm::SingleDiskFarmSummary
- single_disk_farm::piece_cache::DiskPieceCacheError
Traits
Functions
Type Aliases
\ No newline at end of file
+List of all items in this crate List of all items
Structs
- Identity
- NodeRpcClient
- piece_cache::CacheWorker
- piece_cache::PieceCache
- single_disk_farm::SectorPlottingDetails
- single_disk_farm::SingleDiskFarm
- single_disk_farm::SingleDiskFarmOptions
- single_disk_farm::SingleDiskSemaphore
- single_disk_farm::piece_cache::DiskPieceCache
- single_disk_farm::piece_cache::Offset
- single_disk_farm::piece_reader::PieceReader
- utils::farmer_piece_getter::FarmerPieceGetter
- utils::piece_validator::SegmentCommitmentPieceValidator
- utils::readers_and_pieces::ReadersAndPieces
Enums
- single_disk_farm::BackgroundTaskError
- single_disk_farm::FarmingError
- single_disk_farm::PlottingError
- single_disk_farm::SingleDiskFarmError
- single_disk_farm::SingleDiskFarmId
- single_disk_farm::SingleDiskFarmInfo
- single_disk_farm::SingleDiskFarmScrubError
- single_disk_farm::SingleDiskFarmSummary
- single_disk_farm::piece_cache::DiskPieceCacheError
Traits
Functions
Type Aliases
\ No newline at end of file
diff --git a/subspace_farmer/single_disk_farm/enum.PlottingError.html b/subspace_farmer/single_disk_farm/enum.PlottingError.html
index 0897bc7d29..b7762b4ff7 100644
--- a/subspace_farmer/single_disk_farm/enum.PlottingError.html
+++ b/subspace_farmer/single_disk_farm/enum.PlottingError.html
@@ -1,4 +1,4 @@
-PlottingError in subspace_farmer::single_disk_farm - Rust pub enum PlottingError {
+PlottingError in subspace_farmer::single_disk_farm - Rust pub enum PlottingError {
FailedToGetFarmerInfo {
error: Error,
},
@@ -24,7 +24,7 @@
Failed to subscribe to archived segments
§Io(Error)
I/O error occurred
§LowLevel(PlottingError)
Low-level plotting error
-Trait Implementations§
source§impl Debug for PlottingError
source§impl Display for PlottingError
source§impl Error for PlottingError
source§fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more1.0.0 · source§fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()source§impl From<Error> for PlottingError
source§impl From<PlottingError> for BackgroundTaskError
source§fn from(source: PlottingError) -> Self
Converts to this type from the input type.source§impl From<PlottingError> for PlottingError
source§fn from(source: PlottingError) -> Self
Converts to this type from the input type.Auto Trait Implementations§
§impl !RefUnwindSafe for PlottingError
§impl Send for PlottingError
§impl Sync for PlottingError
§impl Unpin for PlottingError
§impl !UnwindSafe for PlottingError
Blanket Implementations§
Trait Implementations§
source§impl Debug for PlottingError
source§impl Display for PlottingError
source§impl Error for PlottingError
source§fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more1.0.0 · source§fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()source§impl From<Error> for PlottingError
source§impl From<PlottingError> for BackgroundTaskError
source§fn from(source: PlottingError) -> Self
Converts to this type from the input type.source§impl From<PlottingError> for PlottingError
source§fn from(source: PlottingError) -> Self
Converts to this type from the input type.Auto Trait Implementations§
§impl !RefUnwindSafe for PlottingError
§impl Send for PlottingError
§impl Sync for PlottingError
§impl Unpin for PlottingError
§impl !UnwindSafe for PlottingError
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
§fn implicit(
diff --git a/subspace_farmer/single_disk_farm/index.html b/subspace_farmer/single_disk_farm/index.html
index 542034af98..781fa10483 100644
--- a/subspace_farmer/single_disk_farm/index.html
+++ b/subspace_farmer/single_disk_farm/index.html
@@ -1,3 +1,3 @@
-subspace_farmer::single_disk_farm - Rust Module subspace_farmer::single_disk_farm
source · Modules
Structs
- Single disk farm abstraction is a container for everything necessary to plot/farm with a single
+
subspace_farmer::single_disk_farm - Rust Module subspace_farmer::single_disk_farm
source · Modules
Structs
- Details about sector currently being plotted
- Single disk farm abstraction is a container for everything necessary to plot/farm with a single
disk.
- Options used to open single disk farm
- Semaphore that limits disk access concurrency in strategic places to the number specified during
initialization
Enums
- Errors that happen in background tasks
- Errors that happen during farming
- Errors that happen during plotting
- Errors happening when trying to create/open single disk farm
- An identifier for single disk farm, can be used for in logs, thread names, etc.
- Important information about the contents of the
SingleDiskFarm
- Errors happening during scrubbing
- Summary of single disk farm for presentational purposes
\ No newline at end of file
diff --git a/subspace_farmer/single_disk_farm/sidebar-items.js b/subspace_farmer/single_disk_farm/sidebar-items.js
index 83f9cecc9f..d64b9bb7da 100644
--- a/subspace_farmer/single_disk_farm/sidebar-items.js
+++ b/subspace_farmer/single_disk_farm/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"enum":["BackgroundTaskError","FarmingError","PlottingError","SingleDiskFarmError","SingleDiskFarmId","SingleDiskFarmInfo","SingleDiskFarmScrubError","SingleDiskFarmSummary"],"mod":["piece_cache","piece_reader"],"struct":["SingleDiskFarm","SingleDiskFarmOptions","SingleDiskSemaphore"]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"enum":["BackgroundTaskError","FarmingError","PlottingError","SingleDiskFarmError","SingleDiskFarmId","SingleDiskFarmInfo","SingleDiskFarmScrubError","SingleDiskFarmSummary"],"mod":["piece_cache","piece_reader"],"struct":["SectorPlottingDetails","SingleDiskFarm","SingleDiskFarmOptions","SingleDiskSemaphore"]};
\ No newline at end of file
diff --git a/subspace_farmer/single_disk_farm/struct.SectorPlottingDetails.html b/subspace_farmer/single_disk_farm/struct.SectorPlottingDetails.html
new file mode 100644
index 0000000000..ac5bd099f1
--- /dev/null
+++ b/subspace_farmer/single_disk_farm/struct.SectorPlottingDetails.html
@@ -0,0 +1,118 @@
+SectorPlottingDetails in subspace_farmer::single_disk_farm - Rust pub struct SectorPlottingDetails {
+ pub sector_index: SectorIndex,
+ pub progress: f32,
+ pub replotting: bool,
+ pub last_queued: bool,
+}
Expand description
Details about sector currently being plotted
+Fields§
§sector_index: SectorIndex
Sector index
+§progress: f32
Progress so far in % (not including this sector)
+§replotting: bool
Whether sector is being replotted
+§last_queued: bool
Whether this is the last sector queued so far
+Auto Trait Implementations§
§impl RefUnwindSafe for SectorPlottingDetails
§impl Send for SectorPlottingDetails
§impl Sync for SectorPlottingDetails
§impl Unpin for SectorPlottingDetails
§impl UnwindSafe for SectorPlottingDetails
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
+ T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
+ T: 'a,
source§impl<T> BorrowMut<T> for Twhere
+ T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
+ Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
+ Self: Display,
Causes self
to use its Display
implementation when
+Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
+ Self: LowerExp,
Causes self
to use its LowerExp
implementation when
+Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
+ Self: LowerHex,
Causes self
to use its LowerHex
implementation when
+Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
+ Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
+ Self: Pointer,
Causes self
to use its Pointer
implementation when
+Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
+ Self: UpperExp,
Causes self
to use its UpperExp
implementation when
+Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
+ Self: UpperHex,
Causes self
to use its UpperHex
implementation when
+Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
+ &'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read moresource§impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pipe for Twhere
+ T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
+ Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
+ R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
+ R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
+ Self: Borrow<B>,
+ B: 'a + ?Sized,
+ R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
+ &'a mut self,
+ func: impl FnOnce(&'a mut B) -> R
+) -> Rwhere
+ Self: BorrowMut<B>,
+ B: 'a + ?Sized,
+ R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
+ Self: AsRef<U>,
+ U: 'a + ?Sized,
+ R: 'a,
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
+ Self: AsMut<U>,
+ U: 'a + ?Sized,
+ R: 'a,
Mutably borrows self
, then passes self.as_mut()
into the pipe
+function.§impl<T> Pointable for T
§impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
+ Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
+ Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of T
. Read more§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
+ Self: Borrow<B>,
+ B: ?Sized,
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
+ Self: BorrowMut<B>,
+ B: ?Sized,
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
+ Self: AsRef<R>,
+ R: ?Sized,
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
+ Self: AsMut<R>,
+ R: ?Sized,
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
+ Self: Deref<Target = T>,
+ T: ?Sized,
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
+ Self: DerefMut<Target = T> + Deref,
+ T: ?Sized,
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
+ Self: Borrow<B>,
+ B: ?Sized,
Calls .tap_borrow()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
+ Self: BorrowMut<B>,
+ B: ?Sized,
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
+builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
+ Self: AsRef<R>,
+ R: ?Sized,
Calls .tap_ref()
only in debug builds, and is erased in release
+builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
+ Self: AsMut<R>,
+ R: ?Sized,
Calls .tap_ref_mut()
only in debug builds, and is erased in release
+builds.§impl<T> TryConv for T
§impl<T, S> UniqueSaturatedInto<T> for Swhere
+ T: Bounded,
+ S: TryInto<T>,
§fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of T
.source§impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
+ S: Into<Dispatch>,
source§fn with_current_subscriber(self) -> WithDispatch<Self>
§impl<T> JsonSchemaMaybe for T
§impl<T> MaybeSend for Twhere
+ T: Send,
\ No newline at end of file
diff --git a/subspace_farmer/single_disk_farm/struct.SingleDiskFarm.html b/subspace_farmer/single_disk_farm/struct.SingleDiskFarm.html
index 6e4abb7336..95ed62fd7f 100644
--- a/subspace_farmer/single_disk_farm/struct.SingleDiskFarm.html
+++ b/subspace_farmer/single_disk_farm/struct.SingleDiskFarm.html
@@ -1,7 +1,7 @@
-SingleDiskFarm in subspace_farmer::single_disk_farm - Rust Struct subspace_farmer::single_disk_farm::SingleDiskFarm
source · pub struct SingleDiskFarm { /* private fields */ }
Expand description
Single disk farm abstraction is a container for everything necessary to plot/farm with a single
+
SingleDiskFarm in subspace_farmer::single_disk_farm - Rust Struct subspace_farmer::single_disk_farm::SingleDiskFarm
source · pub struct SingleDiskFarm { /* private fields */ }
Expand description
Single disk farm abstraction is a container for everything necessary to plot/farm with a single
disk.
Farm starts operating during creation and doesn’t stop until dropped (or error happens).
-Implementations§
Implementations§
source§impl SingleDiskFarm
sourcepub async fn new<NC, PG, PosTable>(
options: SingleDiskFarmOptions<NC, PG>,
disk_farm_index: usize
) -> Result<Self, SingleDiskFarmError>where
@@ -9,29 +9,31 @@
PG: PieceGetter + Clone + Send + 'static,
PosTable: Table,
Create new single disk farm instance
NOTE: Thought this function is async, it will do some blocking I/O.
-sourcepub fn collect_summary(directory: PathBuf) -> SingleDiskFarmSummary
Collect summary of single disk farm for presentational purposes
-sourcepub fn id(&self) -> &SingleDiskFarmId
ID of this farm
-sourcepub async fn plotted_sectors_count(&self) -> usize
Number of sectors successfully plotted so far
-sourcepub async fn plotted_sectors(
+
sourcepub fn collect_summary(directory: PathBuf) -> SingleDiskFarmSummary
Collect summary of single disk farm for presentational purposes
+sourcepub fn id(&self) -> &SingleDiskFarmId
ID of this farm
+sourcepub async fn plotted_sectors_count(&self) -> usize
Number of sectors successfully plotted so far
+sourcepub async fn plotted_sectors(
&self
) -> impl Iterator<Item = Result<PlottedSector, Error>> + '_
Read information about sectors plotted so far
-sourcepub fn piece_cache(&self) -> DiskPieceCache
Get piece cache instance
-sourcepub fn piece_reader(&self) -> PieceReader
Get piece reader to read plotted pieces later
-sourcepub fn on_sector_plotted(
+
sourcepub fn piece_cache(&self) -> DiskPieceCache
Get piece cache instance
+sourcepub fn piece_reader(&self) -> PieceReader
Get piece reader to read plotted pieces later
+sourcepub fn on_sector_plotting(
&self,
- callback: Arc<dyn Fn(&(PlottedSector, Option<PlottedSector>)) + Send + Sync + 'static>
+ callback: Arc<dyn Fn(&SectorPlottingDetails) + Send + Sync + 'static>
) -> HandlerId
Subscribe to sector plotting notification
-Plotting permit is given such that it can be dropped later by the implementation is
-throttling of the plotting process is desired.
-sourcepub fn on_solution(
+
sourcepub fn on_sector_plotted(
+ &self,
+ callback: Arc<dyn Fn(&(PlottedSector, Option<PlottedSector>)) + Send + Sync + 'static>
+) -> HandlerId
Subscribe to notification about plotted sectors
+sourcepub fn on_solution(
&self,
callback: Arc<dyn Fn(&SolutionResponse) + Send + Sync + 'static>
) -> HandlerId
Subscribe to new solution notification
-sourcepub async fn run(self) -> Result<()>
Run and wait for background threads to exit or return an error
-sourcepub fn wipe(directory: &Path) -> Result<()>
Wipe everything that belongs to this single disk farm
-sourcepub fn scrub(directory: &Path) -> Result<(), SingleDiskFarmScrubError>
Check the farm for corruption and repair errors (caused by disk errors or something else),
+
sourcepub async fn run(self) -> Result<()>
Run and wait for background threads to exit or return an error
+Trait Implementations§
Auto Trait Implementations§
§impl !RefUnwindSafe for SingleDiskFarm
§impl Send for SingleDiskFarm
§impl !Sync for SingleDiskFarm
§impl Unpin for SingleDiskFarm
§impl !UnwindSafe for SingleDiskFarm
Blanket Implementations§
Trait Implementations§
Auto Trait Implementations§
§impl !RefUnwindSafe for SingleDiskFarm
§impl Send for SingleDiskFarm
§impl !Sync for SingleDiskFarm
§impl Unpin for SingleDiskFarm
§impl !UnwindSafe for SingleDiskFarm
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
§fn implicit(
diff --git a/subspace_farmer_components/auditing/fn.audit_sector.html b/subspace_farmer_components/auditing/fn.audit_sector.html
index 7c5f22901a..e6e4b352b6 100644
--- a/subspace_farmer_components/auditing/fn.audit_sector.html
+++ b/subspace_farmer_components/auditing/fn.audit_sector.html
@@ -1,8 +1,8 @@
audit_sector in subspace_farmer_components::auditing - Rust Function subspace_farmer_components::auditing::audit_sector
source · pub fn audit_sector<'a, Sector>(
- public_key: &'a PublicKey,
- sector_index: SectorIndex,
- global_challenge: &Blake3Hash,
- solution_range: SolutionRange,
+ public_key: &'a PublicKey,
+ sector_index: SectorIndex,
+ global_challenge: &Blake3Hash,
+ solution_range: SolutionRange,
sector: Sector,
sector_metadata: &'a SectorMetadataChecksummed
) -> Option<AuditResult<'a, Sector>>where
diff --git a/subspace_farmer_components/auditing/struct.AuditResult.html b/subspace_farmer_components/auditing/struct.AuditResult.html
index 70c1e6037c..3630a0be3a 100644
--- a/subspace_farmer_components/auditing/struct.AuditResult.html
+++ b/subspace_farmer_components/auditing/struct.AuditResult.html
@@ -1,10 +1,10 @@
AuditResult in subspace_farmer_components::auditing - Rust Struct subspace_farmer_components::auditing::AuditResult
source · pub struct AuditResult<'a, Sector>where
Sector: 'a,{
pub solution_candidates: SolutionCandidates<'a, Sector>,
- pub best_solution_distance: SolutionRange,
+ pub best_solution_distance: SolutionRange,
}
Expand description
Result of sector audit
Fields§
§solution_candidates: SolutionCandidates<'a, Sector>
Solution candidates
-§best_solution_distance: SolutionRange
Best solution distance found
+§best_solution_distance: SolutionRange
Best solution distance found
Trait Implementations§
source§impl<'a, Sector> Clone for AuditResult<'a, Sector>where
Sector: 'a + Clone,
source§fn clone(&self) -> AuditResult<'a, Sector>
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moreAuto Trait Implementations§
§impl<'a, Sector> RefUnwindSafe for AuditResult<'a, Sector>where
diff --git a/subspace_farmer_components/plotting/enum.PlottingError.html b/subspace_farmer_components/plotting/enum.PlottingError.html
index 4232d3c3d3..93d2fbb746 100644
--- a/subspace_farmer_components/plotting/enum.PlottingError.html
+++ b/subspace_farmer_components/plotting/enum.PlottingError.html
@@ -9,13 +9,13 @@
expected: usize,
},
PieceNotFound {
- piece_index: PieceIndex,
+ piece_index: PieceIndex,
},
PieceRecoveryFailed {
- piece_index: PieceIndex,
+ piece_index: PieceIndex,
},
FailedToRetrievePiece {
- piece_index: PieceIndex,
+ piece_index: PieceIndex,
error: Box<dyn Error + Send + Sync + 'static>,
},
}Expand description
Plotting status
@@ -26,11 +26,11 @@
§BadSectorMetadataOutputSize
Bad sector metadata output size
-§PieceNotFound
Fields
§piece_index: PieceIndex
Piece index
+§PieceNotFound
Fields
§piece_index: PieceIndex
Piece index
Piece not found, can’t create sector, this should never happen
-§PieceRecoveryFailed
Fields
§piece_index: PieceIndex
Piece index
+§PieceRecoveryFailed
Fields
§piece_index: PieceIndex
Piece index
Can’t recover missing piece
-§FailedToRetrievePiece
Fields
§piece_index: PieceIndex
Piece index
+§FailedToRetrievePiece
Fields
§piece_index: PieceIndex
Piece index
Failed to retrieve piece
Trait Implementations§
source§impl Debug for PlottingError
source§impl Display for PlottingError
source§impl Error for PlottingError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more1.0.0 · source§fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()Auto Trait Implementations§
§impl !RefUnwindSafe for PlottingError
§impl Send for PlottingError
§impl Sync for PlottingError
§impl Unpin for PlottingError
§impl !UnwindSafe for PlottingError
Blanket Implementations§
source§impl<T> Any for Twhere
diff --git a/subspace_farmer_components/plotting/fn.plot_sector.html b/subspace_farmer_components/plotting/fn.plot_sector.html
index b6c6094b09..76178b0e5d 100644
--- a/subspace_farmer_components/plotting/fn.plot_sector.html
+++ b/subspace_farmer_components/plotting/fn.plot_sector.html
@@ -1,10 +1,10 @@
plot_sector in subspace_farmer_components::plotting - Rust Function subspace_farmer_components::plotting::plot_sector
source · pub async fn plot_sector<PG, PosTable>(
- public_key: &PublicKey,
- sector_index: SectorIndex,
+ public_key: &PublicKey,
+ sector_index: SectorIndex,
piece_getter: &PG,
piece_getter_retry_policy: PieceGetterRetryPolicy,
farmer_protocol_info: &FarmerProtocolInfo,
- kzg: &Kzg,
+ kzg: &Kzg,
erasure_coding: &ErasureCoding,
pieces_in_sector: u16,
sector_output: &mut Vec<u8>,
diff --git a/subspace_farmer_components/plotting/struct.PlottedSector.html b/subspace_farmer_components/plotting/struct.PlottedSector.html
index 69c442f0cc..dec7bd0fa6 100644
--- a/subspace_farmer_components/plotting/struct.PlottedSector.html
+++ b/subspace_farmer_components/plotting/struct.PlottedSector.html
@@ -1,13 +1,13 @@
PlottedSector in subspace_farmer_components::plotting - Rust pub struct PlottedSector {
- pub sector_id: SectorId,
- pub sector_index: SectorIndex,
+ pub sector_id: SectorId,
+ pub sector_index: SectorIndex,
pub sector_metadata: SectorMetadataChecksummed,
- pub piece_indexes: Vec<PieceIndex>,
+ pub piece_indexes: Vec<PieceIndex>,
}
Expand description
Information about sector that was plotted
-Fields§
§sector_id: SectorId
Sector ID
-§sector_index: SectorIndex
Sector index
+Fields§
§sector_id: SectorId
Sector ID
+§sector_index: SectorIndex
Sector index
§sector_metadata: SectorMetadataChecksummed
Sector metadata
-§piece_indexes: Vec<PieceIndex>
Indexes of pieces that were plotted
+§piece_indexes: Vec<PieceIndex>
Indexes of pieces that were plotted
Trait Implementations§
source§impl Clone for PlottedSector
source§fn clone(&self) -> PlottedSector
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moreAuto Trait Implementations§
§impl RefUnwindSafe for PlottedSector
§impl Send for PlottedSector
§impl Sync for PlottedSector
§impl Unpin for PlottedSector
§impl UnwindSafe for PlottedSector
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
diff --git a/subspace_farmer_components/plotting/trait.PieceGetter.html b/subspace_farmer_components/plotting/trait.PieceGetter.html
index 941e3c3f11..b8078219c1 100644
--- a/subspace_farmer_components/plotting/trait.PieceGetter.html
+++ b/subspace_farmer_components/plotting/trait.PieceGetter.html
@@ -2,30 +2,30 @@
// Required method
fn get_piece<'life0, 'async_trait>(
&'life0 self,
- piece_index: PieceIndex,
+ piece_index: PieceIndex,
retry_policy: PieceGetterRetryPolicy
- ) -> Pin<Box<dyn Future<Output = Result<Option<Piece>, Box<dyn Error + Send + Sync + 'static>>> + Send + 'async_trait>>
+ ) -> Pin<Box<dyn Future<Output = Result<Option<Piece>, Box<dyn Error + Send + Sync + 'static>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Duplicate trait for the subspace_networking::PieceReceiver. The goal of this trait is
simplifying dependency graph.
Required Methods§
sourcefn get_piece<'life0, 'async_trait>(
&'life0 self,
- piece_index: PieceIndex,
+ piece_index: PieceIndex,
retry_policy: PieceGetterRetryPolicy
-) -> Pin<Box<dyn Future<Output = Result<Option<Piece>, Box<dyn Error + Send + Sync + 'static>>> + Send + 'async_trait>>where
+) -> Pin<Box<dyn Future<Output = Result<Option<Piece>, Box<dyn Error + Send + Sync + 'static>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Implementations on Foreign Types§
source§impl<T> PieceGetter for Arc<T>where
T: PieceGetter + Send + Sync,
source§fn get_piece<'life0, 'async_trait>(
&'life0 self,
- piece_index: PieceIndex,
+ piece_index: PieceIndex,
retry_policy: PieceGetterRetryPolicy
-) -> Pin<Box<dyn Future<Output = Result<Option<Piece>, Box<dyn Error + Send + Sync + 'static>>> + Send + 'async_trait>>where
+) -> Pin<Box<dyn Future<Output = Result<Option<Piece>, Box<dyn Error + Send + Sync + 'static>>> + Send + 'async_trait>>where
Self: 'async_trait,
- 'life0: 'async_trait,
source§impl PieceGetter for ArchivedHistorySegment
source§impl PieceGetter for ArchivedHistorySegment
source§fn get_piece<'life0, 'async_trait>(
&'life0 self,
- piece_index: PieceIndex,
+ piece_index: PieceIndex,
_retry_policy: PieceGetterRetryPolicy
-) -> Pin<Box<dyn Future<Output = Result<Option<Piece>, Box<dyn Error + Send + Sync + 'static>>> + Send + 'async_trait>>where
+) -> Pin<Box<dyn Future<Output = Result<Option<Piece>, Box<dyn Error + Send + Sync + 'static>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Implementors§
\ No newline at end of file
diff --git a/subspace_farmer_components/proving/enum.ProvingError.html b/subspace_farmer_components/proving/enum.ProvingError.html
index 6105c8b075..44932fd15e 100644
--- a/subspace_farmer_components/proving/enum.ProvingError.html
+++ b/subspace_farmer_components/proving/enum.ProvingError.html
@@ -1,11 +1,11 @@
ProvingError in subspace_farmer_components::proving - Rust pub enum ProvingError {
InvalidErasureCodingInstance,
FailedToCreatePolynomialForRecord {
- piece_offset: PieceOffset,
+ piece_offset: PieceOffset,
error: String,
},
FailedToCreateChunkWitness {
- piece_offset: PieceOffset,
+ piece_offset: PieceOffset,
chunk_offset: u32,
error: String,
},
@@ -14,10 +14,10 @@
RecordReadingError(ReadingError),
}
Expand description
Errors that happen during proving
Variants§
§InvalidErasureCodingInstance
Invalid erasure coding instance
-§FailedToCreatePolynomialForRecord
Fields
§piece_offset: PieceOffset
Piece offset
+§FailedToCreatePolynomialForRecord
Failed to create polynomial for record
-§FailedToCreateChunkWitness
Fields
§piece_offset: PieceOffset
Piece offset
+§FailedToCreateChunkWitness
Fields
§piece_offset: PieceOffset
Piece offset
Failed to create chunk witness
diff --git a/subspace_farmer_components/proving/struct.SolutionCandidates.html b/subspace_farmer_components/proving/struct.SolutionCandidates.html
index d4eeff4195..b40b25a559 100644
--- a/subspace_farmer_components/proving/struct.SolutionCandidates.html
+++ b/subspace_farmer_components/proving/struct.SolutionCandidates.html
@@ -6,13 +6,13 @@
sourcepub fn into_solutions<RewardAddress, PosTable, TableGenerator>(
self,
reward_address: &'a RewardAddress,
- kzg: &'a Kzg,
+ kzg: &'a Kzg,
erasure_coding: &'a ErasureCoding,
table_generator: TableGenerator
-) -> Result<impl ProvableSolutions<Item = Result<Solution<PublicKey, RewardAddress>, ProvingError>> + 'a, ProvingError>where
+) -> Result<impl ProvableSolutions<Item = Result<Solution<PublicKey, RewardAddress>, ProvingError>> + 'a, ProvingError>where
RewardAddress: Copy,
PosTable: Table,
- TableGenerator: FnMut(&PosSeed) -> PosTable + 'a,
Trait Implementations§
Trait Implementations§
source§impl<'a, Sector> Clone for SolutionCandidates<'a, Sector>where
Sector: Clone + 'a,
Auto Trait Implementations§
§impl<'a, Sector> RefUnwindSafe for SolutionCandidates<'a, Sector>where
Sector: RefUnwindSafe,
§impl<'a, Sector> Send for SolutionCandidates<'a, Sector>where
diff --git a/subspace_farmer_components/proving/trait.ProvableSolutions.html b/subspace_farmer_components/proving/trait.ProvableSolutions.html
index 1b5d144aca..32b896c1a7 100644
--- a/subspace_farmer_components/proving/trait.ProvableSolutions.html
+++ b/subspace_farmer_components/proving/trait.ProvableSolutions.html
@@ -1,6 +1,6 @@
ProvableSolutions in subspace_farmer_components::proving - Rust pub trait ProvableSolutions: ExactSizeIterator {
// Required method
- fn best_solution_distance(&self) -> Option<SolutionRange>;
+ fn best_solution_distance(&self) -> Option<SolutionRange>;
}
Expand description
Solutions that can be proven if necessary
-Required Methods§
sourcefn best_solution_distance(&self) -> Option<SolutionRange>
Best solution distance found, None
in case iterator is empty
+Required Methods§
sourcefn best_solution_distance(&self) -> Option<SolutionRange>
Best solution distance found, None
in case iterator is empty
Implementors§
\ No newline at end of file
diff --git a/subspace_farmer_components/reading/enum.ReadingError.html b/subspace_farmer_components/reading/enum.ReadingError.html
index 04b72a31c3..9fe8135a94 100644
--- a/subspace_farmer_components/reading/enum.ReadingError.html
+++ b/subspace_farmer_components/reading/enum.ReadingError.html
@@ -4,13 +4,13 @@
error: Error,
},
InvalidChunk {
- s_bucket: SBucket,
+ s_bucket: SBucket,
encoded_chunk_used: bool,
chunk_location: usize,
error: String,
},
FailedToErasureDecodeRecord {
- piece_offset: PieceOffset,
+ piece_offset: PieceOffset,
error: String,
},
WrongRecordSizeAfterDecoding {
@@ -26,12 +26,12 @@
Failed to read chunk.
This is an implementation bug, most likely due to mismatch between sector contents map and
other farming parameters.
-§InvalidChunk
Fields
§s_bucket: SBucket
S-bucket
+§InvalidChunk
Fields
Invalid chunk, possible disk corruption
-§FailedToErasureDecodeRecord
Fields
§piece_offset: PieceOffset
Piece offset
+§FailedToErasureDecodeRecord
Failed to erasure-decode record
§WrongRecordSizeAfterDecoding
Fields
§expected: usize
Expected size in bytes
diff --git a/subspace_farmer_components/reading/fn.read_piece.html b/subspace_farmer_components/reading/fn.read_piece.html
index bdfcc34dca..78244ae5df 100644
--- a/subspace_farmer_components/reading/fn.read_piece.html
+++ b/subspace_farmer_components/reading/fn.read_piece.html
@@ -1,11 +1,11 @@
read_piece in subspace_farmer_components::reading - Rust Function subspace_farmer_components::reading::read_piece
source · pub fn read_piece<PosTable, Sector>(
- piece_offset: PieceOffset,
- sector_id: &SectorId,
+ piece_offset: PieceOffset,
+ sector_id: &SectorId,
sector_metadata: &SectorMetadataChecksummed,
sector: &Sector,
erasure_coding: &ErasureCoding,
table_generator: &mut PosTable::Generator
-) -> Result<Piece, ReadingError>where
+) -> Result<Piece, ReadingError>where
PosTable: Table,
Sector: ReadAt + ?Sized,
Expand description
Read piece from sector
\ No newline at end of file
diff --git a/subspace_farmer_components/reading/fn.read_sector_record_chunks.html b/subspace_farmer_components/reading/fn.read_sector_record_chunks.html
index da5ae62741..b95d7ea22e 100644
--- a/subspace_farmer_components/reading/fn.read_sector_record_chunks.html
+++ b/subspace_farmer_components/reading/fn.read_sector_record_chunks.html
@@ -1,11 +1,11 @@
read_sector_record_chunks in subspace_farmer_components::reading - Rust pub fn read_sector_record_chunks<PosTable, Sector>(
- piece_offset: PieceOffset,
+ piece_offset: PieceOffset,
pieces_in_sector: u16,
s_bucket_offsets: &[u32; 65536],
sector_contents_map: &SectorContentsMap,
pos_table: &PosTable,
sector: &Sector
-) -> Result<Box<[Option<Scalar>; 65536]>, ReadingError>where
+) -> Result<Box<[Option<Scalar>; 65536]>, ReadingError>where
PosTable: Table,
Sector: ReadAt + ?Sized,
Expand description
Read sector record chunks, only plotted s-buckets are returned (in decoded form)
\ No newline at end of file
diff --git a/subspace_farmer_components/reading/fn.recover_extended_record_chunks.html b/subspace_farmer_components/reading/fn.recover_extended_record_chunks.html
index 21441b3f8d..78b1c3938a 100644
--- a/subspace_farmer_components/reading/fn.recover_extended_record_chunks.html
+++ b/subspace_farmer_components/reading/fn.recover_extended_record_chunks.html
@@ -1,6 +1,6 @@
recover_extended_record_chunks in subspace_farmer_components::reading - Rust pub fn recover_extended_record_chunks(
- sector_record_chunks: &[Option<Scalar>; 65536],
- piece_offset: PieceOffset,
+ sector_record_chunks: &[Option<Scalar>; 65536],
+ piece_offset: PieceOffset,
erasure_coding: &ErasureCoding
-) -> Result<Box<[Scalar; 65536]>, ReadingError>
Expand description
Given sector record chunks recover extended record chunks (both source and parity)
+) -> Result<Box<[Scalar; 65536]>, ReadingError>Expand description
Given sector record chunks recover extended record chunks (both source and parity)
\ No newline at end of file
diff --git a/subspace_farmer_components/reading/fn.recover_source_record_chunks.html b/subspace_farmer_components/reading/fn.recover_source_record_chunks.html
index f765536aaf..1277830793 100644
--- a/subspace_farmer_components/reading/fn.recover_source_record_chunks.html
+++ b/subspace_farmer_components/reading/fn.recover_source_record_chunks.html
@@ -1,6 +1,6 @@
recover_source_record_chunks in subspace_farmer_components::reading - Rust pub fn recover_source_record_chunks(
- sector_record_chunks: &[Option<Scalar>; 65536],
- piece_offset: PieceOffset,
+ sector_record_chunks: &[Option<Scalar>; 65536],
+ piece_offset: PieceOffset,
erasure_coding: &ErasureCoding
-) -> Result<impl ExactSizeIterator<Item = Scalar>, ReadingError>
Expand description
Given sector record chunks recover source record chunks in form of an iterator.
+) -> Result<impl ExactSizeIterator<Item = Scalar>, ReadingError>Expand description
Given sector record chunks recover source record chunks in form of an iterator.
\ No newline at end of file
diff --git a/subspace_farmer_components/reading/struct.PlotRecord.html b/subspace_farmer_components/reading/struct.PlotRecord.html
index 0b04866d30..77d23630ed 100644
--- a/subspace_farmer_components/reading/struct.PlotRecord.html
+++ b/subspace_farmer_components/reading/struct.PlotRecord.html
@@ -1,11 +1,11 @@
PlotRecord in subspace_farmer_components::reading - Rust Struct subspace_farmer_components::reading::PlotRecord
source · pub struct PlotRecord {
- pub scalars: Box<[Scalar; 32768]>,
- pub commitment: RecordCommitment,
- pub witness: RecordWitness,
+ pub scalars: Box<[Scalar; 32768]>,
+ pub commitment: RecordCommitment,
+ pub witness: RecordWitness,
}
Expand description
Record contained in the plot
-Fields§
§scalars: Box<[Scalar; 32768]>
Record scalars
-§commitment: RecordCommitment
Record commitment
-§witness: RecordWitness
Record witness
+Fields§
§scalars: Box<[Scalar; 32768]>
Record scalars
+§commitment: RecordCommitment
Record commitment
+§witness: RecordWitness
Record witness
Trait Implementations§
source§impl Clone for PlotRecord
source§fn clone(&self) -> PlotRecord
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moreAuto Trait Implementations§
§impl RefUnwindSafe for PlotRecord
§impl Send for PlotRecord
§impl Sync for PlotRecord
§impl Unpin for PlotRecord
§impl UnwindSafe for PlotRecord
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
diff --git a/subspace_farmer_components/sector/struct.SectorContentsMap.html b/subspace_farmer_components/sector/struct.SectorContentsMap.html
index 91c74957c7..002ff9d572 100644
--- a/subspace_farmer_components/sector/struct.SectorContentsMap.html
+++ b/subspace_farmer_components/sector/struct.SectorContentsMap.html
@@ -16,7 +16,7 @@
&self,
output: &mut [u8]
) -> Result<(), SectorContentsMapEncodeIntoError>
Encode internal contents into output
-sourcepub fn num_encoded_record_chunks(&self) -> &[SBucket]
Number of encoded chunks in each record
+sourcepub fn num_encoded_record_chunks(&self) -> &[SBucket]
Number of encoded chunks in each record
sourcepub fn iter_record_bitfields(&self) -> &[BitArray<[u8; 8192]>]
Iterate over individual record bitfields
sourcepub fn iter_record_bitfields_mut(
&mut self
@@ -24,14 +24,14 @@
sourcepub fn s_bucket_sizes(&self) -> Box<[u16; 65536]>
Returns sizes of each s-bucket
sourcepub fn iter_record_chunk_to_plot(
&self,
- piece_offset: PieceOffset
-) -> impl Iterator<Item = (SBucket, bool, usize)> + '_
Creates an iterator of (s_bucket, encoded_chunk_used, chunk_location)
, where s_bucket
is
+ piece_offset: PieceOffset
+) -> impl Iterator<Item = (SBucket, bool, usize)> + '_
Creates an iterator of (s_bucket, encoded_chunk_used, chunk_location)
, where s_bucket
is
position of the chunk in the erasure coded record, encoded_chunk_used
indicates whether it
was encoded and chunk_location
is the offset of the chunk in the plot (across all
s-buckets).
sourcepub fn par_iter_record_chunk_to_plot(
&self,
- piece_offset: PieceOffset
+ piece_offset: PieceOffset
) -> impl IndexedParallelIterator<Item = Option<(usize, bool)>> + '_
Creates an iterator of Option<(chunk_offset, encoded_chunk_used)>
, where each entry
corresponds s-bucket/position of the chunk in the erasure coded record, encoded_chunk_used
indicates whether it was encoded and chunk_offset
is the offset of the chunk in the
@@ -40,19 +40,19 @@
all s-buckets and offsets are within corresponding s-buckets rather than the whole plot.
sourcepub fn iter_s_bucket_records(
&self,
- s_bucket: SBucket
-) -> Result<impl Iterator<Item = (PieceOffset, bool)> + '_, SectorContentsMapIterationError>
Creates an iterator of (piece_offset, encoded_chunk_used)
, where piece_offset
+ s_bucket: SBucket
+) -> Result<impl Iterator<Item = (PieceOffset, bool)> + '_, SectorContentsMapIterationError>
Creates an iterator of (piece_offset, encoded_chunk_used)
, where piece_offset
corresponds to the record to which chunk belongs and encoded_chunk_used
indicates whether
it was encoded.
Panics
-Panics if s_bucket
is outside of [Record::NUM_S_BUCKETS
] range.
+Panics if s_bucket
is outside of Record::NUM_S_BUCKETS
range.
sourcepub fn iter_s_bucket_encoded_record_chunks_used(
&self,
- s_bucket: SBucket
+ s_bucket: SBucket
) -> Result<impl Iterator<Item = bool> + '_, SectorContentsMapIterationError>
Iterate over chunks of s-bucket indicating if encoded chunk is used at corresponding
position
Panics
-Panics if s_bucket
is outside of [Record::NUM_S_BUCKETS
] range.
+Panics if s_bucket
is outside of Record::NUM_S_BUCKETS
range.
Trait Implementations§
source§impl Clone for SectorContentsMap
source§fn clone(&self) -> SectorContentsMap
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moreAuto Trait Implementations§
§impl RefUnwindSafe for SectorContentsMap
§impl Send for SectorContentsMap
§impl Sync for SectorContentsMap
§impl Unpin for SectorContentsMap
§impl UnwindSafe for SectorContentsMap
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
diff --git a/subspace_farmer_components/sector/struct.SectorMetadata.html b/subspace_farmer_components/sector/struct.SectorMetadata.html
index 6822e8d58c..f28c010784 100644
--- a/subspace_farmer_components/sector/struct.SectorMetadata.html
+++ b/subspace_farmer_components/sector/struct.SectorMetadata.html
@@ -1,13 +1,13 @@
SectorMetadata in subspace_farmer_components::sector - Rust Struct subspace_farmer_components::sector::SectorMetadata
source · pub struct SectorMetadata {
- pub sector_index: SectorIndex,
+ pub sector_index: SectorIndex,
pub pieces_in_sector: u16,
pub s_bucket_sizes: Box<[u16; 65536]>,
- pub history_size: HistorySize,
+ pub history_size: HistorySize,
}
Expand description
Metadata of the plotted sector
-Fields§
§sector_index: SectorIndex
Sector index
+Fields§
§sector_index: SectorIndex
Sector index
§pieces_in_sector: u16
Number of pieces stored in this sector
§s_bucket_sizes: Box<[u16; 65536]>
S-bucket sizes in a sector
-§history_size: HistorySize
Size of the blockchain history at time of sector creation
+§history_size: HistorySize
Size of the blockchain history at time of sector creation
Implementations§
source§impl SectorMetadata
sourcepub fn s_bucket_offsets(&self) -> Box<[u32; 65536]>
Returns offsets of each s-bucket relatively to the beginning of the sector (in chunks)
Trait Implementations§
source§impl Clone for SectorMetadata
source§fn clone(&self) -> SectorMetadata
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresource§impl Debug for SectorMetadata
source§impl Decode for SectorMetadata
source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
diff --git a/subspace_farmer_components/struct.FarmerProtocolInfo.html b/subspace_farmer_components/struct.FarmerProtocolInfo.html
index 266bd2a9ff..4ee1eb0365 100644
--- a/subspace_farmer_components/struct.FarmerProtocolInfo.html
+++ b/subspace_farmer_components/struct.FarmerProtocolInfo.html
@@ -1,15 +1,15 @@
FarmerProtocolInfo in subspace_farmer_components - Rust pub struct FarmerProtocolInfo {
- pub history_size: HistorySize,
+ pub history_size: HistorySize,
pub max_pieces_in_sector: u16,
- pub recent_segments: HistorySize,
- pub recent_history_fraction: (HistorySize, HistorySize),
- pub min_sector_lifetime: HistorySize,
+ pub recent_segments: HistorySize,
+ pub recent_history_fraction: (HistorySize, HistorySize),
+ pub min_sector_lifetime: HistorySize,
}
Expand description
Information about the protocol necessary for farmer operation
-Fields§
§history_size: HistorySize
Size of the blockchain history
+Fields§
§history_size: HistorySize
Size of the blockchain history
§max_pieces_in_sector: u16
How many pieces one sector is supposed to contain (max)
-§recent_segments: HistorySize
Number of latest archived segments that are considered “recent history”.
-§recent_history_fraction: (HistorySize, HistorySize)
Fraction of pieces from the “recent history” (recent_segments
) in each sector.
-§min_sector_lifetime: HistorySize
Minimum lifetime of a plotted sector, measured in archived segment
+§recent_segments: HistorySize
Number of latest archived segments that are considered “recent history”.
+§recent_history_fraction: (HistorySize, HistorySize)
Fraction of pieces from the “recent history” (recent_segments
) in each sector.
+§min_sector_lifetime: HistorySize
Minimum lifetime of a plotted sector, measured in archived segment
Trait Implementations§
source§impl Clone for FarmerProtocolInfo
source§fn clone(&self) -> FarmerProtocolInfo
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresource§impl Debug for FarmerProtocolInfo
source§impl<'de> Deserialize<'de> for FarmerProtocolInfo
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read moresource§impl Serialize for FarmerProtocolInfo
source§impl Copy for FarmerProtocolInfo
Auto Trait Implementations§
§impl RefUnwindSafe for FarmerProtocolInfo
§impl Send for FarmerProtocolInfo
§impl Sync for FarmerProtocolInfo
§impl Unpin for FarmerProtocolInfo
§impl UnwindSafe for FarmerProtocolInfo
Blanket Implementations§
source§impl<T> Any for Twhere
diff --git a/subspace_proof_of_space/chia/struct.ChiaQuality.html b/subspace_proof_of_space/chia/struct.ChiaQuality.html
index 342af0ae3f..b2f0a77226 100644
--- a/subspace_proof_of_space/chia/struct.ChiaQuality.html
+++ b/subspace_proof_of_space/chia/struct.ChiaQuality.html
@@ -1,6 +1,6 @@
ChiaQuality in subspace_proof_of_space::chia - Rust Struct subspace_proof_of_space::chia::ChiaQuality
source · pub struct ChiaQuality<'a> { /* private fields */ }
Expand description
Abstraction that represents quality of the solution in the table.
Chia implementation.
-Trait Implementations§
source§impl<'a> Debug for ChiaQuality<'a>
source§impl<'a> Quality for ChiaQuality<'a>
Auto Trait Implementations§
§impl<'a> RefUnwindSafe for ChiaQuality<'a>
§impl<'a> Send for ChiaQuality<'a>
§impl<'a> Sync for ChiaQuality<'a>
§impl<'a> Unpin for ChiaQuality<'a>
§impl<'a> UnwindSafe for ChiaQuality<'a>
Blanket Implementations§
Trait Implementations§
source§impl<'a> Debug for ChiaQuality<'a>
source§impl<'a> Quality for ChiaQuality<'a>
source§fn to_bytes(&self) -> PosQualityBytes
Get underlying bytes representation of the qualitysource§fn create_proof(&self) -> PosProof
Create proof for this solutionAuto Trait Implementations§
§impl<'a> RefUnwindSafe for ChiaQuality<'a>
§impl<'a> Send for ChiaQuality<'a>
§impl<'a> Sync for ChiaQuality<'a>
§impl<'a> Unpin for ChiaQuality<'a>
§impl<'a> UnwindSafe for ChiaQuality<'a>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moresource§impl<T> From<T> for T
source§fn from(t: T) -> T
Returns the argument unchanged.
diff --git a/subspace_proof_of_space/chia/struct.ChiaTable.html b/subspace_proof_of_space/chia/struct.ChiaTable.html
index e6e209c1d7..7e64f1e21a 100644
--- a/subspace_proof_of_space/chia/struct.ChiaTable.html
+++ b/subspace_proof_of_space/chia/struct.ChiaTable.html
@@ -1,10 +1,10 @@
ChiaTable in subspace_proof_of_space::chia - Rust Struct subspace_proof_of_space::chia::ChiaTable
source · pub struct ChiaTable { /* private fields */ }
Expand description
Subspace proof of space table.
Chia implementation.
-Trait Implementations§
source§impl Table for ChiaTable
source§const TABLE_TYPE: PosTableType = PosTableType::Chia
Proof of space table type§type Generator = ChiaTableGenerator
Instance that can be used to generate tables with better performance§type Quality<'a> = ChiaQuality<'a>
Abstraction that represents quality of the solution in the tablesource§fn generate_parallel(seed: &PosSeed) -> ChiaTable
Generate new table with 32 bytes seed using parallelism. Read moresource§fn find_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>
Try to find quality of the proof at challenge_index
if proof existssource§fn is_proof_valid(
- seed: &PosSeed,
+
Trait Implementations§
source§impl Table for ChiaTable
source§const TABLE_TYPE: PosTableType = PosTableType::Chia
Proof of space table type§type Generator = ChiaTableGenerator
Instance that can be used to generate tables with better performance§type Quality<'a> = ChiaQuality<'a>
Abstraction that represents quality of the solution in the tablesource§fn generate_parallel(seed: &PosSeed) -> ChiaTable
Generate new table with 32 bytes seed using parallelism. Read moresource§fn find_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>
Try to find quality of the proof at challenge_index
if proof existssource§impl TableGenerator<ChiaTable> for ChiaTableGenerator
Auto Trait Implementations§
§impl RefUnwindSafe for ChiaTable
§impl Send for ChiaTable
§impl Sync for ChiaTable
§impl Unpin for ChiaTable
§impl UnwindSafe for ChiaTable
Blanket Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for ChiaTable
§impl Send for ChiaTable
§impl Sync for ChiaTable
§impl Unpin for ChiaTable
§impl UnwindSafe for ChiaTable
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moresource§impl<T> From<T> for T
source§fn from(t: T) -> T
Returns the argument unchanged.
diff --git a/subspace_proof_of_space/chia/struct.ChiaTableGenerator.html b/subspace_proof_of_space/chia/struct.ChiaTableGenerator.html
index 3fae9200de..a712a6130b 100644
--- a/subspace_proof_of_space/chia/struct.ChiaTableGenerator.html
+++ b/subspace_proof_of_space/chia/struct.ChiaTableGenerator.html
@@ -1,6 +1,6 @@
ChiaTableGenerator in subspace_proof_of_space::chia - Rust Struct subspace_proof_of_space::chia::ChiaTableGenerator
source · pub struct ChiaTableGenerator { /* private fields */ }
Expand description
Subspace proof of space table generator.
Chia implementation.
-Trait Implementations§
source§impl Clone for ChiaTableGenerator
source§fn clone(&self) -> ChiaTableGenerator
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresource§impl Debug for ChiaTableGenerator
source§impl Default for ChiaTableGenerator
source§fn default() -> ChiaTableGenerator
Returns the “default value” for a type. Read moresource§impl TableGenerator<ChiaTable> for ChiaTableGenerator
Auto Trait Implementations§
§impl RefUnwindSafe for ChiaTableGenerator
§impl Send for ChiaTableGenerator
§impl Sync for ChiaTableGenerator
§impl Unpin for ChiaTableGenerator
§impl UnwindSafe for ChiaTableGenerator
Blanket Implementations§
Trait Implementations§
source§impl Clone for ChiaTableGenerator
source§fn clone(&self) -> ChiaTableGenerator
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresource§impl Debug for ChiaTableGenerator
source§impl Default for ChiaTableGenerator
source§fn default() -> ChiaTableGenerator
Returns the “default value” for a type. Read moreAuto Trait Implementations§
§impl RefUnwindSafe for ChiaTableGenerator
§impl Send for ChiaTableGenerator
§impl Sync for ChiaTableGenerator
§impl Unpin for ChiaTableGenerator
§impl UnwindSafe for ChiaTableGenerator
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moresource§impl<T> From<T> for T
source§fn from(t: T) -> T
Returns the argument unchanged.
diff --git a/subspace_proof_of_space/shim/struct.ShimQuality.html b/subspace_proof_of_space/shim/struct.ShimQuality.html
index 279cd475ed..eaeabf8a4d 100644
--- a/subspace_proof_of_space/shim/struct.ShimQuality.html
+++ b/subspace_proof_of_space/shim/struct.ShimQuality.html
@@ -1,6 +1,6 @@
ShimQuality in subspace_proof_of_space::shim - Rust Struct subspace_proof_of_space::shim::ShimQuality
source · pub struct ShimQuality<'a> { /* private fields */ }
Expand description
Abstraction that represents quality of the solution in the table.
Shim implementation.
-Trait Implementations§
source§impl<'a> Debug for ShimQuality<'a>
source§impl<'a> Quality for ShimQuality<'a>
Auto Trait Implementations§
§impl<'a> RefUnwindSafe for ShimQuality<'a>
§impl<'a> Send for ShimQuality<'a>
§impl<'a> Sync for ShimQuality<'a>
§impl<'a> Unpin for ShimQuality<'a>
§impl<'a> UnwindSafe for ShimQuality<'a>
Blanket Implementations§
Trait Implementations§
source§impl<'a> Debug for ShimQuality<'a>
source§impl<'a> Quality for ShimQuality<'a>
source§fn to_bytes(&self) -> PosQualityBytes
Get underlying bytes representation of the qualitysource§fn create_proof(&self) -> PosProof
Create proof for this solutionAuto Trait Implementations§
§impl<'a> RefUnwindSafe for ShimQuality<'a>
§impl<'a> Send for ShimQuality<'a>
§impl<'a> Sync for ShimQuality<'a>
§impl<'a> Unpin for ShimQuality<'a>
§impl<'a> UnwindSafe for ShimQuality<'a>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moresource§impl<T> From<T> for T
source§fn from(t: T) -> T
Returns the argument unchanged.
diff --git a/subspace_proof_of_space/shim/struct.ShimTable.html b/subspace_proof_of_space/shim/struct.ShimTable.html
index 6d30bc5f8d..8f93cdd7d3 100644
--- a/subspace_proof_of_space/shim/struct.ShimTable.html
+++ b/subspace_proof_of_space/shim/struct.ShimTable.html
@@ -1,10 +1,10 @@
ShimTable in subspace_proof_of_space::shim - Rust Struct subspace_proof_of_space::shim::ShimTable
source · pub struct ShimTable { /* private fields */ }
Expand description
Subspace proof of space table.
Shim implementation.
-Trait Implementations§
source§impl Table for ShimTable
source§const TABLE_TYPE: PosTableType = PosTableType::Shim
Proof of space table type§type Generator = ShimTableGenerator
Instance that can be used to generate tables with better performance§type Quality<'a> = ShimQuality<'a>
Abstraction that represents quality of the solution in the tablesource§fn find_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>
Try to find quality of the proof at challenge_index
if proof existssource§fn is_proof_valid(
- seed: &PosSeed,
+
Trait Implementations§
source§impl Table for ShimTable
source§const TABLE_TYPE: PosTableType = PosTableType::Shim
Proof of space table type§type Generator = ShimTableGenerator
Instance that can be used to generate tables with better performance§type Quality<'a> = ShimQuality<'a>
Abstraction that represents quality of the solution in the tablesource§fn find_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>
Try to find quality of the proof at challenge_index
if proof existssource§fn is_proof_valid(
+ seed: &PosSeed,
challenge_index: u32,
- proof: &PosProof
-) -> Option<PosQualityBytes>
Check whether proof created earlier is valid and return quality bytes if yessource§fn generate_parallel(seed: &PosSeed) -> Self
Generate new table with 32 bytes seed using parallelism. Read moresource§impl TableGenerator<ShimTable> for ShimTableGenerator
Auto Trait Implementations§
§impl RefUnwindSafe for ShimTable
§impl Send for ShimTable
§impl Sync for ShimTable
§impl Unpin for ShimTable
§impl UnwindSafe for ShimTable
Blanket Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for ShimTable
§impl Send for ShimTable
§impl Sync for ShimTable
§impl Unpin for ShimTable
§impl UnwindSafe for ShimTable
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moresource§impl<T> From<T> for T
source§fn from(t: T) -> T
Returns the argument unchanged.
diff --git a/subspace_proof_of_space/shim/struct.ShimTableGenerator.html b/subspace_proof_of_space/shim/struct.ShimTableGenerator.html
index 22dae22b69..acacc5e82d 100644
--- a/subspace_proof_of_space/shim/struct.ShimTableGenerator.html
+++ b/subspace_proof_of_space/shim/struct.ShimTableGenerator.html
@@ -1,6 +1,6 @@
ShimTableGenerator in subspace_proof_of_space::shim - Rust Struct subspace_proof_of_space::shim::ShimTableGenerator
source · pub struct ShimTableGenerator;
Expand description
Subspace proof of space table generator.
Shim implementation.
-Trait Implementations§
source§impl Clone for ShimTableGenerator
source§fn clone(&self) -> ShimTableGenerator
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresource§impl Debug for ShimTableGenerator
source§impl Default for ShimTableGenerator
source§fn default() -> ShimTableGenerator
Returns the “default value” for a type. Read moresource§impl TableGenerator<ShimTable> for ShimTableGenerator
Auto Trait Implementations§
§impl RefUnwindSafe for ShimTableGenerator
§impl Send for ShimTableGenerator
§impl Sync for ShimTableGenerator
§impl Unpin for ShimTableGenerator
§impl UnwindSafe for ShimTableGenerator
Blanket Implementations§
Trait Implementations§
source§impl Clone for ShimTableGenerator
source§fn clone(&self) -> ShimTableGenerator
Returns a copy of the value. Read more1.0.0 · source§fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresource§impl Debug for ShimTableGenerator
source§impl Default for ShimTableGenerator
source§fn default() -> ShimTableGenerator
Returns the “default value” for a type. Read moreAuto Trait Implementations§
§impl RefUnwindSafe for ShimTableGenerator
§impl Send for ShimTableGenerator
§impl Sync for ShimTableGenerator
§impl Unpin for ShimTableGenerator
§impl UnwindSafe for ShimTableGenerator
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moresource§impl<T> From<T> for T
source§fn from(t: T) -> T
Returns the argument unchanged.
diff --git a/subspace_proof_of_space/trait.Quality.html b/subspace_proof_of_space/trait.Quality.html
index cec63f2b9c..d143188883 100644
--- a/subspace_proof_of_space/trait.Quality.html
+++ b/subspace_proof_of_space/trait.Quality.html
@@ -1,8 +1,8 @@
Quality in subspace_proof_of_space - Rust Trait subspace_proof_of_space::Quality
source · pub trait Quality {
// Required methods
- fn to_bytes(&self) -> PosQualityBytes;
- fn create_proof(&self) -> PosProof;
+ fn to_bytes(&self) -> PosQualityBytes;
+ fn create_proof(&self) -> PosProof;
}
Expand description
Abstraction that represents quality of the solution in the table
-Required Methods§
sourcefn create_proof(&self) -> PosProof
Create proof for this solution
+Required Methods§
sourcefn to_bytes(&self) -> PosQualityBytes
Get underlying bytes representation of the quality
+sourcefn create_proof(&self) -> PosProof
Create proof for this solution
Implementors§
source§impl<'a> Quality for ChiaQuality<'a>
source§impl<'a> Quality for ShimQuality<'a>
\ No newline at end of file
diff --git a/subspace_proof_of_space/trait.Table.html b/subspace_proof_of_space/trait.Table.html
index 730931f107..4761e39226 100644
--- a/subspace_proof_of_space/trait.Table.html
+++ b/subspace_proof_of_space/trait.Table.html
@@ -6,16 +6,16 @@
const TABLE_TYPE: PosTableType;
// Required methods
- fn generate(seed: &PosSeed) -> Self;
+ fn generate(seed: &PosSeed) -> Self;
fn find_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>;
fn is_proof_valid(
- seed: &PosSeed,
+ seed: &PosSeed,
challenge_index: u32,
- proof: &PosProof
- ) -> Option<PosQualityBytes>;
+ proof: &PosProof
+ ) -> Option<PosQualityBytes>;
// Provided methods
- fn generate_parallel(seed: &PosSeed) -> Self { ... }
+ fn generate_parallel(seed: &PosSeed) -> Self { ... }
fn generator() -> Self::Generator { ... }
}Expand description
Proof of space kind
Required Associated Types§
sourcetype Generator: TableGenerator<Self>
Instance that can be used to generate tables with better performance
@@ -23,15 +23,15 @@
where
Self: 'aAbstraction that represents quality of the solution in the table
Required Associated Constants§
sourceconst TABLE_TYPE: PosTableType
Proof of space table type
-Required Methods§
Required Methods§
sourcefn generate(seed: &PosSeed) -> Self
Generate new table with 32 bytes seed.
There is also Self::generate_parallel()
that can achieve lower latency.
sourcefn find_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>
Try to find quality of the proof at challenge_index
if proof exists
sourcefn is_proof_valid(
- seed: &PosSeed,
+ seed: &PosSeed,
challenge_index: u32,
- proof: &PosProof
-) -> Option<PosQualityBytes>
Check whether proof created earlier is valid and return quality bytes if yes
-Provided Methods§
sourcefn generate_parallel(seed: &PosSeed) -> Self
Generate new table with 32 bytes seed using parallelism.
+ proof: &PosProof
+) -> Option<PosQualityBytes>Check whether proof created earlier is valid and return quality bytes if yes
+Provided Methods§
sourcefn generate_parallel(seed: &PosSeed) -> Self
Generate new table with 32 bytes seed using parallelism.
This implementation will trade efficiency of CPU and memory usage for lower latency, prefer
Self::generate()
unless lower latency is critical.
sourcefn generator() -> Self::Generator
Returns a stateful table generator with better performance
diff --git a/subspace_proof_of_space/trait.TableGenerator.html b/subspace_proof_of_space/trait.TableGenerator.html
index c48b52467b..3ad9e5aab6 100644
--- a/subspace_proof_of_space/trait.TableGenerator.html
+++ b/subspace_proof_of_space/trait.TableGenerator.html
@@ -1,13 +1,13 @@
TableGenerator in subspace_proof_of_space - Rust pub trait TableGenerator<T: Table>: Debug + Default + Clone + Send + Sized + 'static {
// Required method
- fn generate(&mut self, seed: &PosSeed) -> T;
+ fn generate(&mut self, seed: &PosSeed) -> T;
// Provided method
- fn generate_parallel(&mut self, seed: &PosSeed) -> T { ... }
+ fn generate_parallel(&mut self, seed: &PosSeed) -> T { ... }
}
Expand description
Stateful table generator with better performance
-Required Methods§
Required Methods§
sourcefn generate(&mut self, seed: &PosSeed) -> T
Generate new table with 32 bytes seed.
There is also Self::generate_parallel()
that can achieve lower latency.
-Provided Methods§
sourcefn generate_parallel(&mut self, seed: &PosSeed) -> T
Generate new table with 32 bytes seed using parallelism.
+Provided Methods§
sourcefn generate_parallel(&mut self, seed: &PosSeed) -> T
Generate new table with 32 bytes seed using parallelism.
This implementation will trade efficiency of CPU and memory usage for lower latency, prefer
Self::generate()
unless lower latency is critical.
Implementors§
source§impl TableGenerator<ChiaTable> for ChiaTableGenerator
source§impl TableGenerator<ShimTable> for ShimTableGenerator
\ No newline at end of file
diff --git a/subspace_proof_of_time/fn.prove.html b/subspace_proof_of_time/fn.prove.html
index 1a7a46339a..a45bd982b4 100644
--- a/subspace_proof_of_time/fn.prove.html
+++ b/subspace_proof_of_time/fn.prove.html
@@ -1,6 +1,6 @@
prove in subspace_proof_of_time - Rust Function subspace_proof_of_time::prove
source · pub fn prove(
- seed: PotSeed,
+ seed: PotSeed,
iterations: NonZeroU32
-) -> Result<PotCheckpoints, PotError>
Expand description
Run PoT proving and produce checkpoints.
+) -> Result<PotCheckpoints, PotError>Expand description
Run PoT proving and produce checkpoints.
Returns error if iterations
is not a multiple of checkpoints times two.
\ No newline at end of file
diff --git a/subspace_proof_of_time/fn.verify.html b/subspace_proof_of_time/fn.verify.html
index e7c17e704b..0b691bbf20 100644
--- a/subspace_proof_of_time/fn.verify.html
+++ b/subspace_proof_of_time/fn.verify.html
@@ -1,7 +1,7 @@
verify in subspace_proof_of_time - Rust Function subspace_proof_of_time::verify
source · pub fn verify(
- seed: PotSeed,
+ seed: PotSeed,
iterations: NonZeroU32,
- checkpoints: &[PotOutput]
+ checkpoints: &[PotOutput]
) -> Result<bool, PotError>
Expand description
Verify checkpoint, number of iterations is set across uniformly distributed checkpoints.
Returns error if iterations
is not a multiple of checkpoints times two.
\ No newline at end of file
diff --git a/subspace_verification/enum.Error.html b/subspace_verification/enum.Error.html
index 9a3ef18717..dbf1671bc9 100644
--- a/subspace_verification/enum.Error.html
+++ b/subspace_verification/enum.Error.html
@@ -4,13 +4,13 @@
max_pieces_in_sector: u16,
},
SectorExpired {
- expiration_history_size: HistorySize,
- current_history_size: HistorySize,
+ expiration_history_size: HistorySize,
+ current_history_size: HistorySize,
},
InvalidPiece,
OutsideSolutionRange {
- half_solution_range: SolutionRange,
- solution_distance: SolutionRange,
+ half_solution_range: SolutionRange,
+ solution_distance: SolutionRange,
},
InvalidProofOfSpace,
InvalidAuditChunkOffset,
@@ -20,12 +20,12 @@
Variants§
§InvalidPieceOffset
Fields
Invalid piece offset
-§SectorExpired
Fields
§expiration_history_size: HistorySize
Expiration history size
-§current_history_size: HistorySize
Current history size
+§SectorExpired
Fields
§expiration_history_size: HistorySize
Expiration history size
+§current_history_size: HistorySize
Current history size
Sector expired
§InvalidPiece
Piece verification failed
-§OutsideSolutionRange
Fields
§half_solution_range: SolutionRange
Half of solution range
-§solution_distance: SolutionRange
Solution distance
+§OutsideSolutionRange
Fields
§half_solution_range: SolutionRange
Half of solution range
+§solution_distance: SolutionRange
Solution distance
Solution is outside of challenge range
§InvalidProofOfSpace
Invalid proof of space
§InvalidAuditChunkOffset
Invalid audit chunk offset
diff --git a/subspace_verification/fn.calculate_block_weight.html b/subspace_verification/fn.calculate_block_weight.html
index 2b436d1b2e..f5e3e728ac 100644
--- a/subspace_verification/fn.calculate_block_weight.html
+++ b/subspace_verification/fn.calculate_block_weight.html
@@ -1,2 +1,2 @@
-calculate_block_weight in subspace_verification - Rust Function subspace_verification::calculate_block_weight
source · pub fn calculate_block_weight(solution_range: SolutionRange) -> BlockWeight
Expand description
Calculate weight derived from provided solution range
+calculate_block_weight in subspace_verification - Rust