mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-15 20:51:05 +00:00
Remove av-store, av-distribution, chain-api subsystems from minimal node (#1903)
* Remove unused subsystems * Consume requests we are not going to answer * Respond to incoming chunk and pov requests. * fmt * Improve comment and logging * Add reputation changes * Do not register pov-chunk-request protocol * Remove inbound chunk request channel * Bump Polkadot
This commit is contained in:
Generated
+239
-241
File diff suppressed because it is too large
Load Diff
@@ -13,8 +13,6 @@ polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "m
|
|||||||
polkadot-node-subsystem-util = { git = "https://github.com/paritytech/polkadot", branch = "master" }
|
polkadot-node-subsystem-util = { git = "https://github.com/paritytech/polkadot", branch = "master" }
|
||||||
polkadot-node-network-protocol = { git = "https://github.com/paritytech/polkadot", branch = "master" }
|
polkadot-node-network-protocol = { git = "https://github.com/paritytech/polkadot", branch = "master" }
|
||||||
polkadot-network-bridge = { git = "https://github.com/paritytech/polkadot", branch = "master" }
|
polkadot-network-bridge = { git = "https://github.com/paritytech/polkadot", branch = "master" }
|
||||||
polkadot-node-core-av-store = { git = "https://github.com/paritytech/polkadot", branch = "master" }
|
|
||||||
polkadot-availability-distribution = { git = "https://github.com/paritytech/polkadot", branch = "master" }
|
|
||||||
|
|
||||||
# substrate deps
|
# substrate deps
|
||||||
sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||||
|
|||||||
@@ -16,17 +16,10 @@
|
|||||||
|
|
||||||
use cumulus_relay_chain_interface::RelayChainError;
|
use cumulus_relay_chain_interface::RelayChainError;
|
||||||
use lru::LruCache;
|
use lru::LruCache;
|
||||||
use polkadot_availability_distribution::{
|
|
||||||
AvailabilityDistributionSubsystem, IncomingRequestReceivers,
|
|
||||||
};
|
|
||||||
use polkadot_node_core_av_store::Config;
|
|
||||||
use polkadot_node_network_protocol::{
|
use polkadot_node_network_protocol::{
|
||||||
peer_set::PeerSetProtocolNames,
|
peer_set::PeerSetProtocolNames,
|
||||||
request_response::{
|
request_response::{
|
||||||
v1::{
|
v1::{AvailableDataFetchingRequest, CollationFetchingRequest},
|
||||||
AvailableDataFetchingRequest, ChunkFetchingRequest, CollationFetchingRequest,
|
|
||||||
PoVFetchingRequest,
|
|
||||||
},
|
|
||||||
IncomingRequestReceiver, ReqProtocolNames,
|
IncomingRequestReceiver, ReqProtocolNames,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -38,14 +31,13 @@ use polkadot_overseer::{
|
|||||||
use polkadot_primitives::v2::CollatorPair;
|
use polkadot_primitives::v2::CollatorPair;
|
||||||
use polkadot_service::{
|
use polkadot_service::{
|
||||||
overseer::{
|
overseer::{
|
||||||
AvailabilityRecoverySubsystem, AvailabilityStoreSubsystem, ChainApiSubsystem,
|
AvailabilityRecoverySubsystem, CollationGenerationSubsystem, CollatorProtocolSubsystem,
|
||||||
CollationGenerationSubsystem, CollatorProtocolSubsystem, NetworkBridgeMetrics,
|
NetworkBridgeMetrics, NetworkBridgeRxSubsystem, NetworkBridgeTxSubsystem, ProtocolSide,
|
||||||
NetworkBridgeRxSubsystem, NetworkBridgeTxSubsystem, ProtocolSide, RuntimeApiSubsystem,
|
RuntimeApiSubsystem,
|
||||||
},
|
},
|
||||||
Error, OverseerConnector,
|
Error, OverseerConnector,
|
||||||
};
|
};
|
||||||
use sc_authority_discovery::Service as AuthorityDiscoveryService;
|
use sc_authority_discovery::Service as AuthorityDiscoveryService;
|
||||||
use sc_keystore::LocalKeystore;
|
|
||||||
use sc_network::NetworkStateInfo;
|
use sc_network::NetworkStateInfo;
|
||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
@@ -66,13 +58,9 @@ pub(crate) struct CollatorOverseerGenArgs<'a> {
|
|||||||
pub network_service: Arc<sc_network::NetworkService<Block, PHash>>,
|
pub network_service: Arc<sc_network::NetworkService<Block, PHash>>,
|
||||||
/// Underlying authority discovery service.
|
/// Underlying authority discovery service.
|
||||||
pub authority_discovery_service: AuthorityDiscoveryService,
|
pub authority_discovery_service: AuthorityDiscoveryService,
|
||||||
// Receiver for collation request protocol
|
/// Receiver for collation request protocol
|
||||||
pub collation_req_receiver: IncomingRequestReceiver<CollationFetchingRequest>,
|
pub collation_req_receiver: IncomingRequestReceiver<CollationFetchingRequest>,
|
||||||
// Receiver for PoV request protocol
|
/// Receiver for availability request protocol
|
||||||
pub pov_req_receiver: IncomingRequestReceiver<PoVFetchingRequest>,
|
|
||||||
// Receiver for chunk request protocol
|
|
||||||
pub chunk_req_receiver: IncomingRequestReceiver<ChunkFetchingRequest>,
|
|
||||||
// Receiver for availability request protocol
|
|
||||||
pub available_data_req_receiver: IncomingRequestReceiver<AvailableDataFetchingRequest>,
|
pub available_data_req_receiver: IncomingRequestReceiver<AvailableDataFetchingRequest>,
|
||||||
/// Prometheus registry, commonly used for production systems, less so for test.
|
/// Prometheus registry, commonly used for production systems, less so for test.
|
||||||
pub registry: Option<&'a Registry>,
|
pub registry: Option<&'a Registry>,
|
||||||
@@ -84,10 +72,6 @@ pub(crate) struct CollatorOverseerGenArgs<'a> {
|
|||||||
pub req_protocol_names: ReqProtocolNames,
|
pub req_protocol_names: ReqProtocolNames,
|
||||||
/// Peerset protocols name mapping
|
/// Peerset protocols name mapping
|
||||||
pub peer_set_protocol_names: PeerSetProtocolNames,
|
pub peer_set_protocol_names: PeerSetProtocolNames,
|
||||||
/// Config for the availability store
|
|
||||||
pub availability_config: Config,
|
|
||||||
/// The underlying key value store for the parachains.
|
|
||||||
pub parachains_db: Arc<dyn polkadot_node_subsystem_util::database::Database>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn build_overseer<'a>(
|
fn build_overseer<'a>(
|
||||||
@@ -98,15 +82,11 @@ fn build_overseer<'a>(
|
|||||||
authority_discovery_service,
|
authority_discovery_service,
|
||||||
collation_req_receiver,
|
collation_req_receiver,
|
||||||
available_data_req_receiver,
|
available_data_req_receiver,
|
||||||
availability_config,
|
|
||||||
registry,
|
registry,
|
||||||
spawner,
|
spawner,
|
||||||
collator_pair,
|
collator_pair,
|
||||||
req_protocol_names,
|
req_protocol_names,
|
||||||
peer_set_protocol_names,
|
peer_set_protocol_names,
|
||||||
parachains_db,
|
|
||||||
pov_req_receiver,
|
|
||||||
chunk_req_receiver,
|
|
||||||
}: CollatorOverseerGenArgs<'a>,
|
}: CollatorOverseerGenArgs<'a>,
|
||||||
) -> Result<
|
) -> Result<
|
||||||
(Overseer<SpawnGlue<sc_service::SpawnTaskHandle>, Arc<BlockChainRpcClient>>, OverseerHandle),
|
(Overseer<SpawnGlue<sc_service::SpawnTaskHandle>, Arc<BlockChainRpcClient>>, OverseerHandle),
|
||||||
@@ -114,30 +94,21 @@ fn build_overseer<'a>(
|
|||||||
> {
|
> {
|
||||||
let leaves = Vec::new();
|
let leaves = Vec::new();
|
||||||
let metrics = <OverseerMetrics as MetricsTrait>::register(registry)?;
|
let metrics = <OverseerMetrics as MetricsTrait>::register(registry)?;
|
||||||
let keystore = Arc::new(LocalKeystore::in_memory());
|
|
||||||
let spawner = SpawnGlue(spawner);
|
let spawner = SpawnGlue(spawner);
|
||||||
let network_bridge_metrics: NetworkBridgeMetrics = Metrics::register(registry)?;
|
let network_bridge_metrics: NetworkBridgeMetrics = Metrics::register(registry)?;
|
||||||
let builder = Overseer::builder()
|
let builder = Overseer::builder()
|
||||||
.availability_distribution(AvailabilityDistributionSubsystem::new(
|
.availability_distribution(DummySubsystem)
|
||||||
keystore.clone(),
|
|
||||||
IncomingRequestReceivers { pov_req_receiver, chunk_req_receiver },
|
|
||||||
Metrics::register(registry)?,
|
|
||||||
))
|
|
||||||
.availability_recovery(AvailabilityRecoverySubsystem::with_chunks_only(
|
.availability_recovery(AvailabilityRecoverySubsystem::with_chunks_only(
|
||||||
available_data_req_receiver,
|
available_data_req_receiver,
|
||||||
Metrics::register(registry)?,
|
Metrics::register(registry)?,
|
||||||
))
|
))
|
||||||
.availability_store(AvailabilityStoreSubsystem::new(
|
.availability_store(DummySubsystem)
|
||||||
parachains_db.clone(),
|
|
||||||
availability_config,
|
|
||||||
Metrics::register(registry)?,
|
|
||||||
))
|
|
||||||
.bitfield_distribution(DummySubsystem)
|
.bitfield_distribution(DummySubsystem)
|
||||||
.bitfield_signing(DummySubsystem)
|
.bitfield_signing(DummySubsystem)
|
||||||
.candidate_backing(DummySubsystem)
|
.candidate_backing(DummySubsystem)
|
||||||
.candidate_validation(DummySubsystem)
|
.candidate_validation(DummySubsystem)
|
||||||
.pvf_checker(DummySubsystem)
|
.pvf_checker(DummySubsystem)
|
||||||
.chain_api(ChainApiSubsystem::new(runtime_client.clone(), Metrics::register(registry)?))
|
.chain_api(DummySubsystem)
|
||||||
.collation_generation(CollationGenerationSubsystem::new(Metrics::register(registry)?))
|
.collation_generation(CollationGenerationSubsystem::new(Metrics::register(registry)?))
|
||||||
.collator_protocol({
|
.collator_protocol({
|
||||||
let side = ProtocolSide::Collator(
|
let side = ProtocolSide::Collator(
|
||||||
|
|||||||
@@ -21,8 +21,9 @@ use cumulus_relay_chain_rpc_interface::{RelayChainRpcInterface, Url};
|
|||||||
use polkadot_network_bridge::{peer_sets_info, IsAuthority};
|
use polkadot_network_bridge::{peer_sets_info, IsAuthority};
|
||||||
use polkadot_node_network_protocol::{
|
use polkadot_node_network_protocol::{
|
||||||
peer_set::PeerSetProtocolNames,
|
peer_set::PeerSetProtocolNames,
|
||||||
request_response::{self, IncomingRequest, ReqProtocolNames},
|
request_response::{v1, IncomingRequest, IncomingRequestReceiver, Protocol, ReqProtocolNames},
|
||||||
};
|
};
|
||||||
|
|
||||||
use polkadot_node_subsystem_util::metrics::prometheus::Registry;
|
use polkadot_node_subsystem_util::metrics::prometheus::Registry;
|
||||||
use polkadot_primitives::v2::CollatorPair;
|
use polkadot_primitives::v2::CollatorPair;
|
||||||
|
|
||||||
@@ -31,7 +32,7 @@ use sc_network::{Event, NetworkService};
|
|||||||
use sc_network_common::service::NetworkEventStream;
|
use sc_network_common::service::NetworkEventStream;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use polkadot_service::{open_database, Configuration, TaskManager};
|
use polkadot_service::{Configuration, TaskManager};
|
||||||
|
|
||||||
use futures::StreamExt;
|
use futures::StreamExt;
|
||||||
|
|
||||||
@@ -152,8 +153,9 @@ async fn new_minimal_relay_chain(
|
|||||||
.extend(peer_sets_info(is_authority, &peer_set_protocol_names));
|
.extend(peer_sets_info(is_authority, &peer_set_protocol_names));
|
||||||
|
|
||||||
let request_protocol_names = ReqProtocolNames::new(genesis_hash, config.chain_spec.fork_id());
|
let request_protocol_names = ReqProtocolNames::new(genesis_hash, config.chain_spec.fork_id());
|
||||||
let (collation_req_receiver, available_data_req_receiver, pov_req_receiver, chunk_req_receiver) =
|
let (collation_req_receiver, available_data_req_receiver) =
|
||||||
build_request_response_protocol_receivers(&request_protocol_names, &mut config);
|
build_request_response_protocol_receivers(&request_protocol_names, &mut config);
|
||||||
|
|
||||||
let (network, network_starter) =
|
let (network, network_starter) =
|
||||||
network::build_collator_network(network::BuildCollatorNetworkParams {
|
network::build_collator_network(network::BuildCollatorNetworkParams {
|
||||||
config: &config,
|
config: &config,
|
||||||
@@ -170,8 +172,6 @@ async fn new_minimal_relay_chain(
|
|||||||
prometheus_registry.clone(),
|
prometheus_registry.clone(),
|
||||||
);
|
);
|
||||||
|
|
||||||
let parachains_db = open_database(&config.database)?;
|
|
||||||
|
|
||||||
let overseer_args = CollatorOverseerGenArgs {
|
let overseer_args = CollatorOverseerGenArgs {
|
||||||
runtime_client: relay_chain_rpc_client.clone(),
|
runtime_client: relay_chain_rpc_client.clone(),
|
||||||
network_service: network.clone(),
|
network_service: network.clone(),
|
||||||
@@ -183,10 +183,6 @@ async fn new_minimal_relay_chain(
|
|||||||
collator_pair,
|
collator_pair,
|
||||||
req_protocol_names: request_protocol_names,
|
req_protocol_names: request_protocol_names,
|
||||||
peer_set_protocol_names,
|
peer_set_protocol_names,
|
||||||
parachains_db,
|
|
||||||
availability_config: polkadot_service::AVAILABILITY_CONFIG,
|
|
||||||
pov_req_receiver,
|
|
||||||
chunk_req_receiver,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let overseer_handle = collator_overseer::spawn_overseer(
|
let overseer_handle = collator_overseer::spawn_overseer(
|
||||||
@@ -204,10 +200,8 @@ fn build_request_response_protocol_receivers(
|
|||||||
request_protocol_names: &ReqProtocolNames,
|
request_protocol_names: &ReqProtocolNames,
|
||||||
config: &mut Configuration,
|
config: &mut Configuration,
|
||||||
) -> (
|
) -> (
|
||||||
request_response::IncomingRequestReceiver<request_response::v1::CollationFetchingRequest>,
|
IncomingRequestReceiver<v1::CollationFetchingRequest>,
|
||||||
request_response::IncomingRequestReceiver<request_response::v1::AvailableDataFetchingRequest>,
|
IncomingRequestReceiver<v1::AvailableDataFetchingRequest>,
|
||||||
request_response::IncomingRequestReceiver<request_response::v1::PoVFetchingRequest>,
|
|
||||||
request_response::IncomingRequestReceiver<request_response::v1::ChunkFetchingRequest>,
|
|
||||||
) {
|
) {
|
||||||
let (collation_req_receiver, cfg) =
|
let (collation_req_receiver, cfg) =
|
||||||
IncomingRequest::get_config_receiver(request_protocol_names);
|
IncomingRequest::get_config_receiver(request_protocol_names);
|
||||||
@@ -215,9 +209,7 @@ fn build_request_response_protocol_receivers(
|
|||||||
let (available_data_req_receiver, cfg) =
|
let (available_data_req_receiver, cfg) =
|
||||||
IncomingRequest::get_config_receiver(request_protocol_names);
|
IncomingRequest::get_config_receiver(request_protocol_names);
|
||||||
config.network.request_response_protocols.push(cfg);
|
config.network.request_response_protocols.push(cfg);
|
||||||
let (pov_req_receiver, cfg) = IncomingRequest::get_config_receiver(request_protocol_names);
|
let cfg = Protocol::ChunkFetchingV1.get_outbound_only_config(request_protocol_names);
|
||||||
config.network.request_response_protocols.push(cfg);
|
config.network.request_response_protocols.push(cfg);
|
||||||
let (chunk_req_receiver, cfg) = IncomingRequest::get_config_receiver(request_protocol_names);
|
(collation_req_receiver, available_data_req_receiver)
|
||||||
config.network.request_response_protocols.push(cfg);
|
|
||||||
(collation_req_receiver, available_data_req_receiver, pov_req_receiver, chunk_req_receiver)
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user