Skip to content

Commit 0ac0ddf

Browse files
committed
Rename build_network to build_network_advanced and restore build_network API before paritytech#5666
1 parent 53b34d0 commit 0ac0ddf

10 files changed

Lines changed: 206 additions & 176 deletions

File tree

Cargo.lock

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

cumulus/client/service/src/lib.rs

Lines changed: 6 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,9 @@ use sc_consensus::{
3838
BlockImport,
3939
};
4040
use sc_network::{config::SyncMode, service::traits::NetworkService, NetworkBackend};
41-
use sc_network_sync::{service::network::NetworkServiceProvider, SyncingService};
41+
use sc_network_sync::SyncingService;
4242
use sc_network_transactions::TransactionsHandlerController;
43-
use sc_service::{
44-
build_default_syncing_engine, Configuration, DefaultSyncingEngineConfig, NetworkStarter,
45-
SpawnTaskHandle, TaskManager, WarpSyncConfig,
46-
};
43+
use sc_service::{Configuration, NetworkStarter, SpawnTaskHandle, TaskManager, WarpSyncConfig};
4744
use sc_telemetry::{log, TelemetryWorkerHandle};
4845
use sc_utils::mpsc::TracingUnboundedSender;
4946
use sp_api::ProvideRuntimeApi;
@@ -428,7 +425,7 @@ pub struct BuildNetworkParams<
428425
pub async fn build_network<'a, Block, Client, RCInterface, IQ, Network>(
429426
BuildNetworkParams {
430427
parachain_config,
431-
mut net_config,
428+
net_config,
432429
client,
433430
transaction_pool,
434431
para_id,
@@ -499,38 +496,16 @@ where
499496
parachain_config.prometheus_config.as_ref().map(|config| &config.registry),
500497
);
501498

502-
let network_service_provider = NetworkServiceProvider::new();
503-
let (sync_service, block_announce_config) =
504-
build_default_syncing_engine(DefaultSyncingEngineConfig {
505-
role: parachain_config.role,
506-
protocol_id: parachain_config.protocol_id(),
507-
fork_id: None,
508-
net_config: &mut net_config,
509-
block_announce_validator,
510-
network_service_handle: network_service_provider.handle(),
511-
warp_sync_config,
512-
client: client.clone(),
513-
import_queue_service: import_queue.service(),
514-
num_peers_hint: parachain_config.network.default_peers_set.in_peers as usize +
515-
parachain_config.network.default_peers_set.out_peers as usize,
516-
spawn_handle: &spawn_handle,
517-
metrics_registry: parachain_config
518-
.prometheus_config
519-
.as_ref()
520-
.map(|config| &config.registry),
521-
metrics: metrics.clone(),
522-
})?;
523-
524499
sc_service::build_network(sc_service::BuildNetworkParams {
525500
config: parachain_config,
526501
net_config,
527502
client,
528503
transaction_pool,
529504
spawn_handle,
530505
import_queue,
531-
sync_service,
532-
block_announce_config,
533-
network_service_provider,
506+
block_announce_validator_builder: Some(Box::new(move |_| block_announce_validator)),
507+
warp_sync_config,
508+
block_relay: None,
534509
metrics,
535510
})
536511
}

polkadot/node/service/src/lib.rs

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,7 @@ use std::{collections::HashMap, path::PathBuf, sync::Arc, time::Duration};
8484
use prometheus_endpoint::Registry;
8585
#[cfg(feature = "full-node")]
8686
use sc_service::KeystoreContainer;
87-
use sc_service::{
88-
build_default_syncing_engine, DefaultSyncingEngineConfig, RpcHandlers, SpawnTaskHandle,
89-
};
87+
use sc_service::{RpcHandlers, SpawnTaskHandle};
9088
use sc_telemetry::TelemetryWorker;
9189
#[cfg(feature = "full-node")]
9290
use sc_telemetry::{Telemetry, TelemetryWorkerHandle};
@@ -100,7 +98,6 @@ pub use sc_client_api::{Backend, CallExecutor};
10098
pub use sc_consensus::{BlockImport, LongestChain};
10199
pub use sc_executor::NativeExecutionDispatch;
102100
use sc_executor::{HeapAllocStrategy, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY};
103-
use sc_network_sync::service::network::NetworkServiceProvider;
104101
pub use sc_service::{
105102
config::{DatabaseSource, PrometheusConfig},
106103
ChainSpec, Configuration, Error as SubstrateServiceError, PruningMode, Role, TFullBackend,
@@ -120,8 +117,6 @@ pub use {rococo_runtime, rococo_runtime_constants};
120117
pub use {westend_runtime, westend_runtime_constants};
121118

122119
pub use fake_runtime_api::{GetLastTimestamp, RuntimeApi};
123-
use sc_consensus::ImportQueue;
124-
use sp_consensus::block_validation::DefaultBlockAnnounceValidator;
125120

126121
#[cfg(feature = "full-node")]
127122
pub type FullBackend = sc_service::TFullBackend<Block>;
@@ -1033,25 +1028,6 @@ pub fn new_full<
10331028
})
10341029
};
10351030

1036-
let network_service_provider = NetworkServiceProvider::new();
1037-
let (sync_service, block_announce_config) =
1038-
build_default_syncing_engine(DefaultSyncingEngineConfig {
1039-
role: config.role,
1040-
protocol_id: config.protocol_id(),
1041-
fork_id: None,
1042-
net_config: &mut net_config,
1043-
block_announce_validator: Box::new(DefaultBlockAnnounceValidator),
1044-
network_service_handle: network_service_provider.handle(),
1045-
warp_sync_config: Some(WarpSyncConfig::WithProvider(warp_sync)),
1046-
client: client.clone(),
1047-
import_queue_service: import_queue.service(),
1048-
num_peers_hint: config.network.default_peers_set.in_peers as usize +
1049-
config.network.default_peers_set.out_peers as usize,
1050-
spawn_handle: &task_manager.spawn_handle(),
1051-
metrics_registry: config.prometheus_config.as_ref().map(|config| &config.registry),
1052-
metrics: metrics.clone(),
1053-
})?;
1054-
10551031
let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) =
10561032
sc_service::build_network(sc_service::BuildNetworkParams {
10571033
config: &config,
@@ -1060,9 +1036,9 @@ pub fn new_full<
10601036
transaction_pool: transaction_pool.clone(),
10611037
spawn_handle: task_manager.spawn_handle(),
10621038
import_queue,
1063-
sync_service,
1064-
block_announce_config,
1065-
network_service_provider,
1039+
block_announce_validator_builder: None,
1040+
warp_sync_config: Some(WarpSyncConfig::WithProvider(warp_sync)),
1041+
block_relay: None,
10661042
metrics,
10671043
})?;
10681044

prdoc/pr_5737.prdoc

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ title: Make syncing service an argument of `build_network`
33
doc:
44
- audience: Node Dev
55
description: |
6-
`build_network` no longer creates syncing engine internally, it now takes a handle to syncing service is an
7-
argument instead. In most cases typical syncing engine with polkadot syncing strategy and default block downloader
8-
can be created with newly introduced `sc_service::build_default_syncing_engine()` function, but lower-level
9-
`build_default_block_downloader` also exists for those needing more customization.
6+
`build_network` is accompanied with lower-level `build_network_advanced` with simpler API that does not create
7+
syncing engine internally, but instead takes a handle to syncing service as an argument. In most cases typical
8+
syncing engine with polkadot syncing strategy and default block downloader can be created with newly introduced
9+
`sc_service::build_default_syncing_engine()` function, but lower-level `build_default_block_downloader` also
10+
exists for those needing more customization.
1011

11-
These changes allow developers higher than ever control over syncing implementation.
12+
These changes allow developers higher than ever control over syncing implementation, but `build_network` is still
13+
available for easier high-level usage.
1214

1315
crates:
1416
- name: cumulus-client-service

substrate/bin/node/cli/src/service.rs

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,6 @@ use frame_system_rpc_runtime_api::AccountNonceApi;
3232
use futures::prelude::*;
3333
use kitchensink_runtime::RuntimeApi;
3434
use node_primitives::Block;
35-
use polkadot_sdk::{
36-
sc_network_sync::service::network::NetworkServiceProvider,
37-
sc_service::{build_default_syncing_engine, DefaultSyncingEngineConfig, ImportQueue},
38-
sp_consensus::block_validation::DefaultBlockAnnounceValidator,
39-
};
4035
use sc_client_api::{Backend, BlockBackend};
4136
use sc_consensus_babe::{self, SlotProportion};
4237
use sc_network::{
@@ -511,25 +506,6 @@ pub fn new_full_base<N: NetworkBackend<Block, <Block as BlockT>::Hash>>(
511506
Vec::default(),
512507
));
513508

514-
let network_service_provider = NetworkServiceProvider::new();
515-
let (sync_service, block_announce_config) =
516-
build_default_syncing_engine(DefaultSyncingEngineConfig {
517-
role: config.role,
518-
protocol_id: config.protocol_id(),
519-
fork_id: None,
520-
net_config: &mut net_config,
521-
block_announce_validator: Box::new(DefaultBlockAnnounceValidator),
522-
network_service_handle: network_service_provider.handle(),
523-
warp_sync_config: Some(WarpSyncConfig::WithProvider(warp_sync)),
524-
client: client.clone(),
525-
import_queue_service: import_queue.service(),
526-
num_peers_hint: config.network.default_peers_set.in_peers as usize +
527-
config.network.default_peers_set.out_peers as usize,
528-
spawn_handle: &task_manager.spawn_handle(),
529-
metrics_registry: config.prometheus_config.as_ref().map(|config| &config.registry),
530-
metrics: metrics.clone(),
531-
})?;
532-
533509
let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) =
534510
sc_service::build_network(sc_service::BuildNetworkParams {
535511
config: &config,
@@ -538,9 +514,9 @@ pub fn new_full_base<N: NetworkBackend<Block, <Block as BlockT>::Hash>>(
538514
transaction_pool: transaction_pool.clone(),
539515
spawn_handle: task_manager.spawn_handle(),
540516
import_queue,
541-
sync_service,
542-
block_announce_config,
543-
network_service_provider,
517+
block_announce_validator_builder: None,
518+
warp_sync_config: Some(WarpSyncConfig::WithProvider(warp_sync)),
519+
block_relay: None,
544520
metrics,
545521
})?;
546522

0 commit comments

Comments
 (0)