Beefy client generic on aduthority Id#1816
Conversation
…ssfuly try to implement ByteArray for paired crypto Public
…ed crypto object in favor of avoiding copy
…me of aux traits for `paired_crypto::Signature`
… of seeds for paired crypto scheme.
…paired (ECDSA, BLS377) crypto
…_crypto.rs`. - put serialize and descerialze under `serde` feature instead of std. - in `primitives/core/src/bls.rs`. - fix documentation in `primitives/core/src/bls.rs`. - cargo fmt pair_crypto.rs
…and SCALE. Co-authored-by: Davide Galassi <[email protected]>
Co-authored-by: Davide Galassi <[email protected]>
Co-authored-by: Davide Galassi <[email protected]>
Co-authored-by: Davide Galassi <[email protected]>
Co-authored-by: Davide Galassi <[email protected]>
…ZED_SIZE` instead of magic numbers
- Remove `SignaturePair` trait. - Skip encoding redundant copy of paired::Public and Signature and implement Decode
…rypto type - Implement ecdsa_bls37_crypto for BEEFY primitives.
|
@davxy It compiles now. I was able to resolve the decode problem by using RuntimeAppPublic::Signature instead of AppCrypto::Signature, the former is bounded by Codec while the later is not. Nonetheless I need to constrain associated type RuntimeAppPublic::Signature to Send and Sync and I still do not know how to do it at the definition of AuthorityIdBound so I had to constrain it all over the files whenever I needed to use AuthorityId. |
…test - update `substrate/primitives/consensus/beefy/src/lib.rs` accordingly
Send + Sync,` constraints
davxy
left a comment
There was a problem hiding this comment.
LGTM. I just left one consideration about using AppCrypto vs RuntimeAppPublic
| pub(crate) enum GossipMessage<B: Block> { | ||
| pub(crate) enum GossipMessage<B: Block, AuthorityId: AuthorityIdBound> { | ||
| /// BEEFY message with commitment and single signature. | ||
| Vote(VoteMessage<NumberFor<B>, AuthorityId, Signature>), |
There was a problem hiding this comment.
I just drop this here, but applies all over the place.
Does <AuthorityId as AppCrypto>::Signature work? (in place of as RuntimeAppPublic.
I can't try it right now, but if yes then to me looks more appropriate using a trait that has not being designed for usage within the runtime
There was a problem hiding this comment.
We had this conversation somewhere else before, I'm sorry my PR takes ages to merge :-/ AppCrypto::Signature somehow is not bounded by Codec (perhaps it should), RuntimeAppPublic::Signature has Codec and I assume you need to encode and send the Vote. I can check nonetheless.
There was a problem hiding this comment.
yep!:
error[E0599]: the variant or associated item `decode_all` exists for enum `GossipMessage<B, AuthorityId>`, but its trait bounds were not satisfied
--> substrate/client/consensus/beefy/src/worker.rs:862:40
|
862 | GossipMessage::<B, AuthorityId>::decode_all(&mut ¬ification.message[..])
| ^^^^^^^^^^ variant or associated item cannot be called on `GossipMessage<B, AuthorityId>` due to unsatisfied trait bounds
|
::: substrate/client/consensus/beefy/src/communication/gossip.rs:73:1
|
73 | pub(crate) enum GossipMessage<B: Block, AuthorityId: AuthorityIdBound> {
There was a problem hiding this comment.
So I guess that we can merge this as soon as CI passes
Co-authored-by: Davide Galassi <[email protected]>
|
The CI pipeline was cancelled due to failure one of the required jobs. |
|
@acatangiu @serban300 3 non-required tests are failing. Could you check if we are mergeable or not? |
Only |
* master: (93 commits) Fix broken windows build (#4636) Beefy client generic on aduthority Id (#1816) pallet-staking: Put tests behind `cfg(debug_assertions)` (#4620) Broker new price adapter (#4521) Change `XcmDryRunApi::dry_run_extrinsic` to take a call instead (#4621) Update README.md (#4623) Publish `chain-spec-builder` (#4518) Add omni bencher & chain-spec-builder bins to release (#4557) Moves runtime macro out of experimental flag (#4249) Filter workspace dependencies in the templates (#4599) parachain-inherent: Make `para_id` more prominent (#4555) Add metric to measure the time it takes to gather enough assignments (#4587) Improve On_demand_assigner events (#4339) Conditional `required` checks (#4544) [CI] Deny adding git deps (#4572) [subsytem-bench] Remove redundant banchmark_name param (#4540) Add availability-recovery from systematic chunks (#1644) Remove workspace lints from templates (#4598) `sc-chain-spec`: deprecated code removed (#4410) [subsystem-benchmarks] Add statement-distribution benchmarks (#3863) ...
* master: (106 commits) [ci] Delete unused flow (#4676) Fix umbrella CI check and fix the C&P message (#4670) Add Dockerfiles to the templates (#4637) Revamp the Readme of the minimal template (#4649) Add chain-spec-builder docker image (#4655) Update Amforc bootnodes for Kusama and Polkadot (#4668) make all storage items in parachain-system public (#4645) [Pools] Refactors and runtime apis for DelegateStake (#4537) update amforc westend and its parachain bootnodes (#4641) Better error for missing index in CRV2 (#4643) Implement `XcmPaymentApi` and `DryRunApi` on all system parachains (#4634) Use Unlicense for templates (#4628) collator-protocol: remove `elastic-scaling-experimental` feature (#4595) Update `runtime_type` ref doc with the new "Associated Type Bounds" (#4624) Adds ability to specify chain type in chain-spec-builder (#4542) Fix broken windows build (#4636) Beefy client generic on aduthority Id (#1816) pallet-staking: Put tests behind `cfg(debug_assertions)` (#4620) Broker new price adapter (#4521) Change `XcmDryRunApi::dry_run_extrinsic` to take a call instead (#4621) ...
Revived version of paritytech/substrate#13311 . Except Signature is not generic and is dictated by AuthorityId. --------- Co-authored-by: Davide Galassi <[email protected]> Co-authored-by: Robert Hambrock <[email protected]> Co-authored-by: Adrian Catangiu <[email protected]>
Revived version of paritytech/substrate#13311 . Except Signature is not generic and is dictated by AuthorityId. --------- Co-authored-by: Davide Galassi <[email protected]> Co-authored-by: Robert Hambrock <[email protected]> Co-authored-by: Adrian Catangiu <[email protected]>
Revived version of paritytech/substrate#13311 . Except Signature is not generic and is dictated by AuthorityId. --------- Co-authored-by: Davide Galassi <[email protected]> Co-authored-by: Robert Hambrock <[email protected]> Co-authored-by: Adrian Catangiu <[email protected]>
Revived version of paritytech/substrate#13311 . Except Signature is not generic and is dictated by AuthorityId.