From 4f8d19fa2d6f6d201bb4d8edb1f4ed39c07c259c Mon Sep 17 00:00:00 2001 From: "github-merge-queue[bot]" Date: Sat, 18 Nov 2023 16:23:13 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20subspace?= =?UTF-8?q?/subspace@4fde561d0a6f8d450aadfbc09cb853b5619a6844=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/struct.DomainNodeBuilder.html | 2 +- .../plotting/trait.PieceGetter.js | 2 +- .../constructor/trait.LocalRecordProvider.js | 2 +- .../piece_provider/trait.PieceValidator.js | 2 +- .../archiver/fn.create_subspace_archiver.html | 2 +- .../archiver/fn.recreate_genesis_segment.html | 2 +- ...fn.deduplicate_and_shuffle_extrinsics.html | 2 +- .../domain_block_processor.rs.html | 18 ++++---------- .../domain_bundle_proposer.rs.html | 18 +++++++++++++- .../node_client/trait.NodeClient.html | 24 +++++++++---------- .../piece_cache/struct.PieceCache.html | 2 +- .../farming/struct.PlotAuditOptions.html | 4 ++-- .../struct.SingleDiskFarm.html | 2 +- .../struct.SingleDiskFarmOptions.html | 4 ++-- subspace_farmer/struct.NodeRpcClient.html | 12 +++++----- .../struct.FarmerPieceGetter.html | 6 ++--- ...truct.SegmentCommitmentPieceValidator.html | 6 ++--- 17 files changed, 59 insertions(+), 51 deletions(-) diff --git a/domain_test_service/domain/struct.DomainNodeBuilder.html b/domain_test_service/domain/struct.DomainNodeBuilder.html index e458da316f..29611fbe5d 100644 --- a/domain_test_service/domain/struct.DomainNodeBuilder.html +++ b/domain_test_service/domain/struct.DomainNodeBuilder.html @@ -13,7 +13,7 @@ self, role: Role, domain_id: DomainId, - mock_consensus_node: &mut MockConsensusNode + mock_consensus_node: &mut MockConsensusNode ) -> EvmDomainNode

Build a evm domain node

Auto Trait Implementations§

§

impl !RefUnwindSafe for DomainNodeBuilder

§

impl Send for DomainNodeBuilder

§

impl Sync for DomainNodeBuilder

§

impl Unpin for DomainNodeBuilder

§

impl !UnwindSafe for DomainNodeBuilder

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<T> Any for Twhere diff --git a/implementors/subspace_farmer_components/plotting/trait.PieceGetter.js b/implementors/subspace_farmer_components/plotting/trait.PieceGetter.js index 8c9ae2b1c3..c313d17228 100644 --- a/implementors/subspace_farmer_components/plotting/trait.PieceGetter.js +++ b/implementors/subspace_farmer_components/plotting/trait.PieceGetter.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"subspace_farmer":[["impl<PV, NC> PieceGetter for FarmerPieceGetter<PV, NC>where\n PV: PieceValidator + Send + 'static,\n NC: NodeClient,"]], +"subspace_farmer":[["impl<PV, NC> PieceGetter for FarmerPieceGetter<PV, NC>where\n PV: PieceValidator + Send + 'static,\n NC: NodeClient,"]], "subspace_farmer_components":[] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/subspace_networking/constructor/trait.LocalRecordProvider.js b/implementors/subspace_networking/constructor/trait.LocalRecordProvider.js index 14522f6be0..e453d2319a 100644 --- a/implementors/subspace_networking/constructor/trait.LocalRecordProvider.js +++ b/implementors/subspace_networking/constructor/trait.LocalRecordProvider.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"subspace_farmer":[["impl LocalRecordProvider for PieceCache"]], +"subspace_farmer":[["impl LocalRecordProvider for PieceCache"]], "subspace_networking":[] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/subspace_networking/utils/piece_provider/trait.PieceValidator.js b/implementors/subspace_networking/utils/piece_provider/trait.PieceValidator.js index 79439e7c86..499549f431 100644 --- a/implementors/subspace_networking/utils/piece_provider/trait.PieceValidator.js +++ b/implementors/subspace_networking/utils/piece_provider/trait.PieceValidator.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"subspace_farmer":[["impl<NC> PieceValidator for SegmentCommitmentPieceValidator<NC>where\n NC: NodeClient,"]], +"subspace_farmer":[["impl<NC> PieceValidator for SegmentCommitmentPieceValidator<NC>where\n NC: NodeClient,"]], "subspace_networking":[] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/sc_consensus_subspace/archiver/fn.create_subspace_archiver.html b/sc_consensus_subspace/archiver/fn.create_subspace_archiver.html index 909f10cc6e..19a8af13a5 100644 --- a/sc_consensus_subspace/archiver/fn.create_subspace_archiver.html +++ b/sc_consensus_subspace/archiver/fn.create_subspace_archiver.html @@ -8,7 +8,7 @@ Block: BlockT, Backend: BackendT<Block>, Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + LockImportRun<Block, Backend> + Finalizer<Block, Backend> + AuxStore + Send + Sync + 'static, - Client::Api: SubspaceApi<Block, FarmerPublicKey> + ObjectsApi<Block>, + Client::Api: SubspaceApi<Block, FarmerPublicKey> + ObjectsApi<Block>, AS: AuxStore + Send + Sync + 'static, SO: SyncOracle + Send + Sync + 'static,
Expand description

Crate an archiver task that will listen for importing blocks and archive blocks at K depth, producing pieces and segment headers (segment headers are then added back to the blockchain as diff --git a/sc_consensus_subspace/archiver/fn.recreate_genesis_segment.html b/sc_consensus_subspace/archiver/fn.recreate_genesis_segment.html index 833712de95..27013aa124 100644 --- a/sc_consensus_subspace/archiver/fn.recreate_genesis_segment.html +++ b/sc_consensus_subspace/archiver/fn.recreate_genesis_segment.html @@ -4,5 +4,5 @@ ) -> Result<Option<NewArchivedSegment>, Box<dyn Error>>where Block: BlockT, Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block>, - Client::Api: ObjectsApi<Block>,

Expand description

Derive genesis segment on demand, returns Ok(None) in case genesis block was already pruned

+ Client::Api: ObjectsApi<Block>,
Expand description

Derive genesis segment on demand, returns Ok(None) in case genesis block was already pruned

\ No newline at end of file diff --git a/sp_domains/extrinsics/fn.deduplicate_and_shuffle_extrinsics.html b/sp_domains/extrinsics/fn.deduplicate_and_shuffle_extrinsics.html index 6522ec3a5f..2c40e78d5f 100644 --- a/sp_domains/extrinsics/fn.deduplicate_and_shuffle_extrinsics.html +++ b/sp_domains/extrinsics/fn.deduplicate_and_shuffle_extrinsics.html @@ -1,5 +1,5 @@ deduplicate_and_shuffle_extrinsics in sp_domains::extrinsics - Rust
pub fn deduplicate_and_shuffle_extrinsics<Extrinsic>(
-    extrinsics: Vec<(Option<AccountId>, Extrinsic)>,
+    extrinsics: Vec<(Option<AccountId>, Extrinsic)>,
     shuffling_seed: Randomness
 ) -> VecDeque<Extrinsic>where
     Extrinsic: Debug + PartialEq + Clone,
\ No newline at end of file diff --git a/src/domain_client_operator/domain_block_processor.rs.html b/src/domain_client_operator/domain_block_processor.rs.html index 266ca001ce..9888fa1959 100644 --- a/src/domain_client_operator/domain_block_processor.rs.html +++ b/src/domain_client_operator/domain_block_processor.rs.html @@ -1261,10 +1261,6 @@ 1261 1262 1263 -1264 -1265 -1266 -1267
use crate::aux_schema::{BundleMismatchType, ReceiptMismatchInfo};
 use crate::fraud_proof::{find_trace_mismatch, FraudProofGenerator};
 use crate::utils::{DomainBlockImportNotification, DomainImportNotificationSinks};
@@ -1547,15 +1543,11 @@
             bundles,
         } = preprocess_result;
 
-        // Although the domain block intuitively ought to use the same fork choice
-        // from the corresponding consensus block, it's fine to forcibly always use
-        // the longest chain for simplicity as we manually build the domain branches
-        // by following the consensus chain branches. Due to the possibility of domain
-        // branch transitioning to a lower fork caused by the change that a consensus block
-        // can possibility produce no domain block, it's important to note that now we
-        // need to ensure the consensus block built from the latest consensus block is the
-        // new best domain block after processing each imported consensus block.
-        let fork_choice = ForkChoiceStrategy::LongestChain;
+        // The fork choice of the domain chain should follow exactly as the consensus chain,
+        // so always use `Custom(false)` here to not set the domain block as new best block
+        // immediately, and if the domain block is indeed derive from the best consensus fork,
+        // it will be reset as the best domain block, see `BundleProcessor::process_bundles`.
+        let fork_choice = ForkChoiceStrategy::Custom(false);
         let inherent_data = get_inherent_data::<_, _, Block>(
             self.consensus_client.clone(),
             consensus_block_hash,
diff --git a/src/domain_client_operator/domain_bundle_proposer.rs.html b/src/domain_client_operator/domain_bundle_proposer.rs.html
index 9714013f20..9d09627d48 100644
--- a/src/domain_client_operator/domain_bundle_proposer.rs.html
+++ b/src/domain_client_operator/domain_bundle_proposer.rs.html
@@ -245,6 +245,14 @@
 245
 246
 247
+248
+249
+250
+251
+252
+253
+254
+255
 
use crate::ExecutionReceiptFor;
 use codec::Encode;
 use domain_runtime_primitives::DomainCoreApi;
@@ -454,7 +462,15 @@
             .consensus_client
             .runtime_api()
             .head_receipt_number(consensus_chain_block_hash, self.domain_id)?;
-        let receipt_number = (head_receipt_number + One::one()).min(header_number);
+
+        // TODO: the `receipt_number` may not be the best domain block number if there
+        // is fraud proof submitted and bad ERs pruned, thus the ER may not the one that
+        // derive from the latest domain block, which may cause the lagging operator able
+        // to submit invalid bundle accidentally.
+        //
+        // We need to resolve `https://github.com/subspace/subspace/issues/1673` to fix it
+        // completely.
+        let receipt_number = (head_receipt_number + One::one()).min(header_number);
 
         tracing::trace!(
             ?header_number,
diff --git a/subspace_farmer/node_client/trait.NodeClient.html b/subspace_farmer/node_client/trait.NodeClient.html
index a19b0c10f3..3c0b40dbd6 100644
--- a/subspace_farmer/node_client/trait.NodeClient.html
+++ b/subspace_farmer/node_client/trait.NodeClient.html
@@ -2,28 +2,28 @@
     // Required methods
     fn farmer_app_info<'life0, 'async_trait>(
         &'life0 self
-    ) -> Pin<Box<dyn Future<Output = Result<FarmerAppInfo, Error>> + Send + 'async_trait>>
+    ) -> Pin<Box<dyn Future<Output = Result<FarmerAppInfo, Error>> + Send + 'async_trait>>
        where Self: 'async_trait,
              'life0: 'async_trait;
     fn subscribe_slot_info<'life0, 'async_trait>(
         &'life0 self
-    ) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = SlotInfo> + Send + 'static>>, Error>> + Send + 'async_trait>>
+    ) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = SlotInfo> + Send + 'static>>, Error>> + Send + 'async_trait>>
        where Self: 'async_trait,
              'life0: 'async_trait;
     fn submit_solution_response<'life0, 'async_trait>(
         &'life0 self,
-        solution_response: SolutionResponse
+        solution_response: SolutionResponse
     ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
        where Self: 'async_trait,
              'life0: 'async_trait;
     fn subscribe_reward_signing<'life0, 'async_trait>(
         &'life0 self
-    ) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = RewardSigningInfo> + Send + 'static>>, Error>> + Send + 'async_trait>>
+    ) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = RewardSigningInfo> + Send + 'static>>, Error>> + Send + 'async_trait>>
        where Self: 'async_trait,
              'life0: 'async_trait;
     fn submit_reward_signature<'life0, 'async_trait>(
         &'life0 self,
-        reward_signature: RewardSignatureResponse
+        reward_signature: RewardSignatureResponse
     ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
        where Self: 'async_trait,
              'life0: 'async_trait;
@@ -34,7 +34,7 @@
              'life0: 'async_trait;
     fn subscribe_node_sync_status_change<'life0, 'async_trait>(
         &'life0 self
-    ) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = NodeSyncStatus> + Send + 'static>>, Error>> + Send + 'async_trait>>
+    ) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = NodeSyncStatus> + Send + 'static>>, Error>> + Send + 'async_trait>>
        where Self: 'async_trait,
              'life0: 'async_trait;
     fn segment_headers<'life0, 'async_trait>(
@@ -64,28 +64,28 @@
 }
Expand description

Abstraction of the Node Client

Required Methods§

source

fn farmer_app_info<'life0, 'async_trait>( &'life0 self -) -> Pin<Box<dyn Future<Output = Result<FarmerAppInfo, Error>> + Send + 'async_trait>>where +) -> Pin<Box<dyn Future<Output = Result<FarmerAppInfo, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Get farmer app info

source

fn subscribe_slot_info<'life0, 'async_trait>( &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = SlotInfo> + Send + 'static>>, Error>> + Send + 'async_trait>>where +) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = SlotInfo> + Send + 'static>>, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Subscribe to slot

source

fn submit_solution_response<'life0, 'async_trait>( &'life0 self, - solution_response: SolutionResponse + solution_response: SolutionResponse ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Submit a slot solution

source

fn subscribe_reward_signing<'life0, 'async_trait>( &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = RewardSigningInfo> + Send + 'static>>, Error>> + Send + 'async_trait>>where +) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = RewardSigningInfo> + Send + 'static>>, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Subscribe to block signing request

source

fn submit_reward_signature<'life0, 'async_trait>( &'life0 self, - reward_signature: RewardSignatureResponse + reward_signature: RewardSignatureResponse ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Submit a block signature

@@ -96,7 +96,7 @@ 'life0: 'async_trait,

Subscribe to archived segment headers

source

fn subscribe_node_sync_status_change<'life0, 'async_trait>( &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = NodeSyncStatus> + Send + 'static>>, Error>> + Send + 'async_trait>>where +) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = NodeSyncStatus> + Send + 'static>>, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Subscribe to node sync status change

source

fn segment_headers<'life0, 'async_trait>( diff --git a/subspace_farmer/piece_cache/struct.PieceCache.html b/subspace_farmer/piece_cache/struct.PieceCache.html index a8de417efd..4ae2c9d181 100644 --- a/subspace_farmer/piece_cache/struct.PieceCache.html +++ b/subspace_farmer/piece_cache/struct.PieceCache.html @@ -13,7 +13,7 @@ &self, callback: Arc<dyn Fn(&f32) + Send + Sync + 'static> ) -> HandlerId

Subscribe to cache sync notifications

-

Trait Implementations§

source§

impl Clone for PieceCache

source§

fn clone(&self) -> PieceCache

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 PieceCache

source§

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

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

impl LocalRecordProvider for PieceCache

source§

fn record(&self, key: &RecordKey) -> Option<ProviderRecord>

Gets a provider record for key that is stored locally

Auto Trait Implementations§

§

impl !RefUnwindSafe for PieceCache

§

impl Send for PieceCache

§

impl Sync for PieceCache

§

impl Unpin for PieceCache

§

impl !UnwindSafe for PieceCache

Blanket Implementations§

source§

impl<T> Any for Twhere +

Trait Implementations§

source§

impl Clone for PieceCache

source§

fn clone(&self) -> PieceCache

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 PieceCache

source§

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

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

impl LocalRecordProvider for PieceCache

source§

fn record(&self, key: &RecordKey) -> Option<ProviderRecord>

Gets a provider record for key that is stored locally

Auto Trait Implementations§

§

impl !RefUnwindSafe for PieceCache

§

impl Send for PieceCache

§

impl Sync for PieceCache

§

impl Unpin for PieceCache

§

impl !UnwindSafe for PieceCache

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_farmer/single_disk_farm/farming/struct.PlotAuditOptions.html b/subspace_farmer/single_disk_farm/farming/struct.PlotAuditOptions.html index d6fb99dabf..685ca04577 100644 --- a/subspace_farmer/single_disk_farm/farming/struct.PlotAuditOptions.html +++ b/subspace_farmer/single_disk_farm/farming/struct.PlotAuditOptions.html @@ -2,7 +2,7 @@ PosTable: Table,{ pub public_key: &'a PublicKey, pub reward_address: &'a PublicKey, - pub slot_info: SlotInfo, + pub slot_info: SlotInfo, pub sectors_metadata: &'a [SectorMetadataChecksummed], pub kzg: &'a Kzg, pub erasure_coding: &'a ErasureCoding, @@ -11,7 +11,7 @@ }
Expand description

Plot audit options

Fields§

§public_key: &'a PublicKey

Public key of the farm

§reward_address: &'a PublicKey

Reward address to use for solutions

-
§slot_info: SlotInfo

Slot info for the audit

+
§slot_info: SlotInfo

Slot info for the audit

§sectors_metadata: &'a [SectorMetadataChecksummed]

Metadata of all sectors plotted so far

§kzg: &'a Kzg

Kzg instance

§erasure_coding: &'a ErasureCoding

Erasure coding instance

diff --git a/subspace_farmer/single_disk_farm/struct.SingleDiskFarm.html b/subspace_farmer/single_disk_farm/struct.SingleDiskFarm.html index 020e92deed..95b62fde22 100644 --- a/subspace_farmer/single_disk_farm/struct.SingleDiskFarm.html +++ b/subspace_farmer/single_disk_farm/struct.SingleDiskFarm.html @@ -30,7 +30,7 @@ ) -> HandlerId

Subscribe to notification about plotted sectors

source

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

Subscribe to new solution notification

source

pub async fn run(self) -> Result<SingleDiskFarmId>

Run and wait for background threads to exit or return an error

source

pub fn wipe(directory: &Path) -> Result<()>

Wipe everything that belongs to this single disk farm

diff --git a/subspace_farmer/single_disk_farm/struct.SingleDiskFarmOptions.html b/subspace_farmer/single_disk_farm/struct.SingleDiskFarmOptions.html index 3caecf8067..a4e86c0405 100644 --- a/subspace_farmer/single_disk_farm/struct.SingleDiskFarmOptions.html +++ b/subspace_farmer/single_disk_farm/struct.SingleDiskFarmOptions.html @@ -1,6 +1,6 @@ SingleDiskFarmOptions in subspace_farmer::single_disk_farm - Rust
pub struct SingleDiskFarmOptions<NC, PG> {
Show 17 fields pub directory: PathBuf, - pub farmer_app_info: FarmerAppInfo, + pub farmer_app_info: FarmerAppInfo, pub allocated_space: u64, pub max_pieces_in_sector: u16, pub node_client: NC, @@ -18,7 +18,7 @@ pub plotting_delay: Option<Receiver<()>>,
}
Expand description

Options used to open single disk farm

Fields§

§directory: PathBuf

Path to directory where farm is stored.

-
§farmer_app_info: FarmerAppInfo

Information necessary for farmer application

+
§farmer_app_info: FarmerAppInfo

Information necessary for farmer application

§allocated_space: u64

How much space in bytes was allocated

§max_pieces_in_sector: u16

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

§node_client: NC

RPC client connected to Subspace node

diff --git a/subspace_farmer/struct.NodeRpcClient.html b/subspace_farmer/struct.NodeRpcClient.html index 9720a78778..620cd0958c 100644 --- a/subspace_farmer/struct.NodeRpcClient.html +++ b/subspace_farmer/struct.NodeRpcClient.html @@ -2,26 +2,26 @@

Implementations§

source§

impl NodeRpcClient

source

pub async fn new(url: &str) -> Result<Self, JsonError>

Create a new instance of NodeClient.

Trait Implementations§

source§

impl Clone for NodeRpcClient

source§

fn clone(&self) -> NodeRpcClient

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 NodeRpcClient

source§

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

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

impl NodeClient for NodeRpcClient

source§

fn submit_reward_signature<'life0, 'async_trait>( &'life0 self, - reward_signature: RewardSignatureResponse + reward_signature: RewardSignatureResponse ) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Submit a block signature

source§

fn farmer_app_info<'life0, 'async_trait>( &'life0 self -) -> Pin<Box<dyn Future<Output = Result<FarmerAppInfo, Error>> + Send + 'async_trait>>where +) -> Pin<Box<dyn Future<Output = Result<FarmerAppInfo, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Get farmer app info
source§

fn subscribe_slot_info<'life0, 'async_trait>( &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = SlotInfo> + Send + 'static>>, RpcError>> + Send + 'async_trait>>where +) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = SlotInfo> + Send + 'static>>, RpcError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Subscribe to slot
source§

fn submit_solution_response<'life0, 'async_trait>( &'life0 self, - solution_response: SolutionResponse + solution_response: SolutionResponse ) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Submit a slot solution
source§

fn subscribe_reward_signing<'life0, 'async_trait>( &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = RewardSigningInfo> + Send + 'static>>, RpcError>> + Send + 'async_trait>>where +) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = RewardSigningInfo> + Send + 'static>>, RpcError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Subscribe to block signing request
source§

fn subscribe_archived_segment_headers<'life0, 'async_trait>( &'life0 self @@ -29,7 +29,7 @@ Self: 'async_trait, 'life0: 'async_trait,

Subscribe to archived segment headers
source§

fn subscribe_node_sync_status_change<'life0, 'async_trait>( &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = NodeSyncStatus> + Send + 'static>>, RpcError>> + Send + 'async_trait>>where +) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = NodeSyncStatus> + Send + 'static>>, RpcError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Subscribe to node sync status change
source§

fn segment_headers<'life0, 'async_trait>( &'life0 self, diff --git a/subspace_farmer/utils/farmer_piece_getter/struct.FarmerPieceGetter.html b/subspace_farmer/utils/farmer_piece_getter/struct.FarmerPieceGetter.html index 47fc80c891..33cd234365 100644 --- a/subspace_farmer/utils/farmer_piece_getter/struct.FarmerPieceGetter.html +++ b/subspace_farmer/utils/farmer_piece_getter/struct.FarmerPieceGetter.html @@ -1,11 +1,11 @@ FarmerPieceGetter in subspace_farmer::utils::farmer_piece_getter - Rust
pub struct FarmerPieceGetter<PV, NC> { /* private fields */ }

Implementations§

source§

impl<PV, NC> FarmerPieceGetter<PV, NC>

source

pub fn new( - node: Node, - piece_provider: PieceProvider<PV>, + node: Node, + piece_provider: PieceProvider<PV>, piece_cache: PieceCache, node_client: NC, readers_and_pieces: Arc<Mutex<Option<ReadersAndPieces>>> ) -> Self

Trait Implementations§

source§

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

source§

fn get_piece<'life0, 'async_trait>( &'life0 self, piece_index: PieceIndex, diff --git a/subspace_farmer/utils/piece_validator/struct.SegmentCommitmentPieceValidator.html b/subspace_farmer/utils/piece_validator/struct.SegmentCommitmentPieceValidator.html index ab6b9ac8b7..dc11b62f03 100644 --- a/subspace_farmer/utils/piece_validator/struct.SegmentCommitmentPieceValidator.html +++ b/subspace_farmer/utils/piece_validator/struct.SegmentCommitmentPieceValidator.html @@ -1,10 +1,10 @@ SegmentCommitmentPieceValidator in subspace_farmer::utils::piece_validator - Rust
pub struct SegmentCommitmentPieceValidator<NC> { /* private fields */ }

Implementations§

source§

impl<NC> SegmentCommitmentPieceValidator<NC>

source

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

Trait Implementations§

source§

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

source§

fn validate_piece<'life0, 'async_trait>( +) -> Self

Trait Implementations§

source§

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

source§

fn validate_piece<'life0, 'async_trait>( &'life0 self, source_peer_id: PeerId, piece_index: PieceIndex,