Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
6ca9f1b
Asyncify sign_with
May 6, 2020
139e31b
Asyncify generate/get keys
May 7, 2020
0a9ff21
Complete BareCryptoStore asyncification
May 7, 2020
2d4e2c9
Cleanup
May 7, 2020
dd001bb
Rebase
May 18, 2020
1949f7c
Add Proxy
May 18, 2020
88d48e6
Inject keystore proxy into extensions
May 20, 2020
a6f6ffc
Implement some methods
May 20, 2020
d7714e9
Await on send
May 20, 2020
73a32cf
Cleanup
May 20, 2020
b540f7a
Send result over the oneshot channel sender
May 22, 2020
391fd8a
Process one future at a time
May 25, 2020
0c352da
Fix cargo stuff
Aug 11, 2020
0bf4779
Asyncify sr25519_vrf_sign
Jun 12, 2020
700dcbf
Cherry-pick and fix changes
Aug 21, 2020
de8d0a9
Introduce SyncCryptoStore
Aug 21, 2020
ec5cc86
SQUASH ME WITH THE first commit
Aug 21, 2020
6fd1dfd
Implement into SyncCryptoStore
Aug 21, 2020
8c69a47
Implement BareCryptoStore for KeystoreProxyAdapter
Aug 21, 2020
0f4a993
authority-discovery
Aug 21, 2020
f199295
AURA
Aug 21, 2020
f1b9a50
BABE
Aug 21, 2020
a7dfb5b
finality-grandpa
Aug 21, 2020
8be5932
offchain-workers
Aug 21, 2020
05734ca
benchmarking-cli
Aug 21, 2020
e333cc6
sp_io
Aug 21, 2020
c25fc7b
test-utils
Aug 21, 2020
fcb9fff
application-crypto
Aug 21, 2020
8393835
Extensions and RPC
Aug 21, 2020
d428bc2
Client Service
Aug 21, 2020
1833dcf
bin
Aug 21, 2020
a51c40b
Update cargo.lock
Aug 21, 2020
437fb10
Implement BareCryptoStore on proxy directly
Aug 26, 2020
ce83c89
Simplify proxy setup
Aug 26, 2020
5632e8b
Fix authority-discover
Aug 26, 2020
49b58cb
Pass async keystore to authority-discovery
Aug 28, 2020
774c7d9
Fix tests
Aug 28, 2020
c3d976a
Use async keystore in authority-discovery
Aug 28, 2020
0a97a02
Rename BareCryptoStore to CryptoStore
Aug 28, 2020
e95ff86
WIP
Aug 31, 2020
bae8aee
Remote mutable borrow in CryptoStore trait
Aug 31, 2020
09c61ab
Implement Keystore with backends
Aug 31, 2020
4533975
Remove Proxy implementation
Aug 31, 2020
d0884ef
Fix service builder and keystore user-crates
Aug 31, 2020
54a0573
Fix tests
Aug 31, 2020
a0b73d2
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Aug 31, 2020
3165841
Rework authority-discovery after refactoring
Sep 1, 2020
0eed201
futures::select!
Sep 1, 2020
9e2a0ac
Fix multiple mut borrows in authority-discovery
Sep 1, 2020
312cc5b
Merge fixes
Sep 1, 2020
b0cc694
Require sync
Sep 1, 2020
6bb48a2
Restore Cargo.lock
Sep 1, 2020
387da2e
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 1, 2020
cdf43e6
PR feedback - round 1
Sep 1, 2020
fd00d9b
Remove Keystore and use LocalKeystore directly
Sep 1, 2020
68965ce
Join
Sep 1, 2020
b0a6fce
Remove sync requirement
Sep 1, 2020
da4c039
Fix keystore tests
Sep 1, 2020
3fca456
Fix tests
Sep 2, 2020
325fe0d
client/authority-discovery: Remove event stream dynamic dispatching
mxinden Sep 2, 2020
0be4d79
Make it compile
Sep 2, 2020
792292c
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 2, 2020
4d8654f
Fix submit_transaction
Sep 2, 2020
4f6a5e5
Fix block_on issue
Sep 4, 2020
54304e4
Use await in async context
Sep 4, 2020
a710060
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 4, 2020
b471f58
Fix manual seal keystore
Sep 4, 2020
e1f18cc
Fix authoring_blocks test
Sep 7, 2020
0ec4fde
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 7, 2020
230103a
fix aura authoring_blocks
Sep 7, 2020
100a09c
Try to fix tests for auth-discovery
Sep 8, 2020
8509a1b
client/authority-discovery: Fix lookup_throttling test
mxinden Sep 8, 2020
e4bb4b9
client/authority-discovery: Fix triggers_dht_get_query test
mxinden Sep 8, 2020
873afc0
Fix epoch_authorship_works
Sep 8, 2020
e67e615
client/authority-discovery: Remove timing assumption in unit test
mxinden Sep 8, 2020
7c4a12d
client/authority-discovery: Revert changes to termination test
mxinden Sep 8, 2020
bdf2e27
PR feedback
Sep 9, 2020
e9ef22f
Remove deadcode and mark test code
Sep 9, 2020
e53226b
Fix test_sync
Sep 14, 2020
3c1a606
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 14, 2020
d739ddf
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 15, 2020
bcfa470
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 17, 2020
cc0cf4e
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 20, 2020
9897f53
Use the correct keyring type
Sep 21, 2020
8124deb
Return when from_service stream is closed
Sep 21, 2020
ac63821
Convert SyncCryptoStore to a trait
Sep 21, 2020
64b4d9c
Fix line width
Sep 21, 2020
3ad796b
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 21, 2020
ac45a38
Fix line width - take 2
Sep 21, 2020
c26f7f6
Remove unused import
Sep 21, 2020
84f307f
Fix keystore instantiation
Sep 21, 2020
221e1f6
PR feedback
Sep 21, 2020
ca8e6a8
Merge branch 'master' into pr/7000
shawntabrizi Sep 21, 2020
9aa1152
Remove KeystoreContainer
Sep 22, 2020
d9cf952
Merge branch 'async-keystore-auth-discovery' of github.com:rakanalh/s…
Sep 22, 2020
814eef0
Revert "Remove KeystoreContainer"
Sep 22, 2020
edb4ecb
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 22, 2020
576943e
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 22, 2020
b6b08a5
Take a ref of keystore
Sep 22, 2020
d44cfe8
Move keystore to dev-dependencies
Sep 22, 2020
adbba45
Address some PR feedback
Sep 22, 2020
89ccff5
Missed one
Sep 22, 2020
07134dd
Pass keystore reference - take 2
Sep 23, 2020
db70636
client/finality-grandpa: Use `Arc<dyn CryptoStore>` instead of SyncXXX
mxinden Sep 22, 2020
ad69c2c
Remove SyncCryptoStorePtr
Sep 23, 2020
453d944
Remove KeystoreContainer & SyncCryptoStorePtr
Sep 23, 2020
331807e
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 23, 2020
4622550
PR feedback
Sep 23, 2020
2885dd8
*: Use CryptoStorePtr whereever possible
mxinden Sep 23, 2020
757061c
*: Define SyncCryptoStore as a pure extension trait of CryptoStore
mxinden Sep 23, 2020
99e005f
Follow up to SyncCryptoStore extension trait
Sep 23, 2020
2bc499e
Adjust docs for SyncCryptoStore as Ben suggested
Sep 23, 2020
a71f01f
Cleanup unnecessary requirements
Sep 23, 2020
2c74c4d
sp-keystore
Sep 24, 2020
a56121e
Use async_std::task::block_on in keystore
Sep 24, 2020
667e878
Fix block_on std requirement
Sep 24, 2020
c6df3de
Update primitives/keystore/src/lib.rs
rakanalh Sep 24, 2020
015866d
Fix wasm build
Sep 24, 2020
c789610
Merge branch 'async-keystore-auth-discovery' of github.com:rakanalh/s…
Sep 24, 2020
31d4176
Remove unused var
Sep 24, 2020
3e666fe
Fix wasm compilation - take 2
Sep 24, 2020
f5acb5d
Revert async-std in keystore
Sep 24, 2020
360d730
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Sep 28, 2020
4c74e9d
Fix indent
Oct 1, 2020
b5a66db
Fix version and copyright
Oct 1, 2020
8d5f685
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Oct 1, 2020
9e170f2
Cleanup feature = "std"
Oct 1, 2020
a176da9
Auth Discovery: Ignore if from_service is cloed
Oct 2, 2020
a5fa388
Max's suggestion
Oct 4, 2020
9a4ede4
Revert async-std usage for block_on
Oct 5, 2020
6346a13
Address PR feedback
Oct 6, 2020
086d702
Fix example offchain worker build
Oct 7, 2020
72fb7ad
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Oct 7, 2020
a5f4bd1
Address PR feedback
Oct 8, 2020
eaae1ce
Merge remote-tracking branch 'upstream/master' into async-keystore-au…
Oct 8, 2020
ae6d14f
Update Cargo.lock
Oct 8, 2020
a8e96f8
Move unused methods to test helper functions
Oct 8, 2020
757a5d8
Restore accidentally deleted cargo.lock files
Oct 8, 2020
d2a5de4
Fix unused imports
Oct 8, 2020
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
Prev Previous commit
Next Next commit
Convert SyncCryptoStore to a trait
  • Loading branch information
Rakan Alhneiti committed Sep 21, 2020
commit ac638218f8483ccb6de9141c7f948ffb1a06baea
7 changes: 3 additions & 4 deletions bin/node/cli/src/service.rs
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ mod tests {
use node_runtime::{BalancesCall, Call, UncheckedExtrinsic, Address};
use node_runtime::constants::{currency::CENTS, time::SLOT_DURATION};
use codec::Encode;
use sp_core::{crypto::Pair as CryptoPair, H256, traits::SyncCryptoStore, Public};
use sp_core::{crypto::Pair as CryptoPair, H256, traits::SyncCryptoStorePtr, Public};
use sp_runtime::{
generic::{BlockId, Era, Digest, SignedPayload},
traits::{Block as BlockT, Header as HeaderT},
Expand All @@ -493,9 +493,8 @@ mod tests {
#[ignore]
fn test_sync() {
let keystore_path = tempfile::tempdir().expect("Creates keystore path");
let keystore: Arc<SyncCryptoStore> = Arc::new(LocalKeystore::open(keystore_path.path(), None)
.expect("Creates keystore")
.into());
let keystore: SyncCryptoStorePtr = Arc::new(LocalKeystore::open(keystore_path.path(), None)
.expect("Creates keystore"));
let alice: sp_consensus_babe::AuthorityId = keystore.sr25519_generate_new(BABE, Some("//Alice"))
.expect("Creates authority pair").into();

Expand Down
10 changes: 5 additions & 5 deletions bin/node/executor/tests/submit_transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ use sp_core::{
TransactionPoolExt,
testing::TestTransactionPoolExt,
},
traits::{KeystoreExt, SyncCryptoStore},
traits::{KeystoreExt, SyncCryptoStorePtr},
};
use frame_system::{
offchain::{
Expand Down Expand Up @@ -72,7 +72,7 @@ fn should_submit_signed_transaction() {
let (pool, state) = TestTransactionPoolExt::new();
t.register_extension(TransactionPoolExt::new(pool));

let keystore: Arc<SyncCryptoStore> = Arc::new(KeyStore::new().into());
let keystore: SyncCryptoStorePtr = Arc::new(KeyStore::new().into());
keystore.sr25519_generate_new(sr25519::AuthorityId::ID, Some(&format!("{}/hunter1", PHRASE))).unwrap();
keystore.sr25519_generate_new(sr25519::AuthorityId::ID, Some(&format!("{}/hunter2", PHRASE))).unwrap();
keystore.sr25519_generate_new(sr25519::AuthorityId::ID, Some(&format!("{}/hunter3", PHRASE))).unwrap();
Expand All @@ -97,7 +97,7 @@ fn should_submit_signed_twice_from_the_same_account() {
let (pool, state) = TestTransactionPoolExt::new();
t.register_extension(TransactionPoolExt::new(pool));

let keystore: Arc<SyncCryptoStore>= Arc::new(KeyStore::new().into());
let keystore: SyncCryptoStorePtr = Arc::new(KeyStore::new().into());
keystore.sr25519_generate_new(sr25519::AuthorityId::ID, Some(&format!("{}/hunter1", PHRASE))).unwrap();
keystore.sr25519_generate_new(sr25519::AuthorityId::ID, Some(&format!("{}/hunter2", PHRASE))).unwrap();
t.register_extension(KeystoreExt(keystore));
Expand Down Expand Up @@ -141,7 +141,7 @@ fn should_submit_signed_twice_from_all_accounts() {
let (pool, state) = TestTransactionPoolExt::new();
t.register_extension(TransactionPoolExt::new(pool));

let keystore: Arc<SyncCryptoStore>= Arc::new(KeyStore::new().into());
let keystore: SyncCryptoStorePtr = Arc::new(KeyStore::new().into());
keystore.sr25519_generate_new(sr25519::AuthorityId::ID, Some(&format!("{}/hunter1", PHRASE))).unwrap();
keystore.sr25519_generate_new(sr25519::AuthorityId::ID, Some(&format!("{}/hunter2", PHRASE))).unwrap();
t.register_extension(KeystoreExt(keystore));
Expand Down Expand Up @@ -200,7 +200,7 @@ fn submitted_transaction_should_be_valid() {
let (pool, state) = TestTransactionPoolExt::new();
t.register_extension(TransactionPoolExt::new(pool));

let keystore: Arc<SyncCryptoStore>= Arc::new(KeyStore::new().into());
let keystore: SyncCryptoStorePtr = Arc::new(KeyStore::new().into());
keystore.sr25519_generate_new(sr25519::AuthorityId::ID, Some(&format!("{}/hunter1", PHRASE))).unwrap();
t.register_extension(KeystoreExt(keystore));

Expand Down
4 changes: 2 additions & 2 deletions bin/node/rpc/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@

use std::sync::Arc;

use sp_core::traits::SyncCryptoStore;
use sp_core::traits::SyncCryptoStorePtr;
use node_primitives::{Block, BlockNumber, AccountId, Index, Balance, Hash};
use sc_consensus_babe::{Config, Epoch};
use sc_consensus_babe_rpc::BabeRpcHandler;
Expand Down Expand Up @@ -69,7 +69,7 @@ pub struct BabeDeps {
/// BABE pending epoch changes.
pub shared_epoch_changes: SharedEpochChanges<Block, Epoch>,
/// The keystore that manages the keys of the node.
pub keystore: Arc<SyncCryptoStore>,
pub keystore: SyncCryptoStorePtr,
}

/// Extra dependencies for GRANDPA
Expand Down
9 changes: 4 additions & 5 deletions bin/utils/chain-spec-builder/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.

use std::{fs, path::{Path, PathBuf}};
use std::{fs, path::{Path, PathBuf}, sync::Arc};

use ansi_term::Style;
use rand::{Rng, distributions::Alphanumeric, rngs::OsRng};
use structopt::StructOpt;

use sc_keystore::LocalKeystore;
use node_cli::chain_spec::{self, AccountId};
use sp_core::{sr25519, crypto::{Public, Ss58Codec}, traits::SyncCryptoStore};
use sp_core::{sr25519, crypto::{Public, Ss58Codec}, traits::SyncCryptoStorePtr};

/// A utility to easily create a testnet chain spec definition with a given set
/// of authorities and endowed accounts and/or generate random accounts.
Expand Down Expand Up @@ -139,11 +139,10 @@ fn generate_authority_keys_and_store(
keystore_path: &Path,
) -> Result<(), String> {
for (n, seed) in seeds.into_iter().enumerate() {
let keystore: SyncCryptoStore = LocalKeystore::open(
let keystore: SyncCryptoStorePtr = Arc::new(LocalKeystore::open(
keystore_path.join(format!("auth-{}", n)),
None,
).map_err(|err| err.to_string())?
.into();
).map_err(|err| err.to_string())?);

let (_, _, grandpa, babe, im_online, authority_discovery) =
chain_spec::authority_keys_from_seed(seed);
Expand Down
6 changes: 3 additions & 3 deletions client/api/src/execution_extensions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ use codec::Decode;
use sp_core::{
ExecutionContext,
offchain::{self, OffchainExt, TransactionPoolExt},
traits::{KeystoreExt, SyncCryptoStore},
traits::{KeystoreExt, SyncCryptoStorePtr},
};
use sp_runtime::{
generic::BlockId,
Expand Down Expand Up @@ -81,7 +81,7 @@ impl ExtensionsFactory for () {
/// for each call, based on required `Capabilities`.
pub struct ExecutionExtensions<Block: traits::Block> {
strategies: ExecutionStrategies,
keystore: Option<Arc<SyncCryptoStore>>,
keystore: Option<SyncCryptoStorePtr>,
// FIXME: these two are only RwLock because of https://github.com/paritytech/substrate/issues/4587
// remove when fixed.
// To break retain cycle between `Client` and `TransactionPool` we require this
Expand All @@ -107,7 +107,7 @@ impl<Block: traits::Block> ExecutionExtensions<Block> {
/// Create new `ExecutionExtensions` given a `keystore` and `ExecutionStrategies`.
pub fn new(
strategies: ExecutionStrategies,
keystore: Option<Arc<SyncCryptoStore>>,
keystore: Option<SyncCryptoStorePtr>,
) -> Self {
let transaction_pool = RwLock::new(None);
let extensions_factory = Box::new(());
Expand Down
8 changes: 4 additions & 4 deletions client/cli/src/commands/insert.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@
//! Implementation of the `insert` subcommand

use crate::{Error, KeystoreParams, CryptoSchemeFlag, SharedParams, utils, with_crypto_scheme};
use std::sync::Arc;
use structopt::StructOpt;
use sp_core::{crypto::KeyTypeId, traits::SyncCryptoStore};
use sp_core::{crypto::KeyTypeId, traits::SyncCryptoStorePtr};
use std::convert::TryFrom;
use sc_service::config::KeystoreConfig;
use sc_keystore::LocalKeystore;
Expand Down Expand Up @@ -68,9 +69,8 @@ impl InsertCmd {
self.crypto_scheme.scheme,
to_vec(&suri, password.clone())
)?;
let keystore: SyncCryptoStore = LocalKeystore::open(path, password)
.map_err(|e| format!("{}", e))?
.into();
let keystore: SyncCryptoStorePtr = Arc::new(LocalKeystore::open(path, password)
.map_err(|e| format!("{}", e))?);
(keystore, public)
},
_ => unreachable!("keystore_config always returns path and password; qed")
Expand Down
12 changes: 6 additions & 6 deletions client/consensus/aura/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ use sp_runtime::{
};
use sp_runtime::traits::{Block as BlockT, Header, DigestItemFor, Zero, Member};
use sp_api::ProvideRuntimeApi;
use sp_core::{traits::SyncCryptoStore, crypto::Pair};
use sp_core::{traits::SyncCryptoStorePtr, crypto::Pair};
use sp_inherents::{InherentDataProviders, InherentData};
use sp_timestamp::{
TimestampInherentData, InherentType as TimestampInherent, InherentError as TIError
Expand Down Expand Up @@ -146,7 +146,7 @@ pub fn start_aura<B, C, SC, E, I, P, SO, CAW, Error>(
sync_oracle: SO,
inherent_data_providers: InherentDataProviders,
force_authoring: bool,
keystore: Arc<SyncCryptoStore>,
keystore: SyncCryptoStorePtr,
can_author_with: CAW,
) -> Result<impl Future<Output = ()>, sp_consensus::Error> where
B: BlockT,
Expand Down Expand Up @@ -191,7 +191,7 @@ struct AuraWorker<C, E, I, P, SO> {
client: Arc<C>,
block_import: Arc<Mutex<I>>,
env: E,
keystore: Arc<SyncCryptoStore>,
keystore: SyncCryptoStorePtr,
sync_oracle: SO,
force_authoring: bool,
_key_type: PhantomData<P>,
Expand Down Expand Up @@ -1016,7 +1016,7 @@ mod tests {
let client = peer.client().as_full().expect("full clients are created").clone();
let select_chain = peer.select_chain().expect("full client has a select chain");
let keystore_path = tempfile::tempdir().expect("Creates keystore path");
let keystore: SyncCryptoStore= LocalKeystore::open(keystore_path.path(), None).expect("Creates keystore.").into();
let keystore: SyncCryptoStorePtr = Arc::new(LocalKeystore::open(keystore_path.path(), None).expect("Creates keystore."));


keystore.sr25519_generate_new(AURA, Some(&key.to_seed()))
Expand Down Expand Up @@ -1046,7 +1046,7 @@ mod tests {
DummyOracle,
inherent_data_providers,
false,
Arc::new(keystore.into()),
keystore,
sp_consensus::AlwaysCanAuthor,
).expect("Starts aura"));
}
Expand Down Expand Up @@ -1086,7 +1086,7 @@ mod tests {
];

let keystore_path = tempfile::tempdir().expect("Creates keystore path");
let keystore: SyncCryptoStore = LocalKeystore::open(keystore_path.path(), None).expect("Creates keystore.").into();
let keystore: SyncCryptoStorePtr = Arc::new(LocalKeystore::open(keystore_path.path(), None).expect("Creates keystore."));
let public = keystore.sr25519_generate_new(AuthorityPair::ID, None)
.expect("Key should be created");
authorities.push(public.into());
Expand Down
14 changes: 7 additions & 7 deletions client/consensus/babe/rpc/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ use sp_consensus_babe::{
use serde::{Deserialize, Serialize};
use sp_core::{
crypto::Public,
traits::SyncCryptoStore,
traits::SyncCryptoStorePtr,
};
use sp_application_crypto::AppKey;
use sc_rpc_api::DenyUnsafe;
Expand Down Expand Up @@ -62,7 +62,7 @@ pub struct BabeRpcHandler<B: BlockT, C, SC> {
/// shared reference to EpochChanges
shared_epoch_changes: SharedEpochChanges<B, Epoch>,
/// shared reference to the Keystore
keystore: Arc<SyncCryptoStore>,
keystore: SyncCryptoStorePtr,
/// config (actually holds the slot duration)
babe_config: Config,
/// The SelectChain strategy
Expand All @@ -76,7 +76,7 @@ impl<B: BlockT, C, SC> BabeRpcHandler<B, C, SC> {
pub fn new(
client: Arc<C>,
shared_epoch_changes: SharedEpochChanges<B, Epoch>,
keystore: Arc<SyncCryptoStore>,
keystore: SyncCryptoStorePtr,
babe_config: Config,
select_chain: SC,
deny_unsafe: DenyUnsafe,
Expand Down Expand Up @@ -235,21 +235,21 @@ mod tests {
};
use sp_application_crypto::AppPair;
use sp_keyring::Sr25519Keyring;
use sp_core::{crypto::key_types::BABE, traits::SyncCryptoStore};
use sp_core::{crypto::key_types::BABE, traits::SyncCryptoStorePtr};
use sc_keystore::LocalKeystore;

use std::sync::Arc;
use sc_consensus_babe::{Config, block_import, AuthorityPair};
use jsonrpc_core::IoHandler;

/// creates keystore backed by a temp file
fn create_temp_keystore<P: AppPair>(authority: Sr25519Keyring) -> (Arc<SyncCryptoStore>, tempfile::TempDir) {
fn create_temp_keystore<P: AppPair>(authority: Sr25519Keyring) -> (SyncCryptoStorePtr, tempfile::TempDir) {
let keystore_path = tempfile::tempdir().expect("Creates keystore path");
let keystore: SyncCryptoStore = LocalKeystore::open(keystore_path.path(), None).expect("Creates keystore").into();
let keystore: SyncCryptoStorePtr = Arc::new(LocalKeystore::open(keystore_path.path(), None).expect("Creates keystore"));
keystore.sr25519_generate_new(BABE, Some(&authority.to_seed()))
.expect("Creates authority key");

(Arc::new(keystore), keystore_path)
(keystore, keystore_path)
}

fn test_babe_rpc_handler(
Expand Down
14 changes: 7 additions & 7 deletions client/consensus/babe/src/authorship.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

//! BABE authority selection and slot claiming.

use std::sync::Arc;
use sp_application_crypto::AppKey;
use sp_consensus_babe::{
BABE_VRF_PREFIX,
Expand All @@ -29,7 +28,7 @@ use sp_consensus_babe::digests::{
PreDigest, PrimaryPreDigest, SecondaryPlainPreDigest, SecondaryVRFPreDigest,
};
use sp_consensus_vrf::schnorrkel::{VRFOutput, VRFProof};
use sp_core::{U256, blake2_256, crypto::Public, traits::SyncCryptoStore};
use sp_core::{U256, blake2_256, crypto::Public, traits::SyncCryptoStorePtr};
use codec::Encode;
use schnorrkel::{
keys::PublicKey,
Expand Down Expand Up @@ -131,7 +130,7 @@ fn claim_secondary_slot(
slot_number: SlotNumber,
epoch: &Epoch,
keys: &[(AuthorityId, usize)],
keystore: Arc<SyncCryptoStore>,
keystore: SyncCryptoStorePtr,
author_secondary_vrf: bool,
) -> Option<(PreDigest, AuthorityId)> {
let Epoch { authorities, randomness, epoch_index, .. } = epoch;
Expand Down Expand Up @@ -194,7 +193,7 @@ fn claim_secondary_slot(
pub fn claim_slot(
slot_number: SlotNumber,
epoch: &Epoch,
keystore: Arc<SyncCryptoStore>,
keystore: SyncCryptoStorePtr,
) -> Option<(PreDigest, AuthorityId)> {
let authorities = epoch.authorities.iter()
.enumerate()
Expand All @@ -208,7 +207,7 @@ pub fn claim_slot(
pub fn claim_slot_using_keys(
slot_number: SlotNumber,
epoch: &Epoch,
keystore: Arc<SyncCryptoStore>,
keystore: SyncCryptoStorePtr,
keys: &[(AuthorityId, usize)],
) -> Option<(PreDigest, AuthorityId)> {
claim_primary_slot(slot_number, epoch, epoch.config.c, keystore.clone(), &keys)
Expand Down Expand Up @@ -237,7 +236,7 @@ fn claim_primary_slot(
slot_number: SlotNumber,
epoch: &Epoch,
c: (u64, u64),
keystore: Arc<SyncCryptoStore>,
keystore: SyncCryptoStorePtr,
keys: &[(AuthorityId, usize)],
) -> Option<(PreDigest, AuthorityId)> {
let Epoch { authorities, randomness, epoch_index, .. } = epoch;
Expand Down Expand Up @@ -289,14 +288,15 @@ fn claim_primary_slot(
#[cfg(test)]
mod tests {
use super::*;
use std::sync::Arc;
use sp_core::{sr25519::Pair, crypto::Pair as _};
use sp_consensus_babe::{AuthorityId, BabeEpochConfiguration, AllowedSlots};
use sc_keystore::LocalKeystore;

#[test]
fn claim_secondary_plain_slot_works() {
let keystore = LocalKeystore::in_memory();
let sync_keystore: Arc<SyncCryptoStore> = Arc::new(keystore.into());
let sync_keystore: SyncCryptoStorePtr = Arc::new(keystore);
let valid_public_key = dbg!(sync_keystore.sr25519_generate_new(
AuthorityId::ID,
Some(sp_core::crypto::DEV_PHRASE),
Expand Down
8 changes: 4 additions & 4 deletions client/consensus/babe/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ use sp_consensus::{ImportResult, CanAuthorWith};
use sp_consensus::import_queue::{
BoxJustificationImport, BoxFinalityProofImport,
};
use sp_core::{crypto::Public, traits::SyncCryptoStore};
use sp_core::{crypto::Public, traits::SyncCryptoStorePtr};
use sp_application_crypto::AppKey;
use sp_runtime::{
generic::{BlockId, OpaqueDigestItemId}, Justification,
Expand Down Expand Up @@ -327,7 +327,7 @@ impl std::ops::Deref for Config {
/// Parameters for BABE.
pub struct BabeParams<B: BlockT, C, E, I, SO, SC, CAW> {
/// The keystore that manages the keys of the node.
pub keystore: Arc<SyncCryptoStore>,
pub keystore: SyncCryptoStorePtr,

/// The client to use
pub client: Arc<C>,
Expand Down Expand Up @@ -467,7 +467,7 @@ struct BabeSlotWorker<B: BlockT, C, E, I, SO> {
env: E,
sync_oracle: SO,
force_authoring: bool,
keystore: Arc<SyncCryptoStore>,
keystore: SyncCryptoStorePtr,
epoch_changes: SharedEpochChanges<B, Epoch>,
slot_notification_sinks: SlotNotificationSinks<B>,
config: Config,
Expand Down Expand Up @@ -1491,7 +1491,7 @@ pub mod test_helpers {
slot_number: u64,
parent: &B::Header,
client: &C,
keystore: Arc<SyncCryptoStore>,
keystore: SyncCryptoStorePtr,
link: &BabeLink<B>,
) -> Option<PreDigest> where
B: BlockT,
Expand Down
Loading