Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beefy client generic on aduthority Id #1816

Merged
Merged
Show file tree
Hide file tree
Changes from 90 commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
5d3dce1
First definition for pair public keys
drskalman Aug 3, 2023
be890d4
Two example of implementation of pair for demonestration
drskalman Aug 3, 2023
fb6a018
- implement paired crypto `Public` as tuple of two `Public`s - unsuce…
drskalman Aug 14, 2023
62ef8b1
keep both public key object and their continous serialization in pair…
drskalman Aug 21, 2023
8d4e523
implement PassBy and From<Pair> for paired_crypto
drskalman Aug 21, 2023
eea74e2
implement rest of aux traits for `paired_crypto::Public` implement so…
drskalman Aug 22, 2023
f407d87
Attempt to implement trait `Pair` for `pair_cyrpto::Pair`
drskalman Aug 29, 2023
2606cc4
- Implement trait `Pair` for `paired_crypto::Pair` - Implement a pair…
drskalman Aug 31, 2023
00933da
implement sgin and verify for
drskalman Sep 5, 2023
e7719ab
Actually implementing `paired_crypto::{Pair, Public, Signatrue}` for …
drskalman Sep 10, 2023
7a9b677
Implement and pass all test for `paired_crypto`
drskalman Sep 11, 2023
a01a814
- move to signle seed for both schemes in `primitives/core/src/paired…
drskalman Sep 25, 2023
7c02658
replace `hex!` → `array_bytes::hex2xx`
drskalman Sep 25, 2023
7f8d958
Apply suggestions from `paired_crypto` code review on type nam, hash …
drskalman Oct 5, 2023
eef2cec
Do not panic in `paired::Signature::try_from`
drskalman Oct 5, 2023
efb215f
Remove `DoublePair` trait.
drskalman Oct 5, 2023
65584bd
Do not empty implement `paired::Pair`
drskalman Oct 5, 2023
e047f75
Use `paired_crypto::Seed` instead of `[u8; SECURE_SEED_LEN]`
drskalman Oct 5, 2023
c12b82e
use `ecdsa::PUBLIC_KEY_SERIALIZED_SIZE` and `ecdsa::SIGNATURE_SERIALI…
drskalman Oct 5, 2023
dba854a
Remove `paired::DoublePair` impl as well
drskalman Oct 5, 2023
5182c86
- Implement `BytesArray` for both ecdsa and bls Signatures
drskalman Oct 5, 2023
17d0077
Implement encode_and_decode_(public_key/signature)_works test for pai…
drskalman Oct 5, 2023
a740589
cargo fmt
drskalman Oct 5, 2023
79f25e9
- Implement RuntimeAppCrypto and necessery hostApi for ecdsa_bls377 c…
drskalman Oct 6, 2023
489522f
cargo fmt
drskalman Oct 6, 2023
05e08b3
make BEEFY Keystore and Worker generic over AuthorityId
drskalman Oct 8, 2023
0541cb0
Fix `BeefyAuthorityId::verify` for `ecdsa_bls_crypto` not to use `ecd…
drskalman Oct 27, 2023
099b86d
Fix comment in `primitives/consensus/beefy/src/lib.rs`
drskalman Oct 27, 2023
033ff57
- implement `sign/verify_with_hasher` for `ecdsa_bls377` `Pair` with …
drskalman Oct 31, 2023
76831b7
Fix typos and improve comment quality
drskalman Nov 1, 2023
a0c6d83
Add ecdsa_bls377_sign_with_keccak256 to the keystore
drskalman Nov 2, 2023
102ad62
add and implement `ecdsa_bls377_sign_with_keccak256`
drskalman Nov 3, 2023
25d1afc
- Make BEEFY Keyring to be generic over `AuthorityId`.
drskalman Nov 9, 2023
05a3ebd
Merge remote-tracking branch 'origin/master' into skalman--beefy-clie…
drskalman Nov 9, 2023
c860dd0
Improve documention and comments
drskalman Nov 9, 2023
8958fde
Remove unused SimpleKeyPair Trait
drskalman Nov 9, 2023
5ef71c8
Merge branch 'skalman--fix-ecdsa-bls-verify-in-beefy-primitives' of h…
drskalman Nov 13, 2023
3b8eded
add reasoning on why in BEEFY we want the ECDSA signature on Keccak …
drskalman Nov 13, 2023
efb350d
Merge branch 'master' into skalman--fix-ecdsa-bls-verify-in-beefy-pri…
drskalman Nov 13, 2023
8cfccd8
fmt
drskalman Nov 13, 2023
a15a60d
Improve documentation
drskalman Nov 13, 2023
85f8999
Merge branch 'master' into skalman--beefy-client-keystore-supporting-…
drskalman Nov 13, 2023
9667c1b
Merge branch 'skalman--beefy-client-keystore-supporting-both-ecdsa-an…
drskalman Nov 13, 2023
b18e2f4
Merge branch 'skalman--fix-ecdsa-bls-verify-in-beefy-primitives' into…
drskalman Nov 13, 2023
00b62ef
fmt
drskalman Nov 13, 2023
3ef0f65
Improve comment quality
drskalman Nov 27, 2023
a80264c
Merge branch 'master' into skalman--beefy-client-keystore-supporting-…
drskalman Dec 5, 2023
3f8d533
drop 'perhaps' from generate_with_phrase_should_be_recoverable_with_f…
drskalman Dec 5, 2023
1b48d48
Merge remote-tracking branch 'origin/master' into skalman--beefy-clie…
Lederstrumpf Dec 5, 2023
5f09d22
fmt
Lederstrumpf Dec 5, 2023
b04880d
Merge branch 'skalman--beefy-client-keystore-supporting-both-ecdsa-an…
drskalman Dec 5, 2023
6304d1e
Apply suggestions from code review
drskalman Jan 19, 2024
7fc1326
Apply suggestions from code review
drskalman Jan 19, 2024
6401a97
use std instead of sp_std as we are not in the Runtime
drskalman Jan 19, 2024
425c3d3
remove sp-std fro Cargo.lock
drskalman Jan 19, 2024
e98945f
Merge branch 'skalman--beefy-client-keystore-supporting-both-ecdsa-an…
drskalman Jan 20, 2024
59a4b5f
Do not re-export internal of primitives/consensus/beefy/src/test_utils
drskalman Jan 20, 2024
f2956c0
fix wrong doc for `BeefySignerAuthority::sign_with_hasher`
drskalman Jan 20, 2024
3422057
Make BEEFY Keyring itself generic over AuthId using PhantomData.
drskalman Jan 24, 2024
7454b6d
Compatiblize all client/beefy tests to Keyring<AuthorityId> enum model
drskalman Jan 25, 2024
e0c57b6
Merge branch 'skalman--beefy-client-keystore-supporting-both-ecdsa-an…
drskalman Jan 26, 2024
7718444
Merge branch 'master' into skalman--beefy-client-generic-on-auth-id
drskalman Feb 13, 2024
ce9ec49
Fix compile errors after merge with master
drskalman Feb 13, 2024
db4ee57
Resolve all errors in BEEFY client test and pass them.
drskalman Feb 19, 2024
d230d74
Resolve warning in BEEFY client
drskalman Feb 27, 2024
4464c38
Remove redundant imports
drskalman Feb 27, 2024
df03389
Merge remote-tracking branch 'origin/master' into skalman--beefy-clie…
drskalman Feb 27, 2024
b82aaa1
fix error in beefy generic client after merge
drskalman Mar 11, 2024
906b436
Remove unused uses
drskalman Mar 11, 2024
b8be941
Merge branch 'master' into skalman--beefy-client-generic-on-auth-id
drskalman Mar 11, 2024
3067351
fmt
drskalman Mar 11, 2024
b2f7c95
Make BEEFY RPC generic over AuthorityId
drskalman Mar 14, 2024
90cb62e
Don't put `authority_id_works_for_ecdsa` behind bls feature.
drskalman Mar 14, 2024
b91af5b
Remove extrac copy of `ecdsa_bls377_sign_with_keccak_works`
drskalman Mar 14, 2024
c0fb32a
Adrian really doesn't like semi-colon at the end of a return statement.
drskalman Mar 14, 2024
a1d50ec
Remove redundant dead stuff
drskalman Mar 14, 2024
45f9c39
delete the a accidental file
drskalman Mar 18, 2024
f7c8b61
Remove SmartDefault
drskalman Mar 18, 2024
adfb1bd
Typos and Redudnacies
drskalman Mar 18, 2024
56e75eb
Remove redundant bound from AuthorityIdBound.
drskalman Mar 18, 2024
3969528
fmt
drskalman Mar 18, 2024
f75e3a2
warn if backend contains a BEEFY state of an obsolete version
drskalman Mar 19, 2024
5d2f33a
Removing constrain on `<AuthorityId as RuntimeAppPublic>::Signature`
drskalman May 27, 2024
6031199
Merge branch 'master' into skalman--beefy-client-generic-on-auth-id-m…
drskalman May 28, 2024
f55e92f
fix beefy tests after merging
drskalman May 28, 2024
99ab160
unwrap beefy justification to pass test
drskalman May 28, 2024
8bf7a40
Remove all remaining `<AuthorityId as RuntimeAppPublic>::Signature:
drskalman May 29, 2024
7c42d8b
Do `cargo +nightly fmt`
drskalman May 29, 2024
a326523
Remove redundant imports resolve all warnings
drskalman May 29, 2024
725fc2c
make @davxy happy
drskalman May 29, 2024
d834a1d
Remove empty line from substrate/primitives/consensus/beefy/src/lib.rs
drskalman May 29, 2024
f65096e
add beefy_primitisto cli/service
drskalman May 29, 2024
cfc59ed
fmt
drskalman May 29, 2024
a6a1f82
Merge remote-tracking branch 'origin/master' into skalman--beefy-clie…
drskalman May 29, 2024
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
5 changes: 5 additions & 0 deletions Cargo.lock

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

18 changes: 12 additions & 6 deletions polkadot/node/service/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ use telemetry::TelemetryWorker;
#[cfg(feature = "full-node")]
use telemetry::{Telemetry, TelemetryWorkerHandle};

use beefy_primitives::ecdsa_crypto;
pub use chain_spec::{GenericChainSpec, RococoChainSpec, WestendChainSpec};
pub use consensus_common::{Proposal, SelectChain};
use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE;
Expand Down Expand Up @@ -394,8 +395,8 @@ type FullSelectChain = relay_chain_selection::SelectRelayChain<FullBackend>;
type FullGrandpaBlockImport<ChainSelection = FullSelectChain> =
grandpa::GrandpaBlockImport<FullBackend, Block, FullClient, ChainSelection>;
#[cfg(feature = "full-node")]
type FullBeefyBlockImport<InnerBlockImport> =
beefy::import::BeefyBlockImport<Block, FullBackend, FullClient, InnerBlockImport>;
type FullBeefyBlockImport<InnerBlockImport, AuthorityId> =
beefy::import::BeefyBlockImport<Block, FullBackend, FullClient, InnerBlockImport, AuthorityId>;

#[cfg(feature = "full-node")]
struct Basics {
Expand Down Expand Up @@ -486,11 +487,14 @@ fn new_partial<ChainSelection>(
babe::BabeBlockImport<
Block,
FullClient,
FullBeefyBlockImport<FullGrandpaBlockImport<ChainSelection>>,
FullBeefyBlockImport<
FullGrandpaBlockImport<ChainSelection>,
ecdsa_crypto::AuthorityId,
>,
>,
grandpa::LinkHalf<Block, FullClient, ChainSelection>,
babe::BabeLink<Block>,
beefy::BeefyVoterLinks<Block>,
beefy::BeefyVoterLinks<Block, ecdsa_crypto::AuthorityId>,
),
grandpa::SharedVoterState,
sp_consensus_babe::SlotDuration,
Expand Down Expand Up @@ -601,7 +605,7 @@ where
subscription_executor: subscription_executor.clone(),
finality_provider: finality_proof_provider.clone(),
},
beefy: polkadot_rpc::BeefyDeps {
beefy: polkadot_rpc::BeefyDeps::<ecdsa_crypto::AuthorityId> {
beefy_finality_proof_stream: beefy_rpc_links.from_voter_justif_stream.clone(),
beefy_best_block_stream: beefy_rpc_links.from_voter_best_beefy_stream.clone(),
subscription_executor,
Expand Down Expand Up @@ -1289,7 +1293,9 @@ pub fn new_full<
is_authority: role.is_authority(),
};

let gadget = beefy::start_beefy_gadget::<_, _, _, _, _, _, _>(beefy_params);
let gadget = beefy::start_beefy_gadget::<_, _, _, _, _, _, _, ecdsa_crypto::AuthorityId>(
beefy_params,
);

// BEEFY is part of consensus, if it fails we'll bring the node down with it to make sure it
// is noticed.
Expand Down
2 changes: 2 additions & 0 deletions polkadot/rpc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@ sp-blockchain = { path = "../../substrate/primitives/blockchain" }
sp-keystore = { path = "../../substrate/primitives/keystore" }
sp-runtime = { path = "../../substrate/primitives/runtime" }
sp-api = { path = "../../substrate/primitives/api" }
sp-application-crypto = { path = "../../substrate/primitives/application-crypto" }
sp-consensus = { path = "../../substrate/primitives/consensus/common" }
sp-consensus-babe = { path = "../../substrate/primitives/consensus/babe" }
sp-consensus-beefy = { path = "../../substrate/primitives/consensus/beefy" }
sc-chain-spec = { path = "../../substrate/client/chain-spec" }
sc-rpc = { path = "../../substrate/client/rpc" }
sc-rpc-spec-v2 = { path = "../../substrate/client/rpc-spec-v2" }
Expand Down
18 changes: 11 additions & 7 deletions polkadot/rpc/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,12 @@ use sc_consensus_beefy::communication::notification::{
use sc_consensus_grandpa::FinalityProofProvider;
pub use sc_rpc::{DenyUnsafe, SubscriptionTaskExecutor};
use sp_api::ProvideRuntimeApi;
use sp_application_crypto::RuntimeAppPublic;
use sp_block_builder::BlockBuilder;
use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata};
use sp_consensus::SelectChain;
use sp_consensus_babe::BabeApi;
use sp_consensus_beefy::AuthorityIdBound;
use sp_keystore::KeystorePtr;
use txpool_api::TransactionPool;

Expand Down Expand Up @@ -62,17 +64,17 @@ pub struct GrandpaDeps<B> {
}

/// Dependencies for BEEFY
pub struct BeefyDeps {
pub struct BeefyDeps<AuthorityId: AuthorityIdBound> {
/// Receives notifications about finality proof events from BEEFY.
pub beefy_finality_proof_stream: BeefyVersionedFinalityProofStream<Block>,
pub beefy_finality_proof_stream: BeefyVersionedFinalityProofStream<Block, AuthorityId>,
/// Receives notifications about best block events from BEEFY.
pub beefy_best_block_stream: BeefyBestBlockStream<Block>,
/// Executor to drive the subscription manager in the BEEFY RPC handler.
pub subscription_executor: sc_rpc::SubscriptionTaskExecutor,
}

/// Full client dependencies
pub struct FullDeps<C, P, SC, B> {
pub struct FullDeps<C, P, SC, B, AuthorityId: AuthorityIdBound> {
/// The client instance to use.
pub client: Arc<C>,
/// Transaction pool instance.
Expand All @@ -88,14 +90,14 @@ pub struct FullDeps<C, P, SC, B> {
/// GRANDPA specific dependencies.
pub grandpa: GrandpaDeps<B>,
/// BEEFY specific dependencies.
pub beefy: BeefyDeps,
pub beefy: BeefyDeps<AuthorityId>,
/// Backend used by the node.
pub backend: Arc<B>,
}

/// Instantiate all RPC extensions.
pub fn create_full<C, P, SC, B>(
FullDeps { client, pool, select_chain, chain_spec, deny_unsafe, babe, grandpa, beefy, backend } : FullDeps<C, P, SC, B>,
pub fn create_full<C, P, SC, B, AuthorityId>(
FullDeps { client, pool, select_chain, chain_spec, deny_unsafe, babe, grandpa, beefy, backend } : FullDeps<C, P, SC, B, AuthorityId>,
) -> Result<RpcExtension, Box<dyn std::error::Error + Send + Sync>>
where
C: ProvideRuntimeApi<Block>
Expand All @@ -114,6 +116,8 @@ where
SC: SelectChain<Block> + 'static,
B: sc_client_api::Backend<Block> + Send + Sync + 'static,
B::State: sc_client_api::StateBackend<sp_runtime::traits::HashingFor<Block>>,
AuthorityId: AuthorityIdBound,
<AuthorityId as RuntimeAppPublic>::Signature: Send + Sync,
{
use frame_rpc_system::{System, SystemApiServer};
use mmr_rpc::{Mmr, MmrApiServer};
Expand Down Expand Up @@ -171,7 +175,7 @@ where
)?;

io.merge(
Beefy::<Block>::new(
Beefy::<Block, AuthorityId>::new(
beefy.beefy_finality_proof_stream,
beefy.beefy_best_block_stream,
beefy.subscription_executor,
Expand Down
15 changes: 10 additions & 5 deletions substrate/bin/node/cli/src/service.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,13 @@ type FullBackend = sc_service::TFullBackend<Block>;
type FullSelectChain = sc_consensus::LongestChain<FullBackend, Block>;
type FullGrandpaBlockImport =
grandpa::GrandpaBlockImport<FullBackend, Block, FullClient, FullSelectChain>;
type FullBeefyBlockImport<InnerBlockImport> =
beefy::import::BeefyBlockImport<Block, FullBackend, FullClient, InnerBlockImport>;
type FullBeefyBlockImport<InnerBlockImport> = beefy::import::BeefyBlockImport<
Block,
FullBackend,
FullClient,
InnerBlockImport,
beefy_primitives::ecdsa_crypto::AuthorityId,
>;

/// The transaction pool type definition.
pub type TransactionPool = sc_transaction_pool::FullPool<Block, FullClient>;
Expand Down Expand Up @@ -180,7 +185,7 @@ pub fn new_partial(
>,
grandpa::LinkHalf<Block, FullClient, FullSelectChain>,
sc_consensus_babe::BabeLink<Block>,
beefy::BeefyVoterLinks<Block>,
beefy::BeefyVoterLinks<Block, beefy_primitives::ecdsa_crypto::AuthorityId>,
),
grandpa::SharedVoterState,
Option<Telemetry>,
Expand Down Expand Up @@ -328,7 +333,7 @@ pub fn new_partial(
subscription_executor: subscription_executor.clone(),
finality_provider: finality_proof_provider.clone(),
},
beefy: node_rpc::BeefyDeps {
beefy: node_rpc::BeefyDeps::<beefy_primitives::ecdsa_crypto::AuthorityId> {
beefy_finality_proof_stream: beefy_rpc_links
.from_voter_justif_stream
.clone(),
Expand Down Expand Up @@ -683,7 +688,7 @@ pub fn new_full_base<N: NetworkBackend<Block, <Block as BlockT>::Hash>>(
is_authority: role.is_authority(),
};

let beefy_gadget = beefy::start_beefy_gadget::<_, _, _, _, _, _, _>(beefy_params);
let beefy_gadget = beefy::start_beefy_gadget::<_, _, _, _, _, _, _, _>(beefy_params);
// BEEFY is part of consensus, if it fails we'll bring the node down with it to make sure it
// is noticed.
task_manager
Expand Down
2 changes: 2 additions & 0 deletions substrate/bin/node/rpc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ sc-consensus-babe = { path = "../../../client/consensus/babe" }
sc-consensus-babe-rpc = { path = "../../../client/consensus/babe/rpc" }
sc-consensus-beefy = { path = "../../../client/consensus/beefy" }
sc-consensus-beefy-rpc = { path = "../../../client/consensus/beefy/rpc" }
sp-consensus-beefy = { path = "../../../primitives/consensus/beefy" }
sc-consensus-grandpa = { path = "../../../client/consensus/grandpa" }
sc-consensus-grandpa-rpc = { path = "../../../client/consensus/grandpa/rpc" }
sc-mixnet = { path = "../../../client/mixnet" }
Expand All @@ -41,6 +42,7 @@ sp-consensus = { path = "../../../primitives/consensus/common" }
sp-consensus-babe = { path = "../../../primitives/consensus/babe" }
sp-keystore = { path = "../../../primitives/keystore" }
sp-runtime = { path = "../../../primitives/runtime" }
sp-application-crypto = { path = "../../../primitives/application-crypto" }
sp-statement-store = { path = "../../../primitives/statement-store" }
substrate-frame-rpc-system = { path = "../../../utils/frame/rpc/system" }
substrate-state-trie-migration-rpc = { path = "../../../utils/frame/rpc/state-trie-migration-rpc" }
18 changes: 11 additions & 7 deletions substrate/bin/node/rpc/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,12 @@ pub use sc_rpc::SubscriptionTaskExecutor;
pub use sc_rpc_api::DenyUnsafe;
use sc_transaction_pool_api::TransactionPool;
use sp_api::ProvideRuntimeApi;
use sp_application_crypto::RuntimeAppPublic;
use sp_block_builder::BlockBuilder;
use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata};
use sp_consensus::SelectChain;
use sp_consensus_babe::BabeApi;
use sp_consensus_beefy::AuthorityIdBound;
use sp_keystore::KeystorePtr;

/// Extra dependencies for BABE.
Expand All @@ -76,17 +78,17 @@ pub struct GrandpaDeps<B> {
}

/// Dependencies for BEEFY
pub struct BeefyDeps {
pub struct BeefyDeps<AuthorityId: AuthorityIdBound> {
/// Receives notifications about finality proof events from BEEFY.
pub beefy_finality_proof_stream: BeefyVersionedFinalityProofStream<Block>,
pub beefy_finality_proof_stream: BeefyVersionedFinalityProofStream<Block, AuthorityId>,
/// Receives notifications about best block events from BEEFY.
pub beefy_best_block_stream: BeefyBestBlockStream<Block>,
/// Executor to drive the subscription manager in the BEEFY RPC handler.
pub subscription_executor: SubscriptionTaskExecutor,
}

/// Full client dependencies.
pub struct FullDeps<C, P, SC, B> {
pub struct FullDeps<C, P, SC, B, AuthorityId: AuthorityIdBound> {
/// The client instance to use.
pub client: Arc<C>,
/// Transaction pool instance.
Expand All @@ -102,7 +104,7 @@ pub struct FullDeps<C, P, SC, B> {
/// GRANDPA specific dependencies.
pub grandpa: GrandpaDeps<B>,
/// BEEFY specific dependencies.
pub beefy: BeefyDeps,
pub beefy: BeefyDeps<AuthorityId>,
/// Shared statement store reference.
pub statement_store: Arc<dyn sp_statement_store::StatementStore>,
/// The backend used by the node.
Expand All @@ -112,7 +114,7 @@ pub struct FullDeps<C, P, SC, B> {
}

/// Instantiate all Full RPC extensions.
pub fn create_full<C, P, SC, B>(
pub fn create_full<C, P, SC, B, AuthorityId>(
FullDeps {
client,
pool,
Expand All @@ -125,7 +127,7 @@ pub fn create_full<C, P, SC, B>(
statement_store,
backend,
mixnet_api,
}: FullDeps<C, P, SC, B>,
}: FullDeps<C, P, SC, B, AuthorityId>,
) -> Result<RpcModule<()>, Box<dyn std::error::Error + Send + Sync>>
where
C: ProvideRuntimeApi<Block>
Expand All @@ -145,6 +147,8 @@ where
SC: SelectChain<Block> + 'static,
B: sc_client_api::Backend<Block> + Send + Sync + 'static,
B::State: sc_client_api::backend::StateBackend<sp_runtime::traits::HashingFor<Block>>,
AuthorityId: AuthorityIdBound,
<AuthorityId as RuntimeAppPublic>::Signature: Send + Sync,
{
use mmr_rpc::{Mmr, MmrApiServer};
use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer};
Expand Down Expand Up @@ -223,7 +227,7 @@ where
}

io.merge(
Beefy::<Block>::new(
Beefy::<Block, AuthorityId>::new(
beefy.beefy_finality_proof_stream,
beefy.beefy_best_block_stream,
beefy.subscription_executor,
Expand Down
1 change: 0 additions & 1 deletion substrate/client/consensus/beefy/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ sp-keystore = { path = "../../../primitives/keystore" }
sp-runtime = { path = "../../../primitives/runtime" }
tokio = "1.37"


[dev-dependencies]
serde = { workspace = true, default-features = true }
tempfile = "3.1.0"
Expand Down
1 change: 1 addition & 0 deletions substrate/client/consensus/beefy/rpc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ sp-consensus-beefy = { path = "../../../../primitives/consensus/beefy" }
sc-rpc = { path = "../../../rpc" }
sp-core = { path = "../../../../primitives/core" }
sp-runtime = { path = "../../../../primitives/runtime" }
sp-application-crypto = { path = "../../../../primitives/application-crypto" }

[dev-dependencies]
serde_json = { workspace = true, default-features = true }
Expand Down
Loading
Loading