From ab26d5578f383028d31783077ce4e8690e5226e1 Mon Sep 17 00:00:00 2001 From: nazar-pc Date: Thu, 21 Dec 2023 15:59:19 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20subspace?= =?UTF-8?q?/subspace@8f53e8bba65dd17c7f7531b47f1f981d086b5bde=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- implementors/core/clone/trait.Clone.js | 2 +- implementors/core/marker/trait.Freeze.js | 2 +- search-index.js | 4 +- .../utils/farmer_piece_getter.rs.html | 50 +--- .../utils/piece_validator.rs.html | 10 +- src/subspace_networking/node.rs.html | 46 ++- src/subspace_networking/node_runner.rs.html | 2 +- src/subspace_networking/shared.rs.html | 2 +- .../utils/piece_provider.rs.html | 268 +++++++++++++++++- .../sync_from_dsn/import_blocks.rs.html | 2 +- .../enum.ArchiverInstantiationError.html | 4 +- .../archiver/enum.SegmentItem.html | 4 +- .../archiver/fn.is_piece_valid.html | 6 +- .../fn.is_record_commitment_hash_valid.html | 8 +- .../archiver/struct.Archiver.html | 16 +- .../archiver/struct.NewArchivedSegment.html | 12 +- .../struct.PiecesReconstructor.html | 10 +- .../enum.ReconstructorError.html | 6 +- .../struct.ReconstructedContents.html | 8 +- .../reconstructor/struct.Reconstructor.html | 2 +- .../struct.ErasureCoding.html | 16 +- .../utils/farmer_piece_getter/index.html | 2 +- .../struct.FarmerPieceGetter.html | 7 +- .../utils/piece_validator/index.html | 2 +- ...truct.SegmentCommitmentPieceValidator.html | 11 +- .../auditing/fn.audit_plot_sync.html | 8 +- .../auditing/fn.audit_sector_sync.html | 6 +- .../auditing/struct.AuditResult.html | 8 +- .../plotting/enum.PlottingError.html | 12 +- .../struct.DownloadSectorOptions.html | 12 +- .../plotting/struct.EncodeSectorOptions.html | 4 +- .../plotting/struct.PlotSectorOptions.html | 12 +- .../plotting/struct.PlottedSector.html | 12 +- .../plotting/trait.PieceGetter.html | 18 +- .../proving/enum.ProvingError.html | 8 +- .../proving/struct.SolutionCandidates.html | 6 +- .../proving/trait.ProvableSolutions.html | 4 +- .../reading/enum.ReadingError.html | 8 +- .../reading/fn.read_piece.html | 6 +- .../reading/fn.read_sector_record_chunks.html | 4 +- .../fn.recover_extended_record_chunks.html | 6 +- .../fn.recover_source_record_chunks.html | 6 +- .../reading/struct.PlotRecord.html | 12 +- .../sector/struct.SectorContentsMap.html | 18 +- .../sector/struct.SectorMetadata.html | 8 +- .../struct.FarmerProtocolInfo.html | 16 +- subspace_networking/struct.Node.html | 28 +- .../piece_provider/enum.RetryPolicy.html | 6 +- .../utils/piece_provider/index.html | 2 +- .../struct.NoPieceValidator.html | 4 +- .../piece_provider/struct.PieceProvider.html | 19 +- .../piece_provider/trait.PieceValidator.html | 6 +- .../chia/struct.ChiaTable.html | 8 +- .../chia/struct.ChiaTableGenerator.html | 2 +- .../shim/struct.ShimTable.html | 8 +- .../shim/struct.ShimTableGenerator.html | 2 +- subspace_proof_of_space/trait.Table.html | 20 +- .../trait.TableGenerator.html | 8 +- subspace_proof_of_time/fn.prove.html | 4 +- subspace_proof_of_time/fn.verify.html | 4 +- subspace_verification/enum.Error.html | 16 +- .../fn.calculate_block_weight.html | 2 +- .../fn.check_reward_signature.html | 4 +- .../fn.derive_next_solution_range.html | 8 +- .../fn.derive_pot_entropy.html | 2 +- .../fn.is_within_solution_range.html | 8 +- subspace_verification/fn.verify_solution.html | 10 +- .../struct.PieceCheckParams.html | 24 +- .../struct.VerifySolutionParams.html | 8 +- 69 files changed, 595 insertions(+), 304 deletions(-) diff --git a/implementors/core/clone/trait.Clone.js b/implementors/core/clone/trait.Clone.js index 560e409c6a..05967850fb 100644 --- a/implementors/core/clone/trait.Clone.js +++ b/implementors/core/clone/trait.Clone.js @@ -33,7 +33,7 @@ "subspace_archiving":[["impl Clone for ReconstructedContents"],["impl Clone for Reconstructor"],["impl Clone for SegmentItem"],["impl Clone for Segment"],["impl Clone for NewArchivedSegment"],["impl Clone for ReconstructorInstantiationError"],["impl Clone for ReconstructorError"],["impl Clone for ReconstructorInstantiationError"],["impl Clone for PiecesReconstructor"],["impl Clone for ReconstructorError"],["impl Clone for Archiver"],["impl Clone for ArchiverInstantiationError"]], "subspace_core_primitives":[["impl Clone for PublicKey"],["impl<PublicKey: Clone, RewardAddress: Clone> Clone for Solution<PublicKey, RewardAddress>"],["impl Clone for Piece"],["impl Clone for U256"],["impl Clone for BlockObjectMapping"],["impl Clone for SectorSlotChallenge"],["impl Clone for PieceIndex"],["impl Clone for PotSeed"],["impl Clone for Polynomial"],["impl<T: Clone> Clone for NonEmptyVec<T>"],["impl Clone for SBucket"],["impl Clone for PieceOffset"],["impl Clone for PosSeed"],["impl Clone for SegmentCommitment"],["impl Clone for BlockObject"],["impl Clone for PotKey"],["impl Clone for HistorySize"],["impl Clone for RecordedHistorySegment"],["impl Clone for Scalar"],["impl Clone for SegmentHeader"],["impl Clone for ArchivedHistorySegment"],["impl Clone for Randomness"],["impl Clone for GlobalObject"],["impl Clone for Kzg"],["impl Clone for FlatPieces"],["impl<T: Clone> Clone for Blake3Checksummed<T>"],["impl Clone for LastArchivedBlock"],["impl Clone for Commitment"],["impl Clone for PosProof"],["impl Clone for RecordWitness"],["impl Clone for RecordCommitment"],["impl Clone for ChunkWitness"],["impl Clone for PieceArray"],["impl Clone for SectorId"],["impl Clone for PieceObject"],["impl Clone for RewardSignature"],["impl Clone for SegmentIndex"],["impl Clone for PieceObjectMapping"],["impl Clone for Witness"],["impl Clone for RawRecord"],["impl Clone for Record"],["impl Clone for ArchivedBlockProgress"],["impl Clone for PotCheckpoints"],["impl Clone for PotOutput"]], "subspace_erasure_coding":[["impl Clone for ErasureCoding"]], -"subspace_farmer":[["impl Clone for Offset"],["impl Clone for SingleDiskFarmInfo"],["impl<'a, PosTable> Clone for PlotAuditOptions<'a, PosTable>where\n PosTable: Table,"],["impl Clone for PieceCache"],["impl Clone for Identity"],["impl Clone for DiskPieceCache"],["impl Clone for NodeRpcClient"],["impl Clone for PieceReader"],["impl Clone for SingleDiskFarmId"]], +"subspace_farmer":[["impl Clone for Offset"],["impl Clone for SingleDiskFarmInfo"],["impl<'a, PosTable> Clone for PlotAuditOptions<'a, PosTable>where\n PosTable: Table,"],["impl Clone for PieceCache"],["impl Clone for Identity"],["impl Clone for DiskPieceCache"],["impl<NC: Clone> Clone for SegmentCommitmentPieceValidator<NC>"],["impl Clone for NodeRpcClient"],["impl Clone for PieceReader"],["impl Clone for SingleDiskFarmId"]], "subspace_farmer_components":[["impl Clone for PieceGetterRetryPolicy"],["impl Clone for SectorMetadataChecksummed"],["impl Clone for SectorContentsMapEncodeIntoError"],["impl<'a, Sector> Clone for SolutionCandidates<'a, Sector>where\n Sector: Clone + 'a,"],["impl Clone for SectorContentsMap"],["impl<'a, T: Clone> Clone for ReadAtOffset<'a, T>"],["impl<'a, Sector> Clone for AuditResult<'a, Sector>where\n Sector: 'a + Clone,"],["impl<S, A> Clone for ReadAt<S, A>where\n S: ReadAtSync + Clone,\n A: ReadAtAsync + Clone,"],["impl Clone for SectorContentsMapFromBytesError"],["impl Clone for PlotRecord"],["impl Clone for FarmerProtocolInfo"],["impl Clone for PlottedSector"],["impl Clone for SectorContentsMapIterationError"],["impl Clone for SectorMetadata"]], "subspace_networking":[["impl<K: Clone> Clone for UniqueRecordBinaryHeap<K>"],["impl Clone for MultihashCode"],["impl Clone for PieceByIndexResponse"],["impl Clone for Node"],["impl Clone for RetryPolicy"],["impl Clone for SegmentHeaderResponse"],["impl Clone for PeerDiscovered"],["impl Clone for Box<dyn RequestHandler>"],["impl Clone for SegmentHeaderRequest"],["impl<T: Clone> Clone for KeyWrapper<T>"],["impl Clone for PieceByIndexRequest"],["impl Clone for PeerAddressRemovedEvent"],["impl Clone for KnownPeersManagerConfig"],["impl Clone for KademliaMode"]], "subspace_node":[["impl Clone for PurgeChainCmd"]], diff --git a/implementors/core/marker/trait.Freeze.js b/implementors/core/marker/trait.Freeze.js index f6a703ffce..29bca35c41 100644 --- a/implementors/core/marker/trait.Freeze.js +++ b/implementors/core/marker/trait.Freeze.js @@ -40,7 +40,7 @@ "subspace_archiving":[["impl Freeze for Segment",1,["subspace_archiving::archiver::Segment"]],["impl Freeze for SegmentItem",1,["subspace_archiving::archiver::SegmentItem"]],["impl Freeze for NewArchivedSegment",1,["subspace_archiving::archiver::NewArchivedSegment"]],["impl Freeze for ArchiverInstantiationError",1,["subspace_archiving::archiver::ArchiverInstantiationError"]],["impl Freeze for Archiver",1,["subspace_archiving::archiver::Archiver"]],["impl Freeze for ReconstructorInstantiationError",1,["subspace_archiving::piece_reconstructor::ReconstructorInstantiationError"]],["impl Freeze for ReconstructorError",1,["subspace_archiving::piece_reconstructor::ReconstructorError"]],["impl Freeze for PiecesReconstructor",1,["subspace_archiving::piece_reconstructor::PiecesReconstructor"]],["impl Freeze for ReconstructorInstantiationError",1,["subspace_archiving::reconstructor::ReconstructorInstantiationError"]],["impl Freeze for ReconstructorError",1,["subspace_archiving::reconstructor::ReconstructorError"]],["impl Freeze for ReconstructedContents",1,["subspace_archiving::reconstructor::ReconstructedContents"]],["impl Freeze for Reconstructor",1,["subspace_archiving::reconstructor::Reconstructor"]]], "subspace_core_primitives":[["impl<T> Freeze for Blake3Checksummed<T>where\n T: Freeze,",1,["subspace_core_primitives::checksum::Blake3Checksummed"]],["impl Freeze for Polynomial",1,["subspace_core_primitives::crypto::kzg::Polynomial"]],["impl Freeze for Commitment",1,["subspace_core_primitives::crypto::kzg::Commitment"]],["impl Freeze for Witness",1,["subspace_core_primitives::crypto::kzg::Witness"]],["impl Freeze for Kzg",1,["subspace_core_primitives::crypto::kzg::Kzg"]],["impl Freeze for Scalar",1,["subspace_core_primitives::crypto::Scalar"]],["impl Freeze for BlockObject",1,["subspace_core_primitives::objects::BlockObject"]],["impl Freeze for BlockObjectMapping",1,["subspace_core_primitives::objects::BlockObjectMapping"]],["impl Freeze for PieceObject",1,["subspace_core_primitives::objects::PieceObject"]],["impl Freeze for PieceObjectMapping",1,["subspace_core_primitives::objects::PieceObjectMapping"]],["impl Freeze for GlobalObject",1,["subspace_core_primitives::objects::GlobalObject"]],["impl Freeze for SBucket",1,["subspace_core_primitives::pieces::SBucket"]],["impl Freeze for PieceIndex",1,["subspace_core_primitives::pieces::PieceIndex"]],["impl Freeze for PieceOffset",1,["subspace_core_primitives::pieces::PieceOffset"]],["impl Freeze for RawRecord",1,["subspace_core_primitives::pieces::RawRecord"]],["impl Freeze for Record",1,["subspace_core_primitives::pieces::Record"]],["impl Freeze for RecordCommitment",1,["subspace_core_primitives::pieces::RecordCommitment"]],["impl Freeze for RecordWitness",1,["subspace_core_primitives::pieces::RecordWitness"]],["impl Freeze for ChunkWitness",1,["subspace_core_primitives::pieces::ChunkWitness"]],["impl Freeze for Piece",1,["subspace_core_primitives::pieces::Piece"]],["impl Freeze for PieceArray",1,["subspace_core_primitives::pieces::PieceArray"]],["impl Freeze for FlatPieces",1,["subspace_core_primitives::pieces::FlatPieces"]],["impl Freeze for SegmentIndex",1,["subspace_core_primitives::segments::SegmentIndex"]],["impl Freeze for SegmentCommitment",1,["subspace_core_primitives::segments::SegmentCommitment"]],["impl Freeze for HistorySize",1,["subspace_core_primitives::segments::HistorySize"]],["impl Freeze for RecordedHistorySegment",1,["subspace_core_primitives::segments::RecordedHistorySegment"]],["impl Freeze for ArchivedHistorySegment",1,["subspace_core_primitives::segments::ArchivedHistorySegment"]],["impl Freeze for Randomness",1,["subspace_core_primitives::Randomness"]],["impl Freeze for PosSeed",1,["subspace_core_primitives::PosSeed"]],["impl Freeze for PosProof",1,["subspace_core_primitives::PosProof"]],["impl Freeze for PotKey",1,["subspace_core_primitives::PotKey"]],["impl Freeze for PotSeed",1,["subspace_core_primitives::PotSeed"]],["impl Freeze for PotOutput",1,["subspace_core_primitives::PotOutput"]],["impl Freeze for PotCheckpoints",1,["subspace_core_primitives::PotCheckpoints"]],["impl Freeze for PublicKey",1,["subspace_core_primitives::PublicKey"]],["impl Freeze for RewardSignature",1,["subspace_core_primitives::RewardSignature"]],["impl Freeze for ArchivedBlockProgress",1,["subspace_core_primitives::ArchivedBlockProgress"]],["impl Freeze for LastArchivedBlock",1,["subspace_core_primitives::LastArchivedBlock"]],["impl Freeze for SegmentHeader",1,["subspace_core_primitives::SegmentHeader"]],["impl<PublicKey, RewardAddress> Freeze for Solution<PublicKey, RewardAddress>where\n PublicKey: Freeze,\n RewardAddress: Freeze,",1,["subspace_core_primitives::Solution"]],["impl Freeze for U256",1,["subspace_core_primitives::U256"]],["impl Freeze for SectorSlotChallenge",1,["subspace_core_primitives::SectorSlotChallenge"]],["impl Freeze for SectorId",1,["subspace_core_primitives::SectorId"]],["impl<T> Freeze for NonEmptyVec<T>",1,["subspace_core_primitives::NonEmptyVec"]],["impl Freeze for NonEmptyVecErr",1,["subspace_core_primitives::NonEmptyVecErr"]]], "subspace_erasure_coding":[["impl Freeze for ErasureCoding",1,["subspace_erasure_coding::ErasureCoding"]]], -"subspace_farmer":[["impl Freeze for Identity",1,["subspace_farmer::identity::Identity"]],["impl Freeze for NodeRpcClient",1,["subspace_farmer::node_client::node_rpc_client::NodeRpcClient"]],["impl<NC> Freeze for CacheWorker<NC>where\n NC: Freeze,",1,["subspace_farmer::piece_cache::CacheWorker"]],["impl Freeze for PieceCache",1,["subspace_farmer::piece_cache::PieceCache"]],["impl Freeze for RayonFiles",1,["subspace_farmer::single_disk_farm::farming::rayon_files::RayonFiles"]],["impl Freeze for FarmingError",1,["subspace_farmer::single_disk_farm::farming::FarmingError"]],["impl<'a, PosTable> Freeze for PlotAuditOptions<'a, PosTable>",1,["subspace_farmer::single_disk_farm::farming::PlotAuditOptions"]],["impl<Plot> Freeze for PlotAudit<Plot>where\n Plot: Freeze,",1,["subspace_farmer::single_disk_farm::farming::PlotAudit"]],["impl Freeze for DiskPieceCacheError",1,["subspace_farmer::single_disk_farm::piece_cache::DiskPieceCacheError"]],["impl Freeze for Offset",1,["subspace_farmer::single_disk_farm::piece_cache::Offset"]],["impl Freeze for DiskPieceCache",1,["subspace_farmer::single_disk_farm::piece_cache::DiskPieceCache"]],["impl Freeze for PieceReader",1,["subspace_farmer::single_disk_farm::piece_reader::PieceReader"]],["impl Freeze for PlottingError",1,["subspace_farmer::single_disk_farm::plotting::PlottingError"]],["impl Freeze for SingleDiskFarmId",1,["subspace_farmer::single_disk_farm::SingleDiskFarmId"]],["impl Freeze for SingleDiskFarmInfoLock",1,["subspace_farmer::single_disk_farm::SingleDiskFarmInfoLock"]],["impl Freeze for SingleDiskFarmInfo",1,["subspace_farmer::single_disk_farm::SingleDiskFarmInfo"]],["impl Freeze for SingleDiskFarmSummary",1,["subspace_farmer::single_disk_farm::SingleDiskFarmSummary"]],["impl<NC, PG> Freeze for SingleDiskFarmOptions<NC, PG>where\n NC: Freeze,\n PG: Freeze,",1,["subspace_farmer::single_disk_farm::SingleDiskFarmOptions"]],["impl Freeze for SingleDiskFarmError",1,["subspace_farmer::single_disk_farm::SingleDiskFarmError"]],["impl Freeze for SingleDiskFarmScrubError",1,["subspace_farmer::single_disk_farm::SingleDiskFarmScrubError"]],["impl Freeze for BackgroundTaskError",1,["subspace_farmer::single_disk_farm::BackgroundTaskError"]],["impl Freeze for SectorPlottingDetails",1,["subspace_farmer::single_disk_farm::SectorPlottingDetails"]],["impl !Freeze for SingleDiskFarm",1,["subspace_farmer::single_disk_farm::SingleDiskFarm"]],["impl<PV, NC> Freeze for FarmerPieceGetter<PV, NC>where\n NC: Freeze,\n PV: Freeze,",1,["subspace_farmer::utils::farmer_piece_getter::FarmerPieceGetter"]],["impl<NC> !Freeze for SegmentCommitmentPieceValidator<NC>",1,["subspace_farmer::utils::piece_validator::SegmentCommitmentPieceValidator"]],["impl Freeze for ReadersAndPieces",1,["subspace_farmer::utils::readers_and_pieces::ReadersAndPieces"]],["impl Freeze for Ss58ParsingError",1,["subspace_farmer::utils::ss58::Ss58ParsingError"]],["impl<T> Freeze for AsyncJoinOnDrop<T>",1,["subspace_farmer::utils::AsyncJoinOnDrop"]]], +"subspace_farmer":[["impl Freeze for Identity",1,["subspace_farmer::identity::Identity"]],["impl Freeze for NodeRpcClient",1,["subspace_farmer::node_client::node_rpc_client::NodeRpcClient"]],["impl<NC> Freeze for CacheWorker<NC>where\n NC: Freeze,",1,["subspace_farmer::piece_cache::CacheWorker"]],["impl Freeze for PieceCache",1,["subspace_farmer::piece_cache::PieceCache"]],["impl Freeze for RayonFiles",1,["subspace_farmer::single_disk_farm::farming::rayon_files::RayonFiles"]],["impl Freeze for FarmingError",1,["subspace_farmer::single_disk_farm::farming::FarmingError"]],["impl<'a, PosTable> Freeze for PlotAuditOptions<'a, PosTable>",1,["subspace_farmer::single_disk_farm::farming::PlotAuditOptions"]],["impl<Plot> Freeze for PlotAudit<Plot>where\n Plot: Freeze,",1,["subspace_farmer::single_disk_farm::farming::PlotAudit"]],["impl Freeze for DiskPieceCacheError",1,["subspace_farmer::single_disk_farm::piece_cache::DiskPieceCacheError"]],["impl Freeze for Offset",1,["subspace_farmer::single_disk_farm::piece_cache::Offset"]],["impl Freeze for DiskPieceCache",1,["subspace_farmer::single_disk_farm::piece_cache::DiskPieceCache"]],["impl Freeze for PieceReader",1,["subspace_farmer::single_disk_farm::piece_reader::PieceReader"]],["impl Freeze for PlottingError",1,["subspace_farmer::single_disk_farm::plotting::PlottingError"]],["impl Freeze for SingleDiskFarmId",1,["subspace_farmer::single_disk_farm::SingleDiskFarmId"]],["impl Freeze for SingleDiskFarmInfoLock",1,["subspace_farmer::single_disk_farm::SingleDiskFarmInfoLock"]],["impl Freeze for SingleDiskFarmInfo",1,["subspace_farmer::single_disk_farm::SingleDiskFarmInfo"]],["impl Freeze for SingleDiskFarmSummary",1,["subspace_farmer::single_disk_farm::SingleDiskFarmSummary"]],["impl<NC, PG> Freeze for SingleDiskFarmOptions<NC, PG>where\n NC: Freeze,\n PG: Freeze,",1,["subspace_farmer::single_disk_farm::SingleDiskFarmOptions"]],["impl Freeze for SingleDiskFarmError",1,["subspace_farmer::single_disk_farm::SingleDiskFarmError"]],["impl Freeze for SingleDiskFarmScrubError",1,["subspace_farmer::single_disk_farm::SingleDiskFarmScrubError"]],["impl Freeze for BackgroundTaskError",1,["subspace_farmer::single_disk_farm::BackgroundTaskError"]],["impl Freeze for SectorPlottingDetails",1,["subspace_farmer::single_disk_farm::SectorPlottingDetails"]],["impl !Freeze for SingleDiskFarm",1,["subspace_farmer::single_disk_farm::SingleDiskFarm"]],["impl<PV, NC> Freeze for FarmerPieceGetter<PV, NC>where\n NC: Freeze,\n PV: Freeze,",1,["subspace_farmer::utils::farmer_piece_getter::FarmerPieceGetter"]],["impl<NC> Freeze for SegmentCommitmentPieceValidator<NC>where\n NC: Freeze,",1,["subspace_farmer::utils::piece_validator::SegmentCommitmentPieceValidator"]],["impl Freeze for ReadersAndPieces",1,["subspace_farmer::utils::readers_and_pieces::ReadersAndPieces"]],["impl Freeze for Ss58ParsingError",1,["subspace_farmer::utils::ss58::Ss58ParsingError"]],["impl<T> Freeze for AsyncJoinOnDrop<T>",1,["subspace_farmer::utils::AsyncJoinOnDrop"]]], "subspace_farmer_components":[["impl<'a, Sector> Freeze for AuditResult<'a, Sector>where\n Sector: Freeze,",1,["subspace_farmer_components::auditing::AuditResult"]],["impl Freeze for PieceGetterRetryPolicy",1,["subspace_farmer_components::plotting::PieceGetterRetryPolicy"]],["impl Freeze for PlottedSector",1,["subspace_farmer_components::plotting::PlottedSector"]],["impl Freeze for PlottingError",1,["subspace_farmer_components::plotting::PlottingError"]],["impl<'a, PosTable, PG> Freeze for PlotSectorOptions<'a, PosTable, PG>",1,["subspace_farmer_components::plotting::PlotSectorOptions"]],["impl Freeze for DownloadedSector",1,["subspace_farmer_components::plotting::DownloadedSector"]],["impl<'a, PG> Freeze for DownloadSectorOptions<'a, PG>",1,["subspace_farmer_components::plotting::DownloadSectorOptions"]],["impl<'a, PosTable> Freeze for EncodeSectorOptions<'a, PosTable>",1,["subspace_farmer_components::plotting::EncodeSectorOptions"]],["impl Freeze for ProvingError",1,["subspace_farmer_components::proving::ProvingError"]],["impl<'a, Sector> Freeze for SolutionCandidates<'a, Sector>where\n Sector: Freeze,",1,["subspace_farmer_components::proving::SolutionCandidates"]],["impl Freeze for ReadingError",1,["subspace_farmer_components::reading::ReadingError"]],["impl Freeze for PlotRecord",1,["subspace_farmer_components::reading::PlotRecord"]],["impl Freeze for SectorMetadata",1,["subspace_farmer_components::sector::SectorMetadata"]],["impl Freeze for SectorMetadataChecksummed",1,["subspace_farmer_components::sector::SectorMetadataChecksummed"]],["impl<'a> Freeze for EncodedChunksUsed<'a>",1,["subspace_farmer_components::sector::EncodedChunksUsed"]],["impl Freeze for SectorContentsMapFromBytesError",1,["subspace_farmer_components::sector::SectorContentsMapFromBytesError"]],["impl Freeze for SectorContentsMapEncodeIntoError",1,["subspace_farmer_components::sector::SectorContentsMapEncodeIntoError"]],["impl Freeze for SectorContentsMapIterationError",1,["subspace_farmer_components::sector::SectorContentsMapIterationError"]],["impl Freeze for SectorContentsMap",1,["subspace_farmer_components::sector::SectorContentsMap"]],["impl<S, A> Freeze for ReadAt<S, A>where\n A: Freeze,\n S: Freeze,",1,["subspace_farmer_components::ReadAt"]],["impl<B> Freeze for AsyncReadBytes<B>where\n B: Freeze,",1,["subspace_farmer_components::AsyncReadBytes"]],["impl<'a, T> Freeze for ReadAtOffset<'a, T>",1,["subspace_farmer_components::ReadAtOffset"]],["impl Freeze for FarmerProtocolInfo",1,["subspace_farmer_components::FarmerProtocolInfo"]]], "subspace_malicious_operator":[["impl<CNetwork> Freeze for DomainInstanceStarter<CNetwork>",1,["subspace_malicious_operator::malicious_domain_instance_starter::DomainInstanceStarter"]]], "subspace_metrics":[["impl Freeze for RegistryAdapter",1,["subspace_metrics::RegistryAdapter"]],["impl Freeze for metrics",1,["subspace_metrics::metrics"]]], diff --git a/search-index.js b/search-index.js index a8e37f07e5..744712b395 100644 --- a/search-index.js +++ b/search-index.js @@ -43,11 +43,11 @@ var searchIndex = JSON.parse('{\ "subspace_archiving":{"doc":"Collection of modules used for dealing with archived state …","t":"AAADENNNNNNDNNEENLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFFLLMLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMNNNNDEELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNDDEENLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLMM","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","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","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","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"],[133,"subspace_archiving::archiver::ArchiverInstantiationError"],[135,"subspace_archiving::archiver::Segment"],[136,"subspace_archiving::archiver::SegmentItem"],[139,"subspace_archiving::piece_reconstructor"],[203,"subspace_archiving::reconstructor"],[286,"subspace_archiving::reconstructor::ReconstructorError"],[288,"alloc::vec"],[289,"subspace_core_primitives::objects"],[290,"core::cmp"],[291,"parity_scale_codec::error"],[292,"core::result"],[293,"parity_scale_codec::codec"],[294,"serde::de"],[295,"parity_scale_codec::codec"],[296,"core::fmt"],[297,"core::fmt"],[298,"subspace_core_primitives::crypto::kzg"],[299,"subspace_core_primitives::pieces"],[300,"subspace_core_primitives::segments"],[301,"subspace_core_primitives::crypto"],[302,"subspace_core_primitives::pieces"],[303,"core::option"],[304,"serde::ser"],[305,"alloc::alloc"],[306,"alloc::string"],[307,"core::any"],[308,"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,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,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,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],[[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],[[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],[[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",288],[3,"BlockObjectMapping",289],[15,"bool"],[3,"NewArchivedSegment",3],[4,"Segment",3],[4,"SegmentItem",3],[4,"ArchiverInstantiationError",3],[15,"tuple"],[4,"Ordering",290],[3,"Error",291],[4,"Result",292],[8,"Input",293],[15,"slice"],[15,"u32"],[15,"usize"],[8,"Deserializer",294],[8,"Output",293],[8,"Sized",295],[3,"Formatter",296],[6,"Result",296],[8,"Hasher",297],[3,"Kzg",298],[3,"PieceArray",299],[3,"SegmentCommitment",300],[3,"Scalar",301],[3,"RecordWitness",299],[6,"BlockNumber",302],[4,"Option",303],[8,"Serializer",304],[3,"Global",305],[3,"String",306],[3,"TypeId",307],[4,"SegmentHeader",302],[4,"ReconstructorInstantiationError",139],[4,"ReconstructorError",139],[3,"PiecesReconstructor",139],[3,"Piece",299],[3,"ArchivedHistorySegment",300],[3,"Reconstructor",203],[3,"ReconstructedContents",203],[4,"ReconstructorError",203],[4,"ReconstructorInstantiationError",203],[13,"InvalidBlockSmallSize",133],[13,"V0",135],[13,"Block",136],[13,"BlockStart",136],[13,"BlockContinuation",136],[13,"IncorrectSegmentOrder",286]],"b":[[77,"impl-Debug-for-ArchiverInstantiationError"],[78,"impl-Display-for-ArchiverInstantiationError"],[170,"impl-Debug-for-ReconstructorInstantiationError"],[171,"impl-Display-for-ReconstructorInstantiationError"],[172,"impl-Debug-for-ReconstructorError"],[173,"impl-Display-for-ReconstructorError"],[246,"impl-Debug-for-ReconstructorInstantiationError"],[247,"impl-Display-for-ReconstructorInstantiationError"],[248,"impl-Display-for-ReconstructorError"],[249,"impl-Debug-for-ReconstructorError"]]},\ "subspace_core_primitives":{"doc":"Core primitives for Subspace Network.","t":"EDRGGGGDNSNDDDSSSSSSSSSDESSSRNDDDDDDDDDDDRRRDDDDDDDDSSSSSSSSSSSSSSSDGDDEDGDGDNSSSSLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMALLLLLLLLLLLLLLLLLLLLLLLLLMLLMMLLMLMLMLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMDLLLLLLLLLLLLLLLLLLLLLLLSSDLLFFFFFLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLDRDRRDDLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLEDEEDNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMM","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","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","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","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_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_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_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","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","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","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_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","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_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_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_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","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","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","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"],[1415,"subspace_core_primitives::SegmentHeader"],[1419,"subspace_core_primitives::checksum"],[1443,"subspace_core_primitives::crypto"],[1507,"subspace_core_primitives::crypto::kzg"],[1626,"subspace_core_primitives::objects"],[1794,"subspace_core_primitives::objects::BlockObject"],[1796,"subspace_core_primitives::objects::GlobalObject"],[1798,"subspace_core_primitives::objects::PieceObject"],[1800,"byte_slice_cast"],[1801,"core::result"],[1802,"byte_slice_cast"],[1803,"core::option"],[1804,"num_traits::ops::wrapping"],[1805,"core::cmp"],[1806,"core::cmp"],[1807,"parity_scale_codec::codec"],[1808,"parity_scale_codec::codec"],[1809,"parity_scale_codec::decode_finished"],[1810,"serde::de"],[1811,"serde::de"],[1812,"core::iter::traits::collect"],[1813,"parity_scale_codec::codec"],[1814,"parity_scale_codec::codec"],[1815,"core::fmt"],[1816,"core::convert"],[1817,"core::hash"],[1818,"core::convert"],[1819,"alloc::boxed"],[1820,"rayon::iter"],[1821,"core::iter::traits::exact_size"],[1822,"serde::ser"],[1823,"serde::ser"],[1824,"alloc::string"],[1825,"core::any"],[1826,"scale_info::ty"],[1827,"core::ops::function"],[1828,"rust_kzg_blst::types::fr"],[1829,"rust_kzg_blst::types::g1"],[1830,"rust_kzg_blst::types::kzg_settings"],[1831,"rust_kzg_blst::types::poly"],[1832,"rust_kzg_blst::types::fft_settings"],[1833,"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 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 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.","","","","","","","","","","","","","","","","","","","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.","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).","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,41,19,69,0,0,0,1,5,5,40,9,10,37,19,10,0,0,2,3,4,0,41,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,21,22,23,0,0,0,0,0,0,0,0,0,0,43,1,2,3,4,1,2,3,4,5,1,2,3,4,42,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,1,2,3,4,0,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,21,22,23,40,27,28,41,42,43,44,5,45,29,30,69,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,21,22,23,40,27,28,41,42,43,44,5,45,29,30,69,5,5,5,5,0,44,44,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,21,22,23,40,27,28,41,42,43,44,5,45,29,30,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,21,22,23,40,27,28,41,42,43,44,5,45,29,30,1,2,3,14,15,17,4,36,27,28,41,42,5,45,29,15,15,0,1,2,3,11,12,13,14,15,17,4,18,36,37,20,39,21,22,23,40,27,28,41,42,43,44,5,29,30,1,2,3,11,12,13,14,15,17,4,18,36,37,20,39,21,22,23,40,27,28,41,42,43,44,5,29,30,1,2,3,11,12,13,14,15,17,4,18,36,37,20,39,21,22,23,40,27,28,41,42,43,44,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,39,21,22,23,40,27,28,41,42,43,44,5,29,30,1,2,3,9,10,11,12,13,14,15,17,4,18,19,37,20,39,21,22,23,40,27,41,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,21,21,22,22,23,23,40,40,27,27,28,28,41,42,43,44,5,45,45,29,30,69,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,39,21,21,22,22,23,23,40,40,27,28,41,42,43,44,5,45,29,30,69,29,29,20,23,29,29,1,2,3,11,12,13,14,15,17,4,18,36,37,20,39,21,22,23,27,28,41,42,43,44,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,21,22,23,40,27,28,41,42,43,44,5,45,29,30,69,1,2,3,11,12,13,14,15,17,4,18,36,37,20,39,21,22,23,40,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,39,21,22,23,40,27,28,41,42,43,44,5,29,30,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,21,22,23,40,27,28,41,42,43,44,5,45,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,21,21,22,22,23,23,40,27,27,28,41,42,43,44,5,5,45,29,30,69,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,21,21,22,22,23,23,40,27,27,28,28,41,42,43,44,5,5,5,5,5,5,45,29,30,69,5,2,22,15,17,39,5,21,44,1,2,3,11,12,13,14,15,17,4,18,36,39,22,23,40,27,27,28,41,42,43,43,5,45,29,44,36,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,21,22,23,40,27,28,41,42,43,44,5,45,29,30,69,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,21,22,23,40,27,28,41,42,43,44,5,45,29,30,69,17,44,30,30,22,30,43,4,30,1,2,3,11,12,13,15,4,18,36,37,20,39,21,22,23,40,1,2,3,4,5,1,2,3,4,17,36,29,30,9,10,15,19,30,10,42,0,5,40,17,17,17,17,17,17,41,42,1,2,3,14,15,17,4,36,27,28,41,42,5,45,29,44,2,43,44,44,30,15,44,15,44,5,44,45,5,5,5,36,44,23,23,43,2,36,43,4,4,1,2,3,11,12,13,14,15,17,4,18,36,37,20,39,21,22,23,27,28,41,42,43,44,29,42,41,42,1,2,3,11,12,13,14,15,17,4,18,36,37,20,39,21,22,23,40,27,28,41,42,43,44,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,39,21,22,23,40,27,28,41,42,43,44,5,29,30,5,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,21,22,23,40,27,28,41,42,43,44,5,45,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,21,22,23,40,27,28,41,42,43,44,5,45,29,30,69,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,21,22,23,40,27,28,41,42,43,44,5,45,29,30,69,1,2,3,9,10,11,12,13,14,15,17,4,18,36,19,37,20,38,39,21,22,23,40,27,28,41,42,43,44,5,45,29,30,69,1,2,3,11,12,13,14,15,17,4,18,36,37,20,39,21,22,23,40,27,28,41,42,43,44,5,29,1,2,3,11,12,13,14,15,17,4,18,36,37,20,39,21,22,23,40,27,28,5,29,30,15,15,5,5,5,107,107,107,107,0,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,93,93,0,93,93,0,0,0,0,0,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,0,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,0,0,0,0,0,0,0,71,72,71,72,97,71,72,98,97,71,72,98,0,97,71,72,98,97,71,72,98,98,98,71,72,97,71,71,72,72,98,97,71,71,72,72,98,97,71,72,98,0,71,72,97,71,72,98,97,97,71,71,72,72,98,98,97,71,72,98,97,71,72,98,98,97,98,71,71,71,71,71,71,71,71,71,72,97,71,72,98,97,71,71,71,71,71,71,71,72,72,72,72,72,72,72,98,71,72,97,71,72,98,97,71,72,98,71,71,71,71,98,0,0,0,0,0,102,104,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,103,105,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,103,105,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,102,103,104,104,105,106,102,103,104,105,106,102,103,104,105,106,103,105,102,104,106,102,103,104,105,106,106,102,103,104,105,106,102,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,102,103,104,105,106,103,105,108,108,109,109,110,110],"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,[[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,[[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]]]],[-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],[[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,[],[]],[[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],[21,21],[22,22],[23,23],[40,40],[27,27],[28,28],[41,41],[42,42],[43,43],[[[44,[-1,-2]]],[[44,[-1,-2]]],31,31],[5,5],[45,45],[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,1],46],[[2,2],46],[[3,3],46],[[14,14],46],[[15,15],46],[[17,17],46],[[4,4],46],[[36,36],46],[[27,27],46],[[28,28],46],[[41,41],46],[[42,42],46],[[5,5],46],[[45,45],46],[[29,29],46],[15,11],[15,11],0,[-1,[[25,[1,47]]],48],[-1,[[25,[2,47]]],48],[-1,[[25,[3,47]]],48],[-1,[[25,[11,47]]],48],[-1,[[25,[12,47]]],48],[-1,[[25,[13,47]]],48],[-1,[[25,[14,47]]],48],[-1,[[25,[15,47]]],48],[-1,[[25,[17,47]]],48],[-1,[[25,[4,47]]],48],[-1,[[25,[18,47]]],48],[-1,[[25,[36,47]]],48],[-1,[[25,[37,47]]],48],[-1,[[25,[20,47]]],48],[-1,[[25,[39,47]]],48],[-1,[[25,[21,47]]],48],[-1,[[25,[22,47]]],48],[-1,[[25,[23,47]]],48],[-1,[[25,[40,47]]],48],[-1,[[25,[27,47]]],48],[-1,[[25,[28,47]]],48],[-1,[[25,[41,47]]],48],[-1,[[25,[42,47]]],48],[-1,[[25,[43,47]]],48],[-1,[[25,[[44,[-2,-3]],47]]],48,49,49],[-1,[[25,[5,47]]],48],[-1,[[25,[29,47]]],48],[-1,[[25,[[30,[-2]],47]]],48,[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[-1,[51,[1]]],[[25,[52,47]]],48],[[-1,[51,[2]]],[[25,[52,47]]],48],[[-1,[51,[3]]],[[25,[52,47]]],48],[[-1,[51,[11]]],[[25,[52,47]]],48],[[-1,[51,[12]]],[[25,[52,47]]],48],[[-1,[51,[13]]],[[25,[52,47]]],48],[[-1,[51,[15]]],[[25,[52,47]]],48],[[-1,[51,[4]]],[[25,[52,47]]],48],[[-1,[51,[18]]],[[25,[52,47]]],48],[[-1,[51,[36]]],[[25,[52,47]]],48],[[-1,[51,[37]]],[[25,[52,47]]],48],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[],1],[[],2],[[],3],[[],9],[[],10],[[],11],[[],12],[[],13],[[],14],[[],15],[[],17],[[],4],[[],18],[[],19],[[],37],[[],20],[[],39],[[],21],[[],22],[[],23],[[],40],[[],27],[[],41],[[],5],[32,-1,[]],[32,-1,[]],[32,-1,[]],[9],[32,-1,[]],[32,-1,[]],[10],[32,-1,[]],[11],[32,-1,[]],[12],[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,[]],[32,-1,[]],[38],[32,-1,[]],[39],[21],[32,-1,[]],[22],[32,-1,[]],[32,-1,[]],[23],[32,-1,[]],[40],[27],[32,-1,[]],[32,-1,[]],[28],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[45],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[9],[10],[32,-1,[]],[32,-1,[]],[11],[12],[32,-1,[]],[32,-1,[]],[13],[14],[32,-1,[]],[15],[32,-1,[]],[17],[32,-1,[]],[32,-1,[]],[32,-1,[]],[18],[32,-1,[]],[36],[19],[32,-1,[]],[37],[32,-1,[]],[32,-1,[]],[32,-1,[]],[39],[32,-1,[]],[21],[32,-1,[]],[22],[32,-1,[]],[32,-1,[]],[23],[32,-1,[]],[40],[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,53],54],[23,20],[[29,3,36,55,36,[6,[36,36]]],2],[[29,54],45],[-1,[[25,[1]]],56],[-1,[[25,[2]]],56],[-1,[[25,[3]]],56],[-1,[[25,[11]]],56],[-1,[[25,[12]]],56],[-1,[[25,[13]]],56],[-1,[[25,[14]]],56],[-1,[[25,[15]]],56],[-1,[[25,[17]]],56],[-1,[[25,[4]]],56],[-1,[[25,[18]]],56],[-1,[[25,[36]]],56],[-1,[[25,[37]]],56],[-1,[[25,[20]]],56],[-1,[[25,[39]]],56],[-1,[[25,[21]]],56],[-1,[[25,[22]]],56],[-1,[[25,[23]]],56],[-1,[[25,[27]]],56],[-1,[[25,[28]]],56],[-1,[[25,[41]]],56],[-1,[[25,[42]]],56],[-1,[[25,[43]]],56],[-1,[[25,[[44,[-2,-3]]]]],56,57,57],[-1,[[25,[29]]],56],[[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],[1,[[58,[7]]]],[2,[[58,[7]]]],[3,[[58,[7]]]],[11,[[58,[7]]]],[12,[[58,[7]]]],[13,[[58,[7]]]],[14,[[58,[7]]]],[15,[[58,[7]]]],[17,[[58,[7]]]],[4,[[58,[7]]]],[18,[[58,[7]]]],[36,[[58,[7]]]],[37,[[58,[7]]]],[20,[[58,[7]]]],[39,[[58,[7]]]],[21,[[58,[7]]]],[22,[[58,[7]]]],[23,[[58,[7]]]],[40,[[58,[7]]]],[27,[[58,[7]]]],[28,[[58,[7]]]],[5,[[58,[7]]]],[29,[[58,[7]]]],[[[30,[-1]]],[[58,[7]]],[]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[-1,-2,[],[[60,[59]]]],[[1,-1],6,[61,62]],[[2,-1],6,[61,62]],[[3,-1],6,[61,62]],[[11,-1],6,[61,62]],[[12,-1],6,[61,62]],[[13,-1],6,[61,62]],[[14,-1],6,[61,62]],[[15,-1],6,[61,62]],[[17,-1],6,[61,62]],[[4,-1],6,[61,62]],[[18,-1],6,[61,62]],[[36,-1],6,[61,62]],[[37,-1],6,[61,62]],[[20,-1],6,[61,62]],[[39,-1],6,[61,62]],[[21,-1],6,[61,62]],[[22,-1],6,[61,62]],[[23,-1],6,[61,62]],[[40,-1],6,[61,62]],[[27,-1],6,[61,62]],[[28,-1],6,[61,62]],[[41,-1],6,[61,62]],[[42,-1],6,[61,62]],[[43,-1],6,[61,62]],[[[44,[-1,-2]],-3],6,63,63,[61,62]],[[5,-1],6,[61,62]],[[29,-1],6,[61,62]],[[[30,[-1]],-2],6,[],[61,62]],[[1,1],64],[[2,2],64],[[3,3],64],[[9,9],64],[[10,10],64],[[11,11],64],[[12,12],64],[[13,13],64],[[14,14],64],[[15,15],64],[[17,17],64],[[4,4],64],[[18,18],64],[[36,36],64],[[19,19],64],[[37,37],64],[[20,20],64],[[38,38],64],[[39,39],64],[[21,21],64],[[22,22],64],[[23,23],64],[[40,40],64],[[27,27],64],[[28,28],64],[[41,41],64],[[42,42],64],[[43,43],64],[[[44,[-1,-2]],[44,[-1,-2]]],64,65,65],[[5,5],64],[[45,45],64],[[29,29],64],[[[30,[-1]],[30,[-1]]],64,65],[[[30,[-1]]],-1,31],[4,2],[[1,66],67],[[1,66],67],[[2,66],67],[[2,66],67],[[3,66],67],[[3,66],67],[[9,66],67],[[10,66],67],[[11,66],67],[[12,66],67],[[13,66],67],[[14,66],67],[[15,66],67],[[17,66],67],[[4,66],67],[[4,66],67],[[18,66],67],[[36,66],67],[[36,66],67],[[19,66],67],[[37,66],67],[[20,66],67],[[38,66],67],[[39,66],67],[[21,66],67],[[21,66],67],[[22,66],67],[[22,66],67],[[23,66],67],[[23,66],67],[[40,66],67],[[27,66],67],[[27,66],67],[[28,66],67],[[41,66],67],[[42,66],67],[[43,66],67],[[[44,[-1,-2]],66],67,68,68],[[5,66],67],[[5,66],67],[[45,66],67],[[29,66],67],[[[30,[-1]],66],67,68],[[69,66],67],[[1,32],[[33,[1]]]],[[2,32],[[33,[2]]]],[[3,32],[[33,[3]]]],[[4,32],[[33,[4]]]],[55,1],[-1,-1,[]],[70,2],[-1,-1,[]],[55,3],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[16,[7]]],11],[71,11],[-1,-1,[]],[[[16,[7]]],12],[72,12],[[[16,[7]]],13],[72,13],[-1,-1,[]],[-1,-1,[]],[15,14],[-1,-1,[]],[-1,-1,[]],[15,17],[-1,-1,[]],[70,4],[71,18],[-1,-1,[]],[[[16,[7]]],18],[-1,-1,[]],[4,36],[73,36],[-1,-1,[]],[-1,-1,[]],[[[16,[7]]],20],[-1,-1,[]],[-1,-1,[]],[[[16,[7]]],38],[[[16,[7]]],39],[-1,-1,[]],[[[16,[7]]],21],[-1,-1,[]],[[[16,[7]]],22],[-1,-1,[]],[-1,-1,[]],[[[16,[7]]],23],[-1,-1,[]],[-1,-1,[]],[[[16,[7]]],27],[-1,-1,[]],[[[16,[7]]],28],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[50,5],[7,5],[-1,-1,[]],[70,5],[74,5],[55,5],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[16,[7]]],5],[[[16,[7]]],2],[[[8,[7]],[8,[7]]],22],[-1,[[25,[15]]],[[75,[[8,[7]]]]]],[-1,[[25,[17]]],[[75,[[8,[7]]]]]],[-1,[[25,[39]]],[[75,[[8,[7]]]]]],[[[16,[7]]],5],[76,[[25,[21]]]],[[-1,-2],[[44,[-1,-2]]],[],[]],[[1,-1],6,77],[[2,-1],6,77],[[3,-1],6,77],[[11,-1],6,77],[[12,-1],6,77],[[13,-1],6,77],[[14,-1],6,77],[[15,-1],6,77],[[17,-1],6,77],[[4,-1],6,77],[[18,-1],6,77],[[36,-1],6,77],[39,54],[[22,-1],6,77],[[23,-1],6,77],[[40,-1],6,77],[27,54],[[27,-1],6,77],[[28,-1],6,77],[[41,-1],6,77],[[42,-1],6,77],[43,54],[[43,-1],6,77],[[5,-1],6,77],[[45,-1],6,77],[[29,-1],6,77],0,[36,73],[[],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,[],[]],[17,[[58,[15]]]],[[[44,[-1,-4]]],[[44,[-1,-2]]],[],[],[[78,[-2]]],[[78,[-3]]]],[[[30,[-1]]],[[80,[79]]],31],[[[30,[-1]]],[[80,[79]]],31],[22,21],[[[30,[-1]]],-1,31],[43,42],[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],[73,36],[[54,81],29],[[[58,[-1]]],[[25,[[30,[-1]],69]]],31],[[],[[80,[9]]]],[[],[[80,[10]]]],[[],[[80,[15]]]],[[],[[80,[19]]]],[-1,[[30,[-1]]],31],[32,[[58,[10]]]],0,0,[[],5],[40,23],[17,[[0,[82]]]],[17,[[0,[82]]]],[17,[[0,[82]]]],[17,[[0,[82]]]],[17,[[0,[83]]]],[17,[[0,[83]]]],[41,[[33,[50]]]],[42,[[33,[50]]]],[[1,1],[[33,[46]]]],[[2,2],[[33,[46]]]],[[3,3],[[33,[46]]]],[[14,14],[[33,[46]]]],[[15,15],[[33,[46]]]],[[17,17],[[33,[46]]]],[[4,4],[[33,[46]]]],[[36,36],[[33,[46]]]],[[27,27],[[33,[46]]]],[[28,28],[[33,[46]]]],[[41,41],[[33,[46]]]],[[42,42],[[33,[46]]]],[[5,5],[[33,[46]]]],[[45,45],[[33,[46]]]],[[29,29],[[33,[46]]]],0,[2,50],[43,54],0,0,[[[30,[-1]],-1],6,31],[15,10],0,[15,10],0,[[5,-1],5,[]],0,[45,1],[[5,5],5],[[5,5],5],[[5,5],5],[[36,36],[[33,[36]]]],0,[23,22],[[23,54],22],[43,18],[2,4],[36,4],[43,4],[4,[[16,[2]]]],[4,[[16,[2]]]],[[1,-1],25,84],[[2,-1],25,84],[[3,-1],25,84],[[11,-1],25,84],[[12,-1],25,84],[[13,-1],25,84],[[14,-1],25,84],[[15,-1],25,84],[[17,-1],25,84],[[4,-1],25,84],[[18,-1],25,84],[[36,-1],25,84],[[37,-1],25,84],[[20,-1],25,84],[[39,-1],25,84],[[21,-1],25,84],[[22,-1],25,84],[[23,-1],25,84],[[27,-1],25,84],[[28,-1],25,84],[[41,-1],25,84],[[42,-1],25,84],[[43,-1],25,84],[[[44,[-1,-2]],-3],25,85,85,84],[[29,-1],25,84],[42,6],[[41,50],6],[[42,86],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],[39,32],[21,32],[22,32],[23,32],[40,32],[27,32],[28,32],[41,32],[42,32],[43,32],[[[44,[-1,-2]]],32,63,63],[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,[83]]]],[17,[[0,[83]]]],[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]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[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,88,[]],[-1,88,[]],[-1,88,[]],[-1,88,[]],[-1,88,[]],[-1,88,[]],[-1,88,[]],[-1,88,[]],[-1,88,[]],[-1,88,[]],[[[30,[-1]]],[[58,[-1]]],31],[32,[[25,[1]]]],[-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]]]],[-1,[[25,[-2]]],[],[]],[[[58,[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,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[],90],[[1,-1],-2,91,[]],[[2,-1],-2,91,[]],[[3,-1],-2,91,[]],[[11,-1],-2,91,[]],[[12,-1],-2,91,[]],[[13,-1],-2,91,[]],[[14,-1],-2,91,[]],[[15,-1],-2,91,[]],[[17,-1],-2,91,[]],[[4,-1],-2,91,[]],[[18,-1],-2,91,[]],[[36,-1],-2,91,[]],[[37,-1],-2,91,[]],[[20,-1],-2,91,[]],[[39,-1],-2,91,[]],[[21,-1],-2,91,[]],[[22,-1],-2,91,[]],[[23,-1],-2,91,[]],[[40,-1],-2,91,[]],[[27,-1],-2,91,[]],[[28,-1],-2,91,[]],[[5,-1],-2,91,[]],[[29,-1],-2,91,[]],[[[30,[-1]],-2],-3,[],91,[]],[15,12],[15,12],[[5,5],5],[[5,5],5],[[],5],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[92,[-1]]],[[92,[-1]]],31],[[-1,-2],6,[],[]],[-1,[[25,[[92,[-2]],47]]],48,49],[[[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,-1],[[25,[-2,47]]],48,[]],[32,-1,[]],[32,-1,[]],[32,6],[[[92,[-1]],-2],6,63,[61,62]],[[[92,[-1]]],32,63],[[[92,[-1]],66],67,68],[-1,-1,[]],[[],32],[-1,-2,[],[]],[[[92,[-1]]],32,63],[[-1,[8,[7]]],[[58,[7,87]]],[]],[-1,-2,[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,89,[]],0,0,0,[93,94],[93,94],[[[8,[7]]],93],[[[8,[7]]],54],[[[8,[[8,[7]]]]],54],[[[8,[7]]],54],[[[16,[7]],[8,[7]]],54],[-1,-2,[],[]],[-1,-2,[],[]],[93,93],[[-1,-2],6,[],[]],[[93,93],46],[-1,[[25,[93,47]]],48],[[[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,-1],[[25,[-2,47]]],48,[]],[[],93],[32,-1,[]],[93],[32,-1,[]],[93],[-1,[[25,[93]]],56],[32,6],[[],[[33,[32]]]],[93,32],[[93,93],64],[[93,66],67],[94,93],[-1,-1,[]],[[[16,[7]]],93],[[[16,[7]]],93],[[93,-1],6,77],[[],32],[-1,-2,[],[]],0,[[],32],[[93,93],[[33,[46]]]],[[93,-1],25,84],[93,32],[[[8,[94]]],[[8,[93]]]],[[[8,[94]]],[[8,[93]]]],[[[8,[93]]],[[8,[94]]]],[[[8,[[33,[94]]]]],[[8,[[33,[93]]]]]],[[[8,[[33,[94]]]]],[[8,[[33,[93]]]]]],[[[8,[[33,[93]]]]],[[8,[[33,[94]]]]]],[[[8,[[33,[93]]]]],[[8,[[33,[94]]]]]],[[[8,[93]]],[[8,[94]]]],[93,[[16,[7]]]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[-1,-2,[],[]],[[[16,[7]]],[[25,[93]]]],[-1,[[25,[-2]]],[],[]],[[[16,[7]]],[[25,[93]]]],[-1,[[25,[-2]]],[],[]],[-1,89,[]],[[],90],[[93,-1],-2,91,[]],[[[58,[94]]],[[58,[93]]]],[[[58,[[33,[94]]]]],[[58,[[33,[93]]]]]],[[[58,[[33,[93]]]]],[[58,[[33,[94]]]]]],[[[58,[93]]],[[58,[94]]]],0,0,0,0,0,0,0,[71,95],[72,95],[71,95],[72,95],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[8,[7]],32,32],[[25,[96,88]]]],[97,97],[71,71],[72,72],[98,98],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[98,97],[[25,[71,88]]]],[[98,97,32,50],[[25,[72,88]]]],[[],71],[[],72],[32,-1,[]],[32,-1,[]],[71],[32,-1,[]],[72],[32,-1,[]],[32,-1,[]],[71],[32,-1,[]],[72],[32,-1,[]],[32,-1,[]],[32,6],[32,6],[32,6],[32,6],[[],96],[[71,71],64],[[72,72],64],[[97,66],67],[[71,66],67],[[72,66],67],[[98,66],67],[99,97],[-1,-1,[]],[95,71],[-1,-1,[]],[95,72],[-1,-1,[]],[-1,-1,[]],[[98,32],[[25,[[101,[100]],88]]]],[[],32],[[],32],[[],32],[[],32],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[96,98],[97,6],[[98,[8,[93]]],[[25,[97,88]]]],[[[8,[95]]],[[8,[71]]]],[[[8,[95]]],[[8,[71]]]],[[[8,[71]]],[[8,[95]]]],[[[8,[[33,[95]]]]],[[8,[[33,[71]]]]]],[[[8,[[33,[95]]]]],[[8,[[33,[71]]]]]],[[[8,[[33,[71]]]]],[[8,[[33,[95]]]]]],[[[8,[[33,[71]]]]],[[8,[[33,[95]]]]]],[[[8,[71]]],[[8,[95]]]],[71,[[16,[7]]]],[72,[[16,[7]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[[[16,[7]]],[[25,[71]]]],[18,[[25,[71]]]],[11,[[25,[71]]]],[18,[[25,[71]]]],[[[16,[7]]],[[25,[71]]]],[11,[[25,[71]]]],[[[16,[7]]],[[25,[72]]]],[[[16,[7]]],[[25,[72]]]],[13,[[25,[72]]]],[12,[[25,[72]]]],[-1,[[25,[-2]]],[],[]],[12,[[25,[72]]]],[13,[[25,[72]]]],[-1,[[25,[-2]]],[],[]],[[[16,[7]]],[[25,[71,88]]]],[[[16,[7]]],[[25,[72,88]]]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,[[25,[-2]]],[],[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[[[58,[95]]],[[58,[71]]]],[[[58,[[33,[95]]]]],[[58,[[33,[71]]]]]],[[[58,[[33,[71]]]]],[[58,[[33,[95]]]]]],[[[58,[71]]],[[58,[95]]]],[[98,71,32,50,93,72],64],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,[],[]],[102,102],[103,103],[104,104],[105,105],[106,106],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[102,102],46],[[103,103],46],[[104,104],46],[[105,105],46],[[106,106],46],[-1,[[25,[102,47]]],48],[-1,[[25,[103,47]]],48],[-1,[[25,[104,47]]],48],[-1,[[25,[105,47]]],48],[-1,[[25,[106,47]]],48],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,[8,[7]]],[[25,[-1,47]]],[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[50,-1],[[25,[-2,47]]],48,[]],[[],103],[[],105],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[32,-1,[]],[-1,[[25,[102]]],56],[-1,[[25,[103]]],56],[-1,[[25,[104]]],56],[-1,[[25,[105]]],56],[-1,[[25,[106]]],56],[32,6],[32,6],[32,6],[32,6],[32,6],[103,[[58,[7]]]],[105,[[58,[7]]]],[[102,-1],6,[61,62]],[[103,-1],6,[61,62]],[[104,-1],6,[61,62]],[[105,-1],6,[61,62]],[[106,-1],6,[61,62]],[[102,102],64],[[103,103],64],[[104,104],64],[[105,105],64],[[106,106],64],[[102,66],67],[[103,66],67],[[104,66],67],[[105,66],67],[[106,66],67],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[102,54],[[102,-1],6,77],[[103,-1],6,77],[[104,-1],6,77],[104,54],[[105,-1],6,77],[[106,-1],6,77],[[],32],[[],32],[[],32],[[],32],[[],32],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[102,50],[104,50],[106,50],[[102,102],[[33,[46]]]],[[103,103],[[33,[46]]]],[[104,104],[[33,[46]]]],[[105,105],[[33,[46]]]],[[106,106],[[33,[46]]]],[106,2],[[102,-1],25,84],[[103,-1],25,84],[[104,-1],25,84],[[105,-1],25,84],[[106,-1],25,84],[[102,50],6],[102,32],[103,32],[104,32],[105,32],[106,32],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[[-1,[8,[7]]],[[58,[7,87]]],[]],[-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,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[-1,89,[]],[[],90],[[],90],[[],90],[[],90],[[],90],[[103,-1],-2,91,[]],[[105,-1],-2,91,[]],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",1800],[4,"Result",1801],[8,"FromByteSlice",1800],[3,"PublicKey",0],[3,"RewardSignature",0],[3,"SectorId",0],[3,"NonEmptyVec",0],[8,"Clone",1802],[15,"usize"],[4,"Option",1803],[8,"WrappingSub",1804],[8,"Ord",1805],[3,"HistorySize",0],[3,"ArchivedHistorySegment",0],[3,"PosSeed",0],[3,"PosProof",0],[3,"PotCheckpoints",0],[4,"ArchivedBlockProgress",0],[3,"LastArchivedBlock",0],[4,"SegmentHeader",0],[3,"Solution",0],[3,"SectorSlotChallenge",0],[4,"Ordering",1805],[3,"Error",1806],[8,"Input",1807],[8,"Decode",1807],[15,"u32"],[19,"MaybeUninit",1808],[3,"DecodeFinished",1809],[6,"SlotNumber",0],[6,"Blake3Hash",0],[15,"u16"],[8,"Deserializer",1810],[8,"Deserialize",1810],[3,"Vec",1811],[15,"char"],[8,"FromIterator",1812],[8,"Output",1807],[8,"Sized",1813],[8,"Encode",1807],[15,"bool"],[8,"PartialEq",1805],[3,"Formatter",1814],[6,"Result",1814],[8,"Debug",1814],[4,"NonEmptyVecErr",0],[15,"u64"],[3,"Commitment",1507],[3,"Witness",1507],[3,"NonZeroU64",1815],[15,"u128"],[8,"AsRef",1816],[15,"str"],[8,"Hasher",1817],[8,"Into",1816],[8,"Iterator",1818],[3,"Box",1819],[6,"SectorIndex",0],[8,"IndexedParallelIterator",1820],[8,"ExactSizeIterator",1821],[8,"Serializer",1822],[8,"Serialize",1822],[6,"BlockNumber",0],[3,"Global",1823],[3,"String",1824],[3,"TypeId",1825],[3,"Type",1826],[8,"FnOnce",1827],[3,"Blake3Checksummed",1419],[3,"Scalar",1443],[3,"FsFr",1828],[3,"FsG1",1829],[3,"FsKZGSettings",1830],[3,"Polynomial",1507],[3,"Kzg",1507],[3,"FsPoly",1831],[3,"FsFFTSettings",1832],[3,"Arc",1833],[4,"BlockObject",1626],[3,"BlockObjectMapping",1626],[4,"PieceObject",1626],[3,"PieceObjectMapping",1626],[4,"GlobalObject",1626],[13,"V0",1415],[13,"V0",1794],[13,"V0",1796],[13,"V0",1798]],"b":[[112,"impl-AsMut%3C%5Bu8%5D%3E-for-PieceArray"],[113,"impl-AsMut%3C%5Bu8;+Piece::SIZE%5D%3E-for-PieceArray"],[149,"impl-AsRef%3C%5Bu8%5D%3E-for-PieceArray"],[150,"impl-AsRef%3C%5Bu8;+Piece::SIZE%5D%3E-for-PieceArray"],[783,"impl-Display-for-SBucket"],[784,"impl-Debug-for-SBucket"],[785,"impl-Display-for-PieceIndex"],[786,"impl-Debug-for-PieceIndex"],[787,"impl-Debug-for-PieceOffset"],[788,"impl-Display-for-PieceOffset"],[797,"impl-Debug-for-SegmentIndex"],[798,"impl-Display-for-SegmentIndex"],[800,"impl-Display-for-HistorySize"],[801,"impl-Debug-for-HistorySize"],[807,"impl-Debug-for-PotKey"],[808,"impl-Display-for-PotKey"],[809,"impl-Debug-for-PotSeed"],[810,"impl-Display-for-PotSeed"],[811,"impl-Display-for-PotOutput"],[812,"impl-Debug-for-PotOutput"],[814,"impl-Debug-for-PublicKey"],[815,"impl-Display-for-PublicKey"],[821,"impl-Debug-for-U256"],[822,"impl-Display-for-U256"],[840,"impl-From%3C%5Bu8;+RecordCommitment::SIZE%5D%3E-for-RecordCommitment"],[841,"impl-From%3CCommitment%3E-for-RecordCommitment"],[843,"impl-From%3C%5Bu8;+RecordWitness::SIZE%5D%3E-for-RecordWitness"],[844,"impl-From%3CWitness%3E-for-RecordWitness"],[845,"impl-From%3C%5Bu8;+ChunkWitness::SIZE%5D%3E-for-ChunkWitness"],[846,"impl-From%3CWitness%3E-for-ChunkWitness"],[855,"impl-From%3CCommitment%3E-for-SegmentCommitment"],[857,"impl-From%3C%5Bu8;+SegmentCommitment::SIZE%5D%3E-for-SegmentCommitment"],[859,"impl-From%3CSegmentIndex%3E-for-HistorySize"],[860,"impl-From%3CNonZeroU64%3E-for-HistorySize"],[884,"impl-From%3Cu32%3E-for-U256"],[885,"impl-From%3Cu8%3E-for-U256"],[887,"impl-From%3Cu64%3E-for-U256"],[888,"impl-From%3Cu128%3E-for-U256"],[889,"impl-From%3Cu16%3E-for-U256"],[919,"impl-PublicKey"],[920,"impl-Hash-for-PublicKey"],[924,"impl-SegmentHeader"],[925,"impl-Hash-for-SegmentHeader"],[1262,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-Piece"],[1264,"impl-TryFrom%3CVec%3Cu8%3E%3E-for-Piece"],[1473,"impl-From%3CFsFr%3E-for-Scalar"],[1475,"impl-From%3C%26%5Bu8;+Self::SAFE_BYTES%5D%3E-for-Scalar"],[1476,"impl-From%3C%5Bu8;+Self::SAFE_BYTES%5D%3E-for-Scalar"],[1496,"impl-TryFrom%3C%5Bu8;+Self::FULL_BYTES%5D%3E-for-Scalar"],[1498,"impl-TryFrom%3C%26%5Bu8;+Self::FULL_BYTES%5D%3E-for-Scalar"],[1597,"impl-TryFrom%3C%26%5Bu8;+Self::SIZE%5D%3E-for-Commitment"],[1598,"impl-TryFrom%3C%26SegmentCommitment%3E-for-Commitment"],[1599,"impl-TryFrom%3C%26RecordCommitment%3E-for-Commitment"],[1600,"impl-TryFrom%3CSegmentCommitment%3E-for-Commitment"],[1601,"impl-TryFrom%3C%5Bu8;+Self::SIZE%5D%3E-for-Commitment"],[1602,"impl-TryFrom%3CRecordCommitment%3E-for-Commitment"],[1603,"impl-TryFrom%3C%5Bu8;+Self::SIZE%5D%3E-for-Witness"],[1604,"impl-TryFrom%3C%26%5Bu8;+Self::SIZE%5D%3E-for-Witness"],[1605,"impl-TryFrom%3C%26ChunkWitness%3E-for-Witness"],[1606,"impl-TryFrom%3CRecordWitness%3E-for-Witness"],[1608,"impl-TryFrom%3C%26RecordWitness%3E-for-Witness"],[1609,"impl-TryFrom%3CChunkWitness%3E-for-Witness"],[1723,"impl-BlockObject"],[1724,"impl-Hash-for-BlockObject"],[1726,"impl-Hash-for-PieceObject"],[1727,"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":"DRCDCLLLLLLLLLLLLLLLLLLLLLLLLLLLCLLALLLALALLLALLLLLLLLLLLLLLLLALLGIIKKKKKKKKKKKDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFNENNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNSNNNNNSNNENNDDEEEDDEENNNNNLMLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLMLLLLMMMAMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLMLLLMLLLLALMALLLLMMMLLMMMLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNENNDDLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLMMLMAMMMLMLLLLLLLLLLLLLLLLLMMDLLLLLLLLLLLLLLLLNNDENDNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMDLLLLLLLLLLLLLLLLLLDLLLLLLALLLLLALAFAFLLLLLLDLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLNNNNNELLLLLLLLLLFLLLLLL","n":["Identity","KNOWN_PEERS_CACHE_SIZE","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","NodeClientExt","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","fmt","from","from","get_piece","init","init","into","into","new","on_sync_progress","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","BackgroundDownloadingPanicked","BackgroundTaskError","BackgroundTaskPanicked","CacheCantBeOpened","CacheFileDoesNotExist","CantPreallocateMetadataFile","CantPreallocatePlotFile","Error","FailedToCreateThreadPool","FailedToDecodeMetadataHeader","FailedToDecodeMetadataHeader","FailedToDecodeSectorMetadata","FailedToDetermineFileSize","FailedToGetFarmerInfo","FailedToGetSegmentHeader","FailedToOpenIdentity","FailedToReadBytes","FailedToSubscribeArchivedSegments","FailedToWriteBytes","FarmInfoCantBeOpened","FarmInfoFileDoesNotExist","FarmIsShuttingDown","FarmTooLarge","Farming","FarmingError","Found","IdentityCantBeOpened","IdentityFileDoesNotExist","IdentityMismatch","InsufficientAllocatedSpace","InvalidPiecesInSector","Io","Io","LikelyAlreadyInUse","LikelyAlreadyInUse","LowLevel","METADATA_FILE","MetadataCantBeOpened","MetadataFileDoesNotExist","MetadataFileTooSmall","MissingArchivedSegmentHeader","NotFound","PLOT_FILE","PieceCacheError","Plotting","PlottingError","PublicKeyMismatch","RewardSigning","SectorPlottingDetails","SingleDiskFarm","SingleDiskFarmError","SingleDiskFarmId","SingleDiskFarmInfo","SingleDiskFarmInfoLock","SingleDiskFarmOptions","SingleDiskFarmScrubError","SingleDiskFarmSummary","Ulid","UnexpectedMetadataVersion","UnexpectedMetadataVersion","V0","WrongChain","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_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","downloading_semaphore","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","encoding_semaphore","eq","equivalent","equivalent","equivalent","erasure_coding","farm_during_initial_plotting","farmer_app_info","farming","farming_thread_pool_size","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","genesis_hash","get_hash","hash","id","id","info","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","into","kzg","last_queued","load_from","max_pieces_in_sector","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_delay","plotting_thread_pool_size","progress","public_key","read_all_sectors_metadata","replotting","replotting_thread_pool_size","reward_address","run","scrub","sector_index","serialize","serialize","source","source","source","store_to","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","total_sectors_count","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_lock","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","task","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","FailedToCreateThreadPool","FailedToGetFarmerInfo","FailedToSubscribeSlotInfo","FarmingError","Io","LowLevelProving","PlotAudit","PlotAuditOptions","audit","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","erasure_coding","fmt","fmt","fmt","from","from","from","from","from","from","init","init","init","into","into","into","kzg","maybe_sector_being_modified","new","public_key","rayon_files","reward_address","sectors_metadata","slot_info","source","table_generator","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","error","RayonFiles","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","open","read_at","read_at","try_from","try_into","type_id","unique_saturated_into","vzip","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","AsyncJoinOnDrop","borrow","borrow_mut","deref","deref_mut","drop","drop","farmer_piece_getter","from","init","into","into_future","new","piece_validator","poll","readers_and_pieces","run_future_in_dedicated_thread","ss58","tokio_rayon_spawn_handler","try_from","try_into","try_poll","type_id","unique_saturated_into","vzip","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","BadBase58","BadLength","FormatNotAllowed","InvalidChecksum","InvalidPrefix","Ss58ParsingError","borrow","borrow_mut","deref","deref_mut","drop","fmt","fmt","from","init","into","parse_ss58_reward_address","to_string","try_from","try_into","type_id","unique_saturated_into","vzip"],"q":[[0,"subspace_farmer"],[65,"subspace_farmer::node_client"],[79,"subspace_farmer::piece_cache"],[118,"subspace_farmer::reward_signing"],[119,"subspace_farmer::single_disk_farm"],[422,"subspace_farmer::single_disk_farm::BackgroundTaskError"],[423,"subspace_farmer::single_disk_farm::PlottingError"],[427,"subspace_farmer::single_disk_farm::SingleDiskFarmError"],[442,"subspace_farmer::single_disk_farm::SingleDiskFarmInfo"],[447,"subspace_farmer::single_disk_farm::SingleDiskFarmScrubError"],[474,"subspace_farmer::single_disk_farm::SingleDiskFarmSummary"],[479,"subspace_farmer::single_disk_farm::farming"],[548,"subspace_farmer::single_disk_farm::farming::FarmingError"],[550,"subspace_farmer::single_disk_farm::farming::rayon_files"],[567,"subspace_farmer::single_disk_farm::piece_cache"],[629,"subspace_farmer::single_disk_farm::piece_cache::DiskPieceCacheError"],[631,"subspace_farmer::single_disk_farm::piece_reader"],[650,"subspace_farmer::utils"],[675,"subspace_farmer::utils::farmer_piece_getter"],[691,"subspace_farmer::utils::piece_validator"],[707,"subspace_farmer::utils::readers_and_pieces"],[728,"subspace_farmer::utils::ss58"],[751,"subspace_core_primitives::segments"],[752,"core::future::future"],[753,"alloc::boxed"],[754,"core::pin"],[755,"core::result"],[756,"std::path"],[757,"core::convert"],[758,"core::fmt"],[759,"core::fmt"],[760,"core::option"],[761,"subspace_core_primitives::pieces"],[762,"schnorrkel::keys"],[763,"schnorrkel::keys"],[764,"schnorrkel::sign"],[765,"subspace_rpc_primitives"],[766,"subspace_rpc_primitives"],[767,"core::fmt"],[768,"subspace_core_primitives::pieces"],[769,"core::ops::function"],[770,"alloc::sync"],[771,"event_listener_primitives::handler_id"],[772,"libp2p_kad::record"],[773,"subspace_farmer_components::plotting"],[774,"core::error"],[775,"core::cmp"],[776,"std::path"],[777,"rayon_core"],[778,"subspace_farmer_components::plotting"],[779,"ulid"],[780,"core::hash"],[781,"core::marker"],[782,"core::hash"],[783,"core::marker"],[784,"core::iter::traits::iterator"],[785,"subspace_farmer_components::sector"],[786,"anyhow"],[787,"serde::ser"],[788,"alloc::string"],[789,"subspace_core_primitives"],[790,"subspace_farmer_components"],[791,"subspace_proof_of_space"],[792,"subspace_farmer_components::proving"],[793,"core::task::wake"],[794,"core::task::poll"],[795,"core::ops::function"],[796,"subspace_networking::node"],[797,"subspace_networking::utils::piece_provider"],[798,"subspace_core_primitives::crypto::kzg"],[799,"subspace_core_primitives::segments"],[800,"subspace_farmer_components::plotting"]],"d":["Identity struct is an abstraction of public & secret key …","Size of the LRU cache for peers.","","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","Node Client extension methods that are not necessary for …","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.","Subscribe to cache sync notifications","","Initialize replacement of backing caches, returns …","Run the cache worker with provided piece getter","","","","","","","","","","","","","Background downloading panicked","Errors that happen in background tasks","Background task panicked","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 get segment header","Failed to open or create identity","Failed to read bytes from file","Failed to subscribe to archived segments","Failed to write bytes from file","Farm info can’t be opened","Farm info file does not exist","Farm is shutting down","Farm is too large","Farming error","","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","Farm is likely already in use, make sure no other farmer …","Farm is likely already in use, make sure no other farmer …","Low-level plotting 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 …","Reward signing","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 …","Exclusive lock for single disk farm info file, ensuring no …","Options used to open single disk farm","Errors happening during scrubbing","Summary of single disk farm for presentational purposes","Farm ID","Unexpected metadata version","Unexpected metadata version","V0 of the info","Wrong chain (genesis hash)","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.","Semaphore for part of the plotting when farmer downloads …","","","","","","","","","","","","","Semaphore for part of the plotting when farmer encodes …","","","","","Erasure coding instance to use.","Whether to farm during initial plotting","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","","Info 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.","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","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","Notification for plotter to start, can be used to delay …","Thread pool size used for plotting","Progress so far in % (not including this sector)","","Read all sectors metadata","Whether sector is being replotted","Thread pool size used for replotting, typically smaller …","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 …","","","","","","","","Number of sectors in this farm","","","","","","","","","","","","","","","","","","","","","","","Try to acquire exclusive lock on the single disk farm info …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Wipe everything that belongs to this single disk farm","","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","Failed to create thread pool","Failed to retrieve farmer info","Failed to subscribe to slot info notifications","Errors that happen during farming","I/O error occurred","Low-level proving error","Plot auditing implementation","Plot audit options","","","","","","","","","","","","","","","","","","","Erasure coding instance","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Kzg instance","Optional sector that is currently being modified (for …","Create new instance","Public key of the farm","","Reward address to use for solutions","Metadata of all sectors plotted so far","Slot info for the audit","","Proof of space table generator","","","","","","","","","","","","","","","","","","Lower-level error","Lower-level error","Wrapper data structure for multiple files to be used with …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Open file at specified as many times as there is number of …","","","","","","","","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 …","","","","","","","Joins async join handle on drop","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","Create new instance.","","","","Runs future on a dedicated thread with the specified name, …","Modified version of SS58 parser extracted from Substrate …","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.","","","","","","Base 58 requirement is violated","Length is bad","Disallowed SS58 Address Format for this datatype","Invalid checksum","Invalid SS58 prefix byte","An error type for SS58 decoding.","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Some if the string is a properly encoded SS58Check address.","","","","","",""],"i":[0,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,0,34,34,109,34,34,34,34,34,34,34,34,0,0,29,28,29,28,28,28,29,28,29,28,29,28,29,28,29,28,28,29,28,29,28,28,28,28,28,29,28,29,28,29,28,29,28,29,28,29,28,0,51,0,54,53,53,52,52,47,51,52,53,52,53,51,51,52,53,51,53,53,53,51,52,54,0,47,53,53,52,52,52,51,52,52,53,51,49,53,53,53,51,47,49,52,54,0,53,54,0,0,0,0,0,0,0,0,0,44,52,53,43,52,43,67,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,67,44,43,44,43,44,49,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,44,43,67,67,80,67,110,49,49,51,44,43,47,52,53,54,67,44,44,44,44,67,67,67,0,67,51,51,44,44,43,47,52,52,53,53,54,54,80,67,110,49,51,51,51,51,44,44,43,47,52,52,52,53,54,54,54,54,43,44,44,49,43,49,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,67,110,43,67,49,44,43,67,49,49,49,44,0,49,67,0,49,43,49,49,67,67,110,43,49,110,67,67,49,49,110,44,43,51,52,54,43,44,43,51,44,52,53,54,49,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,43,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,49,111,112,113,114,115,116,117,116,118,119,118,119,120,120,116,116,120,117,118,119,121,121,121,121,121,122,123,124,125,126,127,128,122,123,124,129,125,130,126,131,127,132,133,128,134,134,123,124,132,123,124,132,135,136,137,137,135,60,60,60,0,60,60,0,0,81,81,60,82,81,60,82,82,82,81,60,82,81,60,82,81,60,82,82,60,60,82,81,60,60,60,60,82,81,60,82,81,60,82,82,82,81,82,0,82,82,82,60,82,82,60,81,60,82,81,60,82,81,60,82,81,60,82,81,60,82,138,139,0,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,59,59,0,0,59,0,59,59,59,88,39,59,88,39,88,39,88,39,59,88,39,59,88,39,59,88,39,59,59,88,88,39,59,59,88,39,59,88,39,59,88,39,59,88,39,59,88,59,88,39,59,88,39,59,88,39,59,88,39,59,88,39,140,140,0,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,0,90,90,90,90,90,90,0,90,90,90,90,90,0,90,0,0,0,0,90,90,90,90,90,90,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,0,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,108,108,108,108,108,0,108,108,108,108,108,108,108,108,108,108,0,108,108,108,108,108,108],"f":[0,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]]]],[6],[11,-1,[]],[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,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],[[[29,[-1]],14],15,[30,30]],[[28,14],15],[-1,-1,[]],[-1,-1,[]],[[28,31],[[19,[32]]]],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,33],[[7,[28,[29,[-1]]]]],34],[[28,[36,[35]]],37],[[28,31],[[19,[38]]]],[[28,[23,[39]]],[[40,[7]]]],[[[29,[-1]],-2],7,34,41],[-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,[42]]]]],34],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,[43,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,[44,44],[43,43],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[[44,44],45],[46,47],[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,[44]]],48],[-1,[[8,[43]]],48],0,0,[11,7],[11,7],[11,7],[49,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],0,[[44,44],50],[[-1,-2],50,[],[]],[[-1,-2],50,[],[]],[[-1,-2],50,[],[]],0,0,0,0,0,[[51,14],15],[[51,14],15],[[44,14],15],[[44,14],15],[[43,14],15],[[47,14],15],[[52,14],15],[[52,14],15],[[53,14],15],[[53,14],15],[[54,14],15],[[54,14],15],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[55,51],[56,51],[57,51],[58,44],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[57,52],[-1,-1,[]],[59,52],[-1,-1,[]],[[[4,[42]]],54],[-1,-1,[]],[60,54],[51,54],[43,[[61,[12]]]],[[-1,-2],16,[62,63],64],[[44,-1],7,65],[49,44],[43,44],[49,43],[[],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,0,[9,[[66,[[19,[43]]]]]],0,[[[67,[-1,-2]],11],[[8,[49,52]]],34,[41,68,69,70]],[[],44],[[44,[61,[12]],71,72,16],43],0,[[49,[36,[35]]],37],[[49,[36,[35]]],37],[[49,[36,[35]]],37],[[44,44],[[19,[45]]]],0,[49,39],0,0,[49,73],[43,72],[49,[[0,[74]]]],[49,11],0,0,0,[43,71],[9,[[66,[[23,[75]]]]]],0,0,0,[49,[[76,[44]]]],[9,[[8,[7,53]]]],0,[[44,-1],8,77],[[43,-1],8,77],[51,[[19,[42]]]],[52,[[19,[42]]]],[54,[[19,[42]]]],[[43,9],[[66,[7]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[49,79],[-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]]],[],[]],[9,[[66,[80]]]],[-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,[[66,[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,[[[81,[-1]],[82,[-2]]],[[23,[[7,[79,[0,[83]]]]]]],84,85],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[82,[-1]]],[[82,[-1]]],85],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,7],[11,7],[11,7],0,[[60,14],15],[[60,14],15],[[[82,[-1]],14],15,[85,30]],[-1,-1,[]],[-1,-1,[]],[57,60],[86,60],[55,60],[-1,-1,[]],[[],11],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,[[81,[-1]]],84],0,0,0,0,0,[60,[[19,[42]]]],0,[-1,-2,[],[]],[-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,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[-1,-1,[]],[[],11],[-1,-2,[],[]],[9,[[66,[87]]]],[[87,[13,[12]],11],[[66,[7]]]],[[87,[13,[12]],11],[[66,[7]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[88,88],[39,39],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,7],[11,7],[11,7],[[59,14],15],[[59,14],15],[[88,14],15],[[88,14],15],[[39,14],15],[-1,-1,[]],[57,59],[-1,-1,[]],[-1,-1,[]],[[],11],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[59,[[19,[42]]]],[-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,[],[]],[73,73],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[[73,14],15],[-1,-1,[]],[[],11],[-1,-2,[],[]],[[73,79,89],[[19,[32]]]],[-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],[[[90,[-1]]],7,[]],0,[-1,-1,[]],[[],11],[-1,-2,[],[]],[-1,[],[]],[[[91,[-1]],50],[[90,[-1]]],[]],0,[[[5,[[90,[-1]]]],92],93,[]],0,[[-1,78],[[66,[[0,[3,69]]]]],[94,69]],0,[[],[[0,[95]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[[[5,[-1]],92],93,[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[-1,-1,[]],[[[96,[-1,-2]],20,97],[[5,[[4,[3]]]]],[98,69],34],[[],11],[-1,-2,[],[]],[[99,[100,[-1]],28,-2,[36,[[102,[[19,[101]]]]]]],[[96,[-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,[],[]],[[99,-1,103,[102,[[105,[2,104]]]]],[[106,[-1]]],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[[[106,[-1]],33,20,32],[[5,[[4,[3]]]]],34],[-1,-2,[],[]],0,[[101,12,107],7],[-1,-2,[],[]],[-1,-2,[],[]],[[101,20],50],[[101,12,107],7],[11,-1,[]],[11,-1,[]],[11,7],[[101,14],15],[-1,-1,[]],[[],11],[-1,-2,[],[]],[[[23,[73]]],101],[101,[[0,[74]]]],[[101,20],[[19,[[0,[3]]]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[[108,14],15],[[108,14],15],[-1,-1,[]],[[],11],[-1,-2,[],[]],[17,[[8,[71,108]]]],[-1,78,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[3,"NodeRpcClient",0],[3,"SegmentIndex",751],[8,"Future",752],[3,"Box",753],[3,"Pin",754],[3,"Identity",0],[15,"tuple"],[4,"Result",755],[3,"Path",756],[8,"AsRef",757],[15,"usize"],[15,"u8"],[15,"slice"],[3,"Formatter",758],[6,"Result",758],[15,"u64"],[15,"str"],[4,"Error",759],[4,"Option",760],[3,"PieceIndex",761],[3,"PublicKey",762],[3,"SecretKey",762],[3,"Vec",763],[3,"Signature",764],[3,"RewardSignatureResponse",765],[3,"SolutionResponse",765],[3,"TypeId",766],[3,"PieceCache",79],[3,"CacheWorker",79],[8,"Debug",758],[3,"Key",767],[3,"Piece",761],[3,"PeerId",768],[8,"NodeClient",65],[8,"Fn",769],[3,"Arc",770],[3,"HandlerId",771],[3,"ProviderRecord",767],[3,"DiskPieceCache",567],[3,"Receiver",772],[8,"PieceGetter",773],[8,"Error",774],[4,"SingleDiskFarmInfo",119],[4,"SingleDiskFarmId",119],[4,"Ordering",775],[3,"PathBuf",756],[4,"SingleDiskFarmSummary",119],[8,"Deserializer",776],[3,"SingleDiskFarm",119],[15,"bool"],[4,"PlottingError",119],[4,"SingleDiskFarmError",119],[4,"SingleDiskFarmScrubError",119],[4,"BackgroundTaskError",119],[3,"ThreadPoolBuildError",777],[4,"PlottingError",773],[3,"Error",778],[3,"Ulid",779],[4,"DiskPieceCacheError",567],[4,"FarmingError",479],[15,"array"],[8,"Hash",780],[8,"Sized",781],[8,"BuildHasher",780],[8,"Hasher",780],[6,"Result",778],[3,"SingleDiskFarmOptions",119],[8,"Clone",782],[8,"Send",781],[8,"Sync",781],[3,"PublicKey",783],[15,"u16"],[3,"PieceReader",631],[8,"Iterator",784],[3,"SectorMetadataChecksummed",785],[6,"Result",786],[8,"Serializer",787],[3,"String",788],[6,"SectorIndex",783],[3,"SingleDiskFarmInfoLock",119],[3,"PlotAudit",479],[3,"PlotAuditOptions",479],[8,"ProvableSolutions",789],[8,"ReadAtSync",790],[8,"Table",791],[4,"ProvingError",789],[3,"RayonFiles",550],[3,"Offset",567],[3,"PieceOffset",761],[3,"AsyncJoinOnDrop",650],[3,"JoinHandle",792],[3,"Context",793],[4,"Poll",794],[8,"FnOnce",769],[8,"FnMut",769],[3,"FarmerPieceGetter",675],[4,"PieceGetterRetryPolicy",773],[8,"PieceValidator",795],[3,"Node",796],[3,"PieceProvider",795],[3,"ReadersAndPieces",707],[6,"Mutex",797],[3,"Kzg",798],[3,"SegmentCommitment",751],[3,"LruCache",799],[3,"SegmentCommitmentPieceValidator",691],[3,"PlottedSector",773],[4,"Ss58ParsingError",728],[8,"NodeClientExt",65],[3,"SectorPlottingDetails",119],[13,"BackgroundTaskPanicked",422],[13,"FailedToGetFarmerInfo",423],[13,"FailedToGetSegmentHeader",423],[13,"FailedToSubscribeArchivedSegments",423],[13,"MissingArchivedSegmentHeader",423],[13,"FarmTooLarge",427],[13,"InsufficientAllocatedSpace",427],[13,"WrongChain",427],[13,"IdentityMismatch",427],[13,"InvalidPiecesInSector",427],[13,"V0",442],[13,"FailedToDetermineFileSize",447],[13,"FailedToReadBytes",447],[13,"FailedToWriteBytes",447],[13,"FarmInfoCantBeOpened",447],[13,"IdentityCantBeOpened",447],[13,"MetadataCantBeOpened",447],[13,"CacheCantBeOpened",447],[13,"FarmInfoFileDoesNotExist",447],[13,"IdentityFileDoesNotExist",447],[13,"MetadataFileDoesNotExist",447],[13,"MetadataFileTooSmall",447],[13,"CacheFileDoesNotExist",447],[13,"PublicKeyMismatch",447],[13,"Found",474],[13,"NotFound",474],[13,"Error",474],[13,"FailedToSubscribeSlotInfo",548],[13,"FailedToGetFarmerInfo",548],[13,"OffsetOutsideOfRange",629]],"b":[[260,"impl-Debug-for-PlottingError"],[261,"impl-Display-for-PlottingError"],[262,"impl-Debug-for-SingleDiskFarmId"],[263,"impl-Display-for-SingleDiskFarmId"],[266,"impl-Debug-for-SingleDiskFarmError"],[267,"impl-Display-for-SingleDiskFarmError"],[268,"impl-Debug-for-SingleDiskFarmScrubError"],[269,"impl-Display-for-SingleDiskFarmScrubError"],[270,"impl-Display-for-BackgroundTaskError"],[271,"impl-Debug-for-BackgroundTaskError"],[277,"impl-From%3CThreadPoolBuildError%3E-for-PlottingError"],[278,"impl-From%3CPlottingError%3E-for-PlottingError"],[279,"impl-From%3CError%3E-for-PlottingError"],[284,"impl-From%3CError%3E-for-SingleDiskFarmError"],[286,"impl-From%3CDiskPieceCacheError%3E-for-SingleDiskFarmError"],[288,"impl-From%3CBox%3Cdyn+Error+%2B+Send+%2B+Sync%3E%3E-for-BackgroundTaskError"],[290,"impl-From%3CFarmingError%3E-for-BackgroundTaskError"],[291,"impl-From%3CPlottingError%3E-for-BackgroundTaskError"],[506,"impl-Display-for-FarmingError"],[507,"impl-Debug-for-FarmingError"],[511,"impl-From%3CError%3E-for-FarmingError"],[512,"impl-From%3CProvingError%3E-for-FarmingError"],[513,"impl-From%3CThreadPoolBuildError%3E-for-FarmingError"],[560,"impl-ReadAtSync-for-RayonFiles"],[561,"impl-ReadAtSync-for-%26RayonFiles"],[594,"impl-Debug-for-DiskPieceCacheError"],[595,"impl-Display-for-DiskPieceCacheError"],[596,"impl-Debug-for-Offset"],[597,"impl-Display-for-Offset"],[739,"impl-Debug-for-Ss58ParsingError"],[740,"impl-Display-for-Ss58ParsingError"]]},\ +"subspace_farmer":{"doc":"subspace-farmer library implementation overview","t":"DRCDCLLLLLLLLLLLLLLLLLLLLLLLLLLLCLLALLLALALLLALLLLLLLLLLLLLLLLALLGIIKKKKKKKKKKKDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFNENNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNSNNNNNSNNENNDDEEEDDEENNNNNLMLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLMLLLLMMMAMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLMLLLMLLLLALMALLLLMMMLLMMMLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNENNDDLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLMMLMAMMMLMLLLLLLLLLLLLLLLLLMMDLLLLLLLLLLLLLLLLNNDENDNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMDLLLLLLLLLLLLLLLLLLDLLLLLLALLLLLALAFAFLLLLLLDLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLNNNNNELLLLLLLLLLFLLLLLL","n":["Identity","KNOWN_PEERS_CACHE_SIZE","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","NodeClientExt","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","fmt","from","from","get_piece","init","init","into","into","new","on_sync_progress","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","BackgroundDownloadingPanicked","BackgroundTaskError","BackgroundTaskPanicked","CacheCantBeOpened","CacheFileDoesNotExist","CantPreallocateMetadataFile","CantPreallocatePlotFile","Error","FailedToCreateThreadPool","FailedToDecodeMetadataHeader","FailedToDecodeMetadataHeader","FailedToDecodeSectorMetadata","FailedToDetermineFileSize","FailedToGetFarmerInfo","FailedToGetSegmentHeader","FailedToOpenIdentity","FailedToReadBytes","FailedToSubscribeArchivedSegments","FailedToWriteBytes","FarmInfoCantBeOpened","FarmInfoFileDoesNotExist","FarmIsShuttingDown","FarmTooLarge","Farming","FarmingError","Found","IdentityCantBeOpened","IdentityFileDoesNotExist","IdentityMismatch","InsufficientAllocatedSpace","InvalidPiecesInSector","Io","Io","LikelyAlreadyInUse","LikelyAlreadyInUse","LowLevel","METADATA_FILE","MetadataCantBeOpened","MetadataFileDoesNotExist","MetadataFileTooSmall","MissingArchivedSegmentHeader","NotFound","PLOT_FILE","PieceCacheError","Plotting","PlottingError","PublicKeyMismatch","RewardSigning","SectorPlottingDetails","SingleDiskFarm","SingleDiskFarmError","SingleDiskFarmId","SingleDiskFarmInfo","SingleDiskFarmInfoLock","SingleDiskFarmOptions","SingleDiskFarmScrubError","SingleDiskFarmSummary","Ulid","UnexpectedMetadataVersion","UnexpectedMetadataVersion","V0","WrongChain","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_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","downloading_semaphore","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","encoding_semaphore","eq","equivalent","equivalent","equivalent","erasure_coding","farm_during_initial_plotting","farmer_app_info","farming","farming_thread_pool_size","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","genesis_hash","get_hash","hash","id","id","info","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","into","kzg","last_queued","load_from","max_pieces_in_sector","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_delay","plotting_thread_pool_size","progress","public_key","read_all_sectors_metadata","replotting","replotting_thread_pool_size","reward_address","run","scrub","sector_index","serialize","serialize","source","source","source","store_to","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","total_sectors_count","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_lock","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","task","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","FailedToCreateThreadPool","FailedToGetFarmerInfo","FailedToSubscribeSlotInfo","FarmingError","Io","LowLevelProving","PlotAudit","PlotAuditOptions","audit","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","erasure_coding","fmt","fmt","fmt","from","from","from","from","from","from","init","init","init","into","into","into","kzg","maybe_sector_being_modified","new","public_key","rayon_files","reward_address","sectors_metadata","slot_info","source","table_generator","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","error","RayonFiles","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","open","read_at","read_at","try_from","try_into","type_id","unique_saturated_into","vzip","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","AsyncJoinOnDrop","borrow","borrow_mut","deref","deref_mut","drop","drop","farmer_piece_getter","from","init","into","into_future","new","piece_validator","poll","readers_and_pieces","run_future_in_dedicated_thread","ss58","tokio_rayon_spawn_handler","try_from","try_into","try_poll","type_id","unique_saturated_into","vzip","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","clone","clone_into","deref","deref_mut","drop","from","init","into","new","to_owned","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","BadBase58","BadLength","FormatNotAllowed","InvalidChecksum","InvalidPrefix","Ss58ParsingError","borrow","borrow_mut","deref","deref_mut","drop","fmt","fmt","from","init","into","parse_ss58_reward_address","to_string","try_from","try_into","type_id","unique_saturated_into","vzip"],"q":[[0,"subspace_farmer"],[65,"subspace_farmer::node_client"],[79,"subspace_farmer::piece_cache"],[118,"subspace_farmer::reward_signing"],[119,"subspace_farmer::single_disk_farm"],[422,"subspace_farmer::single_disk_farm::BackgroundTaskError"],[423,"subspace_farmer::single_disk_farm::PlottingError"],[427,"subspace_farmer::single_disk_farm::SingleDiskFarmError"],[442,"subspace_farmer::single_disk_farm::SingleDiskFarmInfo"],[447,"subspace_farmer::single_disk_farm::SingleDiskFarmScrubError"],[474,"subspace_farmer::single_disk_farm::SingleDiskFarmSummary"],[479,"subspace_farmer::single_disk_farm::farming"],[548,"subspace_farmer::single_disk_farm::farming::FarmingError"],[550,"subspace_farmer::single_disk_farm::farming::rayon_files"],[567,"subspace_farmer::single_disk_farm::piece_cache"],[629,"subspace_farmer::single_disk_farm::piece_cache::DiskPieceCacheError"],[631,"subspace_farmer::single_disk_farm::piece_reader"],[650,"subspace_farmer::utils"],[675,"subspace_farmer::utils::farmer_piece_getter"],[691,"subspace_farmer::utils::piece_validator"],[710,"subspace_farmer::utils::readers_and_pieces"],[731,"subspace_farmer::utils::ss58"],[754,"subspace_core_primitives::segments"],[755,"core::future::future"],[756,"alloc::boxed"],[757,"core::pin"],[758,"core::result"],[759,"std::path"],[760,"core::convert"],[761,"core::fmt"],[762,"core::fmt"],[763,"core::option"],[764,"subspace_core_primitives::pieces"],[765,"schnorrkel::keys"],[766,"schnorrkel::keys"],[767,"schnorrkel::sign"],[768,"subspace_rpc_primitives"],[769,"subspace_rpc_primitives"],[770,"core::fmt"],[771,"subspace_core_primitives::pieces"],[772,"core::ops::function"],[773,"alloc::sync"],[774,"event_listener_primitives::handler_id"],[775,"libp2p_kad::record"],[776,"subspace_farmer_components::plotting"],[777,"core::error"],[778,"core::cmp"],[779,"std::path"],[780,"rayon_core"],[781,"subspace_farmer_components::plotting"],[782,"ulid"],[783,"core::hash"],[784,"core::marker"],[785,"core::hash"],[786,"core::marker"],[787,"core::iter::traits::iterator"],[788,"subspace_farmer_components::sector"],[789,"anyhow"],[790,"serde::ser"],[791,"alloc::string"],[792,"subspace_core_primitives"],[793,"subspace_farmer_components"],[794,"subspace_proof_of_space"],[795,"subspace_farmer_components::proving"],[796,"core::task::wake"],[797,"core::task::poll"],[798,"core::ops::function"],[799,"subspace_networking::utils::piece_provider"],[800,"subspace_networking::node"],[801,"subspace_core_primitives::crypto::kzg"],[802,"subspace_core_primitives::segments"],[803,"subspace_farmer_components::plotting"]],"d":["Identity struct is an abstraction of public & secret key …","Size of the LRU cache for peers.","","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","Node Client extension methods that are not necessary for …","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.","Subscribe to cache sync notifications","","Initialize replacement of backing caches, returns …","Run the cache worker with provided piece getter","","","","","","","","","","","","","Background downloading panicked","Errors that happen in background tasks","Background task panicked","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 get segment header","Failed to open or create identity","Failed to read bytes from file","Failed to subscribe to archived segments","Failed to write bytes from file","Farm info can’t be opened","Farm info file does not exist","Farm is shutting down","Farm is too large","Farming error","","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","Farm is likely already in use, make sure no other farmer …","Farm is likely already in use, make sure no other farmer …","Low-level plotting 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 …","Reward signing","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 …","Exclusive lock for single disk farm info file, ensuring no …","Options used to open single disk farm","Errors happening during scrubbing","Summary of single disk farm for presentational purposes","Farm ID","Unexpected metadata version","Unexpected metadata version","V0 of the info","Wrong chain (genesis hash)","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.","Semaphore for part of the plotting when farmer downloads …","","","","","","","","","","","","","Semaphore for part of the plotting when farmer encodes …","","","","","Erasure coding instance to use.","Whether to farm during initial plotting","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","","Info 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.","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","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","Notification for plotter to start, can be used to delay …","Thread pool size used for plotting","Progress so far in % (not including this sector)","","Read all sectors metadata","Whether sector is being replotted","Thread pool size used for replotting, typically smaller …","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 …","","","","","","","","Number of sectors in this farm","","","","","","","","","","","","","","","","","","","","","","","Try to acquire exclusive lock on the single disk farm info …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Wipe everything that belongs to this single disk farm","","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","Failed to create thread pool","Failed to retrieve farmer info","Failed to subscribe to slot info notifications","Errors that happen during farming","I/O error occurred","Low-level proving error","Plot auditing implementation","Plot audit options","","","","","","","","","","","","","","","","","","","Erasure coding instance","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Kzg instance","Optional sector that is currently being modified (for …","Create new instance","Public key of the farm","","Reward address to use for solutions","Metadata of all sectors plotted so far","Slot info for the audit","","Proof of space table generator","","","","","","","","","","","","","","","","","","Lower-level error","Lower-level error","Wrapper data structure for multiple files to be used with …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Open file at specified as many times as there is number of …","","","","","","","","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 …","","","","","","","Joins async join handle on drop","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","Create new instance.","","","","Runs future on a dedicated thread with the specified name, …","Modified version of SS58 parser extracted from Substrate …","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.","","","","","","Base 58 requirement is violated","Length is bad","Disallowed SS58 Address Format for this datatype","Invalid checksum","Invalid SS58 prefix byte","An error type for SS58 decoding.","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Some if the string is a properly encoded SS58Check address.","","","","","",""],"i":[0,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,0,34,34,109,34,34,34,34,34,34,34,34,0,0,29,28,29,28,28,28,29,28,29,28,29,28,29,28,29,28,28,29,28,29,28,28,28,28,28,29,28,29,28,29,28,29,28,29,28,29,28,0,51,0,54,53,53,52,52,47,51,52,53,52,53,51,51,52,53,51,53,53,53,51,52,54,0,47,53,53,52,52,52,51,52,52,53,51,49,53,53,53,51,47,49,52,54,0,53,54,0,0,0,0,0,0,0,0,0,44,52,53,43,52,43,67,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,67,44,43,44,43,44,49,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,44,43,67,67,80,67,110,49,49,51,44,43,47,52,53,54,67,44,44,44,44,67,67,67,0,67,51,51,44,44,43,47,52,52,53,53,54,54,80,67,110,49,51,51,51,51,44,44,43,47,52,52,52,53,54,54,54,54,43,44,44,49,43,49,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,67,110,43,67,49,44,43,67,49,49,49,44,0,49,67,0,49,43,49,49,67,67,110,43,49,110,67,67,49,49,110,44,43,51,52,54,43,44,43,51,44,52,53,54,49,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,43,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,80,67,110,49,51,44,43,47,52,53,54,49,111,112,113,114,115,116,117,116,118,119,118,119,120,120,116,116,120,117,118,119,121,121,121,121,121,122,123,124,125,126,127,128,122,123,124,129,125,130,126,131,127,132,133,128,134,134,123,124,132,123,124,132,135,136,137,137,135,60,60,60,0,60,60,0,0,81,81,60,82,81,60,82,82,82,81,60,82,81,60,82,81,60,82,82,60,60,82,81,60,60,60,60,82,81,60,82,81,60,82,82,82,81,82,0,82,82,82,60,82,82,60,81,60,82,81,60,82,81,60,82,81,60,82,81,60,82,138,139,0,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,59,59,0,0,59,0,59,59,59,88,39,59,88,39,88,39,88,39,59,88,39,59,88,39,59,88,39,59,59,88,88,39,59,59,88,39,59,88,39,59,88,39,59,88,39,59,88,59,88,39,59,88,39,59,88,39,59,88,39,59,88,39,140,140,0,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,0,90,90,90,90,90,90,0,90,90,90,90,90,0,90,0,0,0,0,90,90,90,90,90,90,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,108,108,108,108,108,0,108,108,108,108,108,108,108,108,108,108,0,108,108,108,108,108,108],"f":[0,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]]]],[6],[11,-1,[]],[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,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],[[[29,[-1]],14],15,[30,30]],[[28,14],15],[-1,-1,[]],[-1,-1,[]],[[28,31],[[19,[32]]]],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,33],[[7,[28,[29,[-1]]]]],34],[[28,[36,[35]]],37],[[28,31],[[19,[38]]]],[[28,[23,[39]]],[[40,[7]]]],[[[29,[-1]],-2],7,34,41],[-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,[42]]]]],34],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,[43,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,[44,44],[43,43],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[[44,44],45],[46,47],[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,[44]]],48],[-1,[[8,[43]]],48],0,0,[11,7],[11,7],[11,7],[49,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],[11,7],0,[[44,44],50],[[-1,-2],50,[],[]],[[-1,-2],50,[],[]],[[-1,-2],50,[],[]],0,0,0,0,0,[[51,14],15],[[51,14],15],[[44,14],15],[[44,14],15],[[43,14],15],[[47,14],15],[[52,14],15],[[52,14],15],[[53,14],15],[[53,14],15],[[54,14],15],[[54,14],15],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[55,51],[56,51],[57,51],[58,44],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[57,52],[-1,-1,[]],[59,52],[-1,-1,[]],[[[4,[42]]],54],[-1,-1,[]],[60,54],[51,54],[43,[[61,[12]]]],[[-1,-2],16,[62,63],64],[[44,-1],7,65],[49,44],[43,44],[49,43],[[],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,0,[9,[[66,[[19,[43]]]]]],0,[[[67,[-1,-2]],11],[[8,[49,52]]],34,[41,68,69,70]],[[],44],[[44,[61,[12]],71,72,16],43],0,[[49,[36,[35]]],37],[[49,[36,[35]]],37],[[49,[36,[35]]],37],[[44,44],[[19,[45]]]],0,[49,39],0,0,[49,73],[43,72],[49,[[0,[74]]]],[49,11],0,0,0,[43,71],[9,[[66,[[23,[75]]]]]],0,0,0,[49,[[76,[44]]]],[9,[[8,[7,53]]]],0,[[44,-1],8,77],[[43,-1],8,77],[51,[[19,[42]]]],[52,[[19,[42]]]],[54,[[19,[42]]]],[[43,9],[[66,[7]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[-1,78,[]],[49,79],[-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]]],[],[]],[9,[[66,[80]]]],[-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,[[66,[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,[[[81,[-1]],[82,[-2]]],[[23,[[7,[79,[0,[83]]]]]]],84,85],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[82,[-1]]],[[82,[-1]]],85],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,7],[11,7],[11,7],0,[[60,14],15],[[60,14],15],[[[82,[-1]],14],15,[85,30]],[-1,-1,[]],[-1,-1,[]],[57,60],[86,60],[55,60],[-1,-1,[]],[[],11],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,[[81,[-1]]],84],0,0,0,0,0,[60,[[19,[42]]]],0,[-1,-2,[],[]],[-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,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[-1,-1,[]],[[],11],[-1,-2,[],[]],[9,[[66,[87]]]],[[87,[13,[12]],11],[[66,[7]]]],[[87,[13,[12]],11],[[66,[7]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[88,88],[39,39],[[-1,-2],7,[],[]],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,7],[11,7],[11,7],[[59,14],15],[[59,14],15],[[88,14],15],[[88,14],15],[[39,14],15],[-1,-1,[]],[57,59],[-1,-1,[]],[-1,-1,[]],[[],11],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[59,[[19,[42]]]],[-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,[],[]],[73,73],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[[73,14],15],[-1,-1,[]],[[],11],[-1,-2,[],[]],[[73,79,89],[[19,[32]]]],[-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],[[[90,[-1]]],7,[]],0,[-1,-1,[]],[[],11],[-1,-2,[],[]],[-1,[],[]],[[[91,[-1]],50],[[90,[-1]]],[]],0,[[[5,[[90,[-1]]]],92],93,[]],0,[[-1,78],[[66,[[0,[3,69]]]]],[94,69]],0,[[],[[0,[95]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[[[5,[-1]],92],93,[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[-1,-1,[]],[[[96,[-1,-2]],20,97],[[5,[[4,[3]]]]],[98,69],34],[[],11],[-1,-2,[],[]],[[[99,[-1]],28,-2,[36,[[101,[[19,[100]]]]]]],[[96,[-1,-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]]],[[102,[-1]]],68],[[-1,-2],7,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[-1,-1,[]],[[],11],[-1,-2,[],[]],[[103,-1,104,[36,[[101,[[106,[2,105]]]]]]],[[102,[-1]]],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[[[102,[-1]],33,20,32],[[5,[[4,[3]]]]],34],[-1,-2,[],[]],0,[[100,12,107],7],[-1,-2,[],[]],[-1,-2,[],[]],[[100,20],50],[[100,12,107],7],[11,-1,[]],[11,-1,[]],[11,7],[[100,14],15],[-1,-1,[]],[[],11],[-1,-2,[],[]],[[[23,[73]]],100],[100,[[0,[74]]]],[[100,20],[[19,[[0,[3]]]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[11,-1,[]],[11,-1,[]],[11,7],[[108,14],15],[[108,14],15],[-1,-1,[]],[[],11],[-1,-2,[],[]],[17,[[8,[71,108]]]],[-1,78,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,27,[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[3,"NodeRpcClient",0],[3,"SegmentIndex",754],[8,"Future",755],[3,"Box",756],[3,"Pin",757],[3,"Identity",0],[15,"tuple"],[4,"Result",758],[3,"Path",759],[8,"AsRef",760],[15,"usize"],[15,"u8"],[15,"slice"],[3,"Formatter",761],[6,"Result",761],[15,"u64"],[15,"str"],[4,"Error",762],[4,"Option",763],[3,"PieceIndex",764],[3,"PublicKey",765],[3,"SecretKey",765],[3,"Vec",766],[3,"Signature",767],[3,"RewardSignatureResponse",768],[3,"SolutionResponse",768],[3,"TypeId",769],[3,"PieceCache",79],[3,"CacheWorker",79],[8,"Debug",761],[3,"Key",770],[3,"Piece",764],[3,"PeerId",771],[8,"NodeClient",65],[8,"Fn",772],[3,"Arc",773],[3,"HandlerId",774],[3,"ProviderRecord",770],[3,"DiskPieceCache",567],[3,"Receiver",775],[8,"PieceGetter",776],[8,"Error",777],[4,"SingleDiskFarmInfo",119],[4,"SingleDiskFarmId",119],[4,"Ordering",778],[3,"PathBuf",759],[4,"SingleDiskFarmSummary",119],[8,"Deserializer",779],[3,"SingleDiskFarm",119],[15,"bool"],[4,"PlottingError",119],[4,"SingleDiskFarmError",119],[4,"SingleDiskFarmScrubError",119],[4,"BackgroundTaskError",119],[3,"ThreadPoolBuildError",780],[4,"PlottingError",776],[3,"Error",781],[3,"Ulid",782],[4,"DiskPieceCacheError",567],[4,"FarmingError",479],[15,"array"],[8,"Hash",783],[8,"Sized",784],[8,"BuildHasher",783],[8,"Hasher",783],[6,"Result",781],[3,"SingleDiskFarmOptions",119],[8,"Clone",785],[8,"Send",784],[8,"Sync",784],[3,"PublicKey",786],[15,"u16"],[3,"PieceReader",631],[8,"Iterator",787],[3,"SectorMetadataChecksummed",788],[6,"Result",789],[8,"Serializer",790],[3,"String",791],[6,"SectorIndex",786],[3,"SingleDiskFarmInfoLock",119],[3,"PlotAudit",479],[3,"PlotAuditOptions",479],[8,"ProvableSolutions",792],[8,"ReadAtSync",793],[8,"Table",794],[4,"ProvingError",792],[3,"RayonFiles",550],[3,"Offset",567],[3,"PieceOffset",764],[3,"AsyncJoinOnDrop",650],[3,"JoinHandle",795],[3,"Context",796],[4,"Poll",797],[8,"FnOnce",772],[8,"FnMut",772],[3,"FarmerPieceGetter",675],[4,"PieceGetterRetryPolicy",776],[8,"PieceValidator",798],[3,"PieceProvider",798],[3,"ReadersAndPieces",710],[6,"Mutex",799],[3,"SegmentCommitmentPieceValidator",691],[3,"Node",800],[3,"Kzg",801],[3,"SegmentCommitment",754],[3,"LruCache",802],[3,"PlottedSector",776],[4,"Ss58ParsingError",731],[8,"NodeClientExt",65],[3,"SectorPlottingDetails",119],[13,"BackgroundTaskPanicked",422],[13,"FailedToGetFarmerInfo",423],[13,"FailedToGetSegmentHeader",423],[13,"FailedToSubscribeArchivedSegments",423],[13,"MissingArchivedSegmentHeader",423],[13,"FarmTooLarge",427],[13,"InsufficientAllocatedSpace",427],[13,"WrongChain",427],[13,"IdentityMismatch",427],[13,"InvalidPiecesInSector",427],[13,"V0",442],[13,"FailedToDetermineFileSize",447],[13,"FailedToReadBytes",447],[13,"FailedToWriteBytes",447],[13,"FarmInfoCantBeOpened",447],[13,"IdentityCantBeOpened",447],[13,"MetadataCantBeOpened",447],[13,"CacheCantBeOpened",447],[13,"FarmInfoFileDoesNotExist",447],[13,"IdentityFileDoesNotExist",447],[13,"MetadataFileDoesNotExist",447],[13,"MetadataFileTooSmall",447],[13,"CacheFileDoesNotExist",447],[13,"PublicKeyMismatch",447],[13,"Found",474],[13,"NotFound",474],[13,"Error",474],[13,"FailedToSubscribeSlotInfo",548],[13,"FailedToGetFarmerInfo",548],[13,"OffsetOutsideOfRange",629]],"b":[[260,"impl-Debug-for-PlottingError"],[261,"impl-Display-for-PlottingError"],[262,"impl-Debug-for-SingleDiskFarmId"],[263,"impl-Display-for-SingleDiskFarmId"],[266,"impl-Debug-for-SingleDiskFarmError"],[267,"impl-Display-for-SingleDiskFarmError"],[268,"impl-Debug-for-SingleDiskFarmScrubError"],[269,"impl-Display-for-SingleDiskFarmScrubError"],[270,"impl-Display-for-BackgroundTaskError"],[271,"impl-Debug-for-BackgroundTaskError"],[277,"impl-From%3CThreadPoolBuildError%3E-for-PlottingError"],[278,"impl-From%3CPlottingError%3E-for-PlottingError"],[279,"impl-From%3CError%3E-for-PlottingError"],[284,"impl-From%3CError%3E-for-SingleDiskFarmError"],[286,"impl-From%3CDiskPieceCacheError%3E-for-SingleDiskFarmError"],[288,"impl-From%3CBox%3Cdyn+Error+%2B+Send+%2B+Sync%3E%3E-for-BackgroundTaskError"],[290,"impl-From%3CFarmingError%3E-for-BackgroundTaskError"],[291,"impl-From%3CPlottingError%3E-for-BackgroundTaskError"],[506,"impl-Debug-for-FarmingError"],[507,"impl-Display-for-FarmingError"],[511,"impl-From%3CError%3E-for-FarmingError"],[512,"impl-From%3CProvingError%3E-for-FarmingError"],[513,"impl-From%3CThreadPoolBuildError%3E-for-FarmingError"],[560,"impl-ReadAtSync-for-%26RayonFiles"],[561,"impl-ReadAtSync-for-RayonFiles"],[594,"impl-Display-for-DiskPieceCacheError"],[595,"impl-Debug-for-DiskPieceCacheError"],[596,"impl-Debug-for-Offset"],[597,"impl-Display-for-Offset"],[742,"impl-Debug-for-Ss58ParsingError"],[743,"impl-Display-for-Ss58ParsingError"]]},\ "subspace_farmer_components":{"doc":"Components of the reference implementation of Subspace …","t":"NDDEIDINLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLMLLLLLLLLLMMLLAAKKLLLLAMMALLLLLLLLLLLLLLLLLLLLLLLLLDFFMLLLLLLLLLLLMMLLLLLLIIKKKKKKKNNDDDNNNNIENNDDENLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFMMLLLLLLLFMMLMMMMLLLLLLLLLLLLKLLLLLLLLLLLLLLMMMMMMMMMMFMMMMMMMMMMMMLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNIENDKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMNNNNNNDENLLLLLLMLLLLLLLLLLLLLLLLLFFFFMLLLLLLLLLLLLLMMMMMMMMMMMNDNNNNDEEEDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLMLLMMFFFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMM","n":["Async","AsyncReadBytes","FarmerProtocolInfo","ReadAt","ReadAtAsync","ReadAtOffset","ReadAtSync","Sync","as_mut","as_mut_bits","as_mut_byte_slice","as_mut_slice_of","auditing","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","file_ext","fmt","fmt","from","from","from","from","from","from","from_async","from_sync","history_size","init","init","init","init","into","into","into","into","into_inner","max_pieces_in_sector","min_sector_lifetime","offset","offset","plotting","proving","read_at","read_at","read_at","read_at","read_at","read_at","reading","recent_history_fraction","recent_segments","sector","serialize","to_owned","to_owned","to_owned","try_as_mut_bits","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","vzip","vzip","vzip","vzip","AuditResult","audit_plot_sync","audit_sector_sync","best_solution_distance","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","into","sector_index","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","DownloadSectorOptions","DownloadedSector","EncodeSectorOptions","FailedToAcquirePermit","FailedToRetrievePiece","InvalidErasureCodingInstance","Limited","PieceGetter","PieceGetterRetryPolicy","PieceNotFound","PieceRecoveryFailed","PlotSectorOptions","PlottedSector","PlottingError","Unlimited","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","download_sector","downloading_semaphore","downloading_semaphore","drop","drop","drop","drop","drop","drop","drop","encode_sector","encoding_semaphore","encoding_semaphore","eq","erasure_coding","erasure_coding","farmer_protocol_info","farmer_protocol_info","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_piece","init","init","init","init","init","init","init","into","into","into","into","into","into","into","kzg","kzg","piece_getter","piece_getter","piece_getter_retry_policy","piece_getter_retry_policy","piece_indexes","pieces_in_sector","pieces_in_sector","pieces_in_sector","plot_sector","public_key","public_key","sector_id","sector_index","sector_index","sector_index","sector_index","sector_metadata","sector_metadata_output","sector_metadata_output","sector_output","sector_output","source","table_generator","table_generator","to_owned","to_owned","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","vzip","vzip","vzip","vzip","vzip","vzip","vzip","error","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","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"],[102,"subspace_farmer_components::auditing"],[125,"subspace_farmer_components::file_ext"],[134,"subspace_farmer_components::plotting"],[293,"subspace_farmer_components::plotting::PlottingError"],[302,"subspace_farmer_components::proving"],[352,"subspace_farmer_components::proving::ProvingError"],[357,"subspace_farmer_components::reading"],[409,"subspace_farmer_components::reading::ReadingError"],[419,"subspace_farmer_components::sector"],[598,"subspace_farmer_components::sector::SectorContentsMapEncodeIntoError"],[600,"subspace_farmer_components::sector::SectorContentsMapFromBytesError"],[604,"subspace_farmer_components::sector::SectorContentsMapIterationError"],[606,"core::convert"],[607,"core::marker"],[608,"bitvec::slice"],[609,"bitvec::order"],[610,"byte_slice_cast"],[611,"core::result"],[612,"byte_slice_cast"],[613,"serde::de"],[614,"core::fmt"],[615,"core::fmt"],[616,"alloc::vec"],[617,"core::marker"],[618,"core::future::future"],[619,"serde::ser"],[620,"bitvec::ptr::span"],[621,"core::any"],[622,"subspace_core_primitives"],[623,"subspace_core_primitives"],[624,"subspace_proof_of_space"],[625,"tokio::sync::batch_semaphore"],[626,"subspace_core_primitives::pieces"],[627,"core::pin"],[628,"core::error"],[629,"alloc::string"],[630,"std::io::error"],[631,"subspace_erasure_coding"],[632,"core::marker"],[633,"subspace_core_primitives::pieces"],[634,"core::iter::traits::exact_size"],[635,"parity_scale_codec::error"],[636,"parity_scale_codec::codec"],[637,"parity_scale_codec::codec"],[638,"core::iter::traits::iterator"],[639,"subspace_core_primitives::pieces"],[640,"alloc::alloc"],[641,"core::ops::function"]],"d":["Async variant","Container or asynchronously reading bytes using in …","Information about the protocol necessary for farmer …","Enum to encapsulate the selection between ReadAtSync and […","Async version of ReadAt, it is neither Send nor Sync and …","Reader with fixed offset added to all attempted reads","Sync version of ReadAt, it is both Send and Sync and is …","Sync variant","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","File extension trait","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Instantiate ReadAt from some ReadAtAsync implementation","Instantiate ReadAt from some ReadAtSync implementation","Size of the blockchain history","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Extract inner value","How many pieces one sector is supposed to contain (max)","Minimum lifetime of a plotted sector, measured in archived …","Get implementation of ReadAtSync that add specified offset …","Get implementation of ReadAtAsync that add specified …","","","Fill the buffer by reading bytes at a specific offset","Fill the buffer by reading bytes at a specific offset and …","","","","","","Fraction of pieces from the “recent history” (…","Number of latest archived segments that are considered “…","","","","","","","","","","","","","","","","","","","","","","","","","","","Result of sector audit","Audit the whole plot and generate streams of solutions","Audit a single sector and generate a stream of solutions.","Best solution distance found","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Sector index","Solution candidates","","","","","","","Extension convenience trait that allows pre-allocating …","Extension convenience trait that allows setting some file …","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","Options for sector downloading","Opaque sector downloaded and ready for encoding","Options for encoding a sector.","Failed to acquire permit","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","Options for plotting a sector.","Information about sector that was plotted","Plotting status","No restrictions on retries","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Download sector for plotting.","Semaphore for part of the plotting when farmer downloads …","Semaphore for part of the plotting when farmer downloads …","","","","","","","","","Semaphore for part of the plotting when farmer encodes …","Semaphore for part of the plotting when farmer encodes …","","Erasure coding instance","Erasure coding instance","Farmer protocol info","Farmer protocol info","","","","","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.","","","","","","","","","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","KZG instance","Getter for pieces of archival history","Getter for pieces of archival history","Retry policy for piece getter","Retry policy for piece getter","Indexes of pieces that were plotted","How many pieces should sector contain","How many pieces should sector contain","How many pieces should sector contain","Plot a single sector.","Public key corresponding to sector","Public key corresponding to sector","Sector ID","Sector index","Sector index","Sector index","Sector index","Sector metadata","Where plotted sector metadata should be written, vector …","Where plotted sector metadata should be written, vector …","Where plotted sector should be written, vector must either …","Where plotted sector should be written, vector must either …","","Proof of space table generator","Proof of space table generator","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Lower-level error","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 solution candidates.","Best solution distance found, None in case there are no …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Turn solution candidates into actual solutions","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":[11,0,0,0,0,0,0,11,1,1,1,1,0,1,11,15,16,1,11,15,16,11,15,16,11,15,16,1,11,15,16,1,11,15,16,16,1,11,15,16,0,15,16,1,1,1,11,15,16,11,11,16,1,11,15,16,1,11,15,16,1,16,16,12,14,0,0,12,14,15,15,15,15,0,16,16,0,16,11,15,16,1,1,11,15,16,1,11,15,16,1,11,15,16,1,11,15,16,1,11,15,16,0,0,0,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,0,0,88,89,88,89,89,89,89,44,44,0,0,0,44,44,44,40,0,0,44,44,0,0,0,40,52,43,42,46,40,41,44,52,43,42,46,40,41,44,40,41,40,41,40,52,43,42,46,40,41,44,52,43,42,46,40,41,44,0,52,42,52,43,42,46,40,41,44,0,52,46,40,52,46,52,42,40,41,44,44,52,43,42,46,40,41,44,44,45,52,43,42,46,40,41,44,52,43,42,46,40,41,44,52,42,52,42,52,42,41,52,42,46,0,52,42,41,52,42,46,41,41,52,46,52,46,44,52,46,40,41,44,52,43,42,46,40,41,44,52,43,42,46,40,41,44,52,43,42,46,40,41,44,52,43,42,46,40,41,44,52,43,42,46,40,41,44,90,91,92,93,94,95,90,92,93,56,56,56,56,56,0,0,56,0,62,56,55,56,55,55,55,56,55,56,55,56,55,56,56,55,56,56,56,56,55,56,55,56,55,55,55,55,56,55,56,56,55,56,55,56,55,56,55,56,55,96,97,96,97,96,59,59,59,59,59,59,0,0,59,59,65,59,65,65,65,65,59,65,59,65,59,65,59,59,65,59,59,59,65,59,65,59,65,0,0,0,0,65,59,65,59,59,65,59,65,59,65,59,65,59,65,65,98,99,100,100,99,100,101,98,101,100,58,0,58,76,58,77,0,0,0,0,0,0,80,75,35,58,76,77,72,80,75,35,58,76,77,72,75,35,58,76,77,72,75,35,58,76,77,72,75,35,75,35,75,35,75,35,80,75,35,35,58,76,77,72,80,75,35,35,58,76,77,72,80,80,75,35,58,76,77,72,35,72,75,35,35,72,58,76,77,75,35,58,58,76,76,77,77,72,80,75,35,35,58,76,77,72,72,75,80,75,35,58,76,77,72,80,75,35,58,76,77,72,80,80,72,72,72,72,72,72,72,72,75,75,72,75,75,0,0,0,75,35,75,35,75,35,58,76,77,72,58,76,77,80,75,35,58,76,77,72,80,75,35,58,76,77,72,80,75,35,58,76,77,72,80,75,35,58,76,77,72,35,80,75,35,58,76,77,72,102,102,103,104,103,104,105,105],"f":[0,0,0,0,0,0,0,0,[[[1,[-1]]],[[3,[2]]],[[4,[[3,[2]]]],5]],[-1,[[6,[-2,-3]]],[],[],7],[-1,[[3,[2]]],[]],[-1,[[9,[[3,[-2]],8]]],[],10],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[11,[-1,-2]]],[[11,[-1,-2]]],[12,13],[14,13]],[[[15,[-1]]],[[15,[-1]]],13],[16,16],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[-1,[[9,[16]]],19],[18,17],[18,17],[18,17],[18,17],0,[[[15,[-1]],20],21,22],[[16,20],21],[[[23,[[3,[2]]]]],[[1,[[23,[[3,[2]]]]]]]],[[[24,[2]]],[[1,[[24,[2]]]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,[[11,[25,-1]]],14],[-1,[[11,[-1,25]]],12],0,[[],18],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[1,[-1]]],-1,[[4,[[3,[2]]]],5]],0,0,[[-1,18],[[15,[-1]]],26],[[-1,18],[[15,[-1]]],26],0,0,[[-1,[3,[2]],18],[[27,[17]]],[]],[[-1,-2,18],[[0,[28]]],[],[[4,[[3,[2]]]],5]],[[[15,[-1]],-2,18],[[27,[-2]]],14,[[4,[[3,[2]]]],5]],[[[15,[-1]],[3,[2]],18],[[27,[17]]],12],[[[15,[-1]],-2,18],[[27,[-2]]],14,[[4,[[3,[2]]]],5]],[[[15,[-1]],[3,[2]],18],[[27,[17]]],12],0,0,0,0,[[16,-1],9,29],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[9,[[6,[-2,-3]],[30,[-2]]]]],[],[],7],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[32,33,34,-1,[3,[35]],[37,[36]]],[[24,[[38,[[15,[-1]]]]]]],12],[[32,33,34,-1,35],[[37,[[38,[-1]]]]],12],0,[-1,-2,[],[]],[-1,-2,[],[]],[[[38,[-1]]],[[38,[-1]]],13],[[-1,-2],17,[],[]],[18,-1,[]],[18,-1,[]],[18,17],[[[38,[-1]],20],21,22],[-1,-1,[]],[[],18],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,31,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-1,[]],[-1,[[27,[17]]],[]],[-1,-1,[]],[-1,[[27,[17]]],[]],[[-1,39],[[27,[17]]],[]],[[-1,[3,[2]],39],[[27,[17]]],[]],[[-1,[3,[2]],39],[[27,[17]]],[]],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,[],[]],[40,40],[41,41],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[],40],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[[[42,[-1]]],[[9,[43,44]]],45],0,0,[18,17],[18,17],[18,17],[18,17],[18,17],[18,17],[18,17],[[43,[46,[-1]]],[[9,[41,44]]],47],0,0,[[40,40],48],0,0,0,0,[[40,20],21],[[41,20],21],[[44,20],21],[[44,20],21],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[49,44],[-1,-1,[]],[[-1,50,40],[[51,[[23,[28]]]]],[]],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[[[52,[-1,-2]]],[[9,[41,44]]],47,45],0,0,0,0,0,0,0,0,0,0,0,0,[44,[[37,[53]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,54,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,[[37,[34]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[55,[-1]]],[[55,[-1]]],13],[[-1,-2],17,[],[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,17],[18,17],[[56,20],21],[[56,20],21],[[[55,[-1]],20],21,22],[57,56],[58,56],[-1,-1,[]],[59,56],[-1,-1,[]],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[[55,[-1]],-2,60,61,-3],[[9,[[0,[62]],56]]],12,63,64],[[[55,[-1]]],48,12],[[[55,[-1]]],18,12],[56,[[37,[53]]]],[-1,-2,[],[]],[-1,54,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,31,[]],[-1,31,[]],[-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,[],[]],[65,65],[[-1,-2],17,[],[]],0,[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,17],[18,17],[[59,20],21],[[59,20],21],[[65,20],21],[57,59],[-1,-1,[]],[58,59],[-1,-1,[]],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[66,67,35,[11,[-1,-2]],61],[[9,[68,59]]],12,14],[[66,69,[71,[70]],72,-1,[11,[-2,-3]]],[[9,[[23,[[71,[[37,[73]]]]]],59]]],47,12,14],[[[71,[[37,[73]]]],66,61],[[9,[[23,[[71,[73]]]],59]]]],[[[71,[[37,[73]]]],66,61],[[9,[[0,[74]],59]]]],0,[59,[[37,[53]]]],[-1,-2,[],[]],[-1,54,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,31,[]],[-1,31,[]],[-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,[],[]],[75,75],[35,35],[58,58],[76,76],[77,77],[72,72],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[-1,[[9,[75,78]]],79],[-1,[[9,[35,78]]],79],[[[3,[2]]],[[9,[-1,78]]],[]],[[[3,[2]]],[[9,[-1,78]]],[]],[[70,[3,[2]]],[[9,[-1,78]]],[]],[[70,[3,[2]]],[[9,[-1,78]]],[]],[[70,-1],[[9,[-2,78]]],79,[]],[[70,-1],[[9,[-2,78]]],79,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[35],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[35],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[80,17],[18,17],[18,17],[18,17],[18,17],[18,17],[18,17],[18,17],[35,[[24,[2]]]],[[72,[3,[2]]],[[9,[17,76]]]],[[75,-1],17,[81,26]],[[35,-1],17,[81,26]],[[],18],[69,18],[[58,58],48],[[76,76],48],[[77,77],48],[[75,20],21],[[35,20],21],[[58,20],21],[[58,20],21],[[76,20],21],[[76,20],21],[[77,20],21],[[77,20],21],[[72,20],21],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[75,35],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[3,[2]],69],[[9,[72,58]]]],0,[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[80,[[0,[74]]]],[80,[[0,[74]]]],[72,[[3,[[82,[[71,[2]]]]]]]],[72,[[0,[74]]]],[[72,66],[[0,[83]]]],[[72,84],[[9,[[0,[83]],77]]]],[[72,84],[[9,[[0,[83]],77]]]],[69,72],[72,[[3,[84]]]],[[72,66],[[0,[85]]]],0,[75,[[23,[[71,[70]]]]]],[72,[[23,[[71,[69]]]]]],0,0,[69,18],[69,18],[69,18],[75,18],[35,18],[[-1,[3,[2]]],[[24,[2,86]]],[]],[[-1,[3,[2]]],[[24,[2,86]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[35,-1],-2,87,[]],[-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,"AsyncReadBytes",0],[15,"u8"],[15,"slice"],[8,"AsMut",606],[8,"Unpin",607],[3,"BitSlice",608],[8,"BitOrder",609],[4,"Error",610],[4,"Result",611],[8,"FromByteSlice",610],[4,"ReadAt",0],[8,"ReadAtSync",0],[8,"Clone",612],[8,"ReadAtAsync",0],[3,"ReadAtOffset",0],[3,"FarmerProtocolInfo",0],[15,"tuple"],[15,"usize"],[8,"Deserializer",613],[3,"Formatter",614],[6,"Result",614],[8,"Debug",614],[3,"Box",615],[3,"Vec",616],[15,"never"],[8,"Sized",607],[6,"Result",617],[8,"Future",618],[8,"Serializer",619],[4,"BitSpanError",620],[3,"TypeId",621],[3,"PublicKey",622],[6,"Blake3Hash",622],[6,"SolutionRange",622],[3,"SectorMetadataChecksummed",419],[6,"SectorIndex",622],[4,"Option",623],[3,"AuditResult",102],[15,"u64"],[4,"PieceGetterRetryPolicy",134],[3,"PlottedSector",134],[3,"DownloadSectorOptions",134],[3,"DownloadedSector",134],[4,"PlottingError",134],[8,"PieceGetter",134],[3,"EncodeSectorOptions",134],[8,"Table",624],[15,"bool"],[3,"AcquireError",625],[3,"PieceIndex",626],[3,"Pin",627],[3,"PlotSectorOptions",134],[8,"Error",628],[3,"String",629],[3,"SolutionCandidates",302],[4,"ProvingError",302],[3,"Error",617],[4,"SectorContentsMapFromBytesError",419],[4,"ReadingError",357],[3,"Kzg",630],[3,"ErasureCoding",631],[8,"ProvableSolutions",302],[8,"Copy",607],[8,"FnMut",632],[3,"PlotRecord",357],[3,"PieceOffset",626],[3,"SectorId",622],[3,"Piece",626],[15,"u16"],[15,"u32"],[15,"array"],[3,"SectorContentsMap",419],[3,"Scalar",633],[8,"ExactSizeIterator",634],[3,"SectorMetadata",419],[4,"SectorContentsMapEncodeIntoError",419],[4,"SectorContentsMapIterationError",419],[3,"Error",635],[8,"Input",636],[3,"EncodedChunksUsed",419],[8,"Output",636],[3,"BitArray",637],[8,"Iterator",638],[3,"SBucket",626],[8,"IndexedParallelIterator",639],[3,"Global",640],[8,"FnOnce",632],[8,"OpenOptionsExt",125],[8,"FileExt",125],[13,"FailedToRetrievePiece",293],[13,"FailedToAcquirePermit",293],[13,"BadSectorOutputSize",293],[13,"BadSectorMetadataOutputSize",293],[13,"PieceNotFound",293],[13,"PieceRecoveryFailed",293],[13,"FailedToCreateChunkWitness",352],[13,"FailedToCreatePolynomialForRecord",352],[13,"WrongRecordSizeAfterDecoding",409],[13,"FailedToReadChunk",409],[13,"InvalidChunk",409],[13,"FailedToErasureDecodeRecord",409],[13,"InvalidBytesLength",598],[13,"InvalidBytesLength",600],[13,"InvalidEncodedRecordChunks",600],[13,"SBucketOutOfRange",604]],"b":[[43,"impl-From%3CBox%3C%5Bu8%5D%3E%3E-for-AsyncReadBytes%3CBox%3C%5Bu8%5D%3E%3E"],[44,"impl-From%3CVec%3Cu8%3E%3E-for-AsyncReadBytes%3CVec%3Cu8%3E%3E"],[69,"impl-ReadAtAsync-for-%26ReadAtOffset%3C\'_,+T%3E"],[70,"impl-ReadAtSync-for-ReadAtOffset%3C\'_,+T%3E"],[71,"impl-ReadAtAsync-for-ReadAtOffset%3C\'_,+T%3E"],[72,"impl-ReadAtSync-for-%26ReadAtOffset%3C\'_,+T%3E"],[204,"impl-Debug-for-PlottingError"],[205,"impl-Display-for-PlottingError"],[324,"impl-Debug-for-ProvingError"],[325,"impl-Display-for-ProvingError"],[327,"impl-From%3CError%3E-for-ProvingError"],[328,"impl-From%3CSectorContentsMapFromBytesError%3E-for-ProvingError"],[330,"impl-From%3CReadingError%3E-for-ProvingError"],[379,"impl-Display-for-ReadingError"],[380,"impl-Debug-for-ReadingError"],[382,"impl-From%3CError%3E-for-ReadingError"],[384,"impl-From%3CSectorContentsMapFromBytesError%3E-for-ReadingError"],[500,"impl-Debug-for-SectorContentsMapFromBytesError"],[501,"impl-Display-for-SectorContentsMapFromBytesError"],[502,"impl-Display-for-SectorContentsMapEncodeIntoError"],[503,"impl-Debug-for-SectorContentsMapEncodeIntoError"],[504,"impl-Debug-for-SectorContentsMapIterationError"],[505,"impl-Display-for-SectorContentsMapIterationError"]]},\ "subspace_malicious_operator":{"doc":"Subspace malicious operator library.","t":"ADMLLMMMMMLLMMLLLLLLLMLLLLLLLLMLLLMLLLLLLL","n":["malicious_domain_instance_starter","DomainInstanceStarter","block_importing_notification_stream","borrow","borrow_mut","consensus_client","consensus_keystore","consensus_network","consensus_offchain_tx_pool_factory","consensus_sync_service","deref","deref_mut","domain_cli","domain_message_receiver","drop","from","from_mut","from_mut","from_ref","from_ref","from_subset","gossip_message_sink","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","is_in_subset","new_slot_notification_stream","start","to_subset","to_subset_unchecked","tokio_handle","try_from","try_into","type_id","type_name","unchecked_into","unique_saturated_into","vzip"],"q":[[0,"subspace_malicious_operator"],[1,"subspace_malicious_operator::malicious_domain_instance_starter"],[42,"alloc::alloc"],[43,"alloc::boxed"],[44,"core::any"],[45,"alloc::sync"],[46,"alloc::rc"],[47,"subspace_runtime_primitives::opaque"],[48,"domain_client_operator::bootstrapper"],[49,"core::error"],[50,"core::result"],[51,"sc_network::service::traits"],[52,"core::marker"],[53,"core::marker"],[54,"core::any"]],"d":["","DomainInstanceStarter used to start a domain instance node …","","","","","","","","","","","","","","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).","","","","","","","","","","","","","","","","","",""],"i":[0,0,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9],"f":[0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,[1,-1,[]],[1,-1,[]],0,0,[1,2],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[],1],[-1,-2,[],[]],[[[4,[-1,3]]],[[4,[5,3]]],[]],[[[6,[-1,3]]],[[6,[5,3]]],[]],[[[7,[-1,3]]],[[7,[5,3]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,8,[]],0,[[[9,[-1]],[11,[10]]],[[13,[2,[4,[12]]]]],[14,15,16]],[-1,[[17,[-2]]],[],[]],[-1,-2,[],[]],0,[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,18,[]],[-1,19,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[15,"usize"],[15,"tuple"],[3,"Global",42],[3,"Box",43],[8,"Any",44],[3,"Arc",45],[3,"Rc",46],[15,"bool"],[3,"DomainInstanceStarter",1],[6,"Block",47],[3,"BootstrapResult",48],[8,"Error",49],[4,"Result",50],[8,"NetworkPeers",51],[8,"Send",52],[8,"Sync",52],[4,"Option",53],[3,"TypeId",44],[15,"str"]],"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":[]},\ -"subspace_networking":{"doc":"Networking functionality of Subspace Network, primarily …","t":"NDENIDENNNEDDDEISNICDDNNNSCDEDGDNNQNGEDNNNNENENDNNDNKLMMLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMMLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLMMMLCMMMLMMMMMMMLLLKLLLLLLKLMFLMMMLMLLKLKLKLMMKLLMLLLLLLLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLMMMMMMGDLLLLLLLLALAFLLLLGENILLLLLLLLLLLLKKLLLLLLNDDIENLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLL","n":["CantPreallocateKnownPeersFile","Config","CreationError","Dynamic","GenericRequest","GenericRequestHandler","GetClosestPeersError","IncorrectResponseFormat","Io","Io","KademliaMode","KeyWrapper","KnownPeersManager","KnownPeersManagerConfig","KnownPeersManagerPersistenceError","KnownPeersRegistry","LOG_TARGET","LastSegmentHeaders","LocalRecordProvider","Multihash","Node","NodeRunner","NodeRunnerDropped","NodeRunnerDropped","NodeRunnerDropped","PROTOCOL_NAME","PeerAddress","PeerAddressRemovedEvent","PeerDiscovered","PieceByIndexRequest","PieceByIndexRequestHandler","PieceByIndexResponse","ProtocolFailure","RelayServerExpected","Response","RoutablePeer","SegmentHeaderBySegmentIndexesRequestHandler","SegmentHeaderRequest","SegmentHeaderResponse","SegmentIndexes","SendCommand","SendCommand","SendCommand","SendRequestError","Static","SubscribeError","Subscription","TopicSubscription","TransportCreationError","TransportError","UniqueRecordBinaryHeap","UnroutablePeer","add_known_peer","add_known_peer","address","allow_non_global_addresses_in_dht","ban_peer","bootstrap","bootstrap_addresses","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","boxed","cache_size","clear","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","connected_peers","construct","contains_key","create","decode","decode","decode","decode","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_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","default","default","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","disable_bootstrap_on_start","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable_known_peers_source","encode","encode","encode","encode_to","encode_to","encode_to","encode_to","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","external_addresses","external_addresses","failed_address_cache_removal_interval","failed_address_kademlia_removal_interval","file_size","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","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","from","from","from","from","from","from","from","from","from","from","get_closest_peers","get_providers","get_requests_batch_handle","get_value","gossipsub","id","identify","ignore_peer_list","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","initial_random_query_interval","insert","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_dynamic","is_static","kademlia","kademlia_mode","keypair","keys","libp2p","libp2p_metrics","listen_on","listen_on_fallback_to_random_port","listeners","local_records_provider","max_established_incoming_connections","max_established_outgoing_connections","max_pending_incoming_connections","max_pending_outgoing_connections","metrics","networking_parameters_registry","new","new","new","next_known_addresses_batch","next_known_addresses_batch","on_connected_peer","on_disconnected_peer","on_discovered_peer","on_new_listener","on_num_established_peer_connections_change","on_unreachable_address","on_unreachable_address","path","peer_id","peer_id","peer_id","piece","piece_index","poll_next","protocol_version","publish","put_value","record","remove","remove_all_known_peer_addresses","remove_all_known_peer_addresses","remove_known_peer_addresses","remove_known_peer_addresses","request_response_protocols","reserved_peers","run","run","run","segment_headers","send_generic_request","set_limit","should_include_key","size","size_hint","size_hint","size_hint","size_hint","size_hint","source","source","source","source","source","start_over_address_batching","start_over_address_batching","start_over_address_batching","subscribe","temporary_ban_backoff","temporary_bans_cache_size","timeout","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","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","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","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","using_encoded","using_encoded","using_encoded","utils","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","yamux_config","address","peer_id","peer_id","segment_header_number","segment_indexes","PeerAddress","SubspaceMetrics","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","multihash","new","piece_provider","strip_peer_id","try_from","try_into","type_id","vzip","Multihash","MultihashCode","PieceIndex","ToMultihash","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","fmt","from","init","into","to_multihash","to_multihash_by_code","to_owned","try_from","try_from","try_into","type_id","vzip","Limited","NoPieceValidator","PieceProvider","PieceValidator","RetryPolicy","Unlimited","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","eq","equivalent","equivalent","fmt","from","from","from","get_piece","get_piece_from_peer","init","init","init","into","into","into","new","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","validate_piece","validate_piece","vzip","vzip","vzip"],"q":[[0,"subspace_networking"],[529,"subspace_networking::PeerDiscovered"],[532,"subspace_networking::SegmentHeaderRequest"],[534,"subspace_networking::utils"],[552,"subspace_networking::utils::multihash"],[576,"subspace_networking::utils::piece_provider"],[631,"libp2p_identity::peer_id"],[632,"multiaddr"],[633,"alloc::vec"],[634,"core::future::future"],[635,"alloc::boxed"],[636,"core::pin"],[637,"futures_channel::mpsc"],[638,"core::result"],[639,"core::clone"],[640,"core::marker"],[641,"core::marker"],[642,"parity_scale_codec::error"],[643,"parity_scale_codec::codec"],[644,"parity_scale_codec::codec"],[645,"core::fmt"],[646,"core::fmt"],[647,"libp2p_core::transport"],[648,"futures_channel::oneshot"],[649,"libp2p_gossipsub::error"],[650,"futures_core::stream"],[651,"core::option"],[652,"core::iter::traits::exact_size"],[653,"alloc::string"],[654,"libp2p_identity::keypair"],[655,"prometheus_client::registry"],[656,"alloc::sync"],[657,"event_listener_primitives::handler_id"],[658,"core::task::wake"],[659,"core::task::poll"],[660,"libp2p_gossipsub"],[661,"libp2p_kad::record"],[662,"libp2p_kad::record"],[663,"alloc::alloc"],[664,"core::any"],[665,"core::ops::function"],[666,"subspace_core_primitives::pieces"]],"d":["Can’t preallocate known peers file, probably not enough …","Node configuration.","Errors that might happen during network creation.","Kademlia mode will be changed using Autonat protocol when …","Generic request with associated response","Defines generic request-response protocol handler.","Defines errors for get-closest-peers operation.","Underlying protocol returned an incorrect format, …","I/O error.","I/O error.","Defines Kademlia mode","Wrapper data structure that allows to work with keys as …","Handles networking parameters. It manages network …","Configuration for KnownPeersManager.","Networking parameters persistence errors.","Defines operations with the networking parameters.","Specifies log-parameters for tracing.","Defines how many segment headers to return.","Trait to be implemented on providers of local records","","Implementation of a network node on Subspace Network.","Runner for the Node.","Node runner was dropped","Node runner was dropped","Node runner was dropped","Defines request-response protocol name.","","Defines the event triggered when the peer address is …","Represents Kademlia events (RoutablePeer, …","Piece-by-hash protocol request.","Create a new piece-by-hash request handler.","Piece-by-hash protocol response.","Underlying protocol returned an error, impossible to get …","Circuit relay client error.","Response type that corresponds to this request","Kademlia’s routable or pending routable peer event.","Create a new segment-header-by-segment-indexes request …","Segment header by segment indexes protocol request.","Segment header by segment indexes protocol response.","Segment headers by segment indexes.","Failed to send command to the node runner","Failed to send command to the node runner","Failed to send command to the node runner","Defines errors for send-request operation.","The Kademlia mode is static for the duration of the …","Defines errors for subscribe operation.","Failed to create subscription.","Topic subscription, will unsubscribe when last instance is …","Transport creation error.","Transport error when attempting to listen on multiaddr.","Limited-size max binary heap for Kademlia records’ keys.","Kademlia’s unroutable peer event.","Registers a peer ID and associated addresses","","Peer address","Should non-global addresses be added to the DHT?","Ban peer with specified peer ID.","Bootstraps Kademlia network","Addresses to bootstrap Kademlia network","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Creates a reference to the NetworkingParametersRegistry …","Defines cache size.","Remove all contents, while keeping allocated capacity","","","","","","","","","","","","","","","","","","","","","","","Returns a collection of currently connected peers.","Create a new network node and node runner instances.","Checks whether the heap contains the given key.","Creates new GenericRequestHandler by given handler.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Defines whether we should run blocking Kademlia …","","","","","","","","","","","","","","","","","","","","","","","","Defines whether we return known peers batches on …","","","","","","","","","","","","","","","","","","","","Node’s own addresses observed remotely.","Known external addresses to the local peer. The addresses …","Defines interval before the next peer address removes …","Defines interval before the next peer address removal …","Size of the backing file on disk","","","","","","","","","","","","","","","","","","","","","","","","","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.","Get closest peers by multihash key using Kademlia DHT.","Get item providers by its key. Initiate ‘providers’ …","Returns the request batch handle with common “connection …","Return a value from the Kademlia network of the DSN.","The configuration for the Gossip behaviour.","Node’s own local ID.","The configuration for the Identify behaviour.","Peer ID list to filter on address adding.","","","","","","","","","","","","","","","","","","","","","","How frequently should random queries be done using …","Insert a key in the heap evicting (popping) if the size …","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).","Returns true if the mode is Dynamic.","Returns true if the mode is Static.","The configuration for the Kademlia behaviour.","Kademlia mode. The default value is set to Static(Client). …","Identity keypair of a node used for authenticated …","Iterator over all keys in arbitrary order","","Optional libp2p prometheus metrics. None will disable …","List of Multiaddr on which to listen for incoming …","Fallback to random port if specified (or default) port is …","Node’s own addresses where it listens for incoming …","Externally provided implementation of the local records …","Established incoming swarm connection limit.","Established outgoing swarm connection limit.","Pending incoming swarm connection limit.","Pending outgoing swarm connection limit.","Internal prometheus metrics. None will disable metrics …","A reference to the NetworkingParametersRegistry …","Object constructor.","Creates a new Config.","Constructs a heap with given PeerId and size limit.","Returns a batch of the combined collection of known …","","Callback is called when a peer is connected.","Callback is called when a peer is disconnected.","Callback is called when a routable or unraoutable peer is …","Callback is called when node starts listening on new …","Callback is called when number of established peer …","Triggers when we removed the peer address from the …","","Defines whether we enable cache persistence.","Converts public key from keypair to PeerId. It serves as …","Extracts peer ID from event.","Peer ID","Returned data.","Request key - piece index","","Defines protocol version for the network peers. Affects …","Subcribe a messgo to some topic on the DSN.","Puts a value into the Kademlia network of the DSN.","Gets a provider record for key that is stored locally","Removes a key from the heap.","Unregisters associated addresses for peer ID.","","Unregisters associated addresses for peer ID.","","The configuration for the RequestResponsesBehaviour …","Defines set of peers with a permanent connection (and …","Drive async work in the persistence provider","","Drives the main networking future forward.","Returned data.","Sends the generic request to the peer and awaits the …","Set limit to new value, decreasing to value lower than …","Checks whether we include the key.","Returns heap-size","","","","","","","","","","","","Reset the batching process to the initial state.","Reset the batching process to the initial state.","Subcribe to some topic on the DSN.","Backoff policy for temporary banning of unreachable peers.","How many temporarily banned unreachable peers to keep in …","Adds a timeout to the setup and protocol upgrade process …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Miscellaneous utilities for networking.","","","","","","","","","","","","","","","","","","","","","","Yamux multiplexing configuration.","Peer address","Peer ID","Peer ID","Number of segment headers to return.","Segment indexes to get.","Convenience alias for peer ID and its multiaddresses.","Metrics for Subspace networking","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Defines multihash codes for Subspace DSN.","Constructor","Provides methods to retrieve pieces from DSN.","Helper function. Converts multiaddresses to a tuple with …","","","","","Type alias for libp2p Multihash. Constant 64 was copied …","Subspace Network multihash codes.","Piece index code.","Helper trait for converting to multihash.","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Convert to multihash by the default multihash code.","Convert to multihash by the specified multihash code.","","","","","","","Retry N times (including zero)","Stub implementation for piece validation.","Piece provider with cancellation and optional piece …","Validates piece against using its commitment.","Defines retry policy on error during piece acquiring.","No restrictions on retries","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns piece by its index. Uses retry policy for error …","Get piece from a particular peer.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Creates new piece provider.","","","","","","","","","","","Validates piece against using its commitment.","","","",""],"i":[44,0,0,17,0,0,0,47,44,26,0,0,0,0,0,0,67,20,0,0,0,0,45,46,47,67,0,0,0,0,0,0,47,26,67,22,0,0,0,20,45,46,47,0,17,0,46,0,26,26,0,22,12,7,15,24,8,8,24,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,7,16,13,15,16,17,8,18,19,20,21,22,23,13,15,16,17,8,18,19,20,21,22,23,13,8,0,13,82,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,24,16,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,24,7,7,24,25,82,15,16,44,17,26,38,38,45,46,47,8,18,19,20,21,22,23,13,16,18,19,21,18,19,20,21,18,19,20,21,18,18,19,19,20,20,21,21,8,24,16,16,7,24,25,15,16,44,44,17,26,26,38,45,45,46,46,47,47,8,18,19,20,21,22,23,13,7,24,25,82,15,16,44,44,17,26,26,26,38,45,45,45,46,46,46,46,47,47,47,47,8,18,19,20,21,22,23,13,8,8,8,8,24,8,24,16,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,24,13,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,17,17,24,24,24,13,0,24,24,24,8,24,24,24,24,24,24,24,7,24,13,12,7,8,8,8,8,8,12,7,16,0,22,15,19,18,38,24,8,8,27,13,12,7,12,7,24,24,12,7,25,21,8,13,13,13,38,18,19,20,21,44,26,45,46,47,7,12,12,8,24,24,24,18,19,20,21,15,16,17,8,18,19,20,21,22,23,13,44,26,45,46,47,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,18,19,21,0,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,24,83,84,83,85,86,0,0,72,72,72,72,72,72,72,72,0,72,0,0,72,72,72,72,0,0,74,0,74,74,74,74,74,74,74,74,74,74,74,74,87,87,74,74,74,74,74,74,76,0,0,0,0,76,81,77,76,81,77,76,76,76,76,81,77,76,81,77,76,81,77,76,76,76,76,76,81,77,76,77,77,81,77,76,81,77,76,77,76,81,77,76,81,77,76,81,77,76,80,81,81,77,76],"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,[[-1,1,[3,[2]]],[[6,[[5,[4]]]]],[]],[[7,1,[3,[2]]],[[6,[[5,[4]]]]]],0,0,[[8,1],[[11,[9,10]]]],[8,[[11,[9,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,[],[]],[-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,[],[]],[7,[[5,[12]]]],0,[[[13,[-1]]],9,14],[15,15],[16,16],[17,17],[8,8],[18,18],[19,19],[20,20],[21,21],[22,22],[[[23,[-1]]],[[23,[-1]]],14],[[[13,[-1]]],[[13,[-1]]],14],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[8,[[11,[[3,[1]],0]]]],[[[24,[-1]]],[[11,[[9,[8,[25,[-1]]]],26]]],[27,28,29]],[[[13,[-1]],-1],30,14],[-1,[[5,[0]]],[31,28,29]],[-1,[[11,[18,32]]],33],[-1,[[11,[19,32]]],33],[-1,[[11,[20,32]]],33],[-1,[[11,[21,32]]],33],[[[35,[34]]],[[11,[-1,32]]],[]],[[[35,[34]]],[[11,[-1,32]]],[]],[[[35,[34]]],[[11,[-1,32]]],[]],[[[35,[34]]],[[11,[-1,32]]],[]],[[36,[35,[34]]],[[11,[-1,32]]],[]],[[36,[35,[34]]],[[11,[-1,32]]],[]],[[36,[35,[34]]],[[11,[-1,32]]],[]],[[36,[35,[34]]],[[11,[-1,32]]],[]],[[36,-1],[[11,[-2,32]]],33,[]],[[36,-1],[[11,[-2,32]]],33,[]],[[36,-1],[[11,[-2,32]]],33,[]],[[36,-1],[[11,[-2,32]]],33,[]],[[],[[24,[9]]]],[[],16],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],0,[37,9],[7,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[38,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],0,[18,[[3,[34]]]],[19,[[3,[34]]]],[21,[[3,[34]]]],[[18,-1],9,[39,40]],[[19,-1],9,[39,40]],[[20,-1],9,[39,40]],[[21,-1],9,[39,40]],[[18,18],30],[[19,19],30],[[20,20],30],[[21,21],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[8,[[3,[2]]]],0,0,0,[41,37],[[[24,[-1]],42],43,[]],[[[25,[-1]],42],43,[27,28,29]],[[15,42],43],[[16,42],43],[[44,42],43],[[44,42],43],[[17,42],43],[[26,42],43],[[26,42],43],[[38,42],43],[[45,42],43],[[45,42],43],[[46,42],43],[[46,42],43],[[47,42],43],[[47,42],43],[[8,42],43],[[18,42],43],[[19,42],43],[[20,42],43],[[21,42],43],[[22,42],43],[[[23,[-1]],42],43,48],[[[13,[-1]],42],43,48],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[49,44],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[50,[49]]],26],[49,26],[-1,-1,[]],[-1,-1,[]],[51,45],[10,45],[10,46],[51,46],[-1,-1,[]],[52,46],[10,47],[32,47],[-1,-1,[]],[51,47],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[8,53],[[11,[[0,[54]],45]]]],[[8,53],[[11,[[0,[54]],0]]]],0,[[8,53],[[11,[[0,[54]],0]]]],0,[8,1],0,0,[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],0,[[[13,[-1]],-1],[[55,[-1]]],14],[-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,30],[17,30],0,0,0,[[[13,[-1]]],[[0,[56]]],14],0,0,0,0,[8,[[3,[2]]]],0,0,0,0,0,0,0,[16,[[11,[7,44]]]],[[57,58,-1,[55,[59]]],[[24,[-1]]],27],[[1,37],[[13,[-1]]],14],[-1,[[6,[[5,[4]]]]],[]],[7,[[6,[[5,[4]]]]]],[[8,[60,[31]]],61],[[8,[60,[31]]],61],[[8,[60,[31]]],61],[[8,[60,[31]]],61],[[8,[60,[31]]],61],[[-1,[60,[31]]],[[55,[61]]],[]],[[7,[60,[31]]],[[55,[61]]]],0,[58,1],[22,1],0,0,0,[[[6,[38]],62],[[63,[55]]]],0,[[8,64,[3,[34]]],[[11,[9,0]]]],[[8,53,[3,[34]]],[[11,[[0,[54]],0]]]],[[-1,65],[[55,[66]]],[]],[[[13,[-1]],-1],9,14],[[-1,1],9,[]],[[7,1],9],[[-1,1,[3,[2]]],[[6,[[5,[4]]]]],[]],[[7,1,[3,[2]]],[[6,[[5,[4]]]]]],0,0,[-1,[[6,[[5,[4]]]]],[]],[7,[[6,[[5,[4]]]]]],[[[25,[-1]]],9,[27,28,29]],0,[[8,1,-1],[[11,[47]]],67],[[[13,[-1]],37],9,14],[[[13,[-1]],-1],30,14],[[[13,[-1]]],37,14],[38,[[9,[37,[55,[37]]]]]],[18,37],[19,37],[20,37],[21,37],[44,[[55,[68]]]],[26,[[55,[68]]]],[45,[[55,[68]]]],[46,[[55,[68]]]],[47,[[55,[68]]]],[7,9],[-1,9,[]],[-1,9,[]],[[8,64],[[11,[38,46]]]],0,0,0,[[-1,[35,[34]]],[[3,[34,69]]],[]],[[-1,[35,[34]]],[[3,[34,69]]],[]],[[-1,[35,[34]]],[[3,[34,69]]],[]],[[-1,[35,[34]]],[[3,[34,69]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[[18,-1],-2,71,[]],[[19,-1],-2,71,[]],[[21,-1],-2,71,[]],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,[],[]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[37,-1,[]],[37,-1,[]],[37,9],[-1,-1,[]],[[],37],[-1,-2,[],[]],0,[59,72],0,[[[3,[2]]],[[3,[73]]]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,70,[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[74,74],[[-1,-2],9,[],[]],[37,-1,[]],[37,-1,[]],[37,9],[[74,74],30],[[74,42],43],[-1,-1,[]],[[],37],[-1,-2,[],[]],[-1,53,[]],[[-1,74],53,[]],[-1,-2,[],[]],[-1,[[11,[-2]]],[],[]],[75,[[11,[74]]]],[-1,[[11,[-2]]],[],[]],[-1,70,[]],[-1,-2,[],[]],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[76,76],[[-1,-2],9,[],[]],[[],76],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,9],[37,9],[37,9],[[76,76],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[76,42],43],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[77,[-1]],78,76],[[11,[[55,[79]],[5,[68]]]]],80],[[[77,[-1]],1,78],[[55,[79]]],80],[[],37],[[],37],[[],37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[8,[55,[-1]]],[[77,[-1]]],80],[-1,-2,[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[[-1,1,78,79],[[6,[[5,[4]]]]],[]],[[81,1,78,79],[[6,[[5,[4]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[3,"PeerId",631],[3,"Multiaddr",632],[3,"Vec",633],[8,"Future",634],[3,"Box",635],[3,"Pin",636],[3,"KnownPeersManager",0],[3,"Node",0],[15,"tuple"],[3,"SendError",637],[4,"Result",638],[8,"KnownPeersRegistry",0],[3,"UniqueRecordBinaryHeap",0],[8,"Clone",639],[3,"PeerAddressRemovedEvent",0],[3,"KnownPeersManagerConfig",0],[4,"KademliaMode",0],[3,"PieceByIndexRequest",0],[3,"PieceByIndexResponse",0],[4,"SegmentHeaderRequest",0],[3,"SegmentHeaderResponse",0],[4,"PeerDiscovered",0],[3,"KeyWrapper",0],[3,"Config",0],[3,"NodeRunner",0],[4,"CreationError",0],[8,"LocalRecordProvider",0],[8,"Send",640],[8,"Sync",640],[15,"bool"],[8,"Fn",641],[3,"Error",642],[8,"Input",643],[15,"u8"],[15,"slice"],[15,"u32"],[15,"usize"],[3,"TopicSubscription",0],[8,"Output",643],[8,"Sized",640],[3,"NonZeroUsize",644],[3,"Formatter",645],[6,"Result",645],[4,"KnownPeersManagerPersistenceError",0],[4,"GetClosestPeersError",0],[4,"SubscribeError",0],[4,"SendRequestError",0],[8,"Debug",645],[3,"Error",646],[4,"TransportError",647],[3,"Canceled",648],[4,"SubscriptionError",649],[6,"Multihash",552],[8,"Stream",650],[4,"Option",651],[8,"ExactSizeIterator",652],[3,"String",653],[3,"Keypair",654],[3,"Registry",655],[3,"Arc",656],[3,"HandlerId",657],[3,"Context",658],[4,"Poll",659],[6,"Sha256Topic",660],[3,"Key",661],[3,"ProviderRecord",661],[8,"GenericRequest",0],[8,"Error",662],[3,"Global",663],[3,"TypeId",664],[8,"FnOnce",641],[3,"SubspaceMetrics",534],[6,"PeerAddress",534],[4,"MultihashCode",552],[15,"u64"],[4,"RetryPolicy",576],[3,"PieceProvider",576],[3,"PieceIndex",665],[3,"Piece",665],[8,"PieceValidator",576],[3,"NoPieceValidator",576],[3,"GenericRequestHandler",0],[13,"RoutablePeer",529],[13,"UnroutablePeer",529],[13,"LastSegmentHeaders",532],[13,"SegmentIndexes",532],[8,"ToMultihash",552]],"b":[[243,"impl-Debug-for-KnownPeersManagerPersistenceError"],[244,"impl-Display-for-KnownPeersManagerPersistenceError"],[246,"impl-Debug-for-CreationError"],[247,"impl-Display-for-CreationError"],[249,"impl-Debug-for-GetClosestPeersError"],[250,"impl-Display-for-GetClosestPeersError"],[251,"impl-Display-for-SubscribeError"],[252,"impl-Debug-for-SubscribeError"],[253,"impl-Debug-for-SendRequestError"],[254,"impl-Display-for-SendRequestError"],[273,"impl-From%3CTransportError%3CError%3E%3E-for-CreationError"],[274,"impl-From%3CError%3E-for-CreationError"],[277,"impl-From%3CCanceled%3E-for-GetClosestPeersError"],[278,"impl-From%3CSendError%3E-for-GetClosestPeersError"],[279,"impl-From%3CSendError%3E-for-SubscribeError"],[280,"impl-From%3CCanceled%3E-for-SubscribeError"],[282,"impl-From%3CSubscriptionError%3E-for-SubscribeError"],[283,"impl-From%3CSendError%3E-for-SendRequestError"],[284,"impl-From%3CError%3E-for-SendRequestError"],[286,"impl-From%3CCanceled%3E-for-SendRequestError"]]},\ +"subspace_networking":{"doc":"Networking functionality of Subspace Network, primarily …","t":"NDENIDENNNEDDDEISNICDDNNNSCDEDGDNNQNGEDNNNNENENDNNDNKLMMLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMMLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLMMMLCMMMLMMMMMMMLLLKLLLLLLKLMFLMMMLMLLKLKLKLMMKLLMLLLLLLLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLMMMMMMGDLLLLLLLLALAFLLLLGENILLLLLLLLLLLLKKLLLLLLNDDIENLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLL","n":["CantPreallocateKnownPeersFile","Config","CreationError","Dynamic","GenericRequest","GenericRequestHandler","GetClosestPeersError","IncorrectResponseFormat","Io","Io","KademliaMode","KeyWrapper","KnownPeersManager","KnownPeersManagerConfig","KnownPeersManagerPersistenceError","KnownPeersRegistry","LOG_TARGET","LastSegmentHeaders","LocalRecordProvider","Multihash","Node","NodeRunner","NodeRunnerDropped","NodeRunnerDropped","NodeRunnerDropped","PROTOCOL_NAME","PeerAddress","PeerAddressRemovedEvent","PeerDiscovered","PieceByIndexRequest","PieceByIndexRequestHandler","PieceByIndexResponse","ProtocolFailure","RelayServerExpected","Response","RoutablePeer","SegmentHeaderBySegmentIndexesRequestHandler","SegmentHeaderRequest","SegmentHeaderResponse","SegmentIndexes","SendCommand","SendCommand","SendCommand","SendRequestError","Static","SubscribeError","Subscription","TopicSubscription","TransportCreationError","TransportError","UniqueRecordBinaryHeap","UnroutablePeer","add_known_peer","add_known_peer","address","allow_non_global_addresses_in_dht","ban_peer","bootstrap","bootstrap_addresses","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","boxed","cache_size","clear","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","connected_peers","construct","contains_key","create","decode","decode","decode","decode","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_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","default","default","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","disable_bootstrap_on_start","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable_known_peers_source","encode","encode","encode","encode_to","encode_to","encode_to","encode_to","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","external_addresses","external_addresses","failed_address_cache_removal_interval","failed_address_kademlia_removal_interval","file_size","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","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","from","from","from","from","from","from","from","from","from","from","get_closest_peers","get_providers","get_requests_batch_handle","get_value","gossipsub","id","identify","ignore_peer_list","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","initial_random_query_interval","insert","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_dynamic","is_static","kademlia","kademlia_mode","keypair","keys","libp2p","libp2p_metrics","listen_on","listen_on_fallback_to_random_port","listeners","local_records_provider","max_established_incoming_connections","max_established_outgoing_connections","max_pending_incoming_connections","max_pending_outgoing_connections","metrics","networking_parameters_registry","new","new","new","next_known_addresses_batch","next_known_addresses_batch","on_connected_peer","on_disconnected_peer","on_discovered_peer","on_new_listener","on_num_established_peer_connections_change","on_unreachable_address","on_unreachable_address","path","peer_id","peer_id","peer_id","piece","piece_index","poll_next","protocol_version","publish","put_value","record","remove","remove_all_known_peer_addresses","remove_all_known_peer_addresses","remove_known_peer_addresses","remove_known_peer_addresses","request_response_protocols","reserved_peers","run","run","run","segment_headers","send_generic_request","set_limit","should_include_key","size","size_hint","size_hint","size_hint","size_hint","size_hint","source","source","source","source","source","start_over_address_batching","start_over_address_batching","start_over_address_batching","subscribe","temporary_ban_backoff","temporary_bans_cache_size","timeout","to_keyed_vec","to_keyed_vec","to_keyed_vec","to_keyed_vec","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","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","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","using_encoded","using_encoded","using_encoded","utils","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","yamux_config","address","peer_id","peer_id","segment_header_number","segment_indexes","PeerAddress","SubspaceMetrics","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","multihash","new","piece_provider","strip_peer_id","try_from","try_into","type_id","vzip","Multihash","MultihashCode","PieceIndex","ToMultihash","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","fmt","from","init","into","to_multihash","to_multihash_by_code","to_owned","try_from","try_from","try_into","type_id","vzip","Limited","NoPieceValidator","PieceProvider","PieceValidator","RetryPolicy","Unlimited","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","eq","equivalent","equivalent","fmt","from","from","from","get_piece_from_archival_storage","get_piece_from_dsn_cache","get_piece_from_peer","init","init","init","into","into","into","new","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","validate_piece","validate_piece","vzip","vzip","vzip"],"q":[[0,"subspace_networking"],[529,"subspace_networking::PeerDiscovered"],[532,"subspace_networking::SegmentHeaderRequest"],[534,"subspace_networking::utils"],[552,"subspace_networking::utils::multihash"],[576,"subspace_networking::utils::piece_provider"],[632,"libp2p_identity::peer_id"],[633,"multiaddr"],[634,"alloc::vec"],[635,"core::future::future"],[636,"alloc::boxed"],[637,"core::pin"],[638,"futures_channel::mpsc"],[639,"core::result"],[640,"core::clone"],[641,"core::marker"],[642,"core::marker"],[643,"parity_scale_codec::error"],[644,"parity_scale_codec::codec"],[645,"parity_scale_codec::codec"],[646,"core::fmt"],[647,"core::fmt"],[648,"libp2p_core::transport"],[649,"futures_channel::oneshot"],[650,"libp2p_gossipsub::error"],[651,"futures_core::stream"],[652,"core::option"],[653,"core::iter::traits::exact_size"],[654,"alloc::string"],[655,"libp2p_identity::keypair"],[656,"prometheus_client::registry"],[657,"alloc::sync"],[658,"event_listener_primitives::handler_id"],[659,"core::task::wake"],[660,"core::task::poll"],[661,"libp2p_gossipsub"],[662,"libp2p_kad::record"],[663,"libp2p_kad::record"],[664,"alloc::alloc"],[665,"core::any"],[666,"core::ops::function"],[667,"subspace_core_primitives::pieces"]],"d":["Can’t preallocate known peers file, probably not enough …","Node configuration.","Errors that might happen during network creation.","Kademlia mode will be changed using Autonat protocol when …","Generic request with associated response","Defines generic request-response protocol handler.","Defines errors for get-closest-peers operation.","Underlying protocol returned an incorrect format, …","I/O error.","I/O error.","Defines Kademlia mode","Wrapper data structure that allows to work with keys as …","Handles networking parameters. It manages network …","Configuration for KnownPeersManager.","Networking parameters persistence errors.","Defines operations with the networking parameters.","Specifies log-parameters for tracing.","Defines how many segment headers to return.","Trait to be implemented on providers of local records","","Implementation of a network node on Subspace Network.","Runner for the Node.","Node runner was dropped","Node runner was dropped","Node runner was dropped","Defines request-response protocol name.","","Defines the event triggered when the peer address is …","Represents Kademlia events (RoutablePeer, …","Piece-by-hash protocol request.","Create a new piece-by-hash request handler.","Piece-by-hash protocol response.","Underlying protocol returned an error, impossible to get …","Circuit relay client error.","Response type that corresponds to this request","Kademlia’s routable or pending routable peer event.","Create a new segment-header-by-segment-indexes request …","Segment header by segment indexes protocol request.","Segment header by segment indexes protocol response.","Segment headers by segment indexes.","Failed to send command to the node runner","Failed to send command to the node runner","Failed to send command to the node runner","Defines errors for send-request operation.","The Kademlia mode is static for the duration of the …","Defines errors for subscribe operation.","Failed to create subscription.","Topic subscription, will unsubscribe when last instance is …","Transport creation error.","Transport error when attempting to listen on multiaddr.","Limited-size max binary heap for Kademlia records’ keys.","Kademlia’s unroutable peer event.","Registers a peer ID and associated addresses","","Peer address","Should non-global addresses be added to the DHT?","Ban peer with specified peer ID.","Bootstraps Kademlia network","Addresses to bootstrap Kademlia network","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Creates a reference to the NetworkingParametersRegistry …","Defines cache size.","Remove all contents, while keeping allocated capacity","","","","","","","","","","","","","","","","","","","","","","","Returns a collection of currently connected peers.","Create a new network node and node runner instances.","Checks whether the heap contains the given key.","Creates new GenericRequestHandler by given handler.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Defines whether we should run blocking Kademlia …","","","","","","","","","","","","","","","","","","","","","","","","Defines whether we return known peers batches on …","","","","","","","","","","","","","","","","","","","","Node’s own addresses observed remotely.","Known external addresses to the local peer. The addresses …","Defines interval before the next peer address removes …","Defines interval before the next peer address removal …","Size of the backing file on disk","","","","","","","","","","","","","","","","","","","","","","","","","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.","Get closest peers by multihash key using Kademlia DHT.","Get item providers by its key. Initiate ‘providers’ …","Returns the request batch handle with common “connection …","Return a value from the Kademlia network of the DSN.","The configuration for the Gossip behaviour.","Node’s own local ID.","The configuration for the Identify behaviour.","Peer ID list to filter on address adding.","","","","","","","","","","","","","","","","","","","","","","How frequently should random queries be done using …","Insert a key in the heap evicting (popping) if the size …","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).","Returns true if the mode is Dynamic.","Returns true if the mode is Static.","The configuration for the Kademlia behaviour.","Kademlia mode. The default value is set to Static(Client). …","Identity keypair of a node used for authenticated …","Iterator over all keys in arbitrary order","","Optional libp2p prometheus metrics. None will disable …","List of Multiaddr on which to listen for incoming …","Fallback to random port if specified (or default) port is …","Node’s own addresses where it listens for incoming …","Externally provided implementation of the local records …","Established incoming swarm connection limit.","Established outgoing swarm connection limit.","Pending incoming swarm connection limit.","Pending outgoing swarm connection limit.","Internal prometheus metrics. None will disable metrics …","A reference to the NetworkingParametersRegistry …","Object constructor.","Creates a new Config.","Constructs a heap with given PeerId and size limit.","Returns a batch of the combined collection of known …","","Callback is called when a peer is connected.","Callback is called when a peer is disconnected.","Callback is called when a routable or unraoutable peer is …","Callback is called when node starts listening on new …","Callback is called when number of established peer …","Triggers when we removed the peer address from the …","","Defines whether we enable cache persistence.","Converts public key from keypair to PeerId. It serves as …","Extracts peer ID from event.","Peer ID","Returned data.","Request key - piece index","","Defines protocol version for the network peers. Affects …","Subcribe a messgo to some topic on the DSN.","Puts a value into the Kademlia network of the DSN.","Gets a provider record for key that is stored locally","Removes a key from the heap.","Unregisters associated addresses for peer ID.","","Unregisters associated addresses for peer ID.","","The configuration for the RequestResponsesBehaviour …","Defines set of peers with a permanent connection (and …","Drive async work in the persistence provider","","Drives the main networking future forward.","Returned data.","Sends the generic request to the peer and awaits the …","Set limit to new value, decreasing to value lower than …","Checks whether we include the key.","Returns heap-size","","","","","","","","","","","","Reset the batching process to the initial state.","Reset the batching process to the initial state.","Subcribe to some topic on the DSN.","Backoff policy for temporary banning of unreachable peers.","How many temporarily banned unreachable peers to keep in …","Adds a timeout to the setup and protocol upgrade process …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Miscellaneous utilities for networking.","","","","","","","","","","","","","","","","","","","","","","Yamux multiplexing configuration.","Peer address","Peer ID","Peer ID","Number of segment headers to return.","Segment indexes to get.","Convenience alias for peer ID and its multiaddresses.","Metrics for Subspace networking","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Defines multihash codes for Subspace DSN.","Constructor","Provides methods to retrieve pieces from DSN.","Helper function. Converts multiaddresses to a tuple with …","","","","","Type alias for libp2p Multihash. Constant 64 was copied …","Subspace Network multihash codes.","Piece index code.","Helper trait for converting to multihash.","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Convert to multihash by the default multihash code.","Convert to multihash by the specified multihash code.","","","","","","","Retry N times (including zero)","Stub implementation for piece validation.","Piece provider with cancellation and optional piece …","Validates piece against using its commitment.","Defines retry policy on error during piece acquiring.","No restrictions on retries","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get piece from archival storage (L1). The algorithm tries …","Returns piece by its index from farmer’s piece cache …","Get piece from a particular peer.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Creates new piece provider.","","","","","","","","","","","Validates piece against using its commitment.","","","",""],"i":[44,0,0,17,0,0,0,47,44,26,0,0,0,0,0,0,67,20,0,0,0,0,45,46,47,67,0,0,0,0,0,0,47,26,67,22,0,0,0,20,45,46,47,0,17,0,46,0,26,26,0,22,12,7,15,24,8,8,24,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,7,16,13,15,16,17,8,18,19,20,21,22,23,13,15,16,17,8,18,19,20,21,22,23,13,8,0,13,82,18,19,20,21,18,19,20,21,18,19,20,21,18,19,20,21,24,16,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,24,7,7,24,25,82,15,16,44,17,26,38,38,45,46,47,8,18,19,20,21,22,23,13,16,18,19,21,18,19,20,21,18,19,20,21,18,18,19,19,20,20,21,21,8,24,16,16,7,24,25,15,16,44,44,17,26,26,38,45,45,46,46,47,47,8,18,19,20,21,22,23,13,7,24,25,82,15,16,44,44,17,26,26,26,38,45,45,45,46,46,46,46,47,47,47,47,8,18,19,20,21,22,23,13,8,8,8,8,24,8,24,16,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,24,13,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,17,17,24,24,24,13,0,24,24,24,8,24,24,24,24,24,24,24,7,24,13,12,7,8,8,8,8,8,12,7,16,0,22,15,19,18,38,24,8,8,27,13,12,7,12,7,24,24,12,7,25,21,8,13,13,13,38,18,19,20,21,44,26,45,46,47,7,12,12,8,24,24,24,18,19,20,21,15,16,17,8,18,19,20,21,22,23,13,44,26,45,46,47,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,18,19,21,0,7,24,25,82,15,16,44,17,26,38,45,46,47,8,18,19,20,21,22,23,13,24,83,84,83,85,86,0,0,72,72,72,72,72,72,72,72,0,72,0,0,72,72,72,72,0,0,74,0,74,74,74,74,74,74,74,74,74,74,74,74,87,87,74,74,74,74,74,74,76,0,0,0,0,76,81,77,76,81,77,76,76,76,76,81,77,76,81,77,76,81,77,76,76,76,76,76,81,77,76,77,77,77,81,77,76,81,77,76,77,76,81,77,76,81,77,76,81,77,76,80,81,81,77,76],"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,[[-1,1,[3,[2]]],[[6,[[5,[4]]]]],[]],[[7,1,[3,[2]]],[[6,[[5,[4]]]]]],0,0,[[8,1],[[11,[9,10]]]],[8,[[11,[9,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,[],[]],[-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,[],[]],[7,[[5,[12]]]],0,[[[13,[-1]]],9,14],[15,15],[16,16],[17,17],[8,8],[18,18],[19,19],[20,20],[21,21],[22,22],[[[23,[-1]]],[[23,[-1]]],14],[[[13,[-1]]],[[13,[-1]]],14],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[8,[[11,[[3,[1]],0]]]],[[[24,[-1]]],[[11,[[9,[8,[25,[-1]]]],26]]],[27,28,29]],[[[13,[-1]],-1],30,14],[-1,[[5,[0]]],[31,28,29]],[-1,[[11,[18,32]]],33],[-1,[[11,[19,32]]],33],[-1,[[11,[20,32]]],33],[-1,[[11,[21,32]]],33],[[[35,[34]]],[[11,[-1,32]]],[]],[[[35,[34]]],[[11,[-1,32]]],[]],[[[35,[34]]],[[11,[-1,32]]],[]],[[[35,[34]]],[[11,[-1,32]]],[]],[[36,[35,[34]]],[[11,[-1,32]]],[]],[[36,[35,[34]]],[[11,[-1,32]]],[]],[[36,[35,[34]]],[[11,[-1,32]]],[]],[[36,[35,[34]]],[[11,[-1,32]]],[]],[[36,-1],[[11,[-2,32]]],33,[]],[[36,-1],[[11,[-2,32]]],33,[]],[[36,-1],[[11,[-2,32]]],33,[]],[[36,-1],[[11,[-2,32]]],33,[]],[[],[[24,[9]]]],[[],16],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],0,[37,9],[7,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[38,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],[37,9],0,[18,[[3,[34]]]],[19,[[3,[34]]]],[21,[[3,[34]]]],[[18,-1],9,[39,40]],[[19,-1],9,[39,40]],[[20,-1],9,[39,40]],[[21,-1],9,[39,40]],[[18,18],30],[[19,19],30],[[20,20],30],[[21,21],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[8,[[3,[2]]]],0,0,0,[41,37],[[[24,[-1]],42],43,[]],[[[25,[-1]],42],43,[27,28,29]],[[15,42],43],[[16,42],43],[[44,42],43],[[44,42],43],[[17,42],43],[[26,42],43],[[26,42],43],[[38,42],43],[[45,42],43],[[45,42],43],[[46,42],43],[[46,42],43],[[47,42],43],[[47,42],43],[[8,42],43],[[18,42],43],[[19,42],43],[[20,42],43],[[21,42],43],[[22,42],43],[[[23,[-1]],42],43,48],[[[13,[-1]],42],43,48],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[49,44],[-1,-1,[]],[-1,-1,[]],[49,26],[[[50,[49]]],26],[-1,-1,[]],[-1,-1,[]],[51,45],[10,45],[-1,-1,[]],[51,46],[52,46],[10,46],[-1,-1,[]],[32,47],[10,47],[-1,-1,[]],[51,47],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[8,53],[[11,[[0,[54]],45]]]],[[8,53],[[11,[[0,[54]],0]]]],0,[[8,53],[[11,[[0,[54]],0]]]],0,[8,1],0,0,[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],0,[[[13,[-1]],-1],[[55,[-1]]],14],[-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,30],[17,30],0,0,0,[[[13,[-1]]],[[0,[56]]],14],0,0,0,0,[8,[[3,[2]]]],0,0,0,0,0,0,0,[16,[[11,[7,44]]]],[[57,58,-1,[55,[59]]],[[24,[-1]]],27],[[1,37],[[13,[-1]]],14],[-1,[[6,[[5,[4]]]]],[]],[7,[[6,[[5,[4]]]]]],[[8,[60,[31]]],61],[[8,[60,[31]]],61],[[8,[60,[31]]],61],[[8,[60,[31]]],61],[[8,[60,[31]]],61],[[-1,[60,[31]]],[[55,[61]]],[]],[[7,[60,[31]]],[[55,[61]]]],0,[58,1],[22,1],0,0,0,[[[6,[38]],62],[[63,[55]]]],0,[[8,64,[3,[34]]],[[11,[9,0]]]],[[8,53,[3,[34]]],[[11,[[0,[54]],0]]]],[[-1,65],[[55,[66]]],[]],[[[13,[-1]],-1],9,14],[[-1,1],9,[]],[[7,1],9],[[-1,1,[3,[2]]],[[6,[[5,[4]]]]],[]],[[7,1,[3,[2]]],[[6,[[5,[4]]]]]],0,0,[-1,[[6,[[5,[4]]]]],[]],[7,[[6,[[5,[4]]]]]],[[[25,[-1]]],9,[27,28,29]],0,[[8,1,-1],[[11,[47]]],67],[[[13,[-1]],37],9,14],[[[13,[-1]],-1],30,14],[[[13,[-1]]],37,14],[38,[[9,[37,[55,[37]]]]]],[18,37],[19,37],[20,37],[21,37],[44,[[55,[68]]]],[26,[[55,[68]]]],[45,[[55,[68]]]],[46,[[55,[68]]]],[47,[[55,[68]]]],[7,9],[-1,9,[]],[-1,9,[]],[[8,64],[[11,[38,46]]]],0,0,0,[[-1,[35,[34]]],[[3,[34,69]]],[]],[[-1,[35,[34]]],[[3,[34,69]]],[]],[[-1,[35,[34]]],[[3,[34,69]]],[]],[[-1,[35,[34]]],[[3,[34,69]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[[18,-1],-2,71,[]],[[19,-1],-2,71,[]],[[21,-1],-2,71,[]],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,[],[]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[37,-1,[]],[37,-1,[]],[37,9],[-1,-1,[]],[[],37],[-1,-2,[],[]],0,[59,72],0,[[[3,[2]]],[[3,[73]]]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,70,[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[74,74],[[-1,-2],9,[],[]],[37,-1,[]],[37,-1,[]],[37,9],[[74,74],30],[[74,42],43],[-1,-1,[]],[[],37],[-1,-2,[],[]],[-1,53,[]],[[-1,74],53,[]],[-1,-2,[],[]],[-1,[[11,[-2]]],[],[]],[75,[[11,[74]]]],[-1,[[11,[-2]]],[],[]],[-1,70,[]],[-1,-2,[],[]],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[76,76],[[-1,-2],9,[],[]],[[],76],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,-1,[]],[37,9],[37,9],[37,9],[[76,76],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[76,42],43],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[77,[-1]],78,37],[[55,[79]]],80],[[[77,[-1]],78,76],[[11,[[55,[79]],[5,[68]]]]],80],[[[77,[-1]],1,78],[[55,[79]]],80],[[],37],[[],37],[[],37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[8,[55,[-1]]],[[77,[-1]]],80],[-1,-2,[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,70,[]],[-1,70,[]],[-1,70,[]],[[-1,1,78,79],[[6,[[5,[4]]]]],[]],[[81,1,78,79],[[6,[[5,[4]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[3,"PeerId",632],[3,"Multiaddr",633],[3,"Vec",634],[8,"Future",635],[3,"Box",636],[3,"Pin",637],[3,"KnownPeersManager",0],[3,"Node",0],[15,"tuple"],[3,"SendError",638],[4,"Result",639],[8,"KnownPeersRegistry",0],[3,"UniqueRecordBinaryHeap",0],[8,"Clone",640],[3,"PeerAddressRemovedEvent",0],[3,"KnownPeersManagerConfig",0],[4,"KademliaMode",0],[3,"PieceByIndexRequest",0],[3,"PieceByIndexResponse",0],[4,"SegmentHeaderRequest",0],[3,"SegmentHeaderResponse",0],[4,"PeerDiscovered",0],[3,"KeyWrapper",0],[3,"Config",0],[3,"NodeRunner",0],[4,"CreationError",0],[8,"LocalRecordProvider",0],[8,"Send",641],[8,"Sync",641],[15,"bool"],[8,"Fn",642],[3,"Error",643],[8,"Input",644],[15,"u8"],[15,"slice"],[15,"u32"],[15,"usize"],[3,"TopicSubscription",0],[8,"Output",644],[8,"Sized",641],[3,"NonZeroUsize",645],[3,"Formatter",646],[6,"Result",646],[4,"KnownPeersManagerPersistenceError",0],[4,"GetClosestPeersError",0],[4,"SubscribeError",0],[4,"SendRequestError",0],[8,"Debug",646],[3,"Error",647],[4,"TransportError",648],[3,"Canceled",649],[4,"SubscriptionError",650],[6,"Multihash",552],[8,"Stream",651],[4,"Option",652],[8,"ExactSizeIterator",653],[3,"String",654],[3,"Keypair",655],[3,"Registry",656],[3,"Arc",657],[3,"HandlerId",658],[3,"Context",659],[4,"Poll",660],[6,"Sha256Topic",661],[3,"Key",662],[3,"ProviderRecord",662],[8,"GenericRequest",0],[8,"Error",663],[3,"Global",664],[3,"TypeId",665],[8,"FnOnce",642],[3,"SubspaceMetrics",534],[6,"PeerAddress",534],[4,"MultihashCode",552],[15,"u64"],[4,"RetryPolicy",576],[3,"PieceProvider",576],[3,"PieceIndex",666],[3,"Piece",666],[8,"PieceValidator",576],[3,"NoPieceValidator",576],[3,"GenericRequestHandler",0],[13,"RoutablePeer",529],[13,"UnroutablePeer",529],[13,"LastSegmentHeaders",532],[13,"SegmentIndexes",532],[8,"ToMultihash",552]],"b":[[243,"impl-Debug-for-KnownPeersManagerPersistenceError"],[244,"impl-Display-for-KnownPeersManagerPersistenceError"],[246,"impl-Display-for-CreationError"],[247,"impl-Debug-for-CreationError"],[249,"impl-Debug-for-GetClosestPeersError"],[250,"impl-Display-for-GetClosestPeersError"],[251,"impl-Display-for-SubscribeError"],[252,"impl-Debug-for-SubscribeError"],[253,"impl-Debug-for-SendRequestError"],[254,"impl-Display-for-SendRequestError"],[272,"impl-From%3CError%3E-for-CreationError"],[273,"impl-From%3CTransportError%3CError%3E%3E-for-CreationError"],[276,"impl-From%3CCanceled%3E-for-GetClosestPeersError"],[277,"impl-From%3CSendError%3E-for-GetClosestPeersError"],[279,"impl-From%3CCanceled%3E-for-SubscribeError"],[280,"impl-From%3CSubscriptionError%3E-for-SubscribeError"],[281,"impl-From%3CSendError%3E-for-SubscribeError"],[283,"impl-From%3CError%3E-for-SendRequestError"],[284,"impl-From%3CSendError%3E-for-SendRequestError"],[286,"impl-From%3CCanceled%3E-for-SendRequestError"]]},\ "subspace_node":{"doc":"Subspace Node library.","t":"NNNDNNNNNNDNELLLLLLLLMLLLLLLALLLLLLLLLLLLLLAMMLLLMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMMMLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFFFFFFGNNDDENNNLLLLLLLLMLLLLLLLLLMMMMLFLLLLLLLLLLLMMMLLLALLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLMLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLGNNNNELLFLLFFLLLLLLLFFLLLLLLLLFFLLLLLLLLL","n":["BuildSpec","ChainInfo","CheckBlock","Cli","Domain","ExportBlocks","ExportState","ImportBlocks","Key","PurgeChain","PurgeChainCmd","Revert","Subcommand","__clone_box","augment_args","augment_args","augment_args_for_update","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","author","base","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","chain_spec","clone","clone_into","command","command","command_for_update","command_for_update","copyright_start_year","deref","deref","deref","deref_mut","deref_mut","deref_mut","description","domain","domain_args","domain_args","drop","drop","drop","dsn_bootstrap_nodes","dsn_disable_bootstrap_on_start","dsn_enable_private_ips","dsn_external_addresses","dsn_in_connections","dsn_listen_on","dsn_out_connections","dsn_pending_in_connections","dsn_pending_out_connections","dsn_reserved_peers","enable_subspace_block_relay","executable_name","fmt","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_mut","from_mut","from_mut","from_mut","from_mut","from_mut","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_subset","from_subset","from_subset","group_id","group_id","has_subcommand","impl_name","impl_version","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_mut","into_mut","into_mut","into_ref","into_ref","into_ref","is_in_subset","is_in_subset","is_in_subset","load_spec","pot_external_entropy","run","run","storage_monitor","subcommand","support_url","sync_from_dsn","timekeeper","timekeeper_cpu_cores","to_owned","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","type_name","type_name","type_name","unchecked_into","unchecked_into","unchecked_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","dev_config","devnet_config","devnet_config_compiled","gemini_3g_compiled","gemini_3g_config","local_config","AccountId20","Benchmark","BuildGenesisStorage","DomainCli","DomainInstanceStarter","DomainSubcommand","ExportExecutionReceipt","ExportState","Revert","additional_args","announce_block","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","author","base_path","block_importing_notification_stream","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","chain_id","command","command_for_update","consensus_client","consensus_network","consensus_offchain_tx_pool_factory","consensus_sync_service","copyright_start_year","create_configuration","create_domain_configuration","default_heap_pages","deref","deref","deref","deref_mut","deref_mut","deref_mut","description","dev_key_seed","disable_grandpa","domain_cli","domain_id","domain_message_receiver","drop","drop","drop","evm_chain_spec","executable_name","fmt","fmt","force_authoring","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_mut","from_mut","from_mut","from_mut","from_mut","from_mut","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_subset","from_subset","from_subset","gossip_message_sink","group_id","has_subcommand","impl_name","impl_version","import_params","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_mut","into_mut","into_mut","into_ref","into_ref","into_ref","is_in_subset","is_in_subset","is_in_subset","keystore_params","load_spec","max_runtime_instances","network_params","new","new_slot_notification_stream","operator_id","p2p_listen_port","prometheus_config","prometheus_listen_port","role","rpc_addr","rpc_cors","rpc_listen_port","rpc_max_connections","rpc_methods","run","shared_params","start","support_url","telemetry_endpoints","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","tokio_handle","transaction_pool","trie_cache_maximum_size","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","type_name","type_name","type_name","unchecked_into","unchecked_into","unchecked_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","ChainSpec","Dev","DevNet","Gemini","Local","SpecId","borrow","borrow_mut","create_domain_spec","deref","deref_mut","development_config","devnet_config","drop","from","from_mut","from_mut","from_ref","from_ref","from_subset","gemini_3g_config","get_testnet_genesis_by_spec_id","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","is_in_subset","load_chain_spec","local_testnet_config","to_subset","to_subset_unchecked","try_from","try_into","type_id","type_name","unchecked_into","unique_saturated_into","vzip"],"q":[[0,"subspace_node"],[161,"subspace_node::chain_spec"],[167,"subspace_node::domain"],[329,"subspace_node::domain::evm_chain_spec"],[370,"dyn_clone::sealed"],[371,"clap_builder::builder::command"],[372,"alloc::string"],[373,"core::fmt"],[374,"core::fmt"],[375,"clap_builder"],[376,"core::result"],[377,"clap_builder::util::id"],[378,"core::option"],[379,"alloc::alloc"],[380,"alloc::boxed"],[381,"core::any"],[382,"alloc::sync"],[383,"alloc::rc"],[384,"sc_chain_spec"],[385,"sc_service::config"],[386,"sc_cli::error"],[387,"core::any"],[388,"sc_subspace_chain_specs"],[389,"core::iter::traits::iterator"],[390,"sc_service::config"],[391,"sc_cli::config"],[392,"sc_cli::config"],[393,"sc_cli::params::keystore_params"],[394,"sc_cli::params::network_params"],[395,"std::path"],[396,"sc_service::config"],[397,"core::net::socket_addr"],[398,"alloc::vec"],[399,"sc_service::config"],[400,"subspace_runtime_primitives::opaque"],[401,"domain_client_operator::bootstrapper"],[402,"core::error"],[403,"sc_network::service::traits"],[404,"core::marker"],[405,"core::marker"],[406,"sc_transaction_pool::graph::pool"],[407,"sp_domains::storage"],[408,"evm_domain_runtime"],[409,"sc_subspace_chain_specs"]],"d":["Build a chain specification.","Db meta columns information.","Validate blocks.","Subspace Cli.","Run domain sub-commands.","Export blocks.","Export the state of a given block into a chain spec.","Import blocks.","Key management cli utilities","Remove the whole chain.","This purge-chain command used to remove both consensus …","Revert the chain to a previous state.","Utilities for working with a node.","","","","","","","","","The base struct of the purge-chain command.","","","","","","","Subspace chain configurations.","","","","","","","","","","","","","","","","Domain arguments","Domain arguments","","","","Bootstrap nodes for DSN.","Defines whether we should run blocking Kademlia …","Determines whether we allow keeping non-global (private, …","Known external addresses","Defines max established incoming connection limit for DSN.","Where local DSN node will listen for incoming connections.","Defines max established outgoing swarm connection limit …","Defines max pending incoming connection limit for DSN.","Defines max pending outgoing swarm connection limit for …","Reserved peers for DSN.","Use the block request handler implementation from subspace …","","","","","Returns the argument unchanged.","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 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.","","Get a reference to the inner from the outer.","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","External entropy, used initially when PoT chain starts to …","Run the purge command","Run a node.","Parameters used to create the storage monitor.","Various utility commands.","","Enables DSN-sync on startup.","Assigned PoT role for this node.","CPU cores that timekeeper can use.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Some way of identifying an account on the chain. We …","Sub-commands concerned with benchmarking.","Build the genesis storage of the evm domain chain in json …","","DomainInstanceStarter used to start a domain instance node …","Sub-commands supported by the executor.","The export-execution-receipt command used to get the ER …","Export the state of a given block into a chain spec.","Revert the chain to a previous state.","","","","","","","","","","","","","","","","","","","","","","","","Create a Configuration object from the current object, …","Creates domain configuration from domain cli.","","","","","","","","","","","","","","","","","EVM domain configurations.","","","","","Returns the argument unchanged.","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 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.","","Get a reference to the inner from the outer.","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","Constructs a new instance of DomainCli.","","Use provider operator id to submit bundles.","","","","","","","","","","Run a domain node.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","","","","","","","",""],"i":[10,10,10,0,10,10,10,10,10,10,0,10,0,5,5,11,5,11,10,10,11,5,5,10,11,5,10,11,0,5,5,5,11,5,11,11,5,10,11,5,10,11,11,0,5,11,5,10,11,11,11,11,11,11,11,11,11,11,11,11,11,5,10,11,5,10,11,5,10,11,5,10,11,5,5,10,10,11,11,5,5,10,10,11,11,5,10,11,5,11,10,11,11,5,10,11,5,10,11,5,10,11,5,10,11,5,10,11,5,10,11,5,10,11,5,10,11,11,11,5,11,11,11,11,11,11,11,5,5,10,11,5,10,11,5,10,11,5,10,11,5,10,11,5,10,11,5,10,11,5,10,11,5,10,11,5,10,11,5,10,11,0,0,0,0,0,0,0,37,37,0,0,0,37,37,37,30,30,30,30,37,37,30,30,50,50,37,30,50,37,30,30,30,30,50,50,50,50,30,0,30,30,50,37,30,50,37,30,30,30,30,50,30,50,50,37,30,0,30,37,30,30,50,37,30,37,30,37,30,50,50,37,37,30,30,50,50,37,37,30,30,50,37,30,50,30,37,30,30,30,50,37,30,50,37,30,50,37,30,50,37,30,50,37,30,50,37,30,50,37,30,50,37,30,30,30,30,30,30,50,30,30,30,30,30,30,30,30,30,30,30,30,50,30,30,50,37,30,50,37,30,50,30,30,50,37,30,50,37,30,50,37,30,50,37,30,50,37,30,50,37,30,37,30,37,30,50,37,30,0,63,63,63,63,0,63,63,0,63,63,0,0,63,63,63,63,63,63,63,0,0,63,63,63,63,63,63,63,63,0,0,63,63,63,63,63,63,63,63,63],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[[],4],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[5,5],[[-1,-2],2,[],[]],[[],3],[[],3],[[],3],[[],3],[[],6],[7,-1,[]],[7,-1,[]],[7,-1,[]],[7,-1,[]],[7,-1,[]],[7,-1,[]],[[],4],0,0,0,[7,2],[7,2],[7,2],0,0,0,0,0,0,0,0,0,0,0,[[],4],[[5,8],9],[[10,8],9],[[11,8],9],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[12,[[14,[5,13]]]],[12,[[14,[10,13]]]],[12,[[14,[11,13]]]],[12,[[14,[5,13]]]],[12,[[14,[10,13]]]],[12,[[14,[11,13]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[16,[15]]]],[[],[[16,[15]]]],[17,18],[[],4],[[],4],[[],7],[[],7],[[],7],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[20,[-1,19]]],[[20,[21,19]]],[]],[[[20,[-1,19]]],[[20,[21,19]]],[]],[[[20,[-1,19]]],[[20,[21,19]]],[]],[[[22,[-1,19]]],[[22,[21,19]]],[]],[[[22,[-1,19]]],[[22,[21,19]]],[]],[[[22,[-1,19]]],[[22,[21,19]]],[]],[[[23,[-1,19]]],[[23,[21,19]]],[]],[[[23,[-1,19]]],[[23,[21,19]]],[]],[[[23,[-1,19]]],[[23,[21,19]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,18,[]],[-1,18,[]],[-1,18,[]],[[11,17],[[14,[[20,[24]],4]]]],0,[[5,25,[16,[25]]],[[26,[2]]]],0,0,0,[[],4],0,0,0,[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,17,[]],[-1,17,[]],[-1,17,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[5,12],[[14,[2,13]]]],[[10,12],[[14,[2,13]]]],[[11,12],[[14,[2,13]]]],[[5,12],[[14,[2,13]]]],[[10,12],[[14,[2,13]]]],[[11,12],[[14,[2,13]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[14,[[29,[28]],4]]]],[[],[[14,[[29,[28]],4]]]],[[],[[14,[[29,[28]],4]]]],[[],[[14,[[29,[28]],4]]]],[[],[[14,[[29,[28]],4]]]],[[],[[14,[[29,[28]],4]]]],0,0,0,0,0,0,0,0,0,[30,[[0,[31]]]],[30,[[26,[18]]]],[3,3],[3,3],[3,3],[3,3],[[],4],[30,[[26,[[16,[32]]]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[30,18],[[26,[4]]]],[[],3],[[],3],0,0,0,0,[[],6],[[-2,[20,[24]],33],[[26,[25]]],34,[[35,[-1]]]],[[30,33],[[26,[25]]]],[30,[[26,[[16,[36]]]]]],[7,-1,[]],[7,-1,[]],[7,-1,[]],[7,-1,[]],[7,-1,[]],[7,-1,[]],[[],4],[[30,18],[[26,[[16,[4]]]]]],[30,[[26,[18]]]],0,0,0,[7,2],[7,2],[7,2],0,[[],4],[[37,8],9],[[30,8],9],[30,[[26,[18]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[12,[[14,[37,13]]]],[12,[[14,[30,13]]]],[12,[[14,[37,13]]]],[12,[[14,[30,13]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[],[[16,[15]]]],[17,18],[[],4],[[],4],[30,[[16,[38]]]],[[],7],[[],7],[[],7],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[20,[-1,19]]],[[20,[21,19]]],[]],[[[20,[-1,19]]],[[20,[21,19]]],[]],[[[20,[-1,19]]],[[20,[21,19]]],[]],[[[22,[-1,19]]],[[22,[21,19]]],[]],[[[22,[-1,19]]],[[22,[21,19]]],[]],[[[22,[-1,19]]],[[22,[21,19]]],[]],[[[23,[-1,19]]],[[23,[21,19]]],[]],[[[23,[-1,19]]],[[23,[21,19]]],[]],[[[23,[-1,19]]],[[23,[21,19]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,18,[]],[-1,18,[]],[-1,18,[]],[30,[[16,[39]]]],[[30,17],[[14,[[20,[24]],4]]]],[30,[[26,[[16,[7]]]]]],[30,[[16,[40]]]],[[[16,[41]],-1],30,31],0,0,[[],42],[[30,42,[20,[24]]],[[26,[[16,[43]]]]]],[[],42],[[30,18],[[26,[44]]]],[[30,42],[[26,[[16,[45]]]]]],[[30,18],[[26,[[16,[[46,[4]]]]]]]],[[],42],[30,[[26,[47]]]],[30,[[26,[48]]]],0,[30,49],[[[50,[-1]],[52,[51]]],[[14,[2,[20,[53]]]]],[54,55,56]],[[],4],[[30,[20,[24]]],[[26,[[16,[57]]]]]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[30,18],[[26,[58]]]],[30,[[26,[[16,[7]]]]]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,27,[]],[-1,27,[]],[-1,27,[]],[-1,17,[]],[-1,17,[]],[-1,17,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[37,12],[[14,[2,13]]]],[[30,12],[[14,[2,13]]]],[[37,12],[[14,[2,13]]]],[[30,12],[[14,[2,13]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[17,59],[[14,[[20,[24]],4]]]],[7,-1,[]],[7,-1,[]],[-1,[[61,[60]]],[62,55,56]],[-1,[[61,[60]]],[62,55,56]],[7,2],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[61,[60]]],[62,55,56]],[63,60],[[],7],[-1,-2,[],[]],[[[20,[-1,19]]],[[20,[21,19]]],[]],[[[22,[-1,19]]],[[22,[21,19]]],[]],[[[23,[-1,19]]],[[23,[21,19]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,18,[]],[17,[[14,[[20,[24]],4]]]],[-1,[[61,[60]]],[62,55,56]],[-1,[[16,[-2]]],[],[]],[-1,-2,[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,27,[]],[-1,17,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[3,"Private",370],[15,"tuple"],[3,"Command",371],[3,"String",372],[3,"PurgeChainCmd",0],[15,"i32"],[15,"usize"],[3,"Formatter",373],[6,"Result",373],[4,"Subcommand",0],[3,"Cli",0],[3,"ArgMatches",374],[6,"Error",375],[4,"Result",376],[3,"Id",377],[4,"Option",378],[15,"str"],[15,"bool"],[3,"Global",379],[3,"Box",380],[8,"Any",381],[3,"Arc",382],[3,"Rc",383],[8,"ChainSpec",384],[3,"Configuration",385],[6,"Result",386],[3,"TypeId",381],[3,"RuntimeGenesisConfig",387],[6,"ConsensusChainSpec",388],[3,"DomainCli",167],[8,"Iterator",389],[3,"BasePath",385],[3,"Handle",390],[8,"DefaultConfigurationValues",391],[8,"CliConfiguration",391],[15,"u64"],[4,"DomainSubcommand",167],[3,"ImportParams",392],[3,"KeystoreParams",393],[3,"NetworkParams",394],[3,"PathBuf",395],[15,"u16"],[3,"PrometheusConfig",385],[4,"Role",396],[4,"SocketAddr",397],[3,"Vec",398],[15,"u32"],[4,"RpcMethods",385],[3,"SharedParams",399],[3,"DomainInstanceStarter",167],[6,"Block",400],[3,"BootstrapResult",401],[8,"Error",402],[8,"NetworkPeers",403],[8,"Send",404],[8,"Sync",404],[3,"TelemetryEndpoints",405],[3,"Options",406],[3,"RawGenesis",407],[3,"RuntimeGenesisConfig",408],[6,"ExecutionChainSpec",388],[8,"Fn",409],[4,"SpecId",329]],"b":[]},\ "subspace_proof_of_space":{"doc":"Subspace proof of space implementation based on Chia","t":"NQENSIILLAALLLLLKLLKKLLLLLKALLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["Chia","Generator","PosTableType","Shim","TABLE_TYPE","Table","TableGenerator","borrow","borrow_mut","chia","chiapos","clone","clone_into","deref","deref_mut","drop","find_proof","fmt","from","generate","generate","generate_parallel","generate_parallel","generator","init","into","is_proof_valid","shim","to_owned","try_from","try_into","type_id","ChiaTable","ChiaTableGenerator","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","deref","deref","deref_mut","deref_mut","drop","drop","find_proof","fmt","fmt","from","from","generate","generate","generate_parallel","generate_parallel","init","init","into","into","is_proof_valid","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","Tables","TablesCache","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","create","create","create","create","create","create","create","create","create","create","create","create_parallel","create_parallel","create_parallel","create_parallel","create_parallel","create_parallel","create_parallel","create_parallel","create_parallel","create_parallel","create_parallel","create_simple","create_simple","create_simple","create_simple","create_simple","create_simple","create_simple","create_simple","create_simple","create_simple","create_simple","default","deref","deref","deref_mut","deref_mut","drop","drop","find_proof","find_proof","find_proof","find_proof","find_proof","find_proof","find_proof","find_proof","find_proof","find_proof","find_proof","find_quality","find_quality","find_quality","find_quality","find_quality","find_quality","find_quality","find_quality","find_quality","find_quality","find_quality","fmt","fmt","from","from","init","init","into","into","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify","verify","verify","verify","verify","verify","verify","verify","verify","verify","verify","ShimTable","ShimTableGenerator","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","deref","deref","deref_mut","deref_mut","drop","drop","find_proof","fmt","fmt","from","from","generate","generate","init","init","into","into","is_proof_valid","to_owned","try_from","try_from","try_into","try_into","type_id","type_id"],"q":[[0,"subspace_proof_of_space"],[32,"subspace_proof_of_space::chia"],[68,"subspace_proof_of_space::chiapos"],[164,"subspace_proof_of_space::shim"],[198,"subspace_core_primitives"],[199,"core::option"],[200,"core::fmt"],[201,"core::fmt"],[202,"core::any"],[203,"core::iter::traits::iterator"]],"d":["Chia table","Instance that can be used to generate tables with better …","Proof of space table type","Shim table","Proof of space table type","Proof of space kind","Stateful table generator with better performance","","","Chia proof of space implementation","Chia proof of space reimplementation in Rust","","","","","","Try to find proof at challenge_index if it exists","","Returns the argument unchanged.","Generate new table with 32 bytes seed.","Generate new table with 32 bytes seed.","Generate new table with 32 bytes seed using parallelism.","Generate new table with 32 bytes seed using parallelism.","Returns a stateful table generator with better performance","","Calls U::from(self).","Check whether proof created earlier is valid and return …","Shim proof of space implementation that works much faster …","","","","","Subspace proof of space table.","Subspace proof of space table generator.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","Collection of Chia tables","Caches that can be used to optimize creation of multiple …","","","","","","","Create Chia proof of space tables. There also exists …","Create Chia proof of space tables. There also exists …","Create Chia proof of space tables. There also exists …","Create Chia proof of space tables. There also exists …","Create Chia proof of space tables. There also exists …","Create Chia proof of space tables. There also exists …","Create Chia proof of space tables. There also exists …","Create Chia proof of space tables. There also exists …","Create Chia proof of space tables. There also exists …","Create Chia proof of space tables. There also exists …","Create Chia proof of space tables. There also exists …","Almost the same as Self::create(), but uses parallelism …","Almost the same as Self::create(), but uses parallelism …","Almost the same as Self::create(), but uses parallelism …","Almost the same as Self::create(), but uses parallelism …","Almost the same as Self::create(), but uses parallelism …","Almost the same as Self::create(), but uses parallelism …","Almost the same as Self::create(), but uses parallelism …","Almost the same as Self::create(), but uses parallelism …","Almost the same as Self::create(), but uses parallelism …","Almost the same as Self::create(), but uses parallelism …","Almost the same as Self::create(), but uses parallelism …","Create Chia proof of space tables.","Create Chia proof of space tables.","Create Chia proof of space tables.","Create Chia proof of space tables.","Create Chia proof of space tables.","Create Chia proof of space tables.","Create Chia proof of space tables.","Create Chia proof of space tables.","Create Chia proof of space tables.","Create Chia proof of space tables.","Create Chia proof of space tables.","Create new instance","","","","","","","Find proof of space for given challenge.","Find proof of space for given challenge.","Find proof of space for given challenge.","Find proof of space for given challenge.","Find proof of space for given challenge.","Find proof of space for given challenge.","Find proof of space for given challenge.","Find proof of space for given challenge.","Find proof of space for given challenge.","Find proof of space for given challenge.","Find proof of space for given challenge.","Find proof of space quality for given challenge.","Find proof of space quality for given challenge.","Find proof of space quality for given challenge.","Find proof of space quality for given challenge.","Find proof of space quality for given challenge.","Find proof of space quality for given challenge.","Find proof of space quality for given challenge.","Find proof of space quality for given challenge.","Find proof of space quality for given challenge.","Find proof of space quality for given challenge.","Find proof of space quality for given challenge.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","Verify proof of space for given seed and challenge.","Verify proof of space for given seed and challenge.","Verify proof of space for given seed and challenge.","Verify proof of space for given seed and challenge.","Verify proof of space for given seed and challenge.","Verify proof of space for given seed and challenge.","Verify proof of space for given seed and challenge.","Verify proof of space for given seed and challenge.","Verify proof of space for given seed and challenge.","Verify proof of space for given seed and challenge.","Verify proof of space for given seed and challenge.","Subspace proof of space table.","Subspace proof of space table generator.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","",""],"i":[1,22,0,1,22,0,0,1,1,0,0,1,1,1,1,1,22,1,1,23,22,23,22,22,1,1,22,0,1,1,1,1,0,0,13,14,13,14,13,13,13,13,14,13,14,13,14,14,13,14,13,14,13,14,13,14,13,14,13,14,14,13,13,14,13,14,13,14,0,0,15,18,15,18,15,15,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,15,15,18,15,18,15,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,15,18,15,18,15,18,15,18,15,15,18,15,18,15,18,18,18,18,18,18,18,18,18,18,18,18,0,0,20,21,20,21,20,20,20,20,21,20,21,20,21,21,20,21,20,21,20,21,20,21,20,21,21,20,20,21,20,21,20,21],"f":[0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],0,0,[1,1],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],[3,2],[[-1,4],[[6,[5]]],[]],[[1,7],8],[-1,-1,[]],[[-1,9],-2,[],[]],[9,-1,[]],[[-1,9],-2,[],[]],[9,-1,[]],[[]],[[],3],[-1,-2,[],[]],[[9,4,5],10],0,[-1,-2,[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,12,[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[13,13],[[-1,-2],2,[],[]],[[],13],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[14,4],[[6,[5]]]],[[13,7],8],[[14,7],8],[-1,-1,[]],[-1,-1,[]],[[13,9],14],[9,14],[[13,9],14],[9,14],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[9,4,5],10],[-1,-2,[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,12,[]],[-1,12,[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[15,15],[[-1,-2],2,[],[]],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]],15],18],[[[17,[16]]],18],[[[17,[16]]],18],[[[17,[16]]],18],[[[17,[16]]],18],[[[17,[16]]],18],[[[17,[16]]],18],[[[17,[16]]],18],[[[17,[16]]],18],[[[17,[16]]],18],[[[17,[16]]],18],[[[17,[16]]],18],[[],15],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[18,[17,[16]]],[[0,[19]]]],[[15,7],8],[[18,7],8],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,12,[]],[-1,12,[]],[[[17,[16]],[17,[16]],[17,[16]]],[[6,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[6,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[6,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[6,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[6,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[6,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[6,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[6,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[6,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[6,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[6,[[17,[16]]]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[20,20],[[-1,-2],2,[],[]],[[],20],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[21,4],[[6,[5]]]],[[20,7],8],[[21,7],8],[-1,-1,[]],[-1,-1,[]],[[20,9],21],[9,21],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[9,4,5],10],[-1,-2,[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,[[11,[-2]]],[],[]],[-1,12,[]],[-1,12,[]]],"c":[],"p":[[4,"PosTableType",0],[15,"tuple"],[15,"usize"],[15,"u32"],[3,"PosProof",198],[4,"Option",199],[3,"Formatter",200],[6,"Result",200],[3,"PosSeed",198],[15,"bool"],[4,"Result",201],[3,"TypeId",202],[3,"ChiaTableGenerator",32],[3,"ChiaTable",32],[3,"TablesCache",68],[15,"u8"],[15,"array"],[3,"Tables",68],[8,"Iterator",203],[3,"ShimTableGenerator",164],[3,"ShimTable",164],[8,"Table",0],[8,"TableGenerator",0]],"b":[[76,"impl-Tables%3C23%3E"],[77,"impl-Tables%3C25%3E"],[78,"impl-Tables%3C21%3E"],[79,"impl-Tables%3C20%3E"],[80,"impl-Tables%3C19%3E"],[81,"impl-Tables%3C18%3E"],[82,"impl-Tables%3C17%3E"],[83,"impl-Tables%3C16%3E"],[84,"impl-Tables%3C22%3E"],[85,"impl-Tables%3C15%3E"],[86,"impl-Tables%3C24%3E"],[87,"impl-Tables%3C22%3E"],[88,"impl-Tables%3C23%3E"],[89,"impl-Tables%3C20%3E"],[90,"impl-Tables%3C19%3E"],[91,"impl-Tables%3C18%3E"],[92,"impl-Tables%3C21%3E"],[93,"impl-Tables%3C25%3E"],[94,"impl-Tables%3C17%3E"],[95,"impl-Tables%3C24%3E"],[96,"impl-Tables%3C16%3E"],[97,"impl-Tables%3C15%3E"],[98,"impl-Tables%3C18%3E"],[99,"impl-Tables%3C17%3E"],[100,"impl-Tables%3C15%3E"],[101,"impl-Tables%3C20%3E"],[102,"impl-Tables%3C25%3E"],[103,"impl-Tables%3C24%3E"],[104,"impl-Tables%3C21%3E"],[105,"impl-Tables%3C19%3E"],[106,"impl-Tables%3C23%3E"],[107,"impl-Tables%3C16%3E"],[108,"impl-Tables%3C22%3E"],[116,"impl-Tables%3C24%3E"],[117,"impl-Tables%3C22%3E"],[118,"impl-Tables%3C21%3E"],[119,"impl-Tables%3C18%3E"],[120,"impl-Tables%3C23%3E"],[121,"impl-Tables%3C16%3E"],[122,"impl-Tables%3C15%3E"],[123,"impl-Tables%3C19%3E"],[124,"impl-Tables%3C25%3E"],[125,"impl-Tables%3C20%3E"],[126,"impl-Tables%3C17%3E"],[127,"impl-Tables%3C20%3E"],[128,"impl-Tables%3C17%3E"],[129,"impl-Tables%3C15%3E"],[130,"impl-Tables%3C25%3E"],[131,"impl-Tables%3C18%3E"],[132,"impl-Tables%3C16%3E"],[133,"impl-Tables%3C21%3E"],[134,"impl-Tables%3C22%3E"],[135,"impl-Tables%3C19%3E"],[136,"impl-Tables%3C23%3E"],[137,"impl-Tables%3C24%3E"],[153,"impl-Tables%3C15%3E"],[154,"impl-Tables%3C22%3E"],[155,"impl-Tables%3C21%3E"],[156,"impl-Tables%3C16%3E"],[157,"impl-Tables%3C25%3E"],[158,"impl-Tables%3C20%3E"],[159,"impl-Tables%3C23%3E"],[160,"impl-Tables%3C18%3E"],[161,"impl-Tables%3C24%3E"],[162,"impl-Tables%3C19%3E"],[163,"impl-Tables%3C17%3E"]]},\ "subspace_proof_of_time":{"doc":"Proof of time implementation.","t":"NELLLLLLLLLLFLLLLFMM","n":["NotMultipleOfCheckpoints","PotError","borrow","borrow_mut","deref","deref_mut","drop","fmt","fmt","from","init","into","prove","to_string","try_from","try_into","type_id","verify","iterations","num_checkpoints"],"q":[[0,"subspace_proof_of_time"],[18,"subspace_proof_of_time::PotError"],[20,"core::fmt"],[21,"core::fmt"],[22,"core::num::nonzero"],[23,"subspace_core_primitives"],[24,"alloc::string"],[25,"core::any"],[26,"subspace_core_primitives"]],"d":["Iterations is not multiple of number of checkpoints times …","Proof of time error","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Run PoT proving and produce checkpoints.","","","","","Verify checkpoint, number of iterations is set across …","Slot iterations provided","Number of checkpoints"],"i":[3,0,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,0,15,15],"f":[0,0,[-1,-2,[],[]],[-1,-2,[],[]],[1,-1,[]],[1,-1,[]],[1,2],[[3,4],5],[[3,4],5],[-1,-1,[]],[[],1],[-1,-2,[],[]],[[6,7],[[9,[8,3]]]],[-1,10,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,11,[]],[[6,7,[13,[12]]],[[9,[14,3]]]],0,0],"c":[],"p":[[15,"usize"],[15,"tuple"],[4,"PotError",0],[3,"Formatter",20],[6,"Result",20],[3,"PotSeed",21],[3,"NonZeroU32",22],[3,"PotCheckpoints",21],[4,"Result",23],[3,"String",24],[3,"TypeId",25],[3,"PotOutput",21],[15,"slice"],[15,"bool"],[13,"NotMultipleOfCheckpoints",18]],"b":[[7,"impl-Display-for-PotError"],[8,"impl-Debug-for-PotError"]]},\ diff --git a/src/subspace_farmer/utils/farmer_piece_getter.rs.html b/src/subspace_farmer/utils/farmer_piece_getter.rs.html index fa69c6ce66..7d3ef831ce 100644 --- a/src/subspace_farmer/utils/farmer_piece_getter.rs.html +++ b/src/subspace_farmer/utils/farmer_piece_getter.rs.html @@ -129,39 +129,23 @@ 129 130 131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145
use crate::piece_cache::PieceCache;
 use crate::utils::readers_and_pieces::ReadersAndPieces;
 use crate::NodeClient;
 use async_trait::async_trait;
 use parking_lot::Mutex;
-use std::collections::HashSet;
 use std::error::Error;
 use std::sync::Arc;
 use subspace_core_primitives::{Piece, PieceIndex};
 use subspace_farmer_components::plotting::{PieceGetter, PieceGetterRetryPolicy};
 use subspace_networking::libp2p::kad::RecordKey;
-use subspace_networking::libp2p::PeerId;
 use subspace_networking::utils::multihash::ToMultihash;
 use subspace_networking::utils::piece_provider::{PieceProvider, PieceValidator, RetryPolicy};
-use subspace_networking::Node;
 use tracing::{debug, error, trace};
 
+const MAX_RANDOM_WALK_ROUNDS: usize = 35;
+
 pub struct FarmerPieceGetter<PV, NC> {
-    node: Node,
     piece_provider: PieceProvider<PV>,
     piece_cache: PieceCache,
     node_client: NC,
@@ -170,14 +154,12 @@
 
 impl<PV, NC> FarmerPieceGetter<PV, NC> {
     pub fn new(
-        node: Node,
         piece_provider: PieceProvider<PV>,
         piece_cache: PieceCache,
         node_client: NC,
         readers_and_pieces: Arc<Mutex<Option<ReadersAndPieces>>>,
     ) -> Self {
         Self {
-            node,
             piece_provider,
             piece_cache,
             node_client,
@@ -216,7 +198,7 @@
         trace!(%piece_index, "Getting piece from DSN L2 cache");
         let maybe_piece = self
             .piece_provider
-            .get_piece(piece_index, Self::convert_retry_policy(retry_policy))
+            .get_piece_from_dsn_cache(piece_index, Self::convert_retry_policy(retry_policy))
             .await?;
 
         if maybe_piece.is_some() {
@@ -258,31 +240,21 @@
         }
 
         // L1 piece acquisition
-        // TODO: consider using retry policy for L1 lookups as well.
-        trace!(%piece_index, "Getting piece from DSN L1");
-        let connected_peers = HashSet::<PeerId>::from_iter(self.node.connected_peers().await?);
-        if connected_peers.is_empty() {
-            debug!(%piece_index, "Cannot acquire piece from DSN L1: no connected peers");
-
-            return Ok(None);
-        }
+        trace!(%piece_index, "Getting piece from DSN L1.");
 
-        for peer_id in connected_peers.iter() {
-            let maybe_piece = self
-                .piece_provider
-                .get_piece_from_peer(*peer_id, piece_index)
-                .await;
+        let archival_storage_search_result = self
+            .piece_provider
+            .get_piece_from_archival_storage(piece_index, MAX_RANDOM_WALK_ROUNDS)
+            .await;
 
-            if maybe_piece.is_some() {
-                trace!(%piece_index, %peer_id, "DSN L1 lookup succeeded");
+        if archival_storage_search_result.is_some() {
+            trace!(%piece_index, "DSN L1 lookup succeeded");
 
-                return Ok(maybe_piece);
-            }
+            return Ok(archival_storage_search_result);
         }
 
         debug!(
             %piece_index,
-            connected_peers=%connected_peers.len(),
             "Cannot acquire piece: all methods yielded empty result"
         );
         Ok(None)
diff --git a/src/subspace_farmer/utils/piece_validator.rs.html b/src/subspace_farmer/utils/piece_validator.rs.html
index 81672759c3..e8f7f83e5b 100644
--- a/src/subspace_farmer/utils/piece_validator.rs.html
+++ b/src/subspace_farmer/utils/piece_validator.rs.html
@@ -109,10 +109,13 @@
 109
 110
 111
+112
+113
 
use crate::NodeClient;
 use async_trait::async_trait;
 use lru::LruCache;
 use parking_lot::Mutex;
+use std::sync::Arc;
 use subspace_archiving::archiver::is_piece_valid;
 use subspace_core_primitives::crypto::kzg::Kzg;
 use subspace_core_primitives::{Piece, PieceIndex, SegmentCommitment, SegmentIndex};
@@ -121,11 +124,12 @@
 use subspace_networking::Node;
 use tracing::{error, warn};
 
-pub struct SegmentCommitmentPieceValidator<NC> {
+#[derive(Clone)]
+pub struct SegmentCommitmentPieceValidator<NC> {
     dsn_node: Node,
     node_client: NC,
     kzg: Kzg,
-    segment_commitment_cache: Mutex<LruCache<SegmentIndex, SegmentCommitment>>,
+    segment_commitment_cache: Arc<Mutex<LruCache<SegmentIndex, SegmentCommitment>>>,
 }
 
 impl<NC> SegmentCommitmentPieceValidator<NC> {
@@ -133,7 +137,7 @@
         dsn_node: Node,
         node_client: NC,
         kzg: Kzg,
-        segment_commitment_cache: Mutex<LruCache<SegmentIndex, SegmentCommitment>>,
+        segment_commitment_cache: Arc<Mutex<LruCache<SegmentIndex, SegmentCommitment>>>,
     ) -> Self {
         Self {
             dsn_node,
diff --git a/src/subspace_networking/node.rs.html b/src/subspace_networking/node.rs.html
index a4d60acb04..9034ee4647 100644
--- a/src/subspace_networking/node.rs.html
+++ b/src/subspace_networking/node.rs.html
@@ -602,6 +602,28 @@
 602
 603
 604
+605
+606
+607
+608
+609
+610
+611
+612
+613
+614
+615
+616
+617
+618
+619
+620
+621
+622
+623
+624
+625
+626
 
use crate::protocols::request_response::handlers::generic_request_handler::GenericRequest;
 use crate::protocols::request_response::request_response_factory;
 use crate::shared::{Command, CreatedSubscription, PeerDiscovered, Shared};
@@ -1004,7 +1026,21 @@
         &self,
         key: Multihash,
     ) -> Result<impl Stream<Item = PeerId>, GetClosestPeersError> {
-        let permit = self.shared.rate_limiter.acquire_kademlia_permit().await;
+        self.get_closest_peers_internal(key, true).await
+    }
+
+    /// Get closest peers by multihash key using Kademlia DHT.
+    async fn get_closest_peers_internal(
+        &self,
+        key: Multihash,
+        acquire_permit: bool,
+    ) -> Result<impl Stream<Item = PeerId>, GetClosestPeersError> {
+        let permit = if acquire_permit {
+            Some(self.shared.rate_limiter.acquire_kademlia_permit().await)
+        } else {
+            None
+        };
+
         trace!(?key, "Starting 'GetClosestPeers' request.");
 
         let (result_sender, result_receiver) = mpsc::unbounded();
@@ -1192,6 +1228,14 @@
     ) -> Result<impl Stream<Item = PeerId>, GetProvidersError> {
         self.node.get_providers_internal(key, false).await
     }
+
+    /// Get closest peers by key. Initiate 'find_node' Kademlia operation.
+    pub async fn get_closest_peers(
+        &mut self,
+        key: Multihash,
+    ) -> Result<impl Stream<Item = PeerId>, GetClosestPeersError> {
+        self.node.get_closest_peers_internal(key, false).await
+    }
     /// Sends the generic request to the peer and awaits the result.
     pub async fn send_generic_request<Request>(
         &mut self,
diff --git a/src/subspace_networking/node_runner.rs.html b/src/subspace_networking/node_runner.rs.html
index 7a6836ba7d..31ce0d81d8 100644
--- a/src/subspace_networking/node_runner.rs.html
+++ b/src/subspace_networking/node_runner.rs.html
@@ -1567,7 +1567,7 @@
     ClosestPeers {
         sender: mpsc::UnboundedSender<PeerId>,
         // Just holding onto permit while data structure is not dropped
-        _permit: RateLimiterPermit,
+        _permit: Option<RateLimiterPermit>,
     },
     Providers {
         sender: mpsc::UnboundedSender<PeerId>,
diff --git a/src/subspace_networking/shared.rs.html b/src/subspace_networking/shared.rs.html
index eab7e7e209..42ebbe1ff1 100644
--- a/src/subspace_networking/shared.rs.html
+++ b/src/subspace_networking/shared.rs.html
@@ -226,7 +226,7 @@
     GetClosestPeers {
         key: Multihash,
         result_sender: mpsc::UnboundedSender<PeerId>,
-        permit: RateLimiterPermit,
+        permit: Option<RateLimiterPermit>,
     },
     GenericRequest {
         peer_id: PeerId,
diff --git a/src/subspace_networking/utils/piece_provider.rs.html b/src/subspace_networking/utils/piece_provider.rs.html
index 32180251e6..de5a9cbd56 100644
--- a/src/subspace_networking/utils/piece_provider.rs.html
+++ b/src/subspace_networking/utils/piece_provider.rs.html
@@ -206,6 +206,138 @@
 206
 207
 208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
 
//! Provides methods to retrieve pieces from DSN.
 
 use crate::utils::multihash::ToMultihash;
@@ -215,6 +347,7 @@
 use backoff::ExponentialBackoff;
 use futures::StreamExt;
 use libp2p::PeerId;
+use std::collections::HashSet;
 use std::error::Error;
 use std::sync::atomic::{AtomicU64, Ordering};
 use std::time::Duration;
@@ -327,8 +460,9 @@
         None
     }
 
-    /// Returns piece by its index. Uses retry policy for error handling.
-    pub async fn get_piece(
+    /// Returns piece by its index from farmer's piece cache (L2).
+    /// Uses retry policy for error handling.
+    pub async fn get_piece_from_dsn_cache(
         &self,
         piece_index: PieceIndex,
         retry_policy: RetryPolicy,
@@ -413,5 +547,135 @@
 
         None
     }
+
+    /// Get piece from archival storage (L1). The algorithm tries to get a piece from currently
+    /// connected peers and falls back to random walking.
+    pub async fn get_piece_from_archival_storage(
+        &self,
+        piece_index: PieceIndex,
+        max_random_walking_rounds: usize,
+    ) -> Option<Piece> {
+        // TODO: consider using retry policy for L1 lookups as well.
+        trace!(%piece_index, "Getting piece from archival storage..");
+
+        let connected_peers = {
+            let connected_peers = match self.node.connected_peers().await {
+                Ok(connected_peers) => connected_peers,
+                Err(err) => {
+                    debug!(%piece_index, ?err, "Cannot get connected peers (DSN L1 lookup)");
+
+                    Default::default()
+                }
+            };
+
+            HashSet::<PeerId>::from_iter(connected_peers)
+        };
+
+        if connected_peers.is_empty() {
+            debug!(%piece_index, "Cannot acquire piece from no connected peers (DSN L1 lookup)");
+        } else {
+            for peer_id in connected_peers.iter() {
+                let maybe_piece = self.get_piece_from_peer(*peer_id, piece_index).await;
+
+                if maybe_piece.is_some() {
+                    trace!(%piece_index, %peer_id, "DSN L1 lookup from connected peers succeeded");
+
+                    return maybe_piece;
+                }
+            }
+        }
+
+        trace!(%piece_index, "Getting piece from DSN L1 using random walk.");
+        let random_walk_result = self
+            .get_piece_by_random_walking(piece_index, max_random_walking_rounds)
+            .await;
+
+        if random_walk_result.is_some() {
+            trace!(%piece_index, "DSN L1 lookup via random walk succeeded");
+
+            return random_walk_result;
+        } else {
+            debug!(
+                %piece_index,
+                %max_random_walking_rounds,
+                "Cannot acquire piece from DSN L1: random walk failed"
+            );
+        }
+
+        None
+    }
+
+    /// Get piece from L1 by random walking
+    async fn get_piece_by_random_walking(
+        &self,
+        piece_index: PieceIndex,
+        walking_rounds: usize,
+    ) -> Option<Piece> {
+        for round in 0..walking_rounds {
+            debug!(%piece_index, round, "Random walk round");
+
+            let result = self
+                .get_piece_by_random_walking_from_single_round(piece_index, round)
+                .await;
+
+            if result.is_some() {
+                return result;
+            }
+        }
+
+        debug!(%piece_index, "Random walking piece retrieval failed.");
+
+        None
+    }
+
+    /// Get piece from L1 by random walking (single round)
+    async fn get_piece_by_random_walking_from_single_round(
+        &self,
+        piece_index: PieceIndex,
+        round: usize,
+    ) -> Option<Piece> {
+        trace!(%piece_index, "get_piece_by_random_walking round");
+
+        // Random walk key
+        let key = PeerId::random();
+
+        let mut request_batch = self.node.get_requests_batch_handle().await;
+        let get_closest_peers_result = request_batch.get_closest_peers(key.into()).await;
+
+        match get_closest_peers_result {
+            Ok(mut get_closest_peers_stream) => {
+                while let Some(peer_id) = get_closest_peers_stream.next().await {
+                    trace!(%piece_index, %peer_id, %round, "get_closest_peers returned an item");
+
+                    let request_result = request_batch
+                        .send_generic_request(peer_id, PieceByIndexRequest { piece_index })
+                        .await;
+
+                    match request_result {
+                        Ok(PieceByIndexResponse { piece: Some(piece) }) => {
+                            trace!(%peer_id, %piece_index, ?key, %round,  "Piece request succeeded.");
+
+                            if let Some(validator) = &self.piece_validator {
+                                return validator.validate_piece(peer_id, piece_index, piece).await;
+                            } else {
+                                return Some(piece);
+                            }
+                        }
+                        Ok(PieceByIndexResponse { piece: None }) => {
+                            debug!(%peer_id, %piece_index, ?key, %round, "Piece request returned empty piece.");
+                        }
+                        Err(error) => {
+                            debug!(%peer_id, %piece_index, ?key, %round, ?error, "Piece request failed.");
+                        }
+                    }
+                }
+            }
+            Err(err) => {
+                warn!(%piece_index, ?key, ?err, %round, "get_closest_peers returned an error");
+            }
+        }
+
+        None
+    }
 }
 
\ No newline at end of file diff --git a/src/subspace_service/sync_from_dsn/import_blocks.rs.html b/src/subspace_service/sync_from_dsn/import_blocks.rs.html index 202f3f64ba..b3986b7df2 100644 --- a/src/subspace_service/sync_from_dsn/import_blocks.rs.html +++ b/src/subspace_service/sync_from_dsn/import_blocks.rs.html @@ -624,7 +624,7 @@ } }; let maybe_piece = match piece_provider - .get_piece( + .get_piece_from_dsn_cache( piece_index, RetryPolicy::Limited(PIECE_GETTER_RETRY_NUMBER.get()), ) diff --git a/subspace_archiving/archiver/enum.ArchiverInstantiationError.html b/subspace_archiving/archiver/enum.ArchiverInstantiationError.html index d71b657d0d..d60ca16052 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

§block_bytes: u32

Full block size

§archived_block_bytes: u32

Already archived portion of the block

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 da76de1c26..852ad914c1 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

Fields

§bytes: Vec<u8>

Block bytes

@@ -21,7 +21,7 @@

Contains the beginning of the block inside, remainder will be found in subsequent segments

§

BlockContinuation

Fields

§bytes: Vec<u8>

Block bytes

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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SegmentItem

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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 bf9949321f..bccd60ad8a 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
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 4dd33bf6f8..707711c861 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 51f9c2a594..2f6e1855a9 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
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

source

pub fn new(kzg: Kzg) -> Result<Self, ArchiverInstantiationError>

Create a new instance with specified record size and recorded history segment size.

+

Implementations§

source§

impl Archiver

source

pub 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.

source

pub 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.

-
source

pub fn last_archived_block_number(&self) -> Option<BlockNumber>

Get last archived block if there was any

+
source

pub fn last_archived_block_number(&self) -> Option<BlockNumber>

Get last archived block if there was any

source

pub 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 26e7d30216..3c92a39f06 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

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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NewArchivedSegment

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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 5d466ed107..1f2cabbbe9 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

Implementations§

source§

impl PiecesReconstructor

source

pub fn new(kzg: Kzg) -> Result<Self, ReconstructorInstantiationError>

source

pub 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).

source

pub 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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PiecesReconstructor

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere diff --git a/subspace_archiving/reconstructor/enum.ReconstructorError.html b/subspace_archiving/reconstructor/enum.ReconstructorError.html index 682675c45a..370d1cdd7c 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

Fields

§expected_segment_index: SegmentIndex
§actual_segment_index: SegmentIndex

Incorrect segment order, each next segment must have monotonically increasing segment index

+
§

IncorrectSegmentOrder

Fields

§expected_segment_index: SegmentIndex
§actual_segment_index: SegmentIndex

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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ReconstructorError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ReconstructorError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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 more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
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 ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for ReconstructorError

Auto Trait Implementations§

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 eeebaf7d1b..6c2eacc964 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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ReconstructedContents

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ReconstructedContents

source§

fn default() -> ReconstructedContents

Returns the “default value” for a type. Read more
source§

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 ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for ReconstructedContents

source§

impl StructuralEq for ReconstructedContents

source§

impl StructuralPartialEq for ReconstructedContents

Auto Trait Implementations§

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 2a3b106ce2..fa8678c50e 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
pub struct Reconstructor { /* private fields */ }
Expand description

Reconstructor helps to retrieve blocks from archived pieces.

Implementations§

source§

impl Reconstructor

source

pub fn new() -> Result<Self, ReconstructorInstantiationError>

source

pub 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 1809985666..ece10b5510 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.

source

pub fn max_shards(&self) -> usize

Max number of shards supported (both source and parity together)

-
source

pub fn extend(&self, source: &[Scalar]) -> Result<Vec<Scalar>, String>

Extend sources using erasure coding.

+
source

pub fn extend(&self, source: &[Scalar]) -> Result<Vec<Scalar>, String>

Extend sources using erasure coding.

Returns parity data.

-
source

pub fn recover(&self, shards: &[Option<Scalar>]) -> Result<Vec<Scalar>, String>

Recovery of missing shards from given shards (at least 1/2 should be Some).

+
source

pub 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, …

source

pub 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, …

source

pub 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.

source

pub 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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ErasureCoding

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere diff --git a/subspace_farmer/utils/farmer_piece_getter/index.html b/subspace_farmer/utils/farmer_piece_getter/index.html index 8f5e0494a8..0902fddaeb 100644 --- a/subspace_farmer/utils/farmer_piece_getter/index.html +++ b/subspace_farmer/utils/farmer_piece_getter/index.html @@ -1 +1 @@ -subspace_farmer::utils::farmer_piece_getter - Rust
\ No newline at end of file +subspace_farmer::utils::farmer_piece_getter - Rust
\ No newline at end of file diff --git a/subspace_farmer/utils/farmer_piece_getter/struct.FarmerPieceGetter.html b/subspace_farmer/utils/farmer_piece_getter/struct.FarmerPieceGetter.html index 33cd234365..e1acf1eb00 100644 --- a/subspace_farmer/utils/farmer_piece_getter/struct.FarmerPieceGetter.html +++ b/subspace_farmer/utils/farmer_piece_getter/struct.FarmerPieceGetter.html @@ -1,12 +1,11 @@ -FarmerPieceGetter in subspace_farmer::utils::farmer_piece_getter - Rust
pub struct FarmerPieceGetter<PV, NC> { /* private fields */ }

Implementations§

Trait Implementations§

source§

impl<PV, NC> PieceGetter for FarmerPieceGetter<PV, NC>where PV: PieceValidator + Send + 'static, - NC: NodeClient,

source§

fn get_piece<'life0, 'async_trait>( + NC: NodeClient,

source§

fn get_piece<'life0, 'async_trait>( &'life0 self, piece_index: PieceIndex, retry_policy: PieceGetterRetryPolicy diff --git a/subspace_farmer/utils/piece_validator/index.html b/subspace_farmer/utils/piece_validator/index.html index 6a20080d32..e9734f11ca 100644 --- a/subspace_farmer/utils/piece_validator/index.html +++ b/subspace_farmer/utils/piece_validator/index.html @@ -1 +1 @@ -subspace_farmer::utils::piece_validator - Rust
\ No newline at end of file +subspace_farmer::utils::piece_validator - Rust
\ No newline at end of file diff --git a/subspace_farmer/utils/piece_validator/struct.SegmentCommitmentPieceValidator.html b/subspace_farmer/utils/piece_validator/struct.SegmentCommitmentPieceValidator.html index dc11b62f03..42818b9c95 100644 --- a/subspace_farmer/utils/piece_validator/struct.SegmentCommitmentPieceValidator.html +++ b/subspace_farmer/utils/piece_validator/struct.SegmentCommitmentPieceValidator.html @@ -1,10 +1,10 @@ -SegmentCommitmentPieceValidator in subspace_farmer::utils::piece_validator - Rust
pub struct SegmentCommitmentPieceValidator<NC> { /* private fields */ }

Implementations§

source§

impl<NC> SegmentCommitmentPieceValidator<NC>

source

pub fn new( +SegmentCommitmentPieceValidator in subspace_farmer::utils::piece_validator - Rust
pub struct SegmentCommitmentPieceValidator<NC> { /* private fields */ }

Implementations§

source§

impl<NC> SegmentCommitmentPieceValidator<NC>

source

pub fn new( dsn_node: Node, node_client: NC, kzg: Kzg, - segment_commitment_cache: Mutex<LruCache<SegmentIndex, SegmentCommitment>> -) -> Self

Trait Implementations§

source§

impl<NC> PieceValidator for SegmentCommitmentPieceValidator<NC>where - NC: NodeClient,

source§

fn validate_piece<'life0, 'async_trait>( + segment_commitment_cache: Arc<Mutex<LruCache<SegmentIndex, SegmentCommitment>>> +) -> Self

Trait Implementations§

source§

impl<NC: Clone> Clone for SegmentCommitmentPieceValidator<NC>

source§

fn clone(&self) -> SegmentCommitmentPieceValidator<NC>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<NC> PieceValidator for SegmentCommitmentPieceValidator<NC>where + NC: NodeClient,

source§

fn validate_piece<'life0, 'async_trait>( &'life0 self, source_peer_id: PeerId, piece_index: PieceIndex, @@ -111,7 +111,8 @@ builds.

§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.

§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>where +builds.

source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T, S> UniqueSaturatedInto<T> for Swhere diff --git a/subspace_farmer_components/auditing/fn.audit_plot_sync.html b/subspace_farmer_components/auditing/fn.audit_plot_sync.html index 4b12ab2acc..38b352af68 100644 --- a/subspace_farmer_components/auditing/fn.audit_plot_sync.html +++ b/subspace_farmer_components/auditing/fn.audit_plot_sync.html @@ -1,10 +1,10 @@ audit_plot_sync in subspace_farmer_components::auditing - Rust
pub fn audit_plot_sync<'a, Plot>(
-    public_key: &'a PublicKey,
-    global_challenge: &Blake3Hash,
-    solution_range: SolutionRange,
+    public_key: &'a PublicKey,
+    global_challenge: &Blake3Hash,
+    solution_range: SolutionRange,
     plot: &'a Plot,
     sectors_metadata: &'a [SectorMetadataChecksummed],
-    maybe_sector_being_modified: Option<SectorIndex>
+    maybe_sector_being_modified: Option<SectorIndex>
 ) -> Vec<AuditResult<'a, ReadAtOffset<'a, Plot>>>where
     Plot: ReadAtSync + 'a,
Expand description

Audit the whole plot and generate streams of solutions

\ No newline at end of file diff --git a/subspace_farmer_components/auditing/fn.audit_sector_sync.html b/subspace_farmer_components/auditing/fn.audit_sector_sync.html index fdf787690e..069d003913 100644 --- a/subspace_farmer_components/auditing/fn.audit_sector_sync.html +++ b/subspace_farmer_components/auditing/fn.audit_sector_sync.html @@ -1,7 +1,7 @@ audit_sector_sync in subspace_farmer_components::auditing - Rust
pub fn audit_sector_sync<'a, Sector>(
-    public_key: &'a PublicKey,
-    global_challenge: &Blake3Hash,
-    solution_range: SolutionRange,
+    public_key: &'a PublicKey,
+    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 3d7c620654..6ca4df3980 100644
--- a/subspace_farmer_components/auditing/struct.AuditResult.html
+++ b/subspace_farmer_components/auditing/struct.AuditResult.html
@@ -1,12 +1,12 @@
 AuditResult in subspace_farmer_components::auditing - Rust
pub struct AuditResult<'a, Sector>where
     Sector: 'a,{
-    pub sector_index: SectorIndex,
+    pub sector_index: SectorIndex,
     pub solution_candidates: SolutionCandidates<'a, Sector>,
-    pub best_solution_distance: SolutionRange,
+    pub best_solution_distance: SolutionRange,
 }
Expand description

Result of sector audit

-

Fields§

§sector_index: SectorIndex

Sector index

+

Fields§

§sector_index: SectorIndex

Sector index

§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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a, Sector> Debug for AuditResult<'a, Sector>where Sector: 'a + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto 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 3e0f533db3..0c2df46ebf 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>, }, FailedToAcquirePermit { @@ -29,11 +29,11 @@

§

BadSectorMetadataOutputSize

Fields

§provided: usize

Actual size

§expected: usize

Expected size

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

§error: Box<dyn Error + Send + Sync + 'static>

Lower-level error

Failed to retrieve piece

§

FailedToAcquirePermit

Fields

§error: AcquireError

Lower-level error

diff --git a/subspace_farmer_components/plotting/struct.DownloadSectorOptions.html b/subspace_farmer_components/plotting/struct.DownloadSectorOptions.html index 08324ed870..f18b116d0f 100644 --- a/subspace_farmer_components/plotting/struct.DownloadSectorOptions.html +++ b/subspace_farmer_components/plotting/struct.DownloadSectorOptions.html @@ -1,19 +1,19 @@ DownloadSectorOptions in subspace_farmer_components::plotting - Rust
pub struct DownloadSectorOptions<'a, PG> {
-    pub public_key: &'a PublicKey,
-    pub sector_index: SectorIndex,
+    pub public_key: &'a PublicKey,
+    pub sector_index: SectorIndex,
     pub piece_getter: &'a PG,
     pub piece_getter_retry_policy: PieceGetterRetryPolicy,
     pub farmer_protocol_info: FarmerProtocolInfo,
-    pub kzg: &'a Kzg,
+    pub kzg: &'a Kzg,
     pub pieces_in_sector: u16,
     pub downloading_semaphore: Option<Arc<Semaphore>>,
 }
Expand description

Options for sector downloading

-

Fields§

§public_key: &'a PublicKey

Public key corresponding to sector

-
§sector_index: SectorIndex

Sector index

+

Fields§

§public_key: &'a PublicKey

Public key corresponding to sector

+
§sector_index: SectorIndex

Sector index

§piece_getter: &'a PG

Getter for pieces of archival history

§piece_getter_retry_policy: PieceGetterRetryPolicy

Retry policy for piece getter

§farmer_protocol_info: FarmerProtocolInfo

Farmer protocol info

-
§kzg: &'a Kzg

KZG instance

+
§kzg: &'a Kzg

KZG instance

§pieces_in_sector: u16

How many pieces should sector contain

§downloading_semaphore: Option<Arc<Semaphore>>

Semaphore for part of the plotting when farmer downloads new sector, allows to limit memory usage of the plotting process, permit will be held until the end of the plotting process

diff --git a/subspace_farmer_components/plotting/struct.EncodeSectorOptions.html b/subspace_farmer_components/plotting/struct.EncodeSectorOptions.html index 1782dfabc6..4c3211d52e 100644 --- a/subspace_farmer_components/plotting/struct.EncodeSectorOptions.html +++ b/subspace_farmer_components/plotting/struct.EncodeSectorOptions.html @@ -1,6 +1,6 @@ EncodeSectorOptions in subspace_farmer_components::plotting - Rust
pub struct EncodeSectorOptions<'a, PosTable>where
     PosTable: Table,{
-    pub sector_index: SectorIndex,
+    pub sector_index: SectorIndex,
     pub erasure_coding: &'a ErasureCoding,
     pub pieces_in_sector: u16,
     pub sector_output: &'a mut Vec<u8>,
@@ -11,7 +11,7 @@
 

Sector output and sector metadata output should be either empty (in which case they’ll be resized to correct size automatically) or correctly sized from the beginning or else error will be returned.

-

Fields§

§sector_index: SectorIndex

Sector index

+

Fields§

§sector_index: SectorIndex

Sector index

§erasure_coding: &'a ErasureCoding

Erasure coding instance

§pieces_in_sector: u16

How many pieces should sector contain

§sector_output: &'a mut Vec<u8>

Where plotted sector should be written, vector must either be empty (in which case it’ll be diff --git a/subspace_farmer_components/plotting/struct.PlotSectorOptions.html b/subspace_farmer_components/plotting/struct.PlotSectorOptions.html index 2388ee1946..93e2863c75 100644 --- a/subspace_farmer_components/plotting/struct.PlotSectorOptions.html +++ b/subspace_farmer_components/plotting/struct.PlotSectorOptions.html @@ -1,11 +1,11 @@ PlotSectorOptions in subspace_farmer_components::plotting - Rust

pub struct PlotSectorOptions<'a, PosTable, PG>where
     PosTable: Table,{
Show 13 fields - pub public_key: &'a PublicKey, - pub sector_index: SectorIndex, + pub public_key: &'a PublicKey, + pub sector_index: SectorIndex, pub piece_getter: &'a PG, pub piece_getter_retry_policy: PieceGetterRetryPolicy, pub farmer_protocol_info: FarmerProtocolInfo, - pub kzg: &'a Kzg, + pub kzg: &'a Kzg, pub erasure_coding: &'a ErasureCoding, pub pieces_in_sector: u16, pub sector_output: &'a mut Vec<u8>, @@ -17,12 +17,12 @@

Sector output and sector metadata output should be either empty (in which case they’ll be resized to correct size automatically) or correctly sized from the beginning or else error will be returned.

-

Fields§

§public_key: &'a PublicKey

Public key corresponding to sector

-
§sector_index: SectorIndex

Sector index

+

Fields§

§public_key: &'a PublicKey

Public key corresponding to sector

+
§sector_index: SectorIndex

Sector index

§piece_getter: &'a PG

Getter for pieces of archival history

§piece_getter_retry_policy: PieceGetterRetryPolicy

Retry policy for piece getter

§farmer_protocol_info: FarmerProtocolInfo

Farmer protocol info

-
§kzg: &'a Kzg

KZG instance

+
§kzg: &'a Kzg

KZG instance

§erasure_coding: &'a ErasureCoding

Erasure coding instance

§pieces_in_sector: u16

How many pieces should sector contain

§sector_output: &'a mut Vec<u8>

Where plotted sector should be written, vector must either be empty (in which case it’ll be diff --git a/subspace_farmer_components/plotting/struct.PlottedSector.html b/subspace_farmer_components/plotting/struct.PlottedSector.html index ec369cf0ba..5760547438 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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PlottedSector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
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 09de98b238..2151e3ac66 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§

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,

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§

fn get_piece<'life0, 'async_trait>( + 'life0: 'async_trait,

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 5d8e7b1f8d..adfc3ef11a 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

Fields

§piece_offset: PieceOffset

Piece offset

§error: String

Lower-level error

Failed to create polynomial for record

-
§

FailedToCreateChunkWitness

Fields

§piece_offset: PieceOffset

Piece offset

+
§

FailedToCreateChunkWitness

Fields

§piece_offset: PieceOffset

Piece offset

§chunk_offset: u32

Chunk index

§error: String

Lower-level error

Failed to create chunk witness

diff --git a/subspace_farmer_components/proving/struct.SolutionCandidates.html b/subspace_farmer_components/proving/struct.SolutionCandidates.html index ee888d0356..0cd06056e0 100644 --- a/subspace_farmer_components/proving/struct.SolutionCandidates.html +++ b/subspace_farmer_components/proving/struct.SolutionCandidates.html @@ -6,13 +6,13 @@
source

pub 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,

Turn solution candidates into actual solutions

+ TableGenerator: FnMut(&PosSeed) -> PosTable + 'a,

Turn solution candidates into actual solutions

Trait Implementations§

source§

impl<'a, Sector> Clone for SolutionCandidates<'a, Sector>where Sector: Clone + 'a,

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a, Sector> Debug for SolutionCandidates<'a, Sector>where Sector: 'a + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, Sector> RefUnwindSafe for SolutionCandidates<'a, Sector>where diff --git a/subspace_farmer_components/proving/trait.ProvableSolutions.html b/subspace_farmer_components/proving/trait.ProvableSolutions.html index 5f853f0472..7e2c52cba3 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§

source

fn best_solution_distance(&self) -> Option<SolutionRange>

Best solution distance found, None in case there are no solutions

+

Required Methods§

source

fn best_solution_distance(&self) -> Option<SolutionRange>

Best solution distance found, None in case there are no solutions

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 ffed786354..ef79f3e92c 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

§s_bucket: SBucket

S-bucket

§encoded_chunk_used: bool

Indicates whether chunk was encoded

§chunk_location: usize

Chunk location

§error: String

Lower-level error

Invalid chunk, possible disk corruption

-
§

FailedToErasureDecodeRecord

Fields

§piece_offset: PieceOffset

Piece offset

+
§

FailedToErasureDecodeRecord

Fields

§piece_offset: PieceOffset

Piece offset

§error: String

Lower-level error

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 48ac5c0c63..f62bf565f7 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
pub async fn read_piece<PosTable, S, A>(
-    piece_offset: PieceOffset,
-    sector_id: &SectorId,
+    piece_offset: PieceOffset,
+    sector_id: &SectorId,
     sector_metadata: &SectorMetadataChecksummed,
     sector: &ReadAt<S, A>,
     erasure_coding: &ErasureCoding,
     table_generator: &mut PosTable::Generator
-) -> Result<Piece, ReadingError>where
+) -> Result<Piece, ReadingError>where
     PosTable: Table,
     S: ReadAtSync,
     A: ReadAtAsync,
Expand description

Read piece from sector.

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 35cf03adb2..3b286300eb 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 async fn read_sector_record_chunks<PosTable, S, A>(
-    piece_offset: PieceOffset,
+    piece_offset: PieceOffset,
     pieces_in_sector: u16,
     s_bucket_offsets: &[u32; 65536],
     sector_contents_map: &SectorContentsMap,
     pos_table: &PosTable,
     sector: &ReadAt<S, A>
-) -> Result<Box<[Option<Scalar>; 65536]>, ReadingError>where
+) -> Result<Box<[Option<Scalar>; 65536]>, ReadingError>where
     PosTable: Table,
     S: ReadAtSync,
     A: ReadAtAsync,
Expand description

Read sector record chunks, only plotted s-buckets are returned (in decoded form).

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 fabc8838ed..dd3cb5fc86 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 4837dbe0ed..222b6c9bd6 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 c57e9e35ef..2ff3f121f9 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
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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PlotRecord

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
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 8b5b03b2e0..cae3ea3f2e 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

-
source

pub fn num_encoded_record_chunks(&self) -> &[SBucket]

Number of encoded chunks in each record

+
source

pub fn num_encoded_record_chunks(&self) -> &[SBucket]

Number of encoded chunks in each record

source

pub fn iter_record_bitfields(&self) -> &[BitArray<[u8; 8192]>]

Iterate over individual record bitfields

source

pub fn iter_record_bitfields_mut( &mut self @@ -24,14 +24,14 @@

source

pub fn s_bucket_sizes(&self) -> Box<[u16; 65536]>

Returns sizes of each s-bucket

source

pub 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).

source

pub 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,18 +40,18 @@ all s-buckets and offsets are within corresponding s-buckets rather than the whole plot.

source

pub 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.

-

Returns error if s_bucket is outside of [Record::NUM_S_BUCKETS] range.

+

Returns error if s_bucket is outside of Record::NUM_S_BUCKETS range.

source

pub 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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SectorContentsMap

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
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 6b5c455f95..8dc600cf0c 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
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

source

pub 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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SectorMetadata

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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 4d41f53387..4fc90e7727 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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FarmerProtocolInfo

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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 more
source§

impl Serialize for FarmerProtocolInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for FarmerProtocolInfo

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere diff --git a/subspace_networking/struct.Node.html b/subspace_networking/struct.Node.html index 33ae9eabce..2c33009bb9 100644 --- a/subspace_networking/struct.Node.html +++ b/subspace_networking/struct.Node.html @@ -1,5 +1,5 @@ Node in subspace_networking - Rust
pub struct Node { /* private fields */ }
Expand description

Implementation of a network node on Subspace Network.

-

Implementations§

source§

impl Node

source

pub fn id(&self) -> PeerId

Node’s own local ID.

+

Implementations§

source§

impl Node

source

pub fn id(&self) -> PeerId

Node’s own local ID.

source

pub async fn get_value( &self, key: Multihash @@ -24,40 +24,40 @@ request: Request ) -> Result<Request::Response, SendRequestError>where Request: GenericRequest,

Sends the generic request to the peer and awaits the result.

-
source

pub async fn get_closest_peers( +

source

pub async fn get_closest_peers( &self, key: Multihash ) -> Result<impl Stream<Item = PeerId>, GetClosestPeersError>

Get closest peers by multihash key using Kademlia DHT.

-
source

pub async fn get_providers( +

source

pub async fn get_providers( &self, key: Multihash ) -> Result<impl Stream<Item = PeerId>, GetProvidersError>

Get item providers by its key. Initiate ‘providers’ Kademlia operation.

-
source

pub async fn ban_peer(&self, peer_id: PeerId) -> Result<(), SendError>

Ban peer with specified peer ID.

-
source

pub fn listeners(&self) -> Vec<Multiaddr>

Node’s own addresses where it listens for incoming requests.

-
source

pub fn external_addresses(&self) -> Vec<Multiaddr>

Node’s own addresses observed remotely.

-
source

pub fn on_new_listener( +

source

pub async fn ban_peer(&self, peer_id: PeerId) -> Result<(), SendError>

Ban peer with specified peer ID.

+
source

pub fn listeners(&self) -> Vec<Multiaddr>

Node’s own addresses where it listens for incoming requests.

+
source

pub fn external_addresses(&self) -> Vec<Multiaddr>

Node’s own addresses observed remotely.

+
source

pub fn on_new_listener( &self, callback: Arc<dyn Fn(&Multiaddr) + Send + Sync + 'static> ) -> HandlerId

Callback is called when node starts listening on new address.

-
source

pub fn on_num_established_peer_connections_change( +

source

pub fn on_num_established_peer_connections_change( &self, callback: Arc<dyn Fn(&usize) + Send + Sync + 'static> ) -> HandlerId

Callback is called when number of established peer connections changes.

-
source

pub async fn connected_peers(&self) -> Result<Vec<PeerId>, ConnectedPeersError>

Returns a collection of currently connected peers.

-
source

pub async fn bootstrap(&self) -> Result<(), BootstrapError>

Bootstraps Kademlia network

-
source

pub fn on_disconnected_peer( +

source

pub async fn connected_peers(&self) -> Result<Vec<PeerId>, ConnectedPeersError>

Returns a collection of currently connected peers.

+
source

pub async fn bootstrap(&self) -> Result<(), BootstrapError>

Bootstraps Kademlia network

+
source

pub fn on_disconnected_peer( &self, callback: Arc<dyn Fn(&PeerId) + Send + Sync + 'static> ) -> HandlerId

Callback is called when a peer is disconnected.

-
source

pub fn on_connected_peer( +

source

pub fn on_connected_peer( &self, callback: Arc<dyn Fn(&PeerId) + Send + Sync + 'static> ) -> HandlerId

Callback is called when a peer is connected.

-
source

pub fn on_discovered_peer( +

source

pub fn on_discovered_peer( &self, callback: Arc<dyn Fn(&PeerDiscovered) + Send + Sync + 'static> ) -> HandlerId

Callback is called when a routable or unraoutable peer is discovered.

-
source

pub async fn get_requests_batch_handle(&self) -> NodeRequestsBatchHandle

Returns the request batch handle with common “connection permit” slot from the shared pool.

+
source

pub async fn get_requests_batch_handle(&self) -> NodeRequestsBatchHandle

Returns the request batch handle with common “connection permit” slot from the shared pool.

Trait Implementations§

source§

impl Clone for Node

source§

fn clone(&self) -> Node

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Node

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Node

§

impl Send for Node

§

impl Sync for Node

§

impl Unpin for Node

§

impl !UnwindSafe for Node

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere diff --git a/subspace_networking/utils/piece_provider/enum.RetryPolicy.html b/subspace_networking/utils/piece_provider/enum.RetryPolicy.html index 3a984e0297..a021acf7cb 100644 --- a/subspace_networking/utils/piece_provider/enum.RetryPolicy.html +++ b/subspace_networking/utils/piece_provider/enum.RetryPolicy.html @@ -1,12 +1,12 @@ -RetryPolicy in subspace_networking::utils::piece_provider - Rust
pub enum RetryPolicy {
+RetryPolicy in subspace_networking::utils::piece_provider - Rust
pub enum RetryPolicy {
     Limited(u16),
     Unlimited,
 }
Expand description

Defines retry policy on error during piece acquiring.

Variants§

§

Limited(u16)

Retry N times (including zero)

§

Unlimited

No restrictions on retries

-

Trait Implementations§

source§

impl Clone for RetryPolicy

source§

fn clone(&self) -> RetryPolicy

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RetryPolicy

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for RetryPolicy

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl PartialEq<RetryPolicy> for RetryPolicy

source§

fn eq(&self, other: &RetryPolicy) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for RetryPolicy

source§

fn clone(&self) -> RetryPolicy

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RetryPolicy

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for RetryPolicy

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl PartialEq<RetryPolicy> for RetryPolicy

source§

fn eq(&self, other: &RetryPolicy) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Copy for RetryPolicy

source§

impl Eq for RetryPolicy

source§

impl StructuralEq for RetryPolicy

source§

impl StructuralPartialEq for RetryPolicy

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere +sufficient, and should not be overridden without very good reason.

source§

impl Copy for RetryPolicy

source§

impl Eq for RetryPolicy

source§

impl StructuralEq for RetryPolicy

source§

impl StructuralPartialEq for RetryPolicy

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere T: 'a,

§

fn implicit( diff --git a/subspace_networking/utils/piece_provider/index.html b/subspace_networking/utils/piece_provider/index.html index 8fd763fcdc..cb00d2e955 100644 --- a/subspace_networking/utils/piece_provider/index.html +++ b/subspace_networking/utils/piece_provider/index.html @@ -1,2 +1,2 @@ -subspace_networking::utils::piece_provider - Rust
Expand description

Provides methods to retrieve pieces from DSN.

+subspace_networking::utils::piece_provider - Rust
Expand description

Provides methods to retrieve pieces from DSN.

Structs

Enums

  • Defines retry policy on error during piece acquiring.

Traits

\ No newline at end of file diff --git a/subspace_networking/utils/piece_provider/struct.NoPieceValidator.html b/subspace_networking/utils/piece_provider/struct.NoPieceValidator.html index 13d43ee971..5c2df6bce9 100644 --- a/subspace_networking/utils/piece_provider/struct.NoPieceValidator.html +++ b/subspace_networking/utils/piece_provider/struct.NoPieceValidator.html @@ -1,5 +1,5 @@ -NoPieceValidator in subspace_networking::utils::piece_provider - Rust
pub struct NoPieceValidator;
Expand description

Stub implementation for piece validation.

-

Trait Implementations§

source§

impl PieceValidator for NoPieceValidator

source§

fn validate_piece<'life0, 'async_trait>( +NoPieceValidator in subspace_networking::utils::piece_provider - Rust
pub struct NoPieceValidator;
Expand description

Stub implementation for piece validation.

+

Trait Implementations§

source§

impl PieceValidator for NoPieceValidator

source§

fn validate_piece<'life0, 'async_trait>( &'life0 self, __arg1: PeerId, __arg2: PieceIndex, diff --git a/subspace_networking/utils/piece_provider/struct.PieceProvider.html b/subspace_networking/utils/piece_provider/struct.PieceProvider.html index 20a560abb4..775f4222ca 100644 --- a/subspace_networking/utils/piece_provider/struct.PieceProvider.html +++ b/subspace_networking/utils/piece_provider/struct.PieceProvider.html @@ -1,16 +1,23 @@ -PieceProvider in subspace_networking::utils::piece_provider - Rust
pub struct PieceProvider<PV> { /* private fields */ }
Expand description

Piece provider with cancellation and optional piece validator.

-

Implementations§

source§

impl<PV> PieceProvider<PV>where - PV: PieceValidator,

source

pub fn new(node: Node, piece_validator: Option<PV>) -> Self

Creates new piece provider.

-
source

pub async fn get_piece( +PieceProvider in subspace_networking::utils::piece_provider - Rust
pub struct PieceProvider<PV> { /* private fields */ }
Expand description

Piece provider with cancellation and optional piece validator.

+

Implementations§

source§

impl<PV> PieceProvider<PV>where + PV: PieceValidator,

source

pub fn new(node: Node, piece_validator: Option<PV>) -> Self

Creates new piece provider.

+
source

pub async fn get_piece_from_dsn_cache( &self, piece_index: PieceIndex, retry_policy: RetryPolicy -) -> Result<Option<Piece>, Box<dyn Error + Send + Sync + 'static>>

Returns piece by its index. Uses retry policy for error handling.

-
source

pub async fn get_piece_from_peer( +) -> Result<Option<Piece>, Box<dyn Error + Send + Sync + 'static>>

Returns piece by its index from farmer’s piece cache (L2). +Uses retry policy for error handling.

+
source

pub async fn get_piece_from_peer( &self, peer_id: PeerId, piece_index: PieceIndex ) -> Option<Piece>

Get piece from a particular peer.

+
source

pub async fn get_piece_from_archival_storage( + &self, + piece_index: PieceIndex, + max_random_walking_rounds: usize +) -> Option<Piece>

Get piece from archival storage (L1). The algorithm tries to get a piece from currently +connected peers and falls back to random walking.

Auto Trait Implementations§

§

impl<PV> !RefUnwindSafe for PieceProvider<PV>

§

impl<PV> Send for PieceProvider<PV>where PV: Send,

§

impl<PV> Sync for PieceProvider<PV>where PV: Sync,

§

impl<PV> Unpin for PieceProvider<PV>where diff --git a/subspace_networking/utils/piece_provider/trait.PieceValidator.html b/subspace_networking/utils/piece_provider/trait.PieceValidator.html index 57e8c463f5..e37dbf5a0b 100644 --- a/subspace_networking/utils/piece_provider/trait.PieceValidator.html +++ b/subspace_networking/utils/piece_provider/trait.PieceValidator.html @@ -1,4 +1,4 @@ -PieceValidator in subspace_networking::utils::piece_provider - Rust
pub trait PieceValidator: Sync + Send {
+PieceValidator in subspace_networking::utils::piece_provider - Rust
pub trait PieceValidator: Sync + Send {
     // Required method
     fn validate_piece<'life0, 'async_trait>(
         &'life0 self,
@@ -9,7 +9,7 @@
        where Self: 'async_trait,
              'life0: 'async_trait;
 }
Expand description

Validates piece against using its commitment.

-

Required Methods§

source

fn validate_piece<'life0, 'async_trait>( +

Required Methods§

source

fn validate_piece<'life0, 'async_trait>( &'life0 self, source_peer_id: PeerId, piece_index: PieceIndex, @@ -17,4 +17,4 @@ ) -> Pin<Box<dyn Future<Output = Option<Piece>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Validates piece against using its commitment.

-

Implementors§

\ No newline at end of file +

Implementors§

\ No newline at end of file diff --git a/subspace_proof_of_space/chia/struct.ChiaTable.html b/subspace_proof_of_space/chia/struct.ChiaTable.html index 1f5e22affa..092e768ce5 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
pub struct ChiaTable { /* private fields */ }
Expand description

Subspace proof of space table.

Chia implementation.

-

Trait Implementations§

source§

impl Debug for ChiaTable

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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
source§

fn generate(seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed. Read more
source§

fn generate_parallel(seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed using parallelism. Read more
source§

fn find_proof(&self, challenge_index: u32) -> Option<PosProof>

Try to find proof at challenge_index if it exists
source§

fn is_proof_valid( - seed: &PosSeed, +

Trait Implementations§

source§

impl Debug for ChiaTable

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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
source§

fn generate(seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed. Read more
source§

fn generate_parallel(seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed using parallelism. Read more
source§

fn find_proof(&self, challenge_index: u32) -> Option<PosProof>

Try to find proof at challenge_index if it exists
source§

fn is_proof_valid( + seed: &PosSeed, challenge_index: u32, - proof: &PosProof -) -> bool

Check whether proof created earlier is valid and return quality bytes if yes
source§

fn generator() -> Self::Generator

Returns a stateful table generator with better performance
source§

impl TableGenerator<ChiaTable> for ChiaTableGenerator

source§

fn generate(&mut self, seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed. Read more
source§

fn generate_parallel(&mut self, seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed using parallelism. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + proof: &PosProof +) -> bool

Check whether proof created earlier is valid and return quality bytes if yes
source§

fn generator() -> Self::Generator

Returns a stateful table generator with better performance

source§

impl TableGenerator<ChiaTable> for ChiaTableGenerator

source§

fn generate(&mut self, seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed. Read more
source§

fn generate_parallel(&mut self, seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed using parallelism. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
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
source§

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 e88bf41e38..108ea41e1e 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
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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ChiaTableGenerator

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ChiaTableGenerator

source§

fn default() -> ChiaTableGenerator

Returns the “default value” for a type. Read more
source§

impl TableGenerator<ChiaTable> for ChiaTableGenerator

source§

fn generate(&mut self, seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed. Read more
source§

fn generate_parallel(&mut self, seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed using parallelism. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere +

Trait Implementations§

source§

impl Clone for ChiaTableGenerator

source§

fn clone(&self) -> ChiaTableGenerator

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ChiaTableGenerator

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ChiaTableGenerator

source§

fn default() -> ChiaTableGenerator

Returns the “default value” for a type. Read more
source§

impl TableGenerator<ChiaTable> for ChiaTableGenerator

source§

fn generate(&mut self, seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed. Read more
source§

fn generate_parallel(&mut self, seed: &PosSeed) -> ChiaTable

Generate new table with 32 bytes seed using parallelism. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
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
source§

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 255f1906dc..4e929b0bfa 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
pub struct ShimTable { /* private fields */ }
Expand description

Subspace proof of space table.

Shim implementation.

-

Trait Implementations§

source§

impl Debug for ShimTable

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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
source§

fn generate(seed: &PosSeed) -> ShimTable

Generate new table with 32 bytes seed. Read more
source§

fn find_proof(&self, challenge_index: u32) -> Option<PosProof>

Try to find proof at challenge_index if it exists
source§

fn is_proof_valid( - seed: &PosSeed, +

Trait Implementations§

source§

impl Debug for ShimTable

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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
source§

fn generate(seed: &PosSeed) -> ShimTable

Generate new table with 32 bytes seed. Read more
source§

fn find_proof(&self, challenge_index: u32) -> Option<PosProof>

Try to find proof at challenge_index if it exists
source§

fn is_proof_valid( + seed: &PosSeed, challenge_index: u32, - proof: &PosProof -) -> bool

Check whether proof created earlier is valid and return quality bytes if yes
source§

fn generate_parallel(seed: &PosSeed) -> Self

Generate new table with 32 bytes seed using parallelism. Read more
source§

fn generator() -> Self::Generator

Returns a stateful table generator with better performance
source§

impl TableGenerator<ShimTable> for ShimTableGenerator

source§

fn generate(&mut self, seed: &PosSeed) -> ShimTable

Generate new table with 32 bytes seed. Read more
source§

fn generate_parallel(&mut self, seed: &PosSeed) -> T

Generate new table with 32 bytes seed using parallelism. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + proof: &PosProof +) -> bool

Check whether proof created earlier is valid and return quality bytes if yes
source§

fn generate_parallel(seed: &PosSeed) -> Self

Generate new table with 32 bytes seed using parallelism. Read more
source§

fn generator() -> Self::Generator

Returns a stateful table generator with better performance
source§

impl TableGenerator<ShimTable> for ShimTableGenerator

source§

fn generate(&mut self, seed: &PosSeed) -> ShimTable

Generate new table with 32 bytes seed. Read more
source§

fn generate_parallel(&mut self, seed: &PosSeed) -> T

Generate new table with 32 bytes seed using parallelism. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
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
source§

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 a4b8192c92..5513c02b37 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
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 more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ShimTableGenerator

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ShimTableGenerator

source§

fn default() -> ShimTableGenerator

Returns the “default value” for a type. Read more
source§

impl TableGenerator<ShimTable> for ShimTableGenerator

source§

fn generate(&mut self, seed: &PosSeed) -> ShimTable

Generate new table with 32 bytes seed. Read more
source§

fn generate_parallel(&mut self, seed: &PosSeed) -> T

Generate new table with 32 bytes seed using parallelism. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere +

Trait Implementations§

source§

impl Clone for ShimTableGenerator

source§

fn clone(&self) -> ShimTableGenerator

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ShimTableGenerator

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ShimTableGenerator

source§

fn default() -> ShimTableGenerator

Returns the “default value” for a type. Read more
source§

impl TableGenerator<ShimTable> for ShimTableGenerator

source§

fn generate(&mut self, seed: &PosSeed) -> ShimTable

Generate new table with 32 bytes seed. Read more
source§

fn generate_parallel(&mut self, seed: &PosSeed) -> T

Generate new table with 32 bytes seed using parallelism. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/subspace_proof_of_space/trait.Table.html b/subspace_proof_of_space/trait.Table.html index e3811f78a4..1430eca0cd 100644 --- a/subspace_proof_of_space/trait.Table.html +++ b/subspace_proof_of_space/trait.Table.html @@ -4,29 +4,29 @@ const TABLE_TYPE: PosTableType; // Required methods - fn generate(seed: &PosSeed) -> Self; - fn find_proof(&self, challenge_index: u32) -> Option<PosProof>; + fn generate(seed: &PosSeed) -> Self; + fn find_proof(&self, challenge_index: u32) -> Option<PosProof>; fn is_proof_valid( - seed: &PosSeed, + seed: &PosSeed, challenge_index: u32, - proof: &PosProof + proof: &PosProof ) -> bool; // 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§

source

type Generator: TableGenerator<Self>

Instance that can be used to generate tables with better performance

Required Associated Constants§

source

const TABLE_TYPE: PosTableType

Proof of space table type

-

Required Methods§

source

fn generate(seed: &PosSeed) -> Self

Generate new table with 32 bytes seed.

+

Required Methods§

source

fn generate(seed: &PosSeed) -> Self

Generate new table with 32 bytes seed.

There is also Self::generate_parallel() that can achieve lower latency.

-
source

fn find_proof(&self, challenge_index: u32) -> Option<PosProof>

Try to find proof at challenge_index if it exists

+
source

fn find_proof(&self, challenge_index: u32) -> Option<PosProof>

Try to find proof at challenge_index if it exists

source

fn is_proof_valid( - seed: &PosSeed, + seed: &PosSeed, challenge_index: u32, - proof: &PosProof + proof: &PosProof ) -> bool

Check whether proof created earlier is valid and return quality bytes if yes

-

Provided Methods§

source

fn generate_parallel(seed: &PosSeed) -> Self

Generate new table with 32 bytes seed using parallelism.

+

Provided Methods§

source

fn 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.

source

fn 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 eed976cc97..611d34629e 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§

source

fn generate(&mut self, seed: &PosSeed) -> T

Generate new table with 32 bytes seed.

+

Required Methods§

source

fn 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§

source

fn generate_parallel(&mut self, seed: &PosSeed) -> T

Generate new table with 32 bytes seed using parallelism.

+

Provided Methods§

source

fn 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§

\ 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 6b7fd81846..361f8ddf4f 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
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 b0d4eff5db..4690a143f6 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
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 8703a89b43..bad3c5482b 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

§piece_offset: u16

Index of the piece that failed verification

§max_pieces_in_sector: u16

How many pieces one sector is supposed to contain (max)

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 5c908d65ab..b88d219ac4 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
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
pub fn calculate_block_weight(solution_range: SolutionRange) -> BlockWeight
Expand description

Calculate weight derived from provided solution range

\ No newline at end of file diff --git a/subspace_verification/fn.check_reward_signature.html b/subspace_verification/fn.check_reward_signature.html index 9933f685ec..125b327c87 100644 --- a/subspace_verification/fn.check_reward_signature.html +++ b/subspace_verification/fn.check_reward_signature.html @@ -1,7 +1,7 @@ check_reward_signature in subspace_verification - Rust
pub fn check_reward_signature(
     hash: &[u8],
-    signature: &RewardSignature,
-    public_key: &PublicKey,
+    signature: &RewardSignature,
+    public_key: &PublicKey,
     reward_signing_context: &SigningContext
 ) -> Result<(), SignatureError>
Expand description

Check the reward signature validity.

\ No newline at end of file diff --git a/subspace_verification/fn.derive_next_solution_range.html b/subspace_verification/fn.derive_next_solution_range.html index 75053fe602..7d652e1afd 100644 --- a/subspace_verification/fn.derive_next_solution_range.html +++ b/subspace_verification/fn.derive_next_solution_range.html @@ -1,8 +1,8 @@ derive_next_solution_range in subspace_verification - Rust
pub fn derive_next_solution_range(
-    start_slot: SlotNumber,
-    current_slot: SlotNumber,
+    start_slot: SlotNumber,
+    current_slot: SlotNumber,
     slot_probability: (u64, u64),
-    current_solution_range: SolutionRange,
-    era_duration: BlockNumber
+    current_solution_range: SolutionRange,
+    era_duration: BlockNumber
 ) -> u64
Expand description

Derives next solution range based on the total era slots and slot probability

\ No newline at end of file diff --git a/subspace_verification/fn.derive_pot_entropy.html b/subspace_verification/fn.derive_pot_entropy.html index 39bf97aae0..0220c41c80 100644 --- a/subspace_verification/fn.derive_pot_entropy.html +++ b/subspace_verification/fn.derive_pot_entropy.html @@ -1,2 +1,2 @@ -derive_pot_entropy in subspace_verification - Rust
pub fn derive_pot_entropy(chunk: Scalar, proof_of_time: PotOutput) -> Blake3Hash
Expand description

Derive proof of time entropy from chunk and proof of time for injection purposes.

+derive_pot_entropy in subspace_verification - Rust
pub fn derive_pot_entropy(chunk: Scalar, proof_of_time: PotOutput) -> Blake3Hash
Expand description

Derive proof of time entropy from chunk and proof of time for injection purposes.

\ No newline at end of file diff --git a/subspace_verification/fn.is_within_solution_range.html b/subspace_verification/fn.is_within_solution_range.html index 5b46db4e2d..8e25216089 100644 --- a/subspace_verification/fn.is_within_solution_range.html +++ b/subspace_verification/fn.is_within_solution_range.html @@ -1,8 +1,8 @@ is_within_solution_range in subspace_verification - Rust
pub fn is_within_solution_range(
-    global_challenge: &Blake3Hash,
+    global_challenge: &Blake3Hash,
     chunk: &[u8; 32],
-    sector_slot_challenge: &SectorSlotChallenge,
-    solution_range: SolutionRange
-) -> Option<SolutionRange>
Expand description

Returns Some(solution_distance) if solution distance is within the solution range for provided + sector_slot_challenge: &SectorSlotChallenge, + solution_range: SolutionRange +) -> Option<SolutionRange>

Expand description

Returns Some(solution_distance) if solution distance is within the solution range for provided parameters.

\ No newline at end of file diff --git a/subspace_verification/fn.verify_solution.html b/subspace_verification/fn.verify_solution.html index 2bdc620946..f23b610786 100644 --- a/subspace_verification/fn.verify_solution.html +++ b/subspace_verification/fn.verify_solution.html @@ -1,10 +1,10 @@ verify_solution in subspace_verification - Rust
pub fn verify_solution<'a, PosTable, FarmerPublicKey, RewardAddress>(
-    solution: &'a Solution<FarmerPublicKey, RewardAddress>,
-    slot: SlotNumber,
+    solution: &'a Solution<FarmerPublicKey, RewardAddress>,
+    slot: SlotNumber,
     params: &'a VerifySolutionParams,
-    kzg: &'a Kzg
-) -> Result<SolutionRange, Error>where
+    kzg: &'a Kzg
+) -> Result<SolutionRange, Error>where
     PosTable: Table,
-    PublicKey: From<&'a FarmerPublicKey>,
Expand description

Verify whether solution is valid, returns solution distance that is <= solution_range/2 on + PublicKey: From<&'a FarmerPublicKey>,

Expand description

Verify whether solution is valid, returns solution distance that is <= solution_range/2 on success.

\ No newline at end of file diff --git a/subspace_verification/struct.PieceCheckParams.html b/subspace_verification/struct.PieceCheckParams.html index b020cb7621..8b359036cb 100644 --- a/subspace_verification/struct.PieceCheckParams.html +++ b/subspace_verification/struct.PieceCheckParams.html @@ -1,19 +1,19 @@ PieceCheckParams in subspace_verification - Rust
pub struct PieceCheckParams {
     pub max_pieces_in_sector: u16,
-    pub segment_commitment: SegmentCommitment,
-    pub recent_segments: HistorySize,
-    pub recent_history_fraction: (HistorySize, HistorySize),
-    pub min_sector_lifetime: HistorySize,
-    pub current_history_size: HistorySize,
-    pub sector_expiration_check_segment_commitment: Option<SegmentCommitment>,
+    pub segment_commitment: SegmentCommitment,
+    pub recent_segments: HistorySize,
+    pub recent_history_fraction: (HistorySize, HistorySize),
+    pub min_sector_lifetime: HistorySize,
+    pub current_history_size: HistorySize,
+    pub sector_expiration_check_segment_commitment: Option<SegmentCommitment>,
 }
Expand description

Parameters for checking piece validity

Fields§

§max_pieces_in_sector: u16

How many pieces one sector is supposed to contain (max)

-
§segment_commitment: SegmentCommitment

Segment commitment of segment to which piece belongs

-
§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

-
§current_history_size: HistorySize

Current size of the history

-
§sector_expiration_check_segment_commitment: Option<SegmentCommitment>

Segment commitment at min_sector_lifetime from sector creation (if exists)

+
§segment_commitment: SegmentCommitment

Segment commitment of segment to which piece belongs

+
§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

+
§current_history_size: HistorySize

Current size of the history

+
§sector_expiration_check_segment_commitment: Option<SegmentCommitment>

Segment commitment at min_sector_lifetime from sector creation (if exists)

Trait Implementations§

source§

impl Clone for PieceCheckParams

source§

fn clone(&self) -> PieceCheckParams

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PieceCheckParams

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Decode for PieceCheckParams

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_verification/struct.VerifySolutionParams.html b/subspace_verification/struct.VerifySolutionParams.html index c3dd1a4d3b..601f3bc054 100644 --- a/subspace_verification/struct.VerifySolutionParams.html +++ b/subspace_verification/struct.VerifySolutionParams.html @@ -1,10 +1,10 @@ VerifySolutionParams in subspace_verification - Rust
pub struct VerifySolutionParams {
-    pub proof_of_time: PotOutput,
-    pub solution_range: SolutionRange,
+    pub proof_of_time: PotOutput,
+    pub solution_range: SolutionRange,
     pub piece_check_params: Option<PieceCheckParams>,
 }
Expand description

Parameters for solution verification

-

Fields§

§proof_of_time: PotOutput

Proof of time for which solution is built

-
§solution_range: SolutionRange

Solution range

+

Fields§

§proof_of_time: PotOutput

Proof of time for which solution is built

+
§solution_range: SolutionRange

Solution range

§piece_check_params: Option<PieceCheckParams>

Parameters for checking piece validity.

If None, piece validity check will be skipped.

Trait Implementations§

source§

impl Clone for VerifySolutionParams

source§

fn clone(&self) -> VerifySolutionParams

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VerifySolutionParams

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Decode for VerifySolutionParams

source§

fn decode<__CodecInputEdqy: Input>(