-
Notifications
You must be signed in to change notification settings - Fork 684
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
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 <davxy@datawok.net>
Co-authored-by: Davide Galassi <davxy@datawok.net>
Co-authored-by: Davide Galassi <davxy@datawok.net>
Co-authored-by: Davide Galassi <davxy@datawok.net>
Co-authored-by: Davide Galassi <davxy@datawok.net>
…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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I just left one consideration about using AppCrypto
vs RuntimeAppPublic
/// BEEFY message with commitment and single signature. | ||
Vote(VoteMessage<NumberFor<B>, AuthorityId, Signature>), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So I guess that we can merge this as soon as CI passes
Co-authored-by: Davide Galassi <davxy@datawok.net>
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 |
bcab07a
* 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 <davxy@datawok.net> Co-authored-by: Robert Hambrock <roberthambrock@gmail.com> Co-authored-by: Adrian Catangiu <adrian@parity.io>
Revived version of paritytech/substrate#13311 . Except Signature is not generic and is dictated by AuthorityId. --------- Co-authored-by: Davide Galassi <davxy@datawok.net> Co-authored-by: Robert Hambrock <roberthambrock@gmail.com> Co-authored-by: Adrian Catangiu <adrian@parity.io>
Revived version of paritytech/substrate#13311 . Except Signature is not generic and is dictated by AuthorityId.