Skip to content
This repository was archived by the owner on Feb 15, 2024. It is now read-only.

Commit aeee259

Browse files
committed
1 parent 252f462 commit aeee259

File tree

10 files changed

+144
-155
lines changed

10 files changed

+144
-155
lines changed

Cargo.lock

Lines changed: 84 additions & 84 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ sdk-dsn = { path = "dsn" }
1212
sdk-substrate = { path = "substrate" }
1313
sdk-farmer = { path = "farmer" }
1414

15-
subspace-proof-of-space = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
15+
subspace-proof-of-space = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
1616

1717
# The only triple tested and confirmed as working in `jemallocator` crate is `x86_64-unknown-linux-gnu`
1818
[target.'cfg(all(target_arch = "x86_64", target_vendor = "unknown", target_os = "linux", target_env = "gnu"))'.dev-dependencies]
@@ -35,7 +35,7 @@ tracing = "0.1"
3535
tracing-futures = "0.2"
3636
tracing-subscriber = "0.3"
3737

38-
subspace-farmer-components = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
38+
subspace-farmer-components = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
3939

4040
# The list of dependencies below (which can be both direct and indirect dependencies) are crates
4141
# that are suspected to be CPU-intensive, and that are unlikely to require debugging (as some of

dsn/Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ sc-client-api = { version = "4.0.0-dev", git = "https://github.com/subspace/subs
2424
sp-runtime = { version = "24.0.0", git = "https://github.com/subspace/substrate", rev = "55c157cff49b638a59d81a9f971f0f9a66829c71" }
2525
sp-blockchain = { version = "4.0.0-dev", git = "https://github.com/subspace/substrate", rev = "55c157cff49b638a59d81a9f971f0f9a66829c71" }
2626

27-
subspace-networking = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
28-
subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
29-
subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
30-
subspace-service = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
31-
sc-consensus-subspace = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
27+
subspace-networking = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
28+
subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
29+
subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
30+
subspace-service = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
31+
sc-consensus-subspace = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }

dsn/src/builder.rs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use derive_builder::Builder;
88
use derive_more::{Deref, DerefMut, Display, From};
99
use either::*;
1010
use futures::prelude::*;
11+
use sc_consensus_subspace::SegmentHeadersStore;
1112
use sdk_utils::{self, DropCollection, Multiaddr, MultiaddrWithPeerId};
1213
use serde::{Deserialize, Serialize};
1314
use subspace_core_primitives::Piece;
@@ -21,8 +22,6 @@ use subspace_networking::{
2122
SegmentHeaderBySegmentIndexesRequestHandler, SegmentHeaderRequest, SegmentHeaderResponse,
2223
KADEMLIA_PROVIDER_TTL_IN_SECS,
2324
};
24-
use subspace_service::segment_headers::SegmentHeaderCache;
25-
use subspace_service::Error;
2625

2726
use super::provider_storage_utils::MaybeProviderStorage;
2827
use super::{FarmerProviderStorage, NodePieceCache, NodeProviderStorage, ProviderStorage};
@@ -180,6 +179,8 @@ pub struct DsnOptions<C, ASNS, PieceByHash, SegmentHeaderByIndexes> {
180179
pub get_segment_header_by_segment_indexes: SegmentHeaderByIndexes,
181180
/// Farmer total allocated space across all plots
182181
pub farmer_total_space_pledged: usize,
182+
/// Segment header store
183+
pub segment_header_store: SegmentHeadersStore<C>
183184
}
184185

185186
/// Farmer piece store
@@ -237,7 +238,7 @@ impl Dsn {
237238
+ Sync
238239
+ 'static,
239240
F1: Future<Output = Option<PieceByHashResponse>> + Send + 'static,
240-
SegmentHeaderByIndexes: Fn(&SegmentHeaderRequest, &SegmentHeaderCache<C>) -> Option<SegmentHeaderResponse>
241+
SegmentHeaderByIndexes: Fn(&SegmentHeaderRequest, &SegmentHeadersStore<C>) -> Option<SegmentHeaderResponse>
241242
+ Send
242243
+ Sync
243244
+ 'static,
@@ -252,6 +253,7 @@ impl Dsn {
252253
get_piece_by_hash,
253254
get_segment_header_by_segment_indexes,
254255
farmer_total_space_pledged,
256+
segment_header_store
255257
} = options;
256258
let farmer_readers_and_pieces = Arc::new(parking_lot::Mutex::new(None));
257259
let farmer_piece_store = Arc::new(tokio::sync::Mutex::new(None));
@@ -418,17 +420,11 @@ impl Dsn {
418420
}
419421
}),
420422
SegmentHeaderBySegmentIndexesRequestHandler::create({
421-
let segment_header_cache =
422-
SegmentHeaderCache::new(client).map_err(|error| {
423-
Error::Other(
424-
format!("Failed to instantiate segment header cache: {error}")
425-
.into(),
426-
)
427-
})?;
423+
let segment_header_store = segment_header_store.clone();
428424
move |_, req| {
429425
futures::future::ready(get_segment_header_by_segment_indexes(
430426
req,
431-
&segment_header_cache,
427+
&segment_header_store,
432428
))
433429
}
434430
}),

farmer/Cargo.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ sdk-utils = { path = "../utils" }
2525
sdk-dsn = { path = "../dsn" }
2626
sdk-traits = { path = "../traits" }
2727

28-
subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
29-
subspace-erasure-coding = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
30-
subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
31-
subspace-farmer-components = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
32-
subspace-networking = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
33-
subspace-proof-of-space = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b", features = ["parallel", "chia"] }
34-
subspace-rpc-primitives = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
28+
subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
29+
subspace-erasure-coding = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
30+
subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
31+
subspace-farmer-components = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
32+
subspace-networking = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
33+
subspace-proof-of-space = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4", features = ["parallel", "chia"] }
34+
subspace-rpc-primitives = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }

node/Cargo.toml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ derive_builder = "0.12"
1313
derive_more = "0.99"
1414
futures = "0.3"
1515
hex-literal = "0.4"
16-
parity-scale-codec = "3"
16+
parity-scale-codec = "3.6.3"
1717
parking_lot = "0.12"
1818
pin-project = "1"
1919
serde = { version = "1", features = ["derive"] }
@@ -42,17 +42,17 @@ sp-core = { version = "21.0.0", git = "https://github.com/subspace/substrate", r
4242
sp-runtime = { version = "24.0.0", git = "https://github.com/subspace/substrate", rev = "55c157cff49b638a59d81a9f971f0f9a66829c71" }
4343
sp-version = { version = "22.0.0", git = "https://github.com/subspace/substrate", rev = "55c157cff49b638a59d81a9f971f0f9a66829c71" }
4444

45-
pallet-rewards = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
46-
pallet-subspace = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
47-
sc-consensus-subspace-rpc = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
48-
sc-subspace-chain-specs = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
49-
sp-domains = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
50-
sp-consensus-subspace = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
51-
subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
52-
subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
53-
subspace-farmer-components = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
54-
subspace-networking = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
55-
subspace-runtime = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
56-
subspace-runtime-primitives = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
57-
subspace-service = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
58-
subspace-transaction-pool = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
45+
pallet-rewards = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
46+
pallet-subspace = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
47+
sc-consensus-subspace = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
48+
sc-subspace-chain-specs = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
49+
sp-domains = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
50+
sp-consensus-subspace = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
51+
subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
52+
subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
53+
subspace-farmer-components = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
54+
subspace-networking = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
55+
subspace-runtime = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
56+
subspace-runtime-primitives = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
57+
subspace-service = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
58+
subspace-transaction-pool = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }

node/src/lib.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use anyhow::Context;
1919
use derivative::Derivative;
2020
use futures::channel::{mpsc, oneshot};
2121
use futures::{FutureExt, SinkExt, Stream, StreamExt};
22-
use sc_consensus_subspace_rpc::SegmentHeaderProvider;
22+
use sc_consensus_subspace::SegmentHeadersStore;
2323
use sc_network::network_state::NetworkState;
2424
use sc_network::{NetworkService, NetworkStateInfo, SyncState};
2525
use sc_rpc_api::state::StateApiClient;
@@ -37,7 +37,6 @@ use subspace_networking::{
3737
};
3838
use subspace_runtime::RuntimeApi;
3939
use subspace_runtime_primitives::opaque::{Block as RuntimeBlock, Header};
40-
use subspace_service::segment_headers::SegmentHeaderCache;
4140
use subspace_service::SubspaceConfiguration;
4241

4342
mod builder;
@@ -109,6 +108,8 @@ impl<F: Farmer + 'static> Config<F> {
109108
let bootstrap_nodes =
110109
dsn.boot_nodes.clone().into_iter().map(Into::into).collect::<Vec<_>>();
111110

111+
let segment_header_store = partial_components.other.2.clone();
112+
112113
let (dsn, runner) = dsn.build_dsn(DsnOptions {
113114
client: partial_components.client.clone(),
114115
node_name: name.clone(),
@@ -123,6 +124,7 @@ impl<F: Farmer + 'static> Config<F> {
123124
get_piece_by_hash: get_piece_by_hash::<F>,
124125
get_segment_header_by_segment_indexes,
125126
farmer_total_space_pledged,
127+
segment_header_store
126128
})?;
127129

128130
tracing::debug!("Subspace networking initialized: Node ID is {}", dsn.node.id());
@@ -701,7 +703,7 @@ const ROOT_BLOCK_NUMBER_LIMIT: u64 = 100;
701703

702704
fn get_segment_header_by_segment_indexes(
703705
req: &SegmentHeaderRequest,
704-
segment_header_cache: &SegmentHeaderCache<impl sc_client_api::AuxStore>,
706+
segment_header_store: &SegmentHeadersStore<impl sc_client_api::AuxStore>,
705707
) -> Option<SegmentHeaderResponse> {
706708
let segment_indexes = match req {
707709
SegmentHeaderRequest::SegmentIndexes { segment_indexes } => segment_indexes.clone(),
@@ -713,7 +715,7 @@ fn get_segment_header_by_segment_indexes(
713715
block_limit = ROOT_BLOCK_NUMBER_LIMIT;
714716
}
715717

716-
let max_segment_index = segment_header_cache.max_segment_index();
718+
let max_segment_index = segment_header_store.max_segment_index();
717719

718720
// several last segment indexes
719721
(SegmentIndex::ZERO..=max_segment_index)
@@ -723,17 +725,15 @@ fn get_segment_header_by_segment_indexes(
723725
}
724726
};
725727

726-
let internal_result = segment_indexes
728+
let maybe_segment_headers = segment_indexes
727729
.iter()
728-
.map(|segment_index| segment_header_cache.get_segment_header(*segment_index))
729-
.collect::<Result<Option<Vec<subspace_core_primitives::SegmentHeader>>, _>>();
730-
731-
match internal_result {
732-
Ok(Some(segment_headers)) => Some(SegmentHeaderResponse { segment_headers }),
733-
Ok(None) => None,
734-
Err(error) => {
735-
tracing::error!(%error, "Failed to get segment header from cache");
730+
.map(|segment_index| segment_header_store.get_segment_header(*segment_index))
731+
.collect::<Option<Vec<subspace_core_primitives::SegmentHeader>>>();
736732

733+
match maybe_segment_headers {
734+
Some(segment_headers) => Some(SegmentHeaderResponse { segment_headers }),
735+
None => {
736+
tracing::error!("Segment header collection contained empty segment headers.");
737737
None
738738
}
739739
}

traits/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ async-trait = "0.1"
1010
parking_lot = "0.12"
1111
sdk-dsn = { path = "../dsn" }
1212

13-
subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
14-
subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
15-
subspace-proof-of-space = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
13+
subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
14+
subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
15+
subspace-proof-of-space = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
1616

1717
sc-client-api = { version = "4.0.0-dev", git = "https://github.com/subspace/substrate", rev = "55c157cff49b638a59d81a9f971f0f9a66829c71" }

utils/Cargo.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ derive_more = "0.99"
1717
futures = "0.3"
1818
jsonrpsee-core = "0.16"
1919
libp2p-core = "0.39"
20-
parity-scale-codec = "3"
20+
parity-scale-codec = "3.6.3"
2121
serde = { version = "1", features = ["derive"] }
2222
ss58-registry = "1.33"
2323
thiserror = "1"
@@ -34,11 +34,11 @@ sp-core-hashing = { version = "9.0.0", git = "https://github.com/subspace/substr
3434
sp-runtime = { version = "24.0.0", git = "https://github.com/subspace/substrate", rev = "55c157cff49b638a59d81a9f971f0f9a66829c71" }
3535
sp-storage = { version = "13.0.0", git = "https://github.com/subspace/substrate", rev = "55c157cff49b638a59d81a9f971f0f9a66829c71" }
3636

37-
sc-consensus-subspace-rpc = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
38-
subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
39-
subspace-rpc-primitives = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
40-
subspace-runtime = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
41-
subspace-runtime-primitives = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
37+
sc-consensus-subspace-rpc = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
38+
subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
39+
subspace-rpc-primitives = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
40+
subspace-runtime = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
41+
subspace-runtime-primitives = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }
4242

4343
# Unused for now. TODO: add `serde` feature to `subspace-core-primitives` in `subspace-archiver`
44-
subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "3640edde1832bd5db94677b542c336c65cef564b" }
44+
subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "1e12a6e258e4562c7411c8dec40c155cf112ade4" }

utils/src/rpc_client.rs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::pin::Pin;
22

33
use futures::prelude::*;
44
use sc_consensus_subspace_rpc::SubspaceRpcApiClient;
5-
use subspace_core_primitives::{Piece, PieceIndex, SegmentCommitment, SegmentHeader, SegmentIndex};
5+
use subspace_core_primitives::{Piece, PieceIndex, SegmentHeader, SegmentIndex};
66
use subspace_farmer::node_client::{Error, NodeClient};
77
use subspace_rpc_primitives::{
88
FarmerAppInfo, NodeSyncStatus, RewardSignatureResponse, RewardSigningInfo, SlotInfo,
@@ -69,13 +69,6 @@ impl NodeClient for crate::Rpc {
6969
))
7070
}
7171

72-
async fn segment_commitments(
73-
&self,
74-
segment_indexes: Vec<SegmentIndex>,
75-
) -> Result<Vec<Option<SegmentCommitment>>, Error> {
76-
Ok(SubspaceRpcApiClient::segment_commitments(self, segment_indexes).await?)
77-
}
78-
7972
async fn segment_headers(
8073
&self,
8174
segment_indexes: Vec<SegmentIndex>,

0 commit comments

Comments
 (0)