This repository has been archived by the owner on Nov 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Make BEEFY client able to generate either ECDSA or (ECDSA,BLS) Finality proof. #13311
Closed
drskalman
wants to merge
75
commits into
paritytech:master
from
w3f:skalman-beefy-authority-id-adventures
Closed
Changes from 73 commits
Commits
Show all changes
75 commits
Select commit
Hold shift + click to select a range
18c7d88
adding boilerplate for adding bls crypto
drskalman b86768c
First scratches to add bls crypto to primities/core and beefy.
drskalman fd75c93
suggested solution during BEEFY meeting for making BEEFY BLS compatible
drskalman 322ad00
Merge remote-tracking branch 'origin/master' into skalman-bls-beefy
drskalman f7fca6d
- fix dependencies on arkwork and bls library.
drskalman 5e8f2ea
to discuss HKDK with Al
drskalman 2912fa1
resolve compilation errors for primitives/core/src/bls.rs
drskalman 86b1e3a
resolve bls test compilation error, 6 tests still failing
drskalman 2b59fa0
- change dependancy patches to repos available on github.
drskalman b602e7a
Merge branch 'master' of https://github.com/paritytech/substrate into…
drskalman 68fd3a2
overwrite Cargo.lock from upstream and cargo-update to reslove Cargo.…
drskalman 59d665e
add `bls_generate_new` and `bls_public_keys` to CryptoStore
drskalman 857f85e
- implement host api `bls_public_keys, bls_generate, bls_sign,
drskalman a1ed112
- Adapt `primitives/beefy/src/commitment.rs and witness.rs` to have
drskalman b936150
implement TestNOPAggregatableSignature for Merkle based commitment.
drskalman 1df925c
adapt an pass test for merkle root aggregator
drskalman 28596f2
rust-fmtize
drskalman 577cc68
add test for commitment containing aggregated bls signature.
drskalman 0f53f28
make different traits for keystore for ecdsa-only and ecdsa-bls beefy…
drskalman fed0bbc
reverse the idea of validator aggregating received bls signature
drskalman 7de89ae
make beefy primitve test compile and pass
drskalman 5379e62
implement `should_convert_dually_signed_commitment_to_witness` test
drskalman 7bdb082
Merge branch 'skalman-bls-beefy' into skalman-bls-beefy-client
drskalman 1661c19
separate impl for ECDSA and BLS keystore
drskalman 6a1c26f
Merge branch 'skalman-bls-beefy-client' of https://github.com/drskalm…
drskalman ab682ce
add bls support to LocalKeyStore
drskalman 231a38e
implement `BeefyBLSKeystore` and `BeefyBLSnECDSAKeystore`
drskalman 1847516
Make BeefyKeyStore generic for Beefy Worker
drskalman cc3a9d6
add BeefyKeystore generic type to GossipValidator so it can turn
drskalman e0d8740
adapt BEEFY GossipValidator to a generic Keystore
drskalman ea40ab9
- resolve errors in ECDSAnBLSKeystore implementation.
drskalman 9349cac
clone keys on the fly while iterating.
drskalman 787f80d
- rename `beefy::crypto` to `beefy:ecdsa_crypto`.
drskalman ab1c2f3
Merge branch 'skalman-bls-beefy' into skalman-bls-beefy-client
drskalman f48c8eb
- Make `BeefyApi` trait to distinguish between AuthorityId and PublicKey
drskalman d7044f8
share changes to beefy client to find solution to authority id problem
drskalman 524debf
adapt Beefy Worker, GossipValidator and Round to Generic AuthId and T…
drskalman c8db18f
- Resolve conflict between Public and AuthId
drskalman 95f6845
Merge branch 'master' into skalman-beefy-authority-id-adventures
drskalman 50b2f9b
- updated tests to new bls library changes.
drskalman 4c905a8
Merge branch 'master' into skalman-beefy-authority-id-adventures
drskalman 5c89709
make all new Network and Communication objects depends on `AuthId` a…
drskalman 782734d
- do not depend on rand default features (std).
drskalman 2b9cc3c
minor changes and remove patching parity common.
drskalman 8ebb239
move bls-like branch specification from patch to dep due to the cargo
drskalman a147238
- make all beefy tests generic over AuthityId, Signature and Keystore.
drskalman 6cdc680
make `create_worker` generic on Keystore
drskalman 95e283a
make Keyring generic over key type - down to 97 errors
drskalman d93fca0
implement keyring enum instead of wrapping it in a struct
drskalman accfaf7
- Re-apply BeefyVerify changes.
drskalman 61d5168
First step in implementing Pair trait for ECDSAnBLS crypto
drskalman b03a4ce
- introduce `SimpleKeyPair` to make `Keyring` generic over key pair type
drskalman 015e2a9
fix over hashing for bls_sign in the keystore
drskalman 5022b7e
beefy `public_keys_works` test fails because the keystore forgets the…
drskalman 2add57c
make testing infrastructure in `client/beefy/src/tests.rs` generic ov…
drskalman 670c0cf
implement `beefy_finalizing_blocks_using_ecdsa_signature` though it o…
drskalman c6acac6
- implement beefy_finalizing_blocks_using_ecdsa_n_bls_signature
drskalman 789a5a8
- making `new_finality_proof`,`lagging_validators`,`correct_beefy_pay…
drskalman 1165d7c
make `voter_initialization`, `on_demand_beefy_justification_sync` gen…
drskalman 1aaf6be
- Re-active tests and make helpers in beefy/worker.rs to crypto
drskalman 59f10a4
implement keystore_vs_validator_set test for ecdsa and ecdsa_n_bls pa…
drskalman 84a9902
depends on arkworks 0.4.0
drskalman 744fe42
- use `store.authority_id` istead of key.contains in `keystore::publi…
drskalman 6eaa95d
make beefy justification tests generic over keytype
drskalman 18d5a59
- make rounds tests generic over key type
drskalman a010852
Merge branch 'master' into skalman-beefy-authority-id-adventures
drskalman d323ca7
make beefy client build after merging with master.
drskalman e53c9c8
adapt old test to new tokio style. new tests has been commented out.
drskalman d0c790a
new beefy tests in worker and tests adapted to generic key model
drskalman e08387f
- specify `AuthId` and `TSignature` when calling `load_persitent` oth…
drskalman 3be0a82
get rid of redundant imports and fix all warnings.
drskalman 42c894b
cargo fmt beefy primitives
drskalman 469aadb
cargo fmt beefy client, keystore client and primitives, primitives
drskalman 73657c5
Add `AuthoritySetCommitment` field to `BeefyAuthoritySet` needed by A…
drskalman 096f94d
- depend on default branch of bls-like and apk-proofs.
drskalman File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Nit: This doesn't seem to be needed since everywhere it's used like
bls-like = {git = "https://github.com/w3f/bls", branch = "skalman-hash-to-curve-wb"}
. However it would make sense to use it likebls-like = {git = "https://github.com/w3f/bls", branch = "master"}
in other places in which case, this patch would be needed.Also is this library reviewed and production-ready ? Or should we also review it ?
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'd probably deprecate that whole crate myself. It's a legacy design that pre-dates our gossip optimizations in https://eprint.iacr.org/2022/1611 and the apk proofs work.
As syed do the hash-to-curve work, it should work fine, and comply with the proposed standard such as it is, but it makes verifying BLS signatures quite slow (like everyone else's BLS.. We know how to do this faster.