From bdf01eb7754c2af60cea01f3704442686a9d2859 Mon Sep 17 00:00:00 2001 From: "github-merge-queue[bot]" Date: Fri, 6 Oct 2023 18:30:13 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20subspace?= =?UTF-8?q?/subspace@fdddc4ad08b8ba2b35a5eb3332998fe4f1f8b224=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/convert/trait.From.js | 2 +- implementors/core/error/trait.Error.js | 2 +- implementors/core/fmt/trait.Debug.js | 2 +- implementors/core/fmt/trait.Display.js | 2 +- search-index.js | 2 +- src/subspace_farmer/piece_cache.rs.html | 2 +- .../single_disk_farm/plotting.rs.html | 2 +- src/subspace_networking/node.rs.html | 154 +++++++++++++++++- src/subspace_networking/node_runner.rs.html | 2 +- src/subspace_networking/shared.rs.html | 2 +- .../utils/piece_provider.rs.html | 6 +- .../utils/rate_limiter.rs.html | 28 ++-- .../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 +- .../auditing/fn.audit_sector.html | 8 +- .../auditing/struct.AuditResult.html | 4 +- .../plotting/enum.PlottingError.html | 12 +- .../plotting/fn.plot_sector.html | 6 +- .../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 +- .../enum.GetClosestPeersError.html | 2 +- .../enum.SendRequestError.html | 2 +- subspace_networking/struct.Node.html | 33 ++-- .../domain/struct.DomainInstanceStarter.html | 4 +- .../chia/struct.ChiaQuality.html | 2 +- .../chia/struct.ChiaTable.html | 8 +- .../chia/struct.ChiaTableGenerator.html | 2 +- .../shim/struct.ShimQuality.html | 2 +- .../shim/struct.ShimTable.html | 8 +- .../shim/struct.ShimTableGenerator.html | 2 +- subspace_proof_of_space/trait.Quality.html | 8 +- 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 | 10 +- subspace_verification/fn.verify_solution.html | 10 +- .../struct.PieceCheckParams.html | 24 +-- .../struct.VerifySolutionParams.html | 8 +- 67 files changed, 405 insertions(+), 252 deletions(-) diff --git a/implementors/core/clone/trait.Clone.js b/implementors/core/clone/trait.Clone.js index aae52f60556..65b430b0a8e 100644 --- a/implementors/core/clone/trait.Clone.js +++ b/implementors/core/clone/trait.Clone.js @@ -36,7 +36,7 @@ "subspace_farmer":[["impl Clone for SingleDiskFarmInfo"],["impl Clone for SingleDiskSemaphore"],["impl Clone for Identity"],["impl Clone for PieceReader"],["impl Clone for NodeRpcClient"],["impl Clone for PieceCache"],["impl Clone for DiskPieceCache"],["impl Clone for SingleDiskFarmId"],["impl Clone for Offset"]], "subspace_farmer_components":[["impl<T: Clone> Clone for ReadAtOffset<T>"],["impl<'a, Sector> Clone for AuditResult<'a, Sector>where\n Sector: 'a + Clone,"],["impl Clone for SectorContentsMap"],["impl Clone for SectorMetadataChecksummed"],["impl Clone for PlotRecord"],["impl<'a, Sector> Clone for SolutionCandidates<'a, Sector>where\n Sector: Clone + 'a,"],["impl Clone for PieceGetterRetryPolicy"],["impl Clone for FarmerProtocolInfo"],["impl Clone for SectorContentsMapEncodeIntoError"],["impl Clone for PlottedSector"],["impl Clone for SectorContentsMapIterationError"],["impl Clone for SectorMetadata"],["impl Clone for SectorContentsMapFromBytesError"]], "subspace_fraud_proof":[["impl<Client, Block> Clone for VerifierClient<Client, Block>"],["impl<CBlock, CClient, Hash, Exec, VerifierClient> Clone for InvalidTransactionProofVerifier<CBlock, CClient, Hash, Exec, VerifierClient>where\n VerifierClient: Clone,"],["impl<VerifierBlock, ITPVerifier, ISTPVerifier> Clone for ProofVerifier<VerifierBlock, ITPVerifier, ISTPVerifier>"],["impl<CBlock, CClient, Exec, Hash, VerifierClient> Clone for InvalidStateTransitionProofVerifier<CBlock, CClient, Exec, Hash, VerifierClient>where\n Exec: Clone,\n VerifierClient: Clone,"]], -"subspace_networking":[["impl Clone for SegmentHeaderResponse"],["impl Clone for SegmentHeaderRequest"],["impl Clone for Config"],["impl Clone for MultihashCode"],["impl Clone for Box<dyn RequestHandler>"],["impl Clone for Notification"],["impl<T: Clone> Clone for KeyWrapper<T>"],["impl Clone for RetryPolicy"],["impl Clone for PeerInfo"],["impl Clone for PeerDiscovered"],["impl Clone for PieceByIndexRequest"],["impl<K: Clone> Clone for UniqueRecordBinaryHeap<K>"],["impl Clone for Node"],["impl Clone for PieceByIndexResponse"]], +"subspace_networking":[["impl Clone for SegmentHeaderResponse"],["impl Clone for SegmentHeaderRequest"],["impl Clone for Config"],["impl Clone for MultihashCode"],["impl Clone for Box<dyn RequestHandler>"],["impl Clone for Notification"],["impl Clone for Node"],["impl<T: Clone> Clone for KeyWrapper<T>"],["impl Clone for RetryPolicy"],["impl Clone for PeerInfo"],["impl Clone for PeerDiscovered"],["impl Clone for PieceByIndexRequest"],["impl<K: Clone> Clone for UniqueRecordBinaryHeap<K>"],["impl Clone for PieceByIndexResponse"]], "subspace_node":[["impl Clone for PurgeChainCmd"]], "subspace_proof_of_space":[["impl<const K: u8> Clone for TablesCache<K>"],["impl Clone for ChiaTableGenerator"],["impl Clone for PosTableType"],["impl Clone for ShimTableGenerator"]], "subspace_rpc_primitives":[["impl Clone for RewardSigningInfo"],["impl Clone for SlotInfo"],["impl Clone for SolutionResponse"],["impl Clone for FarmerAppInfo"],["impl Clone for RewardSignatureResponse"],["impl Clone for NodeSyncStatus"]], diff --git a/implementors/core/convert/trait.From.js b/implementors/core/convert/trait.From.js index 9ff9c56611c..fdab258ae43 100644 --- a/implementors/core/convert/trait.From.js +++ b/implementors/core/convert/trait.From.js @@ -25,7 +25,7 @@ "subspace_core_primitives":[["impl From<&Scalar> for [u8; 32]"],["impl From<PieceOffset> for u16"],["impl From<[u8; 48]> for RecordWitness"],["impl From<[u8; 160]> for PosProof"],["impl From<SBucket> for u32"],["impl From<FsG1> for Witness"],["impl From<u8> for U256"],["impl From<Randomness> for [u8; 32]"],["impl From<Scalar> for [u8; 32]"],["impl From<RecordWitness> for [u8; 48]"],["impl From<u64> for U256"],["impl From<[u8; 48]> for SegmentCommitment"],["impl From<[u8; 16]> for PotOutput"],["impl From<[u8; 64]> for RewardSignature"],["impl From<NonZeroU64> for HistorySize"],["impl From<u16> for PieceOffset"],["impl From<Witness> for RecordWitness"],["impl From<u128> for U256"],["impl From<PosQualityBytes> for [u8; 32]"],["impl From<Witness> for FsG1"],["impl From<[u8; 16]> for PotSeed"],["impl From<&[u8; 31]> for Scalar"],["impl From<[u8; 48]> for ChunkWitness"],["impl From<FsG1> for Commitment"],["impl From<RewardSignature> for [u8; 64]"],["impl From<Commitment> for SegmentCommitment"],["impl From<PublicKey> for [u8; 32]"],["impl From<Commitment> for [u8; 48]"],["impl From<HistorySize> for NonZeroU64"],["impl From<u64> for SegmentIndex"],["impl From<[u8; 32]> for PosQualityBytes"],["impl From<u16> for SBucket"],["impl From<SegmentIndex> for u64"],["impl From<FsFr> for Scalar"],["impl From<&Commitment> for [u8; 48]"],["impl From<[u8; 32]> for PublicKey"],["impl From<PosProof> for [u8; 160]"],["impl From<[u8; 31]> for Scalar"],["impl From<SegmentIndex> for HistorySize"],["impl From<[u8; 32]> for Randomness"],["impl From<Commitment> for RecordCommitment"],["impl From<&Witness> for [u8; 48]"],["impl From<u16> for U256"],["impl From<u32> for U256"],["impl From<RecordCommitment> for [u8; 48]"],["impl From<FsPoly> for Polynomial"],["impl From<PieceOffset> for usize"],["impl From<PieceOffset> for u64"],["impl From<Scalar> for FsFr"],["impl From<Piece> for Vec<u8>"],["impl From<&PieceArray> for Piece"],["impl From<PosSeed> for [u8; 32]"],["impl From<SBucket> for usize"],["impl From<PieceIndex> for u64"],["impl From<[u8; 32]> for PosSeed"],["impl From<PieceArray> for FlatPieces"],["impl From<[u8; 48]> for RecordCommitment"],["impl From<[u8; 16]> for PotKey"],["impl From<Witness> for [u8; 48]"],["impl From<SBucket> for u16"],["impl From<PieceOffset> for u32"],["impl From<Witness> for ChunkWitness"],["impl From<Commitment> for FsG1"],["impl From<u64> for PieceIndex"],["impl From<ChunkWitness> for [u8; 48]"],["impl From<SegmentCommitment> for [u8; 48]"]], "subspace_farmer":[["impl From<ProvingError> for FarmingError"],["impl From<Error> for FarmingError"],["impl From<PlottingError> for PlottingError"],["impl From<Ulid> for SingleDiskFarmId"],["impl From<Error> for DiskPieceCacheError"],["impl From<DiskPieceCacheError> for SingleDiskFarmError"],["impl From<Error> for SingleDiskFarmError"],["impl From<Error> for PlottingError"],["impl From<ThreadPoolBuildError> for FarmingError"],["impl From<FarmingError> for BackgroundTaskError"],["impl From<PlottingError> for BackgroundTaskError"]], "subspace_farmer_components":[["impl From<ReadingError> for ProvingError"],["impl From<Error> for ProvingError"],["impl From<SectorContentsMapFromBytesError> for ReadingError"],["impl From<Error> for ReadingError"],["impl From<SectorMetadata> for SectorMetadataChecksummed"],["impl From<SectorContentsMapFromBytesError> for ProvingError"]], -"subspace_networking":[["impl From<SendError> for GetClosestPeersError"],["impl From<Error> for NetworkParametersPersistenceError"],["impl From<Error> for SendRequestError"],["impl From<Error> for CreationError"],["impl From<Canceled> for SubscribeError"],["impl From<MultihashCode> for u64"],["impl From<SubscriptionError> for SubscribeError"],["impl From<SendError> for SubscribeError"],["impl From<Canceled> for GetClosestPeersError"],["impl From<TransportError<Error>> for CreationError"],["impl From<KeyWrapper<PieceIndex>> for Key"],["impl From<SendError> for SendRequestError"],["impl From<Canceled> for SendRequestError"]], +"subspace_networking":[["impl From<Error> for SendRequestError"],["impl From<Error> for NetworkParametersPersistenceError"],["impl From<Error> for CreationError"],["impl From<Canceled> for SubscribeError"],["impl From<SubscriptionError> for SubscribeError"],["impl From<SendError> for GetClosestPeersError"],["impl From<SendError> for SendRequestError"],["impl From<MultihashCode> for u64"],["impl From<SendError> for SubscribeError"],["impl From<Canceled> for GetClosestPeersError"],["impl From<TransportError<Error>> for CreationError"],["impl From<KeyWrapper<PieceIndex>> for Key"],["impl From<Canceled> for SendRequestError"]], "subspace_runtime":[["impl From<Error<Runtime>> for RuntimeError"],["impl From<OriginCaller> for RuntimeOrigin"],["impl From<RuntimeOrigin> for Result<Origin<Runtime>, RuntimeOrigin>"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Event<Runtime, ()>> for RuntimeEvent"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Option<<Runtime as Config>::AccountId>> for RuntimeOrigin"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<RawOrigin<<Runtime as Config>::AccountId>> for RuntimeOrigin"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Event> for RuntimeEvent"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Event> for RuntimeEvent"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Error<Runtime, ()>> for RuntimeError"],["impl From<<Pallet<Runtime, ()> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<RawOrigin<<Runtime as Config>::AccountId>> for OriginCaller"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"]], "subspace_service":[["impl From<BlockRelayConfigurationError> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<NetworkParametersPersistenceError> for DsnConfigurationError"],["impl From<AddrParseError> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<CreationError> for DsnConfigurationError"],["impl From<DsnConfigurationError> for Error"]], "subspace_test_runtime":[["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<RuntimeOrigin> for Result<Origin<Runtime>, RuntimeOrigin>"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<OriginCaller> for RuntimeOrigin"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Option<<Runtime as Config>::AccountId>> for RuntimeOrigin"],["impl From<Event> for RuntimeEvent"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Error<Runtime, ()>> for RuntimeError"],["impl From<<Pallet<Runtime, ()> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Event<Runtime, ()>> for RuntimeEvent"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Event> for RuntimeEvent"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<RawOrigin<<Runtime as Config>::AccountId>> for OriginCaller"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<RawOrigin<<Runtime as Config>::AccountId>> for RuntimeOrigin"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Error<Runtime>> for RuntimeError"],["impl From<Event<Runtime>> for RuntimeEvent"],["impl From<<Pallet<Runtime> as Callable<Runtime>>::RuntimeCall> for RuntimeCall"]] diff --git a/implementors/core/error/trait.Error.js b/implementors/core/error/trait.Error.js index c2c1863d260..003fdb39278 100644 --- a/implementors/core/error/trait.Error.js +++ b/implementors/core/error/trait.Error.js @@ -6,7 +6,7 @@ "subspace_archiving":[["impl Error for ReconstructorInstantiationError"],["impl Error for ReconstructorError"],["impl Error for ArchiverInstantiationError"],["impl Error for ReconstructorError"],["impl Error for ReconstructorInstantiationError"]], "subspace_farmer":[["impl Error for PlottingError"],["impl Error for FarmingError"],["impl Error for SingleDiskFarmScrubError"],["impl Error for BackgroundTaskError"],["impl Error for DiskPieceCacheError"],["impl Error for SingleDiskFarmError"]], "subspace_farmer_components":[["impl Error for ProvingError"],["impl Error for ReadingError"],["impl Error for SectorContentsMapIterationError"],["impl Error for PlottingError"],["impl Error for SectorContentsMapEncodeIntoError"],["impl Error for SectorContentsMapFromBytesError"]], -"subspace_networking":[["impl Error for CreationError"],["impl Error for GetClosestPeersError"],["impl Error for NetworkParametersPersistenceError"],["impl Error for SendRequestError"],["impl Error for SubscribeError"]], +"subspace_networking":[["impl Error for CreationError"],["impl Error for SendRequestError"],["impl Error for SubscribeError"],["impl Error for NetworkParametersPersistenceError"],["impl Error for GetClosestPeersError"]], "subspace_proof_of_time":[["impl Error for PotError"]], "subspace_service":[["impl Error for DsnConfigurationError"],["impl Error for Error"]], "subspace_verification":[["impl Error for Error"]] diff --git a/implementors/core/fmt/trait.Debug.js b/implementors/core/fmt/trait.Debug.js index 23436fabc2a..b1325523890 100644 --- a/implementors/core/fmt/trait.Debug.js +++ b/implementors/core/fmt/trait.Debug.js @@ -35,7 +35,7 @@ "subspace_erasure_coding":[["impl Debug for ErasureCoding"]], "subspace_farmer":[["impl Debug for SingleDiskSemaphore"],["impl Debug for DiskPieceCache"],["impl Debug for SingleDiskFarmId"],["impl Debug for Offset"],["impl Debug for NodeRpcClient"],["impl Debug for BackgroundTaskError"],["impl Debug for SingleDiskFarmInfo"],["impl Debug for SingleDiskFarmScrubError"],["impl Debug for SingleDiskFarmError"],["impl Debug for ReadersAndPieces"],["impl Debug for PieceReader"],["impl Debug for FarmingError"],["impl Debug for PlottingError"],["impl Debug for PieceCache"],["impl Debug for DiskPieceCacheError"]], "subspace_farmer_components":[["impl Debug for SectorContentsMapEncodeIntoError"],["impl Debug for SectorMetadataChecksummed"],["impl Debug for PlottedSector"],["impl Debug for PieceGetterRetryPolicy"],["impl<'a, Sector> Debug for AuditResult<'a, Sector>where\n Sector: 'a + Debug,"],["impl Debug for PlottingError"],["impl Debug for PlotRecord"],["impl Debug for SectorContentsMap"],["impl Debug for FarmerProtocolInfo"],["impl<T: Debug> Debug for ReadAtOffset<T>"],["impl Debug for SectorMetadata"],["impl Debug for SectorContentsMapIterationError"],["impl<'a, Sector> Debug for SolutionCandidates<'a, Sector>where\n Sector: 'a + Debug,"],["impl Debug for SectorContentsMapFromBytesError"],["impl Debug for ReadingError"],["impl Debug for ProvingError"]], -"subspace_networking":[["impl Debug for TopicSubscription"],["impl Debug for Notification"],["impl Debug for PeerInfoProvider"],["impl Debug for Config"],["impl<K: Debug> Debug for UniqueRecordBinaryHeap<K>"],["impl Debug for PieceByIndexResponse"],["impl Debug for GetClosestPeersError"],["impl Debug for PeerDiscovered"],["impl Debug for RetryPolicy"],["impl Debug for SegmentHeaderRequest"],["impl<T: Debug> Debug for KeyWrapper<T>"],["impl Debug for SendRequestError"],["impl Debug for CreationError"],["impl Debug for NetworkParametersPersistenceError"],["impl Debug for SegmentHeaderResponse"],["impl Debug for PeerInfo"],["impl Debug for MultihashCode"],["impl Debug for SubscribeError"],["impl Debug for PieceByIndexRequest"],["impl<LocalRecordProvider> Debug for Config<LocalRecordProvider>"],["impl Debug for Node"],["impl Debug for NewPeerInfo"]], +"subspace_networking":[["impl Debug for Notification"],["impl Debug for PeerInfoProvider"],["impl Debug for Config"],["impl<K: Debug> Debug for UniqueRecordBinaryHeap<K>"],["impl Debug for PieceByIndexResponse"],["impl Debug for PeerDiscovered"],["impl Debug for GetClosestPeersError"],["impl Debug for RetryPolicy"],["impl Debug for SegmentHeaderRequest"],["impl<T: Debug> Debug for KeyWrapper<T>"],["impl Debug for CreationError"],["impl Debug for SendRequestError"],["impl Debug for NetworkParametersPersistenceError"],["impl Debug for SegmentHeaderResponse"],["impl Debug for PeerInfo"],["impl Debug for MultihashCode"],["impl Debug for Node"],["impl Debug for PieceByIndexRequest"],["impl Debug for TopicSubscription"],["impl Debug for SubscribeError"],["impl<LocalRecordProvider> Debug for Config<LocalRecordProvider>"],["impl Debug for NewPeerInfo"]], "subspace_node":[["impl Debug for Cli"],["impl Debug for DomainCli"],["impl Debug for PurgeChainCmd"],["impl Debug for Subcommand"],["impl Debug for Subcommand"]], "subspace_proof_of_space":[["impl<const K: u8> Debug for Tables<K>where\n EvaluatableUsize<{ _ }>: Sized,\n EvaluatableUsize<{ _ }>: Sized,\n EvaluatableUsize<{ _ }>: Sized,\n EvaluatableUsize<{ _ }>: Sized,\n EvaluatableUsize<{ _ }>: Sized,\n EvaluatableUsize<{ _ }>: Sized,\n EvaluatableUsize<{ _ }>: Sized,"],["impl<const K: u8> Debug for TablesCache<K>"],["impl Debug for ShimTableGenerator"],["impl<'a> Debug for ChiaQuality<'a>"],["impl Debug for ChiaTableGenerator"],["impl<'a> Debug for ShimQuality<'a>"],["impl Debug for ChiaTable"],["impl Debug for PosTableType"],["impl Debug for ShimTable"]], "subspace_proof_of_time":[["impl Debug for PotError"]], diff --git a/implementors/core/fmt/trait.Display.js b/implementors/core/fmt/trait.Display.js index f5355569f19..31864c11f15 100644 --- a/implementors/core/fmt/trait.Display.js +++ b/implementors/core/fmt/trait.Display.js @@ -7,7 +7,7 @@ "subspace_core_primitives":[["impl Display for PotSeed"],["impl Display for U256"],["impl Display for PublicKey"],["impl Display for PieceIndex"],["impl Display for PieceOffset"],["impl Display for HistorySize"],["impl Display for SegmentIndex"],["impl Display for PotKey"],["impl Display for PotOutput"],["impl Display for SBucket"]], "subspace_farmer":[["impl Display for SingleDiskFarmScrubError"],["impl Display for Offset"],["impl Display for FarmingError"],["impl Display for DiskPieceCacheError"],["impl Display for SingleDiskFarmError"],["impl Display for BackgroundTaskError"],["impl Display for SingleDiskFarmId"],["impl Display for PlottingError"]], "subspace_farmer_components":[["impl Display for SectorContentsMapFromBytesError"],["impl Display for SectorContentsMapEncodeIntoError"],["impl Display for ReadingError"],["impl Display for ProvingError"],["impl Display for SectorContentsMapIterationError"],["impl Display for PlottingError"]], -"subspace_networking":[["impl Display for NetworkParametersPersistenceError"],["impl Display for SendRequestError"],["impl Display for SubscribeError"],["impl Display for CreationError"],["impl Display for GetClosestPeersError"]], +"subspace_networking":[["impl Display for NetworkParametersPersistenceError"],["impl Display for GetClosestPeersError"],["impl Display for CreationError"],["impl Display for SubscribeError"],["impl Display for SendRequestError"]], "subspace_proof_of_time":[["impl Display for PotError"]], "subspace_service":[["impl Display for Error"],["impl Display for DsnConfigurationError"]], "subspace_verification":[["impl Display for Error"]] diff --git a/search-index.js b/search-index.js index c10a788ba35..158db03b2a8 100644 --- a/search-index.js +++ b/search-index.js @@ -46,7 +46,7 @@ var searchIndex = JSON.parse('{\ "subspace_farmer_components":{"doc":"Components of the reference implementation of Subspace …","t":"DIDALLLLLLLLLLLLLLLALLLLMLLLLMMLAAKLLAMMALLLLLLLLLLLLLDFMLLLLLLLLLLLMLLLLLLIIKKKKKKKNNNNNIENNDENLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLMFLMMMLLLLLLLLLLLLLLLLLLMMMMMMMMNNNNNIENDKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMNNNNNNDENLLLLLLMLLLLLLLLLLLLLLLLLLFFFFMLLLLLLLLLLLLLMMMMMMMMMMMNDNNNNDEEEDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLMMFFFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMM","n":["FarmerProtocolInfo","ReadAt","ReadAtOffset","auditing","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","drop","drop","file_ext","fmt","fmt","from","from","history_size","init","init","into","into","max_pieces_in_sector","min_sector_lifetime","offset","plotting","proving","read_at","read_at","read_at","reading","recent_history_fraction","recent_segments","sector","serialize","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unique_saturated_into","unique_saturated_into","vzip","vzip","AuditResult","audit_sector","best_solution_distance","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","into","solution_candidates","to_owned","try_from","try_into","type_id","unique_saturated_into","vzip","FileExt","OpenOptionsExt","advise_random_access","advise_random_access","advise_sequential_access","advise_sequential_access","preallocate","read_exact_at","write_all_at","BadSectorMetadataOutputSize","BadSectorOutputSize","FailedToRetrievePiece","InvalidErasureCodingInstance","Limited","PieceGetter","PieceGetterRetryPolicy","PieceNotFound","PieceRecoveryFailed","PlottedSector","PlottingError","Unlimited","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","eq","equivalent","fmt","fmt","fmt","fmt","from","from","from","get_piece","init","init","init","into","into","into","piece_indexes","plot_sector","provide","sector_id","sector_index","sector_metadata","to_owned","to_owned","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unique_saturated_into","unique_saturated_into","unique_saturated_into","vzip","vzip","vzip","error","expected","expected","piece_index","piece_index","piece_index","provided","provided","FailedToCreateChunkWitness","FailedToCreatePolynomialForRecord","FailedToDecodeSectorContentsMap","InvalidErasureCodingInstance","Io","ProvableSolutions","ProvingError","RecordReadingError","SolutionCandidates","best_solution_distance","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","from","from","from","from","from","init","init","into","into","into_solutions","is_empty","len","provide","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","provide","read_piece","read_sector_record_chunks","recover_extended_record_chunks","recover_source_record_chunks","scalars","source","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","unique_saturated_into","unique_saturated_into","vzip","vzip","witness","actual","chunk_location","chunk_location","encoded_chunk_used","error","error","error","expected","piece_offset","s_bucket","ChecksumMismatch","EncodedChunksUsed","InvalidBytesLength","InvalidBytesLength","InvalidEncodedRecordChunks","SBucketOutOfRange","SectorContentsMap","SectorContentsMapEncodeIntoError","SectorContentsMapFromBytesError","SectorContentsMapIterationError","SectorMetadata","SectorMetadataChecksummed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","decode","decode","decode_all","decode_all","decode_all_with_depth_limit","decode_all_with_depth_limit","decode_with_depth_limit","decode_with_depth_limit","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","encode","encode_into","encode_to","encode_to","encoded_size","encoded_size","eq","eq","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bytes","history_size","init","init","init","init","init","init","init","into","into","into","into","into","into","into","iter","iter_mut","iter_record_bitfields","iter_record_bitfields_mut","iter_record_chunk_to_plot","iter_s_bucket_encoded_record_chunks_used","iter_s_bucket_records","new","num_encoded_record_chunks","par_iter_record_chunk_to_plot","pieces_in_sector","provide","provide","provide","s_bucket_offsets","s_bucket_sizes","s_bucket_sizes","sector_index","sector_record_chunks_size","sector_record_metadata_size","sector_size","size_hint","size_hint","to_keyed_vec","to_keyed_vec","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","unique_saturated_into","using_encoded","vzip","vzip","vzip","vzip","vzip","vzip","vzip","actual","expected","actual","actual","expected","max","max","provided"],"q":[[0,"subspace_farmer_components"],[54,"subspace_farmer_components::auditing"],[75,"subspace_farmer_components::file_ext"],[84,"subspace_farmer_components::plotting"],[156,"subspace_farmer_components::plotting::PlottingError"],[164,"subspace_farmer_components::proving"],[215,"subspace_farmer_components::proving::ProvingError"],[220,"subspace_farmer_components::reading"],[273,"subspace_farmer_components::reading::ReadingError"],[283,"subspace_farmer_components::sector"],[468,"subspace_farmer_components::sector::SectorContentsMapEncodeIntoError"],[470,"subspace_farmer_components::sector::SectorContentsMapFromBytesError"],[474,"subspace_farmer_components::sector::SectorContentsMapIterationError"]],"d":["Information about the protocol necessary for farmer …","Trait for reading data at specific offset","Reader with fixed offset added to all attempted reads","","","","","","","","","","","","","","","","","File extension trait","","","Returns the argument unchanged.","Returns the argument unchanged.","Size of the blockchain history","","","Calls U::from(self).","Calls U::from(self).","How many pieces one sector is supposed to contain (max)","Minimum lifetime of a plotted sector, measured in archived …","Get implementation of ReadAt that add specified offset to …","","","Fill the buffer by reading bytes at a specific offset","","","","Fraction of pieces from the “recent history” (…","Number of latest archived segments that are considered “…","","","","","","","","","","","","","","","Result of sector audit","Audit a single sector and generate a stream of solutions, …","Best solution distance found","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Solution candidates","","","","","","","Extension convenience trait that allows pre-allocating …","","Advise OS/file system that file will use random access and …","Advise OS/file system that file will use random access and …","Advise OS/file system that file will use sequential access …","Advise OS/file system that file will use sequential access …","Make sure file has specified number of bytes allocated for …","Read exact number of bytes at a specific offset","Write all provided bytes at a specific offset","Bad sector metadata output size","Bad sector output size","Failed to retrieve piece","Invalid erasure coding instance","Retry N times (including zero)","Duplicate trait for the …","Defines retry policy on error during piece acquiring.","Piece not found, can’t create sector, this should never …","Can’t recover missing piece","Information about sector that was plotted","Plotting status","No restrictions on retries","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Indexes of pieces that were plotted","Plot a single sector, where sector and sector_metadata …","","Sector ID","Sector index","Sector metadata","","","","","","","","","","","","","","","","","","","Lower-level error","Expected size","Expected size","Piece index","Piece index","Piece index","Actual size","Actual size","Failed to create chunk witness","Failed to create polynomial for record","Failed to decode sector contents map","Invalid erasure coding instance","I/O error occurred","Solutions that can be proven if necessary","Errors that happen during proving","Record reading error","Container for solutions","Best solution distance found, None in case iterator is …","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","Returns true if no candidates inside","Total number of candidates","","","","","","","","","","","","","","","Chunk index","Lower-level error","Lower-level error","Piece offset","Piece offset","Checksum mismatch","Failed to decode sector contents map","Failed to erasure-decode record","Failed to read chunk.","Invalid chunk, possible disk corruption","I/O error occurred","Record contained in the plot","Errors that happen during reading","Wrong record size after decoding","","","","","","","Record commitment","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","Read piece from sector","Read sector record chunks, only plotted s-buckets are …","Given sector record chunks recover extended record chunks …","Given sector record chunks recover source record chunks in …","Record scalars","","","","","","","","","","","","","","Record witness","Actual size in bytes","Chunk location","Chunk location","Indicates whether chunk was encoded","Low-level error","Lower-level error","Lower-level error","Expected size in bytes","Piece offset","S-bucket","Checksum mismatch","Wrapper data structure that allows to iterate mutably over …","Invalid bytes length","Invalid bytes length","Invalid number of encoded record chunks","S-bucket provided is out of range","Abstraction on top of bitfields that allow making sense of …","Error happening when trying to encode SectorContentsMap …","Error happening when trying to create SectorContentsMap …","Error happening when trying to create SectorContentsMap …","Metadata of the plotted sector","Same as SectorMetadata, but with checksums verified during …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Encode internal contents into output","","","Size of encoded checksummed sector metadata.","Size of sector contents map when encoded and stored in the …","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Reconstruct sector contents map from bytes.","Size of the blockchain history at time of sector creation","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Produces an iterator over encoded chunks bitfields.","Produces a mutable iterator over encoded chunks bitfields.","Iterate over individual record bitfields","Iterate mutably over individual record bitfields","Creates an iterator of …","Iterate over chunks of s-bucket indicating if encoded …","Creates an iterator of (piece_offset, encoded_chunk_used), …","Create new sector contents map initialized with zeroes to …","Number of encoded chunks in each record","Creates an iterator of …","Number of pieces stored in this sector","","","","Returns offsets of each s-bucket relatively to the …","Returns sizes of each s-bucket","S-bucket sizes in a sector","Sector index","Size of the part of the plot containing record chunks …","Size of the part of the plot containing record metadata.","Exact sector plot size (sector contents map, record …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Actual length","Expected length","Actual length","Actual number of encoded record chunks","Expected length","Max supported","Max s-bucket","Provided s-bucket"],"i":[0,0,0,0,2,3,2,3,2,3,2,3,2,3,2,3,3,2,3,0,2,3,2,3,3,2,3,2,3,3,3,14,0,0,14,2,2,0,3,3,0,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0,0,72,73,72,73,73,73,73,28,28,28,28,25,0,0,28,28,0,0,25,25,26,28,25,26,28,25,26,25,26,25,25,26,28,25,26,28,25,26,28,25,25,25,26,28,28,25,26,28,33,25,26,28,25,26,28,26,0,28,26,26,26,25,26,28,25,26,28,25,26,28,25,26,28,25,26,28,25,26,28,74,75,76,77,78,74,75,76,41,41,41,41,41,0,0,41,0,47,41,40,41,40,40,40,41,40,41,40,41,40,41,41,40,41,41,41,41,40,41,40,41,40,40,40,40,41,41,40,41,41,40,41,40,41,40,41,40,41,40,79,80,79,80,79,43,43,43,43,43,43,0,0,43,43,49,43,49,49,49,49,43,49,43,49,43,49,43,43,49,43,43,43,49,43,49,43,49,43,0,0,0,0,49,43,49,43,43,49,43,49,43,49,43,49,43,49,49,81,82,83,83,82,83,84,81,84,83,44,0,44,60,44,61,0,0,0,0,0,0,64,59,21,44,60,61,55,64,59,21,44,60,61,55,59,21,44,60,61,55,59,21,44,60,61,55,59,21,59,21,59,21,59,21,64,59,21,21,44,60,61,55,64,59,21,21,44,60,61,55,64,64,59,21,44,60,61,55,21,55,59,21,21,55,44,60,61,44,60,61,59,21,44,44,60,60,61,61,55,64,59,21,21,44,60,61,55,55,59,64,59,21,44,60,61,55,64,59,21,44,60,61,55,64,64,55,55,55,55,55,55,55,55,59,44,60,61,59,55,59,59,0,0,0,59,21,59,21,59,21,44,60,61,55,44,60,61,64,59,21,44,60,61,55,64,59,21,44,60,61,55,64,59,21,44,60,61,55,64,59,21,44,60,61,55,21,64,59,21,44,60,61,55,85,85,86,87,86,87,88,88],"f":[0,0,0,0,[[]],[[]],[[]],[[]],[[[2,[1]]],[[2,[1]]]],[3,3],[[]],[[]],[4],[4],[4],[4],[5,[[6,[3]]]],[4],[4],0,[[[2,[7]],8],9],[[3,8],9],[[]],[[]],0,[[],4],[[],4],[[]],[[]],0,0,[[10,4],[[2,[10]]]],0,0,[[[12,[11]],4],13],[[[2,[14]],[12,[11]],4],13],[[[2,[14]],[12,[11]],4],13],0,0,0,0,[[3,15],6],[[]],[[]],[[],6],[[],6],[[],6],[[],6],[[],16],[[],16],[[]],[[]],[[]],[[]],0,[[17,18,19,20,14,21],[[23,[[22,[14]]]]]],0,[[]],[[]],[[[22,[1]]],[[22,[1]]]],[[]],[4],[4],[4],[[[22,[7]],8],9],[[]],[[],4],[[]],0,[[]],[[],6],[[],6],[[],16],[[]],[[]],0,0,[[]],[[],13],[[]],[[],13],[24,13],[[[12,[11]],24],13],[[[12,[11]],24],13],0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[25,25],[26,26],[[]],[[]],[[],25],[4],[4],[4],[4],[4],[4],[4],[4],[4],[[25,25],27],[[],27],[[25,8],9],[[26,8],9],[[28,8],9],[[28,8],9],[[]],[[]],[[]],[[29,25],[[32,[[31,[30]]]]]],[[],4],[[],4],[[],4],[[]],[[]],[[]],0,[[17,18,33,25,3,34,35,36,[37,[11]],[37,[11]]],[[6,[26,28]]]],[38],0,0,0,[[]],[[]],[[],39],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],16],[[],16],[[],16],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],[[23,[20]]]],[[]],[[]],[[]],[[]],[[[40,[1]]],[[40,[1]]]],[[]],[4],[4],[4],[4],[4],[4],[[41,8],9],[[41,8],9],[[[40,[7]],8],9],[42,41],[[]],[43,41],[44,41],[[]],[[],4],[[],4],[[]],[[]],[[[40,[14]],45,34,35,46],[[6,[47,41]]]],[[[40,[14]]],27],[[[40,[14]]],4],[38],[41,[[23,[48]]]],[[]],[[],39],[[],6],[[],6],[[],6],[[],6],[[],16],[[],16],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[49,49],[[]],0,[4],[4],[4],[4],[4],[4],[[43,8],9],[[43,8],9],[[49,8],9],[[]],[42,43],[44,43],[[]],[[],4],[[],4],[[]],[[]],[38],[[50,51,21,[0,[14,10]],35],[[6,[52,43]]]],[[50,36,[54,[53]],55,56,[0,[14,10]]],[[6,[[31,[[54,[[23,[57]]]]]],43]]]],[[[54,[[23,[57]]]],50,35],[[6,[[31,[[54,[57]]]],43]]]],[[[54,[[23,[57]]]],50,35],[[6,[58,43]]]],0,[43,[[23,[48]]]],[[]],[[],39],[[],6],[[],6],[[],6],[[],6],[[],16],[[],16],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[59,59],[21,21],[44,44],[60,60],[61,61],[55,55],[[]],[[]],[[]],[[]],[[]],[[]],[62,[[6,[59,63]]]],[62,[[6,[21,63]]]],[[[12,[11]]],[[6,[63]]]],[[[12,[11]]],[[6,[63]]]],[[53,[12,[11]]],[[6,[63]]]],[[53,[12,[11]]],[[6,[63]]]],[[53,62],[[6,[63]]]],[[53,62],[[6,[63]]]],[4],[4],[21],[4],[4],[4],[4],[4],[4],[4],[21],[4],[4],[4],[4],[4],[64],[4],[4],[4],[4],[4],[4],[4],[21,[[37,[11]]]],[[55,[12,[11]]],[[6,[60]]]],[[59,[0,[65,10]]]],[[21,[0,[65,10]]]],[[],4],[36,4],[[44,44],27],[[60,60],27],[[61,61],27],[[],27],[[],27],[[],27],[[59,8],9],[[21,8],9],[[44,8],9],[[44,8],9],[[60,8],9],[[60,8],9],[[61,8],9],[[61,8],9],[[55,8],9],[[]],[[]],[[]],[59,21],[[]],[[]],[[]],[[]],[[[12,[11]],36],[[6,[55,44]]]],0,[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[64,58],[64,58],[55,[[12,[[66,[[54,[11]]]]]]]],[55,58],[[55,50],67],[[55,68],[[6,[67,61]]]],[[55,68],[[6,[67,61]]]],[36,55],[55,[[12,[68]]]],[[55,50],69],0,[38],[38],[38],[59,[[31,[[54,[53]]]]]],[55,[[31,[[54,[36]]]]]],0,0,[36,4],[36,4],[36,4],[59,4],[21,4],[[[12,[11]]],[[37,[11,70]]]],[[[12,[11]]],[[37,[11,70]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],39],[[],39],[[],39],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[21,71]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0],"c":[],"p":[[8,"Clone"],[3,"ReadAtOffset"],[3,"FarmerProtocolInfo"],[15,"usize"],[8,"Deserializer"],[4,"Result"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[8,"Sized"],[15,"u8"],[15,"slice"],[6,"Result"],[8,"ReadAt"],[8,"Serializer"],[3,"TypeId"],[3,"PublicKey"],[6,"SectorIndex"],[6,"Blake2b256Hash"],[6,"SolutionRange"],[3,"SectorMetadataChecksummed"],[3,"AuditResult"],[4,"Option"],[15,"u64"],[4,"PieceGetterRetryPolicy"],[3,"PlottedSector"],[15,"bool"],[4,"PlottingError"],[3,"PieceIndex"],[8,"Future"],[3,"Box"],[3,"Pin"],[8,"PieceGetter"],[3,"Kzg"],[3,"ErasureCoding"],[15,"u16"],[3,"Vec"],[3,"Demand"],[3,"String"],[3,"SolutionCandidates"],[4,"ProvingError"],[3,"Error"],[4,"ReadingError"],[4,"SectorContentsMapFromBytesError"],[8,"Copy"],[8,"FnMut"],[8,"ProvableSolutions"],[8,"Error"],[3,"PlotRecord"],[3,"PieceOffset"],[3,"SectorId"],[3,"Piece"],[15,"u32"],[15,"array"],[3,"SectorContentsMap"],[8,"Table"],[3,"Scalar"],[8,"ExactSizeIterator"],[3,"SectorMetadata"],[4,"SectorContentsMapEncodeIntoError"],[4,"SectorContentsMapIterationError"],[8,"Input"],[3,"Error"],[3,"EncodedChunksUsed"],[8,"Output"],[3,"BitArray"],[8,"Iterator"],[3,"SBucket"],[8,"IndexedParallelIterator"],[3,"Global"],[8,"FnOnce"],[8,"OpenOptionsExt"],[8,"FileExt"],[13,"FailedToRetrievePiece"],[13,"BadSectorOutputSize"],[13,"BadSectorMetadataOutputSize"],[13,"PieceNotFound"],[13,"PieceRecoveryFailed"],[13,"FailedToCreateChunkWitness"],[13,"FailedToCreatePolynomialForRecord"],[13,"WrongRecordSizeAfterDecoding"],[13,"FailedToReadChunk"],[13,"InvalidChunk"],[13,"FailedToErasureDecodeRecord"],[13,"InvalidBytesLength"],[13,"InvalidBytesLength"],[13,"InvalidEncodedRecordChunks"],[13,"SBucketOutOfRange"]]},\ "subspace_fraud_proof":{"doc":"Subspace fraud proof","t":"DILLLLLLLLLLLLLLLLLAALLLLLLLFALKLLDDILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLDILLLLLLLLLLLLLLLLLLLLLLLLLKLLIDLLLLLLLLLLLLLLLLLLKLKLLLLLLLKLKLL","n":["ProofVerifier","VerifyFraudProof","__clone_box","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","from","from_mut","from_mut","from_ref","from_ref","init","into","into_mut","into_ref","invalid_state_transition_proof","invalid_transaction_proof","new","to_owned","try_from","try_into","type_id","unchecked_into","unique_saturated_into","validate_fraud_proof_in_tx_pool","verifier_api","verify","verify_fraud_proof","verify_fraud_proof","vzip","ExecutionProver","InvalidStateTransitionProofVerifier","VerifyInvalidStateTransitionProof","__clone_box","borrow","borrow","borrow_mut","borrow_mut","check_execution_proof","clone","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","from","from","from_mut","from_mut","from_mut","from_mut","from_ref","from_ref","from_ref","from_ref","init","init","into","into","into_mut","into_mut","into_ref","into_ref","new","new","prove_execution","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unchecked_into","unchecked_into","unique_saturated_into","unique_saturated_into","verify","verify_invalid_state_transition_proof","verify_invalid_state_transition_proof","vzip","vzip","InvalidTransactionProofVerifier","VerifyInvalidTransactionProof","__clone_box","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","from","from_mut","from_mut","from_ref","from_ref","init","into","into_mut","into_ref","new","to_owned","try_from","try_into","type_id","unchecked_into","unique_saturated_into","verify","verify_invalid_transaction_proof","verify_invalid_transaction_proof","vzip","VerifierApi","VerifierClient","__clone_box","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","from","from_mut","from_mut","from_ref","from_ref","init","into","into_mut","into_ref","new","primary_hash","primary_hash","state_root","state_root","to_owned","try_from","try_into","type_id","unchecked_into","unique_saturated_into","verify_post_state_root","verify_post_state_root","verify_pre_state_root","verify_pre_state_root","vzip"],"q":[[0,"subspace_fraud_proof"],[34,"subspace_fraud_proof::invalid_state_transition_proof"],[88,"subspace_fraud_proof::invalid_transaction_proof"],[118,"subspace_fraud_proof::verifier_api"]],"d":["Fraud proof verifier.","Verify fraud proof.","","","","","","","","","Returns the argument unchanged.","Get a mutable reference to the inner from the outer.","","","Get a reference to the inner from the outer.","","Calls U::from(self).","","","Invalid state transition proof","Invalid transaction proof.","Constructs a new instance of ProofVerifier.","","","","","","","Verifies the fraud proof extracted from extrinsic in the …","This module derives an trait VerifierApi from the runtime …","Verifies the fraud proof.","Verifies fraud proof.","","","Creates storage proof for verifying an execution without …","Invalid state transition proof verifier.","Verifies invalid state transition proof.","","","","","","Runs the execution using the partial state constructed …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Get a mutable reference to the inner from the outer.","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","Calls U::from(self).","Calls U::from(self).","","","","","Constructs a new instance of ExecutionProver.","Constructs a new instance of …","Returns a storage proof which can be used to reconstruct a …","","","","","","","","","","","","Verifies the invalid state transition proof.","Returns Ok(()) if given invalid_state_transition_proof is …","","","","Invalid transaction proof verifier.","Verifies invalid transaction proof.","","","","","","","","","Returns the argument unchanged.","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","Calls U::from(self).","","","Constructs a new instance of …","","","","","","","Verifies the invalid transaction proof.","Returns Ok(()) if given invalid_transaction_proof is …","","","This trait abstracts convenient APIs for the fraud proof …","A wrapper of primary chain client/system domain client in …","","","","","","","","","Returns the argument unchanged.","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","Calls U::from(self).","","","Constructs a new instance of VerifierClient.","Returns the hash of primary block at height …","","Returns the state root of specified domain block.","","","","","","","","Verifies whether post_state_root declared in the proof is …","","Verifies whether pre_state_root declared in the proof is …","",""],"i":[0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,0,0,2,11,2,2,0,0,0,27,18,27,18,27,18,27,27,18,27,18,27,18,27,18,27,18,18,27,27,18,18,27,27,18,27,18,27,18,27,18,27,18,27,18,27,18,27,18,27,18,27,18,27,18,27,27,6,27,18,27,0,0,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,4,35,35,0,0,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,30,38,30,38,38,38,38,38,38,38,30,38,30,38,38],"f":[0,0,[1],[[]],[[]],[2,2],[[]],[3],[3],[3],[[]],[[]],[[]],[[]],[[]],[[],3],[[]],[[]],[[]],0,0,[[[5,[4]],[5,[6]]],[[2,[7,4,6]]]],[[]],[[],8],[[],8],[[],9],[[]],[[]],[[10,[0,[[11,[7]],12]],[14,[[13,[7]]]]],[[8,[15]]]],0,[[[2,[7,4,6]],[14,[[13,[7]]]]],[[8,[15]]]],[[[14,[13]]],[[8,[15]]]],[[[2,[7,4,6]],[14,[[13,[7]]]]],[[8,[15]]]],[[]],0,0,0,[1],[[]],[[]],[[]],[[]],[[[18,[7,[16,[7]],17]],19,[21,[20]],22,23],[[25,[[24,[20]]]]]],[[[27,[26,26]]],[[27,[26,26]]]],[[]],[3],[3],[3],[3],[3],[3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[[5,[[16,[7]]]],[5,[17]]],[[18,[7,[16,[7]],17]]]],[[[5,[[0,[[28,[7]],12,29]]]],[0,[17,26]],30],[[27,[7,[0,[[28,[7]],12,29]],[0,[17,26]],[0,[31,32]],30]]]],[[[18,[7,[16,[7]],17]],19,[21,[20]],33],[[25,[23]]]],[[]],[[],8],[[],8],[[],8],[[],8],[[],9],[[],9],[[]],[[]],[[]],[[]],[[[27,[7,[0,[[28,[7]],12,29]],[0,[17,26]],[0,[31,32]],30]],34],[[8,[15]]]],[34,[[8,[15]]]],[[[27,[7,[0,[[28,[7]],12,29]],[0,[17,26]],[0,[31,32]],30]],34],[[8,[15]]]],[[]],[[]],0,0,[1],[[]],[[]],[[[35,[26]]],[[35,[26]]]],[[]],[3],[3],[3],[[]],[[]],[[]],[[]],[[]],[[],3],[[]],[[]],[[]],[[[5,[[0,[[36,[7]],[28,[7]],12,29]]]],[5,[17]],30],[[35,[7,[0,[[36,[7]],[28,[7]],12,29]],[0,[31,32]],17,30]]]],[[]],[[],8],[[],8],[[],9],[[]],[[]],[[[35,[7,[0,[[36,[7]],[28,[7]],12,29]],[0,[31,32]],17,30]],37],[[8,[15]]]],[37,[[8,[15]]]],[[[35,[7,[0,[[36,[7]],[28,[7]],12,29]],[0,[31,32]],17,30]],37],[[8,[15]]]],[[]],0,0,[1],[[]],[[]],[38,38],[[]],[3],[3],[3],[[]],[[]],[[]],[[]],[[]],[[],3],[[]],[[]],[[]],[5,38],[[39,40],[[8,[22,15]]]],[[[38,[[0,[[28,[7]],[36,[7]]]],7]],39,40],[[8,[22,15]]]],[[39,40,22],[[8,[41,15]]]],[[[38,[[0,[[28,[7]],[36,[7]]]],7]],39,40,22],[[8,[41,15]]]],[[]],[[],8],[[],8],[[],9],[[]],[[]],[34,[[8,[15]]]],[[[38,[[0,[[28,[7]],[36,[7]]]],7]],34],[[8,[15]]]],[34,[[8,[15]]]],[[[38,[[0,[[28,[7]],[36,[7]]]],7]],34],[[8,[15]]]],[[]]],"c":[],"p":[[3,"Private"],[3,"ProofVerifier"],[15,"usize"],[8,"VerifyInvalidTransactionProof"],[3,"Arc"],[8,"VerifyInvalidStateTransitionProof"],[8,"Block"],[4,"Result"],[3,"TypeId"],[8,"SpawnNamed"],[8,"VerifyFraudProof"],[8,"Send"],[6,"NumberFor"],[4,"FraudProof"],[4,"VerificationError"],[8,"Backend"],[8,"CodeExecutor"],[3,"ExecutionProver"],[4,"ExecutionPhase"],[15,"u8"],[15,"slice"],[3,"H256"],[3,"StorageProof"],[3,"Vec"],[6,"Result"],[8,"Clone"],[3,"InvalidStateTransitionProofVerifier"],[8,"ProvideRuntimeApi"],[8,"Sync"],[8,"VerifierApi"],[8,"Encode"],[8,"Decode"],[4,"Option"],[3,"InvalidStateTransitionProof"],[3,"InvalidTransactionProofVerifier"],[8,"HeaderBackend"],[3,"InvalidTransactionProof"],[3,"VerifierClient"],[3,"DomainId"],[15,"u32"],[6,"Hash"]]},\ "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"]],"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":[5,5,0,5,5,1,5,1,5,1,5,1,0,1,0,5,1,5,1,5,1,5,1],"f":[0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[1,2]],[[[4,[3]],5],[[7,[6]]]],[[],8],[[],8],[[],8],[[],8],[[],9],[[],9],[[]],[[]]],"c":[],"p":[[3,"metrics"],[3,"AppService"],[4,"SocketAddr"],[3,"Vec"],[4,"RegistryAdapter"],[8,"Future"],[6,"Result"],[4,"Result"],[3,"TypeId"]]},\ -"subspace_networking":{"doc":"Networking functionality of Subspace Network, primarily …","t":"NNNNNDENNIDENNNDSNICEDDDNNDNNNDGSEEDEDGDNNQNGEDNNNNEENDNDNMLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLMLMLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLMMMLCMMLMMMMMMMLLLLLLLLLLLLLLFLMLMMMMLMLLLLLLLKLMMLMLLLLLLLLLLLLLLLMMLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMAAFGENILLLLLLLLLLLLKKLLLLLLNDDIENLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLL","n":["BootstrapNode","BootstrapNode","CantPreallocateKnownPeersFile","Client","Client","Config","CreationError","Farmer","Farmer","GenericRequest","GenericRequestHandler","GetClosestPeersError","IncorrectResponseFormat","Io","Io","KeyWrapper","LOG_TARGET","LastSegmentHeaders","LocalRecordProvider","Multihash","NetworkParametersPersistenceError","NetworkingParametersManager","NewPeerInfo","Node","Node","Node","NodeRunner","NodeRunnerDropped","NodeRunnerDropped","NodeRunnerDropped","Notification","NotificationHandler","PROTOCOL_NAME","PeerDiscovered","PeerInfo","PeerInfoConfig","PeerInfoProvider","PieceByIndexRequest","PieceByIndexRequestHandler","PieceByIndexResponse","ProtocolFailure","RelayServerExpected","Response","RoutablePeer","SegmentHeaderBySegmentIndexesRequestHandler","SegmentHeaderRequest","SegmentHeaderResponse","SegmentIndexes","SendCommand","SendCommand","SendCommand","SendRequestError","SubscribeError","Subscription","TopicSubscription","TransportError","UniqueRecordBinaryHeap","UnroutablePeer","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","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","boxed","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","connected_peers","construct","contains_key","create","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","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","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","enable_autonat","encode","encode","encode","encode_to","encode_to","encode_to","encode_to","encode_to","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","external_addresses","external_addresses","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","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","from","from","general_connected_peers_handler","general_target_connections","get_closest_peers","get_providers","get_value","gossipsub","id","identify","init","init","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","into","into","is_farmer","kademlia","kademlia_mode","keypair","keys","libp2p","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","new","new_bootstrap_node","new_client","new_farmer","new_node","on_connected_peer","on_disconnected_peer","on_discovered_peer","on_new_listener","on_num_established_peer_connections_change","on_peer_info","peer_id","peer_id","peer_id","peer_info","peer_info","peer_info_provider","piece","piece_index","poll_next","protocol_version","provide","provide","provide","provide","provide","publish","put_value","record","remove","request_response_protocols","reserved_peers","run","segment_headers","send_generic_request","set_limit","should_include_key","size","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","source","source","source","source","source","special_connected_peers_handler","special_target_connections","subscribe","temporary_ban_backoff","temporary_bans_cache_size","timeout","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","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_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","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","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","vzip","vzip","with_timeout","yamux_config","address","peer_id","peer_id","placeholder","segment_header_number","segment_indexes","multihash","piece_provider","strip_peer_id","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","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"],[566,"subspace_networking::PeerDiscovered"],[569,"subspace_networking::PeerInfo"],[570,"subspace_networking::SegmentHeaderRequest"],[572,"subspace_networking::utils"],[575,"subspace_networking::utils::multihash"],[599,"subspace_networking::utils::piece_provider"]],"d":["DSN bootstrap node.","Provides peer-info for Boostrap Node peer type.","Can’t preallocate known peers file, probably not enough …","Unspecified client (testing, custom utilities, etc).","Provides peer-info for Client peer type.","Node configuration.","Errors that might happen during network creation.","DSN farmer.","Provides peer-info for Farmer peer type.","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.","Wrapper data structure that allows to work with keys as …","Specifies log-parameters for tracing.","Defines how many segment headers to return.","Trait to be implemented on providers of local records","","Networking parameters persistence errors.","Handles networking parameters. It manages network …","PeerInfo update and related data container.","Implementation of a network node on Subspace Network.","DSN node.","Provides peer-info for Node peer type.","Runner for the Node.","Node runner was dropped","Node runner was dropped","Node runner was dropped","Peer info notification stub.","Defines a subscription to a peer-info notification.","Defines request-response protocol name.","Represents Kademlia events (RoutablePeer, …","Peer info data","The configuration for peer-info protocol.","Handles constant peer info data.","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.","Defines errors for subscribe operation.","Failed to create subscription.","Topic subscription, will unsubscribe when last instance is …","Transport error when attempting to listen on multiaddr.","Limited-size max binary heap for Kademlia records’ keys.","Kademlia’s unroutable peer event.","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 …","Remove all contents, while keeping allocated capacity","","","","","","","","","","","","","","","","","","","","","","","Returns a collection of currently connected peers.","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.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Enable autonat protocol. Helps detecting whether we’re …","","","","","","","","","","","","","","","","","","","","","","","","","Node’s own addresses observed remotely.","Known external addresses to the local peer. The addresses …","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.","Returns the argument unchanged.","Returns the argument unchanged.","Defines whether we maintain a persistent connection for …","Defines target total (in and out) connection number that …","Get closest peers by multihash key using Kademlia DHT.","Get item providers by its key. Initiate ‘providers’ …","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.","","","","","","","","","","","","","","","","","","","","","","","","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).","Calls U::from(self).","Calls U::from(self).","Returns whether PeerInfo is a Farmer.","The configuration for the Kademlia behaviour.","Kademlia mode. None means “automatic mode”.","Identity keypair of a node used for authenticated …","Iterator over all keys in arbitrary order","","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.","Optional external prometheus metrics. None will disable …","A reference to the NetworkingParametersRegistry …","Object constructor. It accepts NetworkingParametersProvider…","Creates a new Config.","Creates a new Config with the following default settings:","Constructs a heap with given PeerId and size limit.","Creates a new Bootstrap Node peer-info provider.","Creates a new Client peer-info provider.","Creates a new Farmer peer-info provider.","Creates a new Node peer-info provider.","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 …","Callback is called when we receive new …","Converts public key from keypair to PeerId. It serves as …","Extracts peer ID from event.","Peer ID for this PeerInfo update.","Returns the peer info data.","PeerInfo update.","Specifies a source for peer information. None disables the …","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.","The configuration for the RequestResponsesBehaviour …","Defines set of peers with a permanent connection (and …","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","","","","","","","","","","","","Defines whether we maintain a persistent connection for …","Defines target total (in and out) connection number that …","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.","","","","","","","","","","","","","","","","","","","","","","","","Sets the protocol timeout.","Yamux multiplexing configuration.","Peer address","Peer ID","Peer ID","Backward compatibility placeholder.","Number of segment headers to return.","Segment indexes to get.","Defines multihash codes for Subspace DSN.","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":[11,42,38,11,42,0,0,11,42,0,0,0,41,38,23,0,68,14,0,0,0,0,0,0,11,42,0,39,40,41,0,0,68,0,0,0,0,0,0,0,41,23,68,16,0,0,0,14,39,40,41,0,0,40,0,23,0,16,22,1,1,22,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,8,1,9,10,11,12,13,14,15,16,17,8,1,9,10,11,12,13,14,15,16,17,8,1,43,0,8,83,11,12,13,14,15,11,12,13,14,15,11,12,13,14,15,11,12,13,14,15,22,11,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,5,22,67,83,38,23,32,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,22,12,13,15,11,12,13,14,15,12,13,14,15,12,12,12,13,13,13,14,14,14,15,15,15,1,22,5,22,38,38,23,23,32,39,39,40,40,41,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,22,67,83,38,38,23,23,23,32,39,39,39,40,40,40,40,41,41,41,41,1,9,10,11,42,12,13,14,15,16,43,17,8,22,22,1,1,1,22,1,22,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,22,8,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,11,22,22,22,8,0,22,22,1,22,22,22,22,22,22,22,5,22,9,8,42,42,42,42,1,1,1,1,1,1,0,16,43,42,43,22,13,12,32,22,38,23,39,40,41,1,1,19,8,22,22,67,15,1,8,8,8,32,11,12,13,14,15,38,23,39,40,41,22,22,1,22,22,22,11,12,13,14,15,1,9,10,11,12,13,14,15,16,17,8,38,23,39,40,41,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,12,13,15,0,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,9,22,84,85,84,86,87,88,0,0,0,0,0,74,0,74,74,74,74,74,74,74,74,74,74,74,74,89,89,74,74,74,74,74,74,76,0,0,0,0,76,82,78,76,82,78,76,76,76,76,82,78,76,82,78,76,82,78,76,76,76,76,76,76,82,78,76,78,78,82,78,76,82,78,76,78,76,82,78,76,82,78,76,82,78,76,77,82,82,78,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,0,0,0,0,0,0,0,[[1,2],[[4,[3]]]],[1,[[4,[0]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[5,[[6,[0]]]],[[[8,[7]]]],[1,1],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[16,16],[[[17,[7]]],[[17,[7]]]],[[[8,[7]]],[[8,[7]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[4,[[18,[2]],0]]]],0,[[[22,[[0,[19,20,21]]]]],[[4,[23]]]],[[[8,[7]],7],24],[[[0,[25,20,21]]],[[6,[0]]]],[26,[[4,[11,27]]]],[26,[[4,[12,27]]]],[26,[[4,[13,27]]]],[26,[[4,[14,27]]]],[26,[[4,[15,27]]]],[[[29,[28]]],[[4,[27]]]],[[[29,[28]]],[[4,[27]]]],[[[29,[28]]],[[4,[27]]]],[[[29,[28]]],[[4,[27]]]],[[[29,[28]]],[[4,[27]]]],[[30,[29,[28]]],[[4,[27]]]],[[30,[29,[28]]],[[4,[27]]]],[[30,[29,[28]]],[[4,[27]]]],[[30,[29,[28]]],[[4,[27]]]],[[30,[29,[28]]],[[4,[27]]]],[[30,26],[[4,[27]]]],[[30,26],[[4,[27]]]],[[30,26],[[4,[27]]]],[[30,26],[[4,[27]]]],[[30,26],[[4,[27]]]],[[],22],[[],11],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[5],[31],[31],[31],[31],[31],[31],[31],[32],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],0,[12,[[18,[28]]]],[13,[[18,[28]]]],[15,[[18,[28]]]],[[11,[0,[33,34]]]],[[12,[0,[33,34]]]],[[13,[0,[33,34]]]],[[14,[0,[33,34]]]],[[15,[0,[33,34]]]],[[12,12],24],[[13,13],24],[[14,14],24],[[15,15],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[1,[[18,[35]]]],0,[[],31],[[22,36],37],[[38,36],37],[[38,36],37],[[23,36],37],[[23,36],37],[[32,36],37],[[39,36],37],[[39,36],37],[[40,36],37],[[40,36],37],[[41,36],37],[[41,36],37],[[1,36],37],[[9,36],37],[[10,36],37],[[11,36],37],[[42,36],37],[[12,36],37],[[13,36],37],[[14,36],37],[[15,36],37],[[16,36],37],[[43,36],37],[[[17,[44]],36],37],[[[8,[44]],36],37],[[]],[[]],[[]],[[]],[45,38],[[]],[45,23],[[]],[[[46,[45]]],23],[[]],[47,39],[[]],[3,39],[47,40],[48,40],[3,40],[[]],[[]],[27,41],[3,41],[47,41],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[1,49],[[4,[50,39]]]],[[1,49],[[4,[50,0]]]],[[1,49],[[4,[50,0]]]],0,[1,2],0,[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],0,[[[8,[7]],7],[[51,[7]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[11,24],0,0,0,[[[8,[7]]],52],0,0,0,[1,[[18,[35]]]],0,0,0,0,0,0,0,[[53,[54,[2]]],[[4,[5,38]]]],[[55,56,19,[51,[42]]],[[22,[19]]]],[57,9],[[2,31],[[8,[7]]]],[[],42],[[],42],[[],42],[[],42],[[1,[58,[25]]],59],[[1,[58,[25]]],59],[[1,[58,[25]]],59],[[1,[58,[25]]],59],[[1,[58,[25]]],59],[[1,[58,[25]]],59],[56,2],[16,2],0,[42,11],0,0,0,0,[[[60,[32]],61],[[62,[51]]]],0,[63],[63],[63],[63],[63],[[1,64,[18,[28]]],[[4,[0]]]],[[1,49,[18,[28]]],[[4,[50,0]]]],[65,[[51,[66]]]],[[[8,[7]],7]],0,0,[[[67,[[0,[19,20,21]]]]]],0,[[1,2,68],[[4,[41]]]],[[[8,[7]],31]],[[[8,[7]],7],24],[[[8,[7]]],31],[32],[11,31],[12,31],[13,31],[14,31],[15,31],[38,[[51,[69]]]],[23,[[51,[69]]]],[39,[[51,[69]]]],[40,[[51,[69]]]],[41,[[51,[69]]]],0,0,[[1,64],[[4,[32,40]]]],0,0,0,[[[29,[28]]],[[18,[28,70]]]],[[[29,[28]]],[[18,[28,70]]]],[[[29,[28]]],[[18,[28,70]]]],[[[29,[28]]],[[18,[28,70]]]],[[[29,[28]]],[[18,[28,70]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],55],[[],55],[[],55],[[],55],[[],55],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[12,72]],[[13,72]],[[15,72]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[9,73],9],0,0,0,0,0,0,0,0,0,[[[18,[35]]],18],0,0,0,0,[[]],[[]],[74,74],[[]],[31],[31],[31],[[74,74],24],[[74,36],37],[[]],[[],31],[[]],[[],49],[74,49],[[]],[[],4],[75,[[4,[74]]]],[[],4],[[],71],[[]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[76,76],[[]],[[],76],[31],[31],[31],[31],[31],[31],[31],[31],[31],[[76,76],24],[[],24],[[],24],[[],24],[[76,36],37],[[]],[[]],[[]],[[[78,[77]],79,76],[[4,[[51,[80]],[6,[69]]]]]],[[[78,[77]],2,79],[[51,[80]]]],[[],31],[[],31],[[],31],[[]],[[]],[[]],[[1,[51,[77]]],[[78,[77]]]],[[]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],71],[[],71],[[],71],[[2,79,80],[[60,[[6,[81]]]]]],[[82,2,79,80],[[60,[[6,[81]]]]]],[[]],[[]],[[]]],"c":[],"p":[[3,"Node"],[3,"PeerId"],[3,"SendError"],[4,"Result"],[3,"NetworkingParametersManager"],[3,"Box"],[8,"Clone"],[3,"UniqueRecordBinaryHeap"],[3,"PeerInfoConfig"],[3,"Notification"],[4,"PeerInfo"],[3,"PieceByIndexRequest"],[3,"PieceByIndexResponse"],[4,"SegmentHeaderRequest"],[3,"SegmentHeaderResponse"],[4,"PeerDiscovered"],[3,"KeyWrapper"],[3,"Vec"],[8,"LocalRecordProvider"],[8,"Send"],[8,"Sync"],[3,"Config"],[4,"CreationError"],[15,"bool"],[8,"Fn"],[8,"Input"],[3,"Error"],[15,"u8"],[15,"slice"],[15,"u32"],[15,"usize"],[3,"TopicSubscription"],[8,"Output"],[8,"Sized"],[3,"Multiaddr"],[3,"Formatter"],[6,"Result"],[4,"NetworkParametersPersistenceError"],[4,"GetClosestPeersError"],[4,"SubscribeError"],[4,"SendRequestError"],[4,"PeerInfoProvider"],[3,"NewPeerInfo"],[8,"Debug"],[3,"Error"],[4,"TransportError"],[3,"Canceled"],[4,"SubscriptionError"],[6,"Multihash"],[8,"Stream"],[4,"Option"],[8,"ExactSizeIterator"],[3,"Path"],[3,"HashSet"],[3,"String"],[3,"Keypair"],[15,"str"],[3,"Arc"],[3,"HandlerId"],[3,"Pin"],[3,"Context"],[4,"Poll"],[3,"Demand"],[6,"Sha256Topic"],[3,"Key"],[3,"ProviderRecord"],[3,"NodeRunner"],[8,"GenericRequest"],[8,"Error"],[3,"Global"],[3,"TypeId"],[8,"FnOnce"],[3,"Duration"],[4,"MultihashCode"],[15,"u64"],[4,"RetryPolicy"],[8,"PieceValidator"],[3,"PieceProvider"],[3,"PieceIndex"],[3,"Piece"],[8,"Future"],[3,"NoPieceValidator"],[3,"GenericRequestHandler"],[13,"RoutablePeer"],[13,"UnroutablePeer"],[13,"Farmer"],[13,"LastSegmentHeaders"],[13,"SegmentIndexes"],[8,"ToMultihash"]]},\ +"subspace_networking":{"doc":"Networking functionality of Subspace Network, primarily …","t":"NNNNNDENNIDENNNDSNICEDDDNNDNNNDGSEEDEDGDNNQNGEDNNNNEENDNDNMLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLMLMLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLMMMLCMMLMMMMMMMLLLLLLLLLLLLLLFLMLMMMMLMLLLLLLLKLMMLMLLLLLLLLLLLLLLLMMLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMAAFGENILLLLLLLLLLLLKKLLLLLLNDDIENLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLL","n":["BootstrapNode","BootstrapNode","CantPreallocateKnownPeersFile","Client","Client","Config","CreationError","Farmer","Farmer","GenericRequest","GenericRequestHandler","GetClosestPeersError","IncorrectResponseFormat","Io","Io","KeyWrapper","LOG_TARGET","LastSegmentHeaders","LocalRecordProvider","Multihash","NetworkParametersPersistenceError","NetworkingParametersManager","NewPeerInfo","Node","Node","Node","NodeRunner","NodeRunnerDropped","NodeRunnerDropped","NodeRunnerDropped","Notification","NotificationHandler","PROTOCOL_NAME","PeerDiscovered","PeerInfo","PeerInfoConfig","PeerInfoProvider","PieceByIndexRequest","PieceByIndexRequestHandler","PieceByIndexResponse","ProtocolFailure","RelayServerExpected","Response","RoutablePeer","SegmentHeaderBySegmentIndexesRequestHandler","SegmentHeaderRequest","SegmentHeaderResponse","SegmentIndexes","SendCommand","SendCommand","SendCommand","SendRequestError","SubscribeError","Subscription","TopicSubscription","TransportError","UniqueRecordBinaryHeap","UnroutablePeer","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","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","boxed","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","connected_peers","construct","contains_key","create","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","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","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","enable_autonat","encode","encode","encode","encode_to","encode_to","encode_to","encode_to","encode_to","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","external_addresses","external_addresses","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","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","from","from","general_connected_peers_handler","general_target_connections","get_closest_peers","get_providers","get_requests_batch_handle","get_value","gossipsub","id","identify","init","init","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","into","into","is_farmer","kademlia","kademlia_mode","keypair","keys","libp2p","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","new","new_bootstrap_node","new_client","new_farmer","new_node","on_connected_peer","on_disconnected_peer","on_discovered_peer","on_new_listener","on_num_established_peer_connections_change","on_peer_info","peer_id","peer_id","peer_id","peer_info","peer_info","peer_info_provider","piece","piece_index","poll_next","protocol_version","provide","provide","provide","provide","provide","publish","put_value","record","remove","request_response_protocols","reserved_peers","run","segment_headers","send_generic_request","set_limit","should_include_key","size","size_hint","size_hint","size_hint","size_hint","size_hint","size_hint","source","source","source","source","source","special_connected_peers_handler","special_target_connections","subscribe","temporary_ban_backoff","temporary_bans_cache_size","timeout","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","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_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","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","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","vzip","vzip","with_timeout","yamux_config","address","peer_id","peer_id","placeholder","segment_header_number","segment_indexes","multihash","piece_provider","strip_peer_id","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","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"],[567,"subspace_networking::PeerDiscovered"],[570,"subspace_networking::PeerInfo"],[571,"subspace_networking::SegmentHeaderRequest"],[573,"subspace_networking::utils"],[576,"subspace_networking::utils::multihash"],[600,"subspace_networking::utils::piece_provider"]],"d":["DSN bootstrap node.","Provides peer-info for Boostrap Node peer type.","Can’t preallocate known peers file, probably not enough …","Unspecified client (testing, custom utilities, etc).","Provides peer-info for Client peer type.","Node configuration.","Errors that might happen during network creation.","DSN farmer.","Provides peer-info for Farmer peer type.","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.","Wrapper data structure that allows to work with keys as …","Specifies log-parameters for tracing.","Defines how many segment headers to return.","Trait to be implemented on providers of local records","","Networking parameters persistence errors.","Handles networking parameters. It manages network …","PeerInfo update and related data container.","Implementation of a network node on Subspace Network.","DSN node.","Provides peer-info for Node peer type.","Runner for the Node.","Node runner was dropped","Node runner was dropped","Node runner was dropped","Peer info notification stub.","Defines a subscription to a peer-info notification.","Defines request-response protocol name.","Represents Kademlia events (RoutablePeer, …","Peer info data","The configuration for peer-info protocol.","Handles constant peer info data.","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.","Defines errors for subscribe operation.","Failed to create subscription.","Topic subscription, will unsubscribe when last instance is …","Transport error when attempting to listen on multiaddr.","Limited-size max binary heap for Kademlia records’ keys.","Kademlia’s unroutable peer event.","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 …","Remove all contents, while keeping allocated capacity","","","","","","","","","","","","","","","","","","","","","","","Returns a collection of currently connected peers.","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.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Enable autonat protocol. Helps detecting whether we’re …","","","","","","","","","","","","","","","","","","","","","","","","","Node’s own addresses observed remotely.","Known external addresses to the local peer. The addresses …","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.","Returns the argument unchanged.","Returns the argument unchanged.","Defines whether we maintain a persistent connection for …","Defines target total (in and out) connection number that …","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.","","","","","","","","","","","","","","","","","","","","","","","","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).","Calls U::from(self).","Calls U::from(self).","Returns whether PeerInfo is a Farmer.","The configuration for the Kademlia behaviour.","Kademlia mode. None means “automatic mode”.","Identity keypair of a node used for authenticated …","Iterator over all keys in arbitrary order","","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.","Optional external prometheus metrics. None will disable …","A reference to the NetworkingParametersRegistry …","Object constructor. It accepts NetworkingParametersProvider…","Creates a new Config.","Creates a new Config with the following default settings:","Constructs a heap with given PeerId and size limit.","Creates a new Bootstrap Node peer-info provider.","Creates a new Client peer-info provider.","Creates a new Farmer peer-info provider.","Creates a new Node peer-info provider.","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 …","Callback is called when we receive new …","Converts public key from keypair to PeerId. It serves as …","Extracts peer ID from event.","Peer ID for this PeerInfo update.","Returns the peer info data.","PeerInfo update.","Specifies a source for peer information. None disables the …","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.","The configuration for the RequestResponsesBehaviour …","Defines set of peers with a permanent connection (and …","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","","","","","","","","","","","","Defines whether we maintain a persistent connection for …","Defines target total (in and out) connection number that …","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.","","","","","","","","","","","","","","","","","","","","","","","","Sets the protocol timeout.","Yamux multiplexing configuration.","Peer address","Peer ID","Peer ID","Backward compatibility placeholder.","Number of segment headers to return.","Segment indexes to get.","Defines multihash codes for Subspace DSN.","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":[11,42,38,11,42,0,0,11,42,0,0,0,41,38,23,0,68,14,0,0,0,0,0,0,11,42,0,39,40,41,0,0,68,0,0,0,0,0,0,0,41,23,68,16,0,0,0,14,39,40,41,0,0,40,0,23,0,16,22,1,1,22,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,8,1,9,10,11,12,13,14,15,16,17,8,1,9,10,11,12,13,14,15,16,17,8,1,43,0,8,83,11,12,13,14,15,11,12,13,14,15,11,12,13,14,15,11,12,13,14,15,22,11,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,5,22,67,83,38,23,32,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,22,12,13,15,11,12,13,14,15,12,13,14,15,12,12,12,13,13,13,14,14,14,15,15,15,1,22,5,22,38,38,23,23,32,39,39,40,40,41,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,22,67,83,38,38,23,23,23,32,39,39,39,40,40,40,40,41,41,41,41,1,9,10,11,42,12,13,14,15,16,43,17,8,22,22,1,1,1,1,22,1,22,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,22,8,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,11,22,22,22,8,0,22,22,1,22,22,22,22,22,22,22,5,22,9,8,42,42,42,42,1,1,1,1,1,1,0,16,43,42,43,22,13,12,32,22,38,23,39,40,41,1,1,19,8,22,22,67,15,1,8,8,8,32,11,12,13,14,15,38,23,39,40,41,22,22,1,22,22,22,11,12,13,14,15,1,9,10,11,12,13,14,15,16,17,8,38,23,39,40,41,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,12,13,15,0,5,22,67,83,38,23,32,39,40,41,1,9,10,11,42,12,13,14,15,16,43,17,8,9,22,84,85,84,86,87,88,0,0,0,0,0,74,0,74,74,74,74,74,74,74,74,74,74,74,74,89,89,74,74,74,74,74,74,76,0,0,0,0,76,82,78,76,82,78,76,76,76,76,82,78,76,82,78,76,82,78,76,76,76,76,76,76,82,78,76,78,78,82,78,76,82,78,76,78,76,82,78,76,82,78,76,82,78,76,77,82,82,78,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,0,0,0,0,0,0,0,[[1,2],[[4,[3]]]],[1,[[4,[0]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[5,[[6,[0]]]],[[[8,[7]]]],[1,1],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[16,16],[[[17,[7]]],[[17,[7]]]],[[[8,[7]]],[[8,[7]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[4,[[18,[2]],0]]]],0,[[[22,[[0,[19,20,21]]]]],[[4,[23]]]],[[[8,[7]],7],24],[[[0,[25,20,21]]],[[6,[0]]]],[26,[[4,[11,27]]]],[26,[[4,[12,27]]]],[26,[[4,[13,27]]]],[26,[[4,[14,27]]]],[26,[[4,[15,27]]]],[[[29,[28]]],[[4,[27]]]],[[[29,[28]]],[[4,[27]]]],[[[29,[28]]],[[4,[27]]]],[[[29,[28]]],[[4,[27]]]],[[[29,[28]]],[[4,[27]]]],[[30,[29,[28]]],[[4,[27]]]],[[30,[29,[28]]],[[4,[27]]]],[[30,[29,[28]]],[[4,[27]]]],[[30,[29,[28]]],[[4,[27]]]],[[30,[29,[28]]],[[4,[27]]]],[[30,26],[[4,[27]]]],[[30,26],[[4,[27]]]],[[30,26],[[4,[27]]]],[[30,26],[[4,[27]]]],[[30,26],[[4,[27]]]],[[],22],[[],11],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[5],[31],[31],[31],[31],[31],[31],[32],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],[31],0,[12,[[18,[28]]]],[13,[[18,[28]]]],[15,[[18,[28]]]],[[11,[0,[33,34]]]],[[12,[0,[33,34]]]],[[13,[0,[33,34]]]],[[14,[0,[33,34]]]],[[15,[0,[33,34]]]],[[12,12],24],[[13,13],24],[[14,14],24],[[15,15],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[1,[[18,[35]]]],0,[[],31],[[22,36],37],[[38,36],37],[[38,36],37],[[23,36],37],[[23,36],37],[[32,36],37],[[39,36],37],[[39,36],37],[[40,36],37],[[40,36],37],[[41,36],37],[[41,36],37],[[1,36],37],[[9,36],37],[[10,36],37],[[11,36],37],[[42,36],37],[[12,36],37],[[13,36],37],[[14,36],37],[[15,36],37],[[16,36],37],[[43,36],37],[[[17,[44]],36],37],[[[8,[44]],36],37],[[]],[[]],[[]],[[]],[45,38],[[]],[[[46,[45]]],23],[45,23],[[]],[[]],[47,39],[3,39],[[]],[47,40],[48,40],[3,40],[[]],[47,41],[3,41],[[]],[27,41],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[1,49],[[4,[50,39]]]],[[1,49],[[4,[50,0]]]],0,[[1,49],[[4,[50,0]]]],0,[1,2],0,[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],0,[[[8,[7]],7],[[51,[7]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[11,24],0,0,0,[[[8,[7]]],52],0,0,0,[1,[[18,[35]]]],0,0,0,0,0,0,0,[[53,[54,[2]]],[[4,[5,38]]]],[[55,56,19,[51,[42]]],[[22,[19]]]],[57,9],[[2,31],[[8,[7]]]],[[],42],[[],42],[[],42],[[],42],[[1,[58,[25]]],59],[[1,[58,[25]]],59],[[1,[58,[25]]],59],[[1,[58,[25]]],59],[[1,[58,[25]]],59],[[1,[58,[25]]],59],[56,2],[16,2],0,[42,11],0,0,0,0,[[[60,[32]],61],[[62,[51]]]],0,[63],[63],[63],[63],[63],[[1,64,[18,[28]]],[[4,[0]]]],[[1,49,[18,[28]]],[[4,[50,0]]]],[65,[[51,[66]]]],[[[8,[7]],7]],0,0,[[[67,[[0,[19,20,21]]]]]],0,[[1,2,68],[[4,[41]]]],[[[8,[7]],31]],[[[8,[7]],7],24],[[[8,[7]]],31],[32],[11,31],[12,31],[13,31],[14,31],[15,31],[38,[[51,[69]]]],[23,[[51,[69]]]],[39,[[51,[69]]]],[40,[[51,[69]]]],[41,[[51,[69]]]],0,0,[[1,64],[[4,[32,40]]]],0,0,0,[[[29,[28]]],[[18,[28,70]]]],[[[29,[28]]],[[18,[28,70]]]],[[[29,[28]]],[[18,[28,70]]]],[[[29,[28]]],[[18,[28,70]]]],[[[29,[28]]],[[18,[28,70]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],55],[[],55],[[],55],[[],55],[[],55],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[],71],[[12,72]],[[13,72]],[[15,72]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[9,73],9],0,0,0,0,0,0,0,0,0,[[[18,[35]]],18],0,0,0,0,[[]],[[]],[74,74],[[]],[31],[31],[31],[[74,74],24],[[74,36],37],[[]],[[],31],[[]],[[],49],[74,49],[[]],[75,[[4,[74]]]],[[],4],[[],4],[[],71],[[]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[76,76],[[]],[[],76],[31],[31],[31],[31],[31],[31],[31],[31],[31],[[76,76],24],[[],24],[[],24],[[],24],[[76,36],37],[[]],[[]],[[]],[[[78,[77]],79,76],[[4,[[51,[80]],[6,[69]]]]]],[[[78,[77]],2,79],[[51,[80]]]],[[],31],[[],31],[[],31],[[]],[[]],[[]],[[1,[51,[77]]],[[78,[77]]]],[[]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],71],[[],71],[[],71],[[2,79,80],[[60,[[6,[81]]]]]],[[82,2,79,80],[[60,[[6,[81]]]]]],[[]],[[]],[[]]],"c":[],"p":[[3,"Node"],[3,"PeerId"],[3,"SendError"],[4,"Result"],[3,"NetworkingParametersManager"],[3,"Box"],[8,"Clone"],[3,"UniqueRecordBinaryHeap"],[3,"PeerInfoConfig"],[3,"Notification"],[4,"PeerInfo"],[3,"PieceByIndexRequest"],[3,"PieceByIndexResponse"],[4,"SegmentHeaderRequest"],[3,"SegmentHeaderResponse"],[4,"PeerDiscovered"],[3,"KeyWrapper"],[3,"Vec"],[8,"LocalRecordProvider"],[8,"Send"],[8,"Sync"],[3,"Config"],[4,"CreationError"],[15,"bool"],[8,"Fn"],[8,"Input"],[3,"Error"],[15,"u8"],[15,"slice"],[15,"u32"],[15,"usize"],[3,"TopicSubscription"],[8,"Output"],[8,"Sized"],[3,"Multiaddr"],[3,"Formatter"],[6,"Result"],[4,"NetworkParametersPersistenceError"],[4,"GetClosestPeersError"],[4,"SubscribeError"],[4,"SendRequestError"],[4,"PeerInfoProvider"],[3,"NewPeerInfo"],[8,"Debug"],[3,"Error"],[4,"TransportError"],[3,"Canceled"],[4,"SubscriptionError"],[6,"Multihash"],[8,"Stream"],[4,"Option"],[8,"ExactSizeIterator"],[3,"Path"],[3,"HashSet"],[3,"String"],[3,"Keypair"],[15,"str"],[3,"Arc"],[3,"HandlerId"],[3,"Pin"],[3,"Context"],[4,"Poll"],[3,"Demand"],[6,"Sha256Topic"],[3,"Key"],[3,"ProviderRecord"],[3,"NodeRunner"],[8,"GenericRequest"],[8,"Error"],[3,"Global"],[3,"TypeId"],[8,"FnOnce"],[3,"Duration"],[4,"MultihashCode"],[15,"u64"],[4,"RetryPolicy"],[8,"PieceValidator"],[3,"PieceProvider"],[3,"PieceIndex"],[3,"Piece"],[8,"Future"],[3,"NoPieceValidator"],[3,"GenericRequestHandler"],[13,"RoutablePeer"],[13,"UnroutablePeer"],[13,"Farmer"],[13,"LastSegmentHeaders"],[13,"SegmentIndexes"],[8,"ToMultihash"]]},\ "subspace_node":{"doc":"Subspace Node library.","t":"NNNDNDNNNNNDNELLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLAMMLLLLMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMMMLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNDDEDNNNLLLLLLLLMLLLLLLLLLLLMMMLLLLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLMMLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["BuildSpec","ChainInfo","CheckBlock","Cli","Domain","ExecutorDispatch","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","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","command","command","command_for_update","command_for_update","copyright_start_year","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","description","dispatch","domain","domain_args","domain_args","drop","drop","drop","drop","dsn_bootstrap_nodes","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","dsn_target_connections","enable_subspace_block_relay","executable_name","fmt","fmt","fmt","from","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_mut","from_mut","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_subset","from_subset","from_subset","from_subset","group_id","group_id","has_subcommand","impl_name","impl_version","init","init","init","init","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_mut","into_mut","into_mut","into_mut","into_ref","into_ref","into_ref","into_ref","is_in_subset","is_in_subset","is_in_subset","is_in_subset","load_spec","native_version","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","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_name","type_name","type_name","type_name","unchecked_into","unchecked_into","unchecked_into","unchecked_into","unique_saturated_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","vzip","Benchmark","BuildGenesisStorage","DomainCli","DomainInstanceStarter","DomainSubcommand","EVMDomainExecutorDispatch","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","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_id","command","command_for_update","consensus_client","consensus_offchain_tx_pool_factory","consensus_sync_service","copyright_start_year","create_domain_configuration","default_heap_pages","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","description","dev_key_seed","disable_grandpa","dispatch","domain_cli","domain_id","domain_message_receiver","drop","drop","drop","drop","executable_name","fmt","fmt","force_authoring","from","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_mut","from_mut","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","from_subset","from_subset","from_subset","from_subset","gossip_message_sink","group_id","has_subcommand","impl_name","impl_version","import_params","init","init","init","init","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_mut","into_mut","into_mut","into_mut","into_ref","into_ref","into_ref","into_ref","is_in_subset","is_in_subset","is_in_subset","is_in_subset","keystore_params","load_spec","max_runtime_instances","native_version","network_params","new","new_slot_notification_stream","operator","p2p_listen_port","prometheus_config","prometheus_listen_port","role","rpc_addr","rpc_cors","rpc_listen_port","rpc_max_connections","rpc_methods","run","select_chain","shared_params","start","support_url","telemetry_endpoints","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","tokio_handle","transaction_pool","trie_cache_maximum_size","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_name","type_name","type_name","type_name","unchecked_into","unchecked_into","unchecked_into","unchecked_into","unique_saturated_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","vzip"],"q":[[0,"subspace_node"],[191,"subspace_node::domain"]],"d":["Build a chain specification.","Db meta columns information.","Validate blocks.","Subspace Cli.","Run domain sub-commands.","Executor dispatch for subspace runtime","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.","","","","","","","","","","","","","","","","","","","","","","","","","","","Domain arguments","Domain arguments","","","","","Bootstrap nodes for DSN.","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.","Defines target total (in and out) connection number for …","Use the block request handler implementation from subspace …","","","","","Returns the argument unchanged.","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 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.","","Get a reference to the inner from the outer.","","","","","","","","","","","","","","","Calls U::from(self).","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.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","EVM domain executor instance.","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.","","","","","","","","","","","","","","","","","","","","","","","","","Creates domain configuration from domain cli.","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","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 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.","","Get a reference to the inner from the outer.","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Constructs a new instance of DomainCli.","","Run the node as an Operator","","","","","","","","","","Run a domain node.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[14,14,14,0,14,0,14,14,14,14,14,0,14,0,4,4,15,4,15,14,14,15,4,54,4,14,15,54,4,14,15,4,4,4,15,4,15,15,54,4,14,15,54,4,14,15,15,54,0,4,15,54,4,14,15,15,15,15,15,15,15,15,15,15,15,15,15,4,14,15,54,4,14,15,4,14,15,4,14,15,54,54,4,4,14,14,15,15,54,54,4,4,14,14,15,15,54,4,14,15,4,15,14,15,15,54,4,14,15,54,4,14,15,54,4,14,15,54,4,14,15,54,4,14,15,54,4,14,15,54,4,14,15,54,4,14,15,15,54,15,4,15,15,15,15,15,15,15,4,54,4,14,15,54,4,14,15,54,4,14,15,54,4,14,15,54,4,14,15,54,4,14,15,54,4,14,15,54,4,14,15,4,14,15,4,14,15,54,4,14,15,36,36,0,0,0,0,36,36,36,31,31,31,31,36,36,31,31,48,48,55,36,31,48,55,36,31,31,31,31,48,48,48,31,31,31,48,55,36,31,48,55,36,31,31,31,31,55,48,31,48,48,55,36,31,31,36,31,31,48,55,36,31,36,31,36,31,48,48,55,55,36,36,31,31,48,48,55,55,36,36,31,31,48,55,36,31,48,31,36,31,31,31,48,55,36,31,48,55,36,31,48,55,36,31,48,55,36,31,48,55,36,31,48,55,36,31,48,55,36,31,48,55,36,31,31,31,31,55,31,31,48,31,31,31,31,31,31,31,31,31,31,31,48,31,48,31,31,48,55,36,31,48,55,36,31,48,31,31,48,55,36,31,48,55,36,31,48,55,36,31,48,55,36,31,48,55,36,31,48,55,36,31,36,31,36,31,48,55,36,31],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[[],3],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[4,4],[[]],[[],2],[[],2],[[],2],[[],2],[[],5],[6],[6],[6],[6],[6],[6],[6],[6],[[],3],[[7,[9,[8]]],[[11,[[10,[8]]]]]],0,0,0,[6],[6],[6],[6],0,0,0,0,0,0,0,0,0,0,0,[[],3],[[4,12],13],[[14,12],13],[[15,12],13],[[]],[[]],[[]],[[]],[16,[[18,[4,17]]]],[16,[[18,[14,17]]]],[16,[[18,[15,17]]]],[16,[[18,[4,17]]]],[16,[[18,[14,17]]]],[16,[[18,[15,17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[11,[19]]]],[[],[[11,[19]]]],[7,20],[[],3],[[],3],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[[22,[21]]],[[22,[23,21]]]],[[[22,[21]]],[[22,[23,21]]]],[[[22,[21]]],[[22,[23,21]]]],[[[22,[21]]],[[22,[23,21]]]],[[[24,[21]]],[[24,[23,21]]]],[[[24,[21]]],[[24,[23,21]]]],[[[24,[21]]],[[24,[23,21]]]],[[[24,[21]]],[[24,[23,21]]]],[[[25,[21]]],[[25,[23,21]]]],[[[25,[21]]],[[25,[23,21]]]],[[[25,[21]]],[[25,[23,21]]]],[[[25,[21]]],[[25,[23,21]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],20],[[],20],[[],20],[[],20],[[15,7],[[18,[[22,[26]],3]]]],[[],27],0,[[4,28,[11,[28]]],29],0,0,0,[[],3],0,0,0,[[]],[[],11],[[],11],[[],11],[[],11],[[]],[[]],[[]],[[]],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],30],[[],30],[[],30],[[],30],[[],7],[[],7],[[],7],[[],7],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[4,16],[[18,[17]]]],[[14,16],[[18,[17]]]],[[15,16],[[18,[17]]]],[[4,16],[[18,[17]]]],[[14,16],[[18,[17]]]],[[15,16],[[18,[17]]]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,[31,32],[31,[[29,[20]]]],[2,2],[2,2],[2,2],[2,2],[[],3],[31,[[29,[[11,[33]]]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[31,20],[[29,[3]]]],[[],2],[[],2],0,0,0,[[],5],[[31,34],[[29,[28]]]],[31,[[29,[[11,[35]]]]]],[6],[6],[6],[6],[6],[6],[6],[6],[[],3],[[31,20],[[29,[[11,[3]]]]]],[31,[[29,[20]]]],[[7,[9,[8]]],[[11,[[10,[8]]]]]],0,0,0,[6],[6],[6],[6],[[],3],[[36,12],13],[[31,12],13],[31,[[29,[20]]]],[[]],[[]],[[]],[[]],[16,[[18,[36,17]]]],[16,[[18,[31,17]]]],[16,[[18,[36,17]]]],[16,[[18,[31,17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],[[11,[19]]]],[7,20],[[],3],[[],3],[31,[[11,[37]]]],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[[22,[21]]],[[22,[23,21]]]],[[[22,[21]]],[[22,[23,21]]]],[[[22,[21]]],[[22,[23,21]]]],[[[22,[21]]],[[22,[23,21]]]],[[[24,[21]]],[[24,[23,21]]]],[[[24,[21]]],[[24,[23,21]]]],[[[24,[21]]],[[24,[23,21]]]],[[[24,[21]]],[[24,[23,21]]]],[[[25,[21]]],[[25,[23,21]]]],[[[25,[21]]],[[25,[23,21]]]],[[[25,[21]]],[[25,[23,21]]]],[[[25,[21]]],[[25,[23,21]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],20],[[],20],[[],20],[[],20],[31,[[11,[38]]]],[[31,7],[[18,[[22,[26]],3]]]],[31,[[29,[[11,[6]]]]]],[[],27],[31,[[11,[39]]]],[[[11,[40]],32],31],0,0,[[],41],[[31,41,[22,[26]]],[[29,[[11,[42]]]]]],[[],41],[[31,20],[[29,[43]]]],[[31,41],[[29,[[11,[44]]]]]],[[31,20],[[29,[[11,[[10,[3]]]]]]]],[[],41],[31,[[29,[45]]]],[31,[[29,[46]]]],0,0,[31,47],[[48,[50,[49]]],[[18,[[22,[51]]]]]],[[],3],[[31,[22,[26]]],[[29,[[11,[52]]]]]],[[],11],[[],11],[[],11],[[],11],[[]],[[]],[[]],[[]],0,[[31,20],[[29,[53]]]],[31,[[29,[[11,[6]]]]]],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],30],[[],30],[[],30],[[],30],[[],7],[[],7],[[],7],[[],7],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[36,16],[[18,[17]]]],[[31,16],[[18,[17]]]],[[36,16],[[18,[17]]]],[[31,16],[[18,[17]]]],[[]],[[]],[[]],[[]]],"c":[],"p":[[3,"Private"],[3,"Command"],[3,"String"],[3,"PurgeChainCmd"],[15,"i32"],[15,"usize"],[15,"str"],[15,"u8"],[15,"slice"],[3,"Vec"],[4,"Option"],[3,"Formatter"],[6,"Result"],[4,"Subcommand"],[3,"Cli"],[3,"ArgMatches"],[6,"Error"],[4,"Result"],[3,"Id"],[15,"bool"],[3,"Global"],[3,"Box"],[8,"Any"],[3,"Arc"],[3,"Rc"],[8,"ChainSpec"],[3,"NativeVersion"],[3,"Configuration"],[6,"Result"],[3,"TypeId"],[3,"DomainCli"],[8,"Iterator"],[3,"BasePath"],[3,"Handle"],[15,"u64"],[4,"DomainSubcommand"],[3,"ImportParams"],[3,"KeystoreParams"],[3,"NetworkParams"],[3,"PathBuf"],[15,"u16"],[3,"PrometheusConfig"],[4,"Role"],[4,"SocketAddr"],[15,"u32"],[4,"RpcMethods"],[3,"SharedParams"],[3,"DomainInstanceStarter"],[6,"Block"],[3,"BootstrapResult"],[8,"Error"],[3,"TelemetryEndpoints"],[3,"Options"],[3,"ExecutorDispatch"],[3,"EVMDomainExecutorDispatch"]]},\ "subspace_proof_of_space":{"doc":"Subspace proof of space implementation based on Chia","t":"NQEIQNSIILLAALLKLLLKLLKKLLLLLKAKLLLLDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["Chia","Generator","PosTableType","Quality","Quality","Shim","TABLE_TYPE","Table","TableGenerator","borrow","borrow_mut","chia","chiapos","clone","clone_into","create_proof","deref","deref_mut","drop","find_quality","fmt","from","generate","generate","generate_parallel","generate_parallel","generator","init","into","is_proof_valid","shim","to_bytes","to_owned","try_from","try_into","type_id","ChiaQuality","ChiaTable","ChiaTableGenerator","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","create_proof","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","find_quality","fmt","fmt","fmt","from","from","from","generate","generate","generate_parallel","generate_parallel","init","init","init","into","into","into","is_proof_valid","to_bytes","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","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","ShimQuality","ShimTable","ShimTableGenerator","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","create_proof","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","find_quality","fmt","fmt","fmt","from","from","from","generate","generate","init","init","init","into","into","into","is_proof_valid","to_bytes","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id"],"q":[[0,"subspace_proof_of_space"],[36,"subspace_proof_of_space::chia"],[87,"subspace_proof_of_space::chiapos"],[183,"subspace_proof_of_space::shim"]],"d":["Chia table","Instance that can be used to generate tables with better …","Proof of space table type","Abstraction that represents quality of the solution in the …","Abstraction that represents quality of the solution in the …","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","","","Create proof for this solution","","","","Try to find quality of the proof at challenge_index if …","","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","Get underlying bytes representation of the quality","","","","","Abstraction that represents quality of the solution in the …","Subspace proof of space table.","Subspace proof of space table generator.","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","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.","Abstraction that represents quality of the solution in the …","Subspace proof of space table.","Subspace proof of space table generator.","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","",""],"i":[1,23,0,0,23,1,23,0,0,1,1,0,0,1,1,24,1,1,1,23,1,1,25,23,25,23,23,1,1,23,0,24,1,1,1,1,0,0,0,13,12,14,13,12,14,12,12,13,12,13,12,14,13,12,14,13,12,14,14,13,12,14,13,12,14,12,14,12,14,13,12,14,13,12,14,14,13,12,13,12,14,13,12,14,13,12,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,0,21,20,22,21,20,22,20,20,21,20,21,20,22,21,20,22,21,20,22,22,21,20,22,21,20,22,20,22,21,20,22,21,20,22,22,21,20,21,20,22,21,20,22,21,20,22],"f":[0,0,0,0,0,0,0,0,0,[[]],[[]],0,0,[1,1],[[]],[[],2],[3],[3],[3],[4,5],[[1,6],7],[[]],[8],[8],[8],[8],[[]],[[],3],[[]],[[8,4,2],[[5,[9]]]],0,[[],9],[[]],[[],10],[[],10],[[],11],0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[12,12],[[]],[13,2],[[],12],[3],[3],[3],[3],[3],[3],[3],[3],[3],[[14,4],5],[[13,6],7],[[12,6],7],[[14,6],7],[[]],[[]],[[]],[[12,8],14],[8,14],[[12,8],14],[8,14],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[8,4,2],[[5,[9]]]],[13,9],[[]],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],0,0,[[]],[[]],[[]],[[]],[15,15],[[]],[[[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],[3],[3],[3],[3],[3],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[18,[17,[16]]],19],[[15,6],7],[[18,6],7],[[]],[[]],[[],3],[[],3],[[]],[[]],[[]],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[[17,[16]],[17,[16]],[17,[16]]],[[5,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[5,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[5,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[5,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[5,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[5,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[5,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[5,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[5,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[5,[[17,[16]]]]]],[[[17,[16]],[17,[16]],[17,[16]]],[[5,[[17,[16]]]]]],0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[20,20],[[]],[21,2],[[],20],[3],[3],[3],[3],[3],[3],[3],[3],[3],[[22,4],5],[[21,6],7],[[20,6],7],[[22,6],7],[[]],[[]],[[]],[[20,8],22],[8,22],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[8,4,2],[[5,[9]]]],[21,9],[[]],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11]],"c":[],"p":[[4,"PosTableType"],[3,"PosProof"],[15,"usize"],[15,"u32"],[4,"Option"],[3,"Formatter"],[6,"Result"],[3,"PosSeed"],[3,"PosQualityBytes"],[4,"Result"],[3,"TypeId"],[3,"ChiaTableGenerator"],[3,"ChiaQuality"],[3,"ChiaTable"],[3,"TablesCache"],[15,"u8"],[15,"array"],[3,"Tables"],[8,"Iterator"],[3,"ShimTableGenerator"],[3,"ShimQuality"],[3,"ShimTable"],[8,"Table"],[8,"Quality"],[8,"TableGenerator"]]},\ "subspace_proof_of_time":{"doc":"Proof of time implementation.","t":"NELLLLLLLLLLFLLLLLFMM","n":["NotMultipleOfCheckpoints","PotError","borrow","borrow_mut","deref","deref_mut","drop","fmt","fmt","from","init","into","prove","provide","to_string","try_from","try_into","type_id","verify","iterations","num_checkpoints"],"q":[[0,"subspace_proof_of_time"],[19,"subspace_proof_of_time::PotError"]],"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":[2,0,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,0,15,15],"f":[0,0,[[]],[[]],[1],[1],[1],[[2,3],4],[[2,3],4],[[]],[[],1],[[]],[[5,6],[[8,[7,2]]]],[9],[[],10],[[],8],[[],8],[[],11],[[5,6,[13,[12]]],[[8,[14,2]]]],0,0],"c":[],"p":[[15,"usize"],[4,"PotError"],[3,"Formatter"],[6,"Result"],[3,"PotSeed"],[3,"NonZeroU32"],[3,"PotCheckpoints"],[4,"Result"],[3,"Demand"],[3,"String"],[3,"TypeId"],[3,"PotOutput"],[15,"slice"],[15,"bool"],[13,"NotMultipleOfCheckpoints"]]},\ diff --git a/src/subspace_farmer/piece_cache.rs.html b/src/subspace_farmer/piece_cache.rs.html index 184030c6b80..06daa6a4f6b 100644 --- a/src/subspace_farmer/piece_cache.rs.html +++ b/src/subspace_farmer/piece_cache.rs.html @@ -711,7 +711,7 @@ /// this number defines an interval in pieces after which cache is updated const INTERMEDIATE_CACHE_UPDATE_INTERVAL: usize = 100; /// Get piece retry attempts number. -const PIECE_GETTER_RETRY_NUMBER: NonZeroU16 = NonZeroU16::new(3).expect("Not zero; qed"); +const PIECE_GETTER_RETRY_NUMBER: NonZeroU16 = NonZeroU16::new(4).expect("Not zero; qed"); #[derive(Debug, Clone)] struct DiskPieceCacheState { diff --git a/src/subspace_farmer/single_disk_farm/plotting.rs.html b/src/subspace_farmer/single_disk_farm/plotting.rs.html index a4cbbda405f..8a6616674c3 100644 --- a/src/subspace_farmer/single_disk_farm/plotting.rs.html +++ b/src/subspace_farmer/single_disk_farm/plotting.rs.html @@ -698,7 +698,7 @@ /// Size of the cache of archived segments for the purposes of faster sector expiration checks. const ARCHIVED_SEGMENTS_CACHE_SIZE: NonZeroUsize = NonZeroUsize::new(1000).expect("Not zero; qed"); /// Get piece retry attempts number. -const PIECE_GETTER_RETRY_NUMBER: NonZeroU16 = NonZeroU16::new(3).expect("Not zero; qed"); +const PIECE_GETTER_RETRY_NUMBER: NonZeroU16 = NonZeroU16::new(4).expect("Not zero; qed"); /// Errors that happen during plotting #[derive(Debug, Error)] diff --git a/src/subspace_networking/node.rs.html b/src/subspace_networking/node.rs.html index a5828ea80ca..650899c955e 100644 --- a/src/subspace_networking/node.rs.html +++ b/src/subspace_networking/node.rs.html @@ -535,6 +535,79 @@ 535 536 537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610
use crate::protocols::request_response::handlers::generic_request_handler::GenericRequest;
 use crate::protocols::request_response::request_response_factory;
 pub use crate::shared::NewPeerInfo;
@@ -890,16 +963,21 @@
         result_receiver.await?.map_err(PublishError::Publish)
     }
 
-    /// Sends the generic request to the peer and awaits the result.
-    pub async fn send_generic_request<Request>(
+    async fn send_generic_request_internal<Request>(
         &self,
         peer_id: PeerId,
         request: Request,
+        acquire_permit: bool,
     ) -> Result<Request::Response, SendRequestError>
     where
         Request: GenericRequest,
     {
-        let _permit = self.shared.rate_limiter.acquire_regular_permit().await;
+        let _permit = if acquire_permit {
+            Some(self.shared.rate_limiter.acquire_kademlia_permit().await)
+        } else {
+            None
+        };
+
         let (result_sender, result_receiver) = oneshot::channel();
         let command = Command::GenericRequest {
             peer_id,
@@ -915,6 +993,19 @@
         Request::Response::decode(&mut result.as_slice()).map_err(Into::into)
     }
 
+    /// Sends the generic request to the peer and awaits the result.
+    pub async fn send_generic_request<Request>(
+        &self,
+        peer_id: PeerId,
+        request: Request,
+    ) -> Result<Request::Response, SendRequestError>
+    where
+        Request: GenericRequest,
+    {
+        self.send_generic_request_internal(peer_id, request, true)
+            .await
+    }
+
     /// Get closest peers by multihash key using Kademlia DHT.
     pub async fn get_closest_peers(
         &self,
@@ -944,7 +1035,20 @@
         &self,
         key: Multihash,
     ) -> Result<impl Stream<Item = PeerId>, GetProvidersError> {
-        let permit = self.shared.rate_limiter.acquire_kademlia_permit().await;
+        self.get_providers_internal(key, true).await
+    }
+
+    async fn get_providers_internal(
+        &self,
+        key: Multihash,
+        acquire_permit: bool,
+    ) -> Result<impl Stream<Item = PeerId>, GetProvidersError> {
+        let permit = if acquire_permit {
+            Some(self.shared.rate_limiter.acquire_kademlia_permit().await)
+        } else {
+            None
+        };
+
         let (result_sender, result_receiver) = mpsc::unbounded();
 
         trace!(?key, "Starting 'get_providers' request.");
@@ -1071,5 +1175,47 @@
     pub fn on_discovered_peer(&self, callback: HandlerFn<PeerDiscovered>) -> HandlerId {
         self.shared.handlers.peer_discovered.add(callback)
     }
+
+    /// Returns the request batch handle with common "connection permit" slot from the shared pool.
+    pub async fn get_requests_batch_handle(&self) -> NodeRequestsBatchHandle {
+        let _permit = self.shared.rate_limiter.acquire_kademlia_permit().await;
+
+        NodeRequestsBatchHandle {
+            _permit,
+            node: self.clone(),
+        }
+    }
+}
+
+/// Requests handle for node operations. These operations share the same semaphore permit for
+/// connection and substream limits. It generally serves for the case when we have `get-providers`
+/// operation followed by request-responses. This way we likely share the same connection and
+/// we don't need to obtain separate semaphore permits for the operations.
+pub struct NodeRequestsBatchHandle {
+    node: Node,
+    _permit: RateLimiterPermit,
+}
+
+impl NodeRequestsBatchHandle {
+    /// Get item providers by its key. Initiate 'providers' Kademlia operation.
+    pub async fn get_providers(
+        &mut self,
+        key: Multihash,
+    ) -> Result<impl Stream<Item = PeerId>, GetProvidersError> {
+        self.node.get_providers_internal(key, false).await
+    }
+    /// Sends the generic request to the peer and awaits the result.
+    pub async fn send_generic_request<Request>(
+        &mut self,
+        peer_id: PeerId,
+        request: Request,
+    ) -> Result<Request::Response, SendRequestError>
+    where
+        Request: GenericRequest,
+    {
+        self.node
+            .send_generic_request_internal(peer_id, request, false)
+            .await
+    }
 }
 
\ No newline at end of file diff --git a/src/subspace_networking/node_runner.rs.html b/src/subspace_networking/node_runner.rs.html index 254660a81e5..d130a414a20 100644 --- a/src/subspace_networking/node_runner.rs.html +++ b/src/subspace_networking/node_runner.rs.html @@ -1611,7 +1611,7 @@ Providers { sender: mpsc::UnboundedSender<PeerId>, // Just holding onto permit while data structure is not dropped - _permit: RateLimiterPermit, +
_permit: Option<RateLimiterPermit>, }, PutValue { sender: mpsc::UnboundedSender<()>, diff --git a/src/subspace_networking/shared.rs.html b/src/subspace_networking/shared.rs.html index 2bab9c9deeb..1d5d4e7ad1d 100644 --- a/src/subspace_networking/shared.rs.html +++ b/src/subspace_networking/shared.rs.html @@ -251,7 +251,7 @@ GetProviders { key: Multihash, result_sender: mpsc::UnboundedSender<PeerId>, - permit: RateLimiterPermit, + permit: Option<RateLimiterPermit>, }, BanPeer { peer_id: PeerId, diff --git a/src/subspace_networking/utils/piece_provider.rs.html b/src/subspace_networking/utils/piece_provider.rs.html index c03c80f6182..63a955f3e72 100644 --- a/src/subspace_networking/utils/piece_provider.rs.html +++ b/src/subspace_networking/utils/piece_provider.rs.html @@ -286,15 +286,15 @@ async fn get_piece_from_cache(&self, piece_index: PieceIndex) -> Option<Piece> { let key = piece_index.to_multihash(); - let get_providers_result = self.node.get_providers(key).await; + let mut request_batch = self.node.get_requests_batch_handle().await; + let get_providers_result = request_batch.get_providers(key).await; match get_providers_result { Ok(mut get_providers_stream) => { while let Some(provider_id) = get_providers_stream.next().await { trace!(%piece_index, %provider_id, "get_providers returned an item"); - let request_result = self - .node + let request_result = request_batch .send_generic_request(provider_id, PieceByIndexRequest { piece_index }) .await; diff --git a/src/subspace_networking/utils/rate_limiter.rs.html b/src/subspace_networking/utils/rate_limiter.rs.html index 671b49a3f6d..98055b32a38 100644 --- a/src/subspace_networking/utils/rate_limiter.rs.html +++ b/src/subspace_networking/utils/rate_limiter.rs.html @@ -132,6 +132,9 @@ 132 133 134 +135 +136 +137
pub(crate) mod resizable_semaphore;
 #[cfg(test)]
 mod tests;
@@ -168,6 +171,9 @@
 /// Defines the minimum size of the "connection limit semaphore".
 const MINIMUM_CONNECTIONS_SEMAPHORE_SIZE: usize = 3;
 
+/// Empiric parameter for connection timeout and retry parameters (total retries and backoff time).
+const CONNECTION_TIMEOUT_PARAMETER: usize = 9;
+
 #[derive(Debug)]
 pub(crate) struct RateLimiterPermit {
     /// Limits Kademlia substreams.
@@ -196,9 +202,7 @@
         Self {
             kademlia_tasks_semaphore: ResizableSemaphore::new(KADEMLIA_BASE_CONCURRENT_TASKS),
             regular_tasks_semaphore: ResizableSemaphore::new(REGULAR_BASE_CONCURRENT_TASKS),
-            connections_semaphore: ResizableSemaphore::new(
-                NonZeroUsize::new(permits).expect("Manual setting."),
-            ),
+            connections_semaphore: ResizableSemaphore::new(permits),
         }
     }
 
@@ -207,19 +211,21 @@
     fn calculate_connection_semaphore_size(
         out_connections: usize,
         pending_out_connections: usize,
-    ) -> usize {
+    ) -> NonZeroUsize {
         let connections = out_connections.min(pending_out_connections);
-        if connections == 0 {
-            return 0;
-        }
+
         // Number of "in-flight" parallel requests for each query
         let kademlia_parallelism_level = libp2p::kad::ALPHA_VALUE.get();
-        // Empiric parameter for connection timeout and retry parameters (total retries and backoff time).
-        let connection_timeout_parameter = 10;
 
-        let result = connections / (kademlia_parallelism_level * connection_timeout_parameter);
+        let permits_number =
+            (connections / (kademlia_parallelism_level * CONNECTION_TIMEOUT_PARAMETER)).max(1);
+
+        let minimum_semaphore_size =
+            NonZeroUsize::new(MINIMUM_CONNECTIONS_SEMAPHORE_SIZE).expect("Manual setting");
 
-        result.max(MINIMUM_CONNECTIONS_SEMAPHORE_SIZE)
+        NonZeroUsize::new(permits_number)
+            .expect("The value is at least 1")
+            .max(minimum_semaphore_size)
     }
 
     pub(crate) async fn acquire_regular_permit(&self) -> RateLimiterPermit {
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 19f8e63cd29..d33e59cbe85 100644
--- a/src/subspace_service/sync_from_dsn/import_blocks.rs.html
+++ b/src/subspace_service/sync_from_dsn/import_blocks.rs.html
@@ -376,7 +376,7 @@
 use tracing::warn;
 
 /// Get piece retry attempts number.
-const PIECE_GETTER_RETRY_NUMBER: NonZeroU16 = NonZeroU16::new(3).expect("Not zero; qed");
+const PIECE_GETTER_RETRY_NUMBER: NonZeroU16 = NonZeroU16::new(4).expect("Not zero; qed");
 
 /// How many blocks to queue before pausing and waiting for blocks to be imported, this is
 /// essentially used to ensure we use a bounded amount of RAM during sync process.
diff --git a/subspace_archiving/archiver/enum.ArchiverInstantiationError.html b/subspace_archiving/archiver/enum.ArchiverInstantiationError.html
index cb166b9f0e2..03ec3ad2baa 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 cd4d23ff92a..0bd39d7e735 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 2e33f0cb539..cfdbda331ec 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 023bf247973..364dcc30d85 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 bfeb4c82084..4ca920b2055 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 9dc9bb58887..8dcb17884af 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 7751d0e0abf..781c7902cf8 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§

§

impl !RefUnwindSafe for PiecesReconstructor

§

impl Send for PiecesReconstructor

§

impl Sync for PiecesReconstructor

§

impl Unpin for PiecesReconstructor

§

impl !UnwindSafe for PiecesReconstructor

Blanket Implementations§

source§

impl<T> 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 1faecca517f..98722f05d13 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, demand: &mut Demand<'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 8c59711bbfd..853f07c7371 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 78958b16183..c8289a2eb48 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 f5d972c6df2..39219d28dcb 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§

§

impl RefUnwindSafe for ErasureCoding

§

impl Send for ErasureCoding

§

impl Sync for ErasureCoding

§

impl Unpin for ErasureCoding

§

impl UnwindSafe for ErasureCoding

Blanket Implementations§

source§

impl<T> 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_components/auditing/fn.audit_sector.html b/subspace_farmer_components/auditing/fn.audit_sector.html index 96326d78722..cd12abdf3e9 100644 --- a/subspace_farmer_components/auditing/fn.audit_sector.html +++ b/subspace_farmer_components/auditing/fn.audit_sector.html @@ -1,8 +1,8 @@ audit_sector in subspace_farmer_components::auditing - Rust
pub fn audit_sector<'a, Sector>(
-    public_key: &'a PublicKey,
-    sector_index: SectorIndex,
-    global_challenge: &Blake2b256Hash,
-    solution_range: SolutionRange,
+    public_key: &'a PublicKey,
+    sector_index: SectorIndex,
+    global_challenge: &Blake2b256Hash,
+    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 e2f3aafed82..1ecab8c0ac6 100644
--- a/subspace_farmer_components/auditing/struct.AuditResult.html
+++ b/subspace_farmer_components/auditing/struct.AuditResult.html
@@ -1,10 +1,10 @@
 AuditResult in subspace_farmer_components::auditing - Rust
pub struct AuditResult<'a, Sector>where
     Sector: 'a,{
     pub solution_candidates: SolutionCandidates<'a, Sector>,
-    pub best_solution_distance: SolutionRange,
+    pub best_solution_distance: SolutionRange,
 }
Expand description

Result of sector audit

Fields§

§solution_candidates: SolutionCandidates<'a, Sector>

Solution candidates

-
§best_solution_distance: SolutionRange

Best solution distance found

+
§best_solution_distance: SolutionRange

Best solution distance found

Trait Implementations§

source§

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

source§

fn clone(&self) -> AuditResult<'a, Sector>

Returns a copy of the value. Read 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 f8e05d3c2ad..14c4b44bfd7 100644 --- a/subspace_farmer_components/plotting/enum.PlottingError.html +++ b/subspace_farmer_components/plotting/enum.PlottingError.html @@ -9,13 +9,13 @@ expected: usize, }, PieceNotFound { - piece_index: PieceIndex, + piece_index: PieceIndex, }, PieceRecoveryFailed { - piece_index: PieceIndex, + piece_index: PieceIndex, }, FailedToRetrievePiece { - piece_index: PieceIndex, + piece_index: PieceIndex, error: Box<dyn Error + Send + Sync + 'static>, }, }

Expand description

Plotting status

@@ -26,11 +26,11 @@
§

BadSectorMetadataOutputSize

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

Trait Implementations§

source§

impl Debug for PlottingError

source§

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

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

impl Display for PlottingError

source§

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

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

impl Error for PlottingError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read 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, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere diff --git a/subspace_farmer_components/plotting/fn.plot_sector.html b/subspace_farmer_components/plotting/fn.plot_sector.html index d855f4b7621..bf5b56533cb 100644 --- a/subspace_farmer_components/plotting/fn.plot_sector.html +++ b/subspace_farmer_components/plotting/fn.plot_sector.html @@ -1,10 +1,10 @@ plot_sector in subspace_farmer_components::plotting - Rust
pub async fn plot_sector<PG, PosTable>(
-    public_key: &PublicKey,
-    sector_index: SectorIndex,
+    public_key: &PublicKey,
+    sector_index: SectorIndex,
     piece_getter: &PG,
     piece_getter_retry_policy: PieceGetterRetryPolicy,
     farmer_protocol_info: &FarmerProtocolInfo,
-    kzg: &Kzg,
+    kzg: &Kzg,
     erasure_coding: &ErasureCoding,
     pieces_in_sector: u16,
     sector_output: &mut Vec<u8>,
diff --git a/subspace_farmer_components/plotting/struct.PlottedSector.html b/subspace_farmer_components/plotting/struct.PlottedSector.html
index 8673de87cea..ce191e1f315 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 d537ee5033a..bd33f7791c2 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 07c235e2798..aeb4302172c 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 52f70090eb0..9ba49c4889b 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,

Trait Implementations§

source§

impl<'a, Sector> Clone for SolutionCandidates<'a, Sector>where + TableGenerator: FnMut(&PosSeed) -> PosTable + 'a,

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 Sector: RefUnwindSafe,

§

impl<'a, Sector> Send for SolutionCandidates<'a, Sector>where diff --git a/subspace_farmer_components/proving/trait.ProvableSolutions.html b/subspace_farmer_components/proving/trait.ProvableSolutions.html index 9e02f08ea55..c3d0293b01a 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 iterator is empty

+

Required Methods§

source

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

Best solution distance found, None in case iterator is empty

Implementors§

\ No newline at end of file diff --git a/subspace_farmer_components/reading/enum.ReadingError.html b/subspace_farmer_components/reading/enum.ReadingError.html index 014c0a910cb..d1719ff9004 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 a120e8cfa56..71d4e34a438 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 fn read_piece<PosTable, Sector>(
-    piece_offset: PieceOffset,
-    sector_id: &SectorId,
+    piece_offset: PieceOffset,
+    sector_id: &SectorId,
     sector_metadata: &SectorMetadataChecksummed,
     sector: &Sector,
     erasure_coding: &ErasureCoding,
     table_generator: &mut PosTable::Generator
-) -> Result<Piece, ReadingError>where
+) -> Result<Piece, ReadingError>where
     PosTable: Table,
     Sector: ReadAt + ?Sized,
Expand description

Read piece from sector

\ No newline at end of file diff --git a/subspace_farmer_components/reading/fn.read_sector_record_chunks.html b/subspace_farmer_components/reading/fn.read_sector_record_chunks.html index cddbd5b25c1..570aee406e9 100644 --- a/subspace_farmer_components/reading/fn.read_sector_record_chunks.html +++ b/subspace_farmer_components/reading/fn.read_sector_record_chunks.html @@ -1,11 +1,11 @@ read_sector_record_chunks in subspace_farmer_components::reading - Rust
pub fn read_sector_record_chunks<PosTable, Sector>(
-    piece_offset: PieceOffset,
+    piece_offset: PieceOffset,
     pieces_in_sector: u16,
     s_bucket_offsets: &[u32; 65536],
     sector_contents_map: &SectorContentsMap,
     pos_table: &PosTable,
     sector: &Sector
-) -> Result<Box<[Option<Scalar>; 65536]>, ReadingError>where
+) -> Result<Box<[Option<Scalar>; 65536]>, ReadingError>where
     PosTable: Table,
     Sector: ReadAt + ?Sized,
Expand description

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

\ No newline at end of file diff --git a/subspace_farmer_components/reading/fn.recover_extended_record_chunks.html b/subspace_farmer_components/reading/fn.recover_extended_record_chunks.html index 0e902dd1e11..1b20a78f6ea 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 4eb94526f87..4c7a1dcd615 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 65ecdc23dcf..b1112082a53 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 1b66cc8900b..07b0867a3e1 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,19 +40,19 @@ 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.

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.

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 a907f5c3241..c2b4f83110e 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 6491fd66370..6793dcd4401 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/enum.GetClosestPeersError.html b/subspace_networking/enum.GetClosestPeersError.html index 8183c89c5bd..3962567d3e3 100644 --- a/subspace_networking/enum.GetClosestPeersError.html +++ b/subspace_networking/enum.GetClosestPeersError.html @@ -4,7 +4,7 @@ }
Expand description

Defines errors for get-closest-peers operation.

Variants§

§

SendCommand(SendError)

Failed to send command to the node runner

§

NodeRunnerDropped

Node runner was dropped

-

Trait Implementations§

source§

impl Debug for GetClosestPeersError

source§

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

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

impl Display for GetClosestPeersError

source§

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

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

impl Error for GetClosestPeersError

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, demand: &mut Demand<'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 From<Canceled> for GetClosestPeersError

source§

fn from(oneshot::Canceled: Canceled) -> Self

Converts to this type from the input type.
source§

impl From<SendError> for GetClosestPeersError

source§

fn from(source: SendError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere +

Trait Implementations§

source§

impl Debug for GetClosestPeersError

source§

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

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

impl Display for GetClosestPeersError

source§

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

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

impl Error for GetClosestPeersError

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, demand: &mut Demand<'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 From<Canceled> for GetClosestPeersError

source§

fn from(oneshot::Canceled: Canceled) -> Self

Converts to this type from the input type.
source§

impl From<SendError> for GetClosestPeersError

source§

fn from(source: SendError) -> Self

Converts to this type from the input type.

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/enum.SendRequestError.html b/subspace_networking/enum.SendRequestError.html index caa90204b2a..858e585f9da 100644 --- a/subspace_networking/enum.SendRequestError.html +++ b/subspace_networking/enum.SendRequestError.html @@ -8,7 +8,7 @@

§

NodeRunnerDropped

Node runner was dropped

§

ProtocolFailure(RequestFailure)

Underlying protocol returned an error, impossible to get response.

§

IncorrectResponseFormat(Error)

Underlying protocol returned an incorrect format, impossible to get response.

-

Trait Implementations§

source§

impl Debug for SendRequestError

source§

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

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

impl Display for SendRequestError

source§

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

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

impl Error for SendRequestError

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, demand: &mut Demand<'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 From<Canceled> for SendRequestError

source§

fn from(oneshot::Canceled: Canceled) -> Self

Converts to this type from the input type.
source§

impl From<Error> for SendRequestError

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<SendError> for SendRequestError

source§

fn from(source: SendError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere +

Trait Implementations§

source§

impl Debug for SendRequestError

source§

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

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

impl Display for SendRequestError

source§

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

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

impl Error for SendRequestError

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, demand: &mut Demand<'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 From<Canceled> for SendRequestError

source§

fn from(oneshot::Canceled: Canceled) -> Self

Converts to this type from the input type.
source§

impl From<Error> for SendRequestError

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<SendError> for SendRequestError

source§

fn from(source: SendError) -> Self

Converts to this type from the input type.

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/struct.Node.html b/subspace_networking/struct.Node.html index 1a4f2d5b3e3..feda62b16a7 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.

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

source

pub async fn get_value( &self, key: Multihash @@ -18,49 +18,50 @@ topic: Sha256Topic, message: Vec<u8> ) -> Result<(), PublishError>

Subcribe a messgo to some topic on the DSN.

-
source

pub async fn send_generic_request<Request>( +

source

pub async fn send_generic_request<Request>( &self, peer_id: PeerId, 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_peer_info( +

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_peer_info( &self, callback: Arc<dyn Fn(&NewPeerInfo) + Send + Sync + 'static> ) -> HandlerId

Callback is called when we receive new crate::protocols::peer_info::PeerInfo

-
source

pub fn on_disconnected_peer( +

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.

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_node/domain/struct.DomainInstanceStarter.html b/subspace_node/domain/struct.DomainInstanceStarter.html index e6eeceeb588..97ccd1f6115 100644 --- a/subspace_node/domain/struct.DomainInstanceStarter.html +++ b/subspace_node/domain/struct.DomainInstanceStarter.html @@ -1,7 +1,7 @@ DomainInstanceStarter in subspace_node::domain - Rust
pub struct DomainInstanceStarter {
     pub domain_cli: DomainCli,
     pub tokio_handle: Handle,
-    pub consensus_client: Arc<CFullClient<CRuntimeApi, CExecutorDispatch>>,
+    pub consensus_client: Arc<CFullClient<CRuntimeApi, CExecutorDispatch>>,
     pub consensus_offchain_tx_pool_factory: OffchainTransactionPoolFactory<CBlock>,
     pub block_importing_notification_stream: SubspaceNotificationStream<BlockImportingNotification<CBlock>>,
     pub new_slot_notification_stream: SubspaceNotificationStream<NewSlotNotification>,
@@ -11,7 +11,7 @@
     pub gossip_message_sink: TracingUnboundedSender<Message>,
 }
Expand description

DomainInstanceStarter used to start a domain instance node based on the given bootstrap result

-

Fields§

§domain_cli: DomainCli§tokio_handle: Handle§consensus_client: Arc<CFullClient<CRuntimeApi, CExecutorDispatch>>§consensus_offchain_tx_pool_factory: OffchainTransactionPoolFactory<CBlock>§block_importing_notification_stream: SubspaceNotificationStream<BlockImportingNotification<CBlock>>§new_slot_notification_stream: SubspaceNotificationStream<NewSlotNotification>§consensus_sync_service: Arc<SyncingService<CBlock>>§select_chain: FullSelectChain§domain_message_receiver: TracingUnboundedReceiver<Vec<u8>>§gossip_message_sink: TracingUnboundedSender<Message>

Implementations§

source§

impl DomainInstanceStarter

source

pub async fn start( +

Fields§

§domain_cli: DomainCli§tokio_handle: Handle§consensus_client: Arc<CFullClient<CRuntimeApi, CExecutorDispatch>>§consensus_offchain_tx_pool_factory: OffchainTransactionPoolFactory<CBlock>§block_importing_notification_stream: SubspaceNotificationStream<BlockImportingNotification<CBlock>>§new_slot_notification_stream: SubspaceNotificationStream<NewSlotNotification>§consensus_sync_service: Arc<SyncingService<CBlock>>§select_chain: FullSelectChain§domain_message_receiver: TracingUnboundedReceiver<Vec<u8>>§gossip_message_sink: TracingUnboundedSender<Message>

Implementations§

source§

impl DomainInstanceStarter

source

pub async fn start( self, bootstrap_result: BootstrapResult<CBlock> ) -> Result<(), Box<dyn Error>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere diff --git a/subspace_proof_of_space/chia/struct.ChiaQuality.html b/subspace_proof_of_space/chia/struct.ChiaQuality.html index 378a9a0f22a..0da2a1ff857 100644 --- a/subspace_proof_of_space/chia/struct.ChiaQuality.html +++ b/subspace_proof_of_space/chia/struct.ChiaQuality.html @@ -1,6 +1,6 @@ ChiaQuality in subspace_proof_of_space::chia - Rust
pub struct ChiaQuality<'a> { /* private fields */ }
Expand description

Abstraction that represents quality of the solution in the table.

Chia implementation.

-

Trait Implementations§

source§

impl<'a> Debug for ChiaQuality<'a>

source§

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

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

impl<'a> Quality for ChiaQuality<'a>

source§

fn to_bytes(&self) -> PosQualityBytes

Get underlying bytes representation of the quality
source§

fn create_proof(&self) -> PosProof

Create proof for this solution

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for ChiaQuality<'a>

§

impl<'a> Send for ChiaQuality<'a>

§

impl<'a> Sync for ChiaQuality<'a>

§

impl<'a> Unpin for ChiaQuality<'a>

§

impl<'a> UnwindSafe for ChiaQuality<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere +

Trait Implementations§

source§

impl<'a> Debug for ChiaQuality<'a>

source§

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

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

impl<'a> Quality for ChiaQuality<'a>

source§

fn to_bytes(&self) -> PosQualityBytes

Get underlying bytes representation of the quality
source§

fn create_proof(&self) -> PosProof

Create proof for this solution

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for ChiaQuality<'a>

§

impl<'a> Send for ChiaQuality<'a>

§

impl<'a> Sync for ChiaQuality<'a>

§

impl<'a> Unpin for ChiaQuality<'a>

§

impl<'a> UnwindSafe for ChiaQuality<'a>

Blanket Implementations§

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.ChiaTable.html b/subspace_proof_of_space/chia/struct.ChiaTable.html index e39d6b88808..7315166e45c 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
§

type Quality<'a> = ChiaQuality<'a>

Abstraction that represents quality of the solution in the table
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_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>

Try to find quality of the proof at challenge_index if proof 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
§

type Quality<'a> = ChiaQuality<'a>

Abstraction that represents quality of the solution in the table
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_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>

Try to find quality of the proof at challenge_index if proof exists
source§

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

Check whether proof created earlier is valid and return quality bytes if 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 +) -> Option<PosQualityBytes>

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 d2aea848eec..bfa4f713ecd 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.ShimQuality.html b/subspace_proof_of_space/shim/struct.ShimQuality.html index 2169e2d72f3..38faf38db22 100644 --- a/subspace_proof_of_space/shim/struct.ShimQuality.html +++ b/subspace_proof_of_space/shim/struct.ShimQuality.html @@ -1,6 +1,6 @@ ShimQuality in subspace_proof_of_space::shim - Rust
pub struct ShimQuality<'a> { /* private fields */ }
Expand description

Abstraction that represents quality of the solution in the table.

Shim implementation.

-

Trait Implementations§

source§

impl<'a> Debug for ShimQuality<'a>

source§

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

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

impl<'a> Quality for ShimQuality<'a>

source§

fn to_bytes(&self) -> PosQualityBytes

Get underlying bytes representation of the quality
source§

fn create_proof(&self) -> PosProof

Create proof for this solution

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for ShimQuality<'a>

§

impl<'a> Send for ShimQuality<'a>

§

impl<'a> Sync for ShimQuality<'a>

§

impl<'a> Unpin for ShimQuality<'a>

§

impl<'a> UnwindSafe for ShimQuality<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere +

Trait Implementations§

source§

impl<'a> Debug for ShimQuality<'a>

source§

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

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

impl<'a> Quality for ShimQuality<'a>

source§

fn to_bytes(&self) -> PosQualityBytes

Get underlying bytes representation of the quality
source§

fn create_proof(&self) -> PosProof

Create proof for this solution

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for ShimQuality<'a>

§

impl<'a> Send for ShimQuality<'a>

§

impl<'a> Sync for ShimQuality<'a>

§

impl<'a> Unpin for ShimQuality<'a>

§

impl<'a> UnwindSafe for ShimQuality<'a>

Blanket Implementations§

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 d0e5741c5f6..123e4d9b03c 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
§

type Quality<'a> = ShimQuality<'a>

Abstraction that represents quality of the solution in the table
source§

fn generate(seed: &PosSeed) -> ShimTable

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

fn find_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>

Try to find quality of the proof at challenge_index if proof 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
§

type Quality<'a> = ShimQuality<'a>

Abstraction that represents quality of the solution in the table
source§

fn generate(seed: &PosSeed) -> ShimTable

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

fn find_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>

Try to find quality of the proof at challenge_index if proof exists
source§

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

Check whether proof created earlier is valid and return quality bytes if 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 +) -> Option<PosQualityBytes>

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 5033e25ea4e..56cf0098293 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.Quality.html b/subspace_proof_of_space/trait.Quality.html index 893162567a9..aeafa77aca2 100644 --- a/subspace_proof_of_space/trait.Quality.html +++ b/subspace_proof_of_space/trait.Quality.html @@ -1,8 +1,8 @@ Quality in subspace_proof_of_space - Rust
pub trait Quality {
     // Required methods
-    fn to_bytes(&self) -> PosQualityBytes;
-    fn create_proof(&self) -> PosProof;
+    fn to_bytes(&self) -> PosQualityBytes;
+    fn create_proof(&self) -> PosProof;
 }
Expand description

Abstraction that represents quality of the solution in the table

-

Required Methods§

source

fn to_bytes(&self) -> PosQualityBytes

Get underlying bytes representation of the quality

-
source

fn create_proof(&self) -> PosProof

Create proof for this solution

+

Required Methods§

source

fn to_bytes(&self) -> PosQualityBytes

Get underlying bytes representation of the quality

+
source

fn create_proof(&self) -> PosProof

Create proof for this solution

Implementors§

source§

impl<'a> Quality for ChiaQuality<'a>

source§

impl<'a> Quality for ShimQuality<'a>

\ No newline at end of file diff --git a/subspace_proof_of_space/trait.Table.html b/subspace_proof_of_space/trait.Table.html index f708ee97d27..26df055ba2d 100644 --- a/subspace_proof_of_space/trait.Table.html +++ b/subspace_proof_of_space/trait.Table.html @@ -6,16 +6,16 @@ const TABLE_TYPE: PosTableType; // Required methods - fn generate(seed: &PosSeed) -> Self; + fn generate(seed: &PosSeed) -> Self; fn find_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>; fn is_proof_valid( - seed: &PosSeed, + seed: &PosSeed, challenge_index: u32, - proof: &PosProof - ) -> Option<PosQualityBytes>; + proof: &PosProof + ) -> Option<PosQualityBytes>; // Provided methods - fn generate_parallel(seed: &PosSeed) -> Self { ... } + fn generate_parallel(seed: &PosSeed) -> Self { ... } fn generator() -> Self::Generator { ... } }
Expand description

Proof of space kind

Required Associated Types§

source

type Generator: TableGenerator<Self>

Instance that can be used to generate tables with better performance

@@ -23,15 +23,15 @@ where Self: 'a

Abstraction that represents quality of the solution in the table

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_quality(&self, challenge_index: u32) -> Option<Self::Quality<'_>>

Try to find quality of the proof at challenge_index if proof exists

source

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

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

-

Provided Methods§

source

fn generate_parallel(seed: &PosSeed) -> Self

Generate new table with 32 bytes seed using parallelism.

+ proof: &PosProof +) -> Option<PosQualityBytes>

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

+

Provided Methods§

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 96eec4464d3..1dc6ebcea73 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 a0f5dd62e96..31d35b0717a 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 ba3c5ca09e8..45e958cb07e 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 46054531566..452a50ff5b2 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 b8b16633054..a1cea1bf1fd 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 d423fc654f6..094d701eb93 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 b7e62a00f3d..70e24e9d514 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 0878c57a6db..1c01dc5c855 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 bc98b0298f4..34ed17265e7 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: &Blake2b256Hash,
-    audit_chunk: SolutionRange,
-    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 + global_challenge: &Blake2b256Hash, + audit_chunk: SolutionRange, + 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 29873f77636..99861a3a096 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 3643d7cd7bd..18c06b73fd0 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 6d0f19b918a..f624e9e8fa1 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>(