Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Rework inherent data client side #8526

Merged
116 commits merged into from
May 3, 2021
Merged
Show file tree
Hide file tree
Changes from 115 commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
19b116e
Lol
bkchr Jan 19, 2021
957c6c6
Yeah
bkchr Jan 25, 2021
c49457f
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Jan 26, 2021
5a2967a
Merge branch 'bkchr-inherent-something-future' of github.com:parityte…
bkchr Jan 27, 2021
fae17f3
Moare
bkchr Jan 27, 2021
bcce52b
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Jan 29, 2021
cceddf7
adaasda
bkchr Jan 29, 2021
b7b976a
Convert AURA to new pallet macro
bkchr Feb 1, 2021
0d1dc5d
AURA: Switch to `CurrentSlot` instead of `LastTimestamp`
bkchr Feb 2, 2021
fd3c497
Add missing file
bkchr Feb 2, 2021
b89e548
Merge remote-tracking branch 'origin/master' into bkchr-aura-swich-to…
bkchr Feb 2, 2021
6d0fe15
Update frame/aura/src/migrations.rs
bkchr Feb 2, 2021
17230dc
Remove the runtime side provide inherent code
bkchr Feb 2, 2021
0861434
Use correct weight
bkchr Feb 2, 2021
5c63a96
Add TODO
bkchr Feb 2, 2021
f538dbc
Remove the Inherent from AURA
bkchr Feb 2, 2021
80e9313
:facepalm:
bkchr Feb 3, 2021
ad7210c
Remove unused stuff
bkchr Feb 3, 2021
e197811
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Feb 3, 2021
ba996af
Merge branch 'bkchr-aura-swich-to-current-slot' into bkchr-inherent-s…
bkchr Feb 3, 2021
399e826
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Feb 3, 2021
19f829c
Update primitives authorship
bkchr Feb 4, 2021
71358fa
Fix babe inherent data provider
bkchr Feb 4, 2021
0f43a3a
Fix consensus-uncles
bkchr Feb 4, 2021
8d05b46
Fix BABE
bkchr Feb 4, 2021
ffb7baf
Do some further changes to authorship primitives... :D
bkchr Feb 4, 2021
d8e4157
More work
bkchr Feb 4, 2021
a1d4a99
Make it compile the happy path
bkchr Feb 5, 2021
b2375c1
Make it async!
bkchr Feb 5, 2021
49a9477
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Feb 16, 2021
0c8c197
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Feb 16, 2021
0130f98
Take hash
bkchr Feb 16, 2021
8f68e4b
More stuff
bkchr Feb 18, 2021
cfffad8
Hacks
bkchr Feb 19, 2021
0962edd
Revert "Hacks"
bkchr Feb 27, 2021
8bc49b2
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Feb 27, 2021
927204e
Fix
bkchr Feb 27, 2021
e79ccc7
Make `execute_block` return the final block header
bkchr Mar 1, 2021
c5d32dc
Move Aura digest stuff
bkchr Mar 1, 2021
adad41b
Make it possible to disable equivocation checking
bkchr Mar 2, 2021
b3b5661
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Mar 3, 2021
5fe929a
Fix fix fix
bkchr Mar 3, 2021
759eabf
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Mar 12, 2021
2376570
Some refactorings
bkchr Mar 15, 2021
f38f0bf
Comment
bkchr Mar 16, 2021
55fb2c3
Fixes fixes fixes
bkchr Mar 16, 2021
d3f0683
More cleanups
bkchr Mar 16, 2021
4007e3a
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Mar 16, 2021
757df64
Some love
bkchr Mar 16, 2021
ae3240f
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Mar 16, 2021
7c20c60
Better love
bkchr Mar 16, 2021
58e22da
Make slot duration being exposed as `Duration` to the outside
bkchr Mar 17, 2021
313dcdf
Some slot info love
bkchr Mar 17, 2021
cb16666
Add `build_aura_worker` utility function
bkchr Mar 17, 2021
3c44055
Merge remote-tracking branch 'origin/bkchr-refactorings' into bkchr-i…
bkchr Mar 17, 2021
243e25e
Copy copy copy
bkchr Mar 17, 2021
7a1d45c
Some stuff
bkchr Mar 18, 2021
07731c2
Start fixing pow
bkchr Mar 23, 2021
c062c88
Fix pow
bkchr Mar 24, 2021
1d69db6
Remove some bounds
bkchr Mar 24, 2021
b6a6c0e
More work
bkchr Mar 24, 2021
4bcacef
Make grandpa work
bkchr Mar 24, 2021
8c0dda5
Make slots use `async_trait`
bkchr Mar 24, 2021
17df303
Introduce `SharedData`
bkchr Mar 24, 2021
583193f
Add test and fix bugs
bkchr Mar 25, 2021
04873bc
Switch to `SharedData`
bkchr Mar 25, 2021
c0fdc28
Make grandpa tests working
bkchr Mar 25, 2021
fb0500e
More Babe work
bkchr Mar 25, 2021
202c649
Make grandpa work
bkchr Mar 24, 2021
bedc1c0
Introduce `SharedData`
bkchr Mar 24, 2021
7509754
Add test and fix bugs
bkchr Mar 25, 2021
5048c15
Switch to `SharedData`
bkchr Mar 25, 2021
ee26e09
Make grandpa tests working
bkchr Mar 25, 2021
d4a2498
More Babe work
bkchr Mar 25, 2021
076d4dc
Make it async
bkchr Mar 26, 2021
9fe6ead
Fix fix
bkchr Mar 26, 2021
6560444
Use `async_trait` in sc-consensus-slots
bkchr Mar 26, 2021
4479a55
Make grandpa tests compile
bkchr Mar 26, 2021
fcae728
More Babe tests work
bkchr Mar 25, 2021
a850851
Fix network test
bkchr Mar 26, 2021
0301378
Start fixing service test
bkchr Mar 26, 2021
3095404
Finish service-test
bkchr Mar 26, 2021
36c6bb5
Fix sc-consensus-aura
bkchr Mar 27, 2021
d9a8986
Fix fix fix
bkchr Mar 27, 2021
5104bf6
More fixes
bkchr Mar 27, 2021
efcd0b5
Make everything compile *yeah*
bkchr Mar 27, 2021
15c3189
Merge remote-tracking branch 'origin/master' into bkchr-block-import-…
bkchr Mar 27, 2021
20f7dac
Merge branch 'bkchr-block-import-verifier-async' into bkchr-inherent-…
bkchr Mar 27, 2021
716ee9a
Make manual-seal compile
bkchr Mar 28, 2021
de81dfc
More fixes
bkchr Mar 29, 2021
d84e946
Start fixing Aura
bkchr Mar 29, 2021
67ae81e
Fix Aura tests
bkchr Mar 29, 2021
ee4e70d
Fix Babe tests
bkchr Mar 29, 2021
613a384
Make everything compile
bkchr Mar 29, 2021
888e922
Move code around and switch to async_trait
bkchr Mar 30, 2021
e12f2d5
Fix Babe
bkchr Mar 31, 2021
ffa51e3
Docs docs docs
bkchr Apr 1, 2021
6d610ee
Move to FRAME
bkchr Apr 1, 2021
f424a90
Fix fix fix
bkchr Apr 2, 2021
470fced
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Apr 2, 2021
aa84c0d
Make everything compile
bkchr Apr 3, 2021
ad0d978
Last cleanups
bkchr Apr 3, 2021
a847f2f
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Apr 3, 2021
7c5045d
Fix integration test
bkchr Apr 7, 2021
ebcc8d5
Change slot usage of the timestamp
bkchr Apr 7, 2021
bf95af1
We really need to switch to `impl-trait-for-tuples`
bkchr Apr 7, 2021
4fe954f
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Apr 7, 2021
f20f7d2
Update primitives/inherents/src/lib.rs
bkchr Apr 9, 2021
d4e7e6a
Update primitives/inherents/src/lib.rs
bkchr Apr 9, 2021
3ca143a
Update primitives/inherents/src/lib.rs
bkchr Apr 9, 2021
50e7113
Some extra logging
bkchr Apr 9, 2021
354b4f1
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr Apr 9, 2021
27b6e5a
Remove dbg!
bkchr Apr 9, 2021
ae99cc5
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr May 3, 2021
a49dc32
Merge remote-tracking branch 'origin/master' into bkchr-inherent-some…
bkchr May 3, 2021
88479b8
Update primitives/consensus/common/src/import_queue/basic_queue.rs
bkchr May 3, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 19 additions & 10 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions bin/node-template/node/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ sc-finality-grandpa = { version = "0.9.0", path = "../../../client/finality-gran
sp-finality-grandpa = { version = "3.0.0", path = "../../../primitives/finality-grandpa" }
sc-client-api = { version = "3.0.0", path = "../../../client/api" }
sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
sp-timestamp = { version = "3.0.0", path = "../../../primitives/timestamp" }

# These dependencies are used for the node template's RPCs
jsonrpc-core = "15.1.0"
Expand Down
61 changes: 46 additions & 15 deletions bin/node-template/node/src/service.rs
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
//! Service and ServiceFactory implementation. Specialized wrapper over substrate service.

use std::sync::Arc;
use std::time::Duration;
use std::{sync::Arc, time::Duration};
use sc_client_api::{ExecutorProvider, RemoteBackend};
use node_template_runtime::{self, opaque::Block, RuntimeApi};
use sc_service::{error::Error as ServiceError, Configuration, TaskManager};
use sp_inherents::InherentDataProviders;
use sc_executor::native_executor_instance;
pub use sc_executor::NativeExecutor;
use sp_consensus_aura::sr25519::AuthorityPair as AuraPair;
use sc_consensus_aura::{ImportQueueParams, StartAuraParams, SlotProportion};
use sc_finality_grandpa::SharedVoterState;
use sc_keystore::LocalKeystore;
use sc_telemetry::{Telemetry, TelemetryWorker};
use sp_consensus::SlotData;

// Our native executor instance.
native_executor_instance!(
Expand Down Expand Up @@ -45,7 +44,6 @@ pub fn new_partial(config: &Configuration) -> Result<sc_service::PartialComponen
return Err(ServiceError::Other(
format!("Remote Keystores are not supported.")))
}
let inherent_data_providers = InherentDataProviders::new();

let telemetry = config.telemetry_endpoints.clone()
.filter(|x| !x.is_empty())
Expand Down Expand Up @@ -90,15 +88,26 @@ pub fn new_partial(config: &Configuration) -> Result<sc_service::PartialComponen
grandpa_block_import.clone(), client.clone(),
);

let import_queue = sc_consensus_aura::import_queue::<AuraPair, _, _, _, _, _>(
let slot_duration = sc_consensus_aura::slot_duration(&*client)?.slot_duration();

let import_queue = sc_consensus_aura::import_queue::<AuraPair, _, _, _, _, _, _>(
ImportQueueParams {
block_import: aura_block_import.clone(),
justification_import: Some(Box::new(grandpa_block_import.clone())),
client: client.clone(),
inherent_data_providers: inherent_data_providers.clone(),
create_inherent_data_providers: move |_, ()| async move {
let timestamp = sp_timestamp::InherentDataProvider::from_system_time();

let slot =
sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration(
*timestamp,
slot_duration,
);

Ok((timestamp, slot))
},
spawner: &task_manager.spawn_essential_handle(),
can_author_with: sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),
slot_duration: sc_consensus_aura::slot_duration(&*client)?,
registry: config.prometheus_registry(),
check_for_equivocation: Default::default(),
telemetry: telemetry.as_ref().map(|x| x.handle()),
Expand All @@ -113,7 +122,6 @@ pub fn new_partial(config: &Configuration) -> Result<sc_service::PartialComponen
keystore_container,
select_chain,
transaction_pool,
inherent_data_providers,
other: (aura_block_import, grandpa_link, telemetry),
})
}
Expand All @@ -135,7 +143,6 @@ pub fn new_full(mut config: Configuration) -> Result<TaskManager, ServiceError>
mut keystore_container,
select_chain,
transaction_pool,
inherent_data_providers,
other: (block_import, grandpa_link, mut telemetry),
} = new_partial(&config)?;

Expand Down Expand Up @@ -220,14 +227,27 @@ pub fn new_full(mut config: Configuration) -> Result<TaskManager, ServiceError>
let can_author_with =
sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone());

let aura = sc_consensus_aura::start_aura::<AuraPair, _, _, _, _, _, _, _, _,_>(
let slot_duration = sc_consensus_aura::slot_duration(&*client)?;
let raw_slot_duration = slot_duration.slot_duration();

let aura = sc_consensus_aura::start_aura::<AuraPair, _, _, _, _, _, _, _, _, _, _>(
StartAuraParams {
slot_duration: sc_consensus_aura::slot_duration(&*client)?,
slot_duration,
client: client.clone(),
select_chain,
block_import,
proposer_factory,
inherent_data_providers: inherent_data_providers.clone(),
create_inherent_data_providers: move |_, ()| async move {
let timestamp = sp_timestamp::InherentDataProvider::from_system_time();

let slot =
sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration(
*timestamp,
raw_slot_duration,
);

Ok((timestamp, slot))
},
force_authoring,
backoff_authoring_blocks,
keystore: keystore_container.sync_keystore(),
Expand Down Expand Up @@ -338,15 +358,26 @@ pub fn new_light(mut config: Configuration) -> Result<TaskManager, ServiceError>
client.clone(),
);

let import_queue = sc_consensus_aura::import_queue::<AuraPair, _, _, _, _, _>(
let slot_duration = sc_consensus_aura::slot_duration(&*client)?.slot_duration();

let import_queue = sc_consensus_aura::import_queue::<AuraPair, _, _, _, _, _, _>(
ImportQueueParams {
block_import: aura_block_import.clone(),
justification_import: Some(Box::new(grandpa_block_import.clone())),
client: client.clone(),
inherent_data_providers: InherentDataProviders::new(),
create_inherent_data_providers: move |_, ()| async move {
let timestamp = sp_timestamp::InherentDataProvider::from_system_time();

let slot =
sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration(
*timestamp,
slot_duration,
);

Ok((timestamp, slot))
},
spawner: &task_manager.spawn_essential_handle(),
can_author_with: sp_consensus::NeverCanAuthor,
slot_duration: sc_consensus_aura::slot_duration(&*client)?,
registry: config.prometheus_registry(),
check_for_equivocation: Default::default(),
telemetry: telemetry.as_ref().map(|x| x.handle()),
Expand Down
8 changes: 3 additions & 5 deletions bin/node/bench/src/construct.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ use sp_transaction_pool::{
TxHash,
};
use sp_consensus::{Environment, Proposer};
use sp_inherents::InherentDataProvider;

use crate::{
common::SizeType,
Expand Down Expand Up @@ -153,10 +154,7 @@ impl core::Benchmark for ConstructionBenchmark {
None,
None,
);
let inherent_data_providers = sp_inherents::InherentDataProviders::new();
inherent_data_providers
.register_provider(sp_timestamp::InherentDataProvider)
.expect("Failed to register timestamp data provider");
let timestamp_provider = sp_timestamp::InherentDataProvider::from_system_time();

let start = std::time::Instant::now();

Expand All @@ -168,7 +166,7 @@ impl core::Benchmark for ConstructionBenchmark {

let _block = futures::executor::block_on(
proposer.propose(
inherent_data_providers.create_inherent_data().expect("Create inherent data failed"),
timestamp_provider.create_inherent_data().expect("Create inherent data failed"),
Default::default(),
std::time::Duration::from_secs(20),
None,
Expand Down
4 changes: 3 additions & 1 deletion bin/node/cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ sp-consensus-babe = { version = "0.9.0", path = "../../../primitives/consensus/b
grandpa-primitives = { version = "3.0.0", package = "sp-finality-grandpa", path = "../../../primitives/finality-grandpa" }
sp-core = { version = "3.0.0", path = "../../../primitives/core" }
sp-runtime = { version = "3.0.0", path = "../../../primitives/runtime" }
sp-timestamp = { version = "3.0.0", default-features = false, path = "../../../primitives/timestamp" }
sp-timestamp = { version = "3.0.0", path = "../../../primitives/timestamp" }
sp-authorship = { version = "3.0.0", path = "../../../primitives/authorship" }
sp-inherents = { version = "3.0.0", path = "../../../primitives/inherents" }
sp-keyring = { version = "3.0.0", path = "../../../primitives/keyring" }
sp-keystore = { version = "0.9.0", path = "../../../primitives/keystore" }
Expand All @@ -65,6 +66,7 @@ sc-transaction-pool = { version = "3.0.0", path = "../../../client/transaction-p
sc-network = { version = "0.9.0", path = "../../../client/network" }
sc-consensus-slots = { version = "0.9.0", path = "../../../client/consensus/slots" }
sc-consensus-babe = { version = "0.9.0", path = "../../../client/consensus/babe" }
sc-consensus-uncles = { version = "0.9.0", path = "../../../client/consensus/uncles" }
grandpa = { version = "0.9.0", package = "sc-finality-grandpa", path = "../../../client/finality-grandpa" }
sc-client-db = { version = "0.9.0", default-features = false, path = "../../../client/db" }
sc-offchain = { version = "3.0.0", path = "../../../client/offchain" }
Expand Down
Loading