* Support moar validators.
* Update weights script.
* Use correct type for benchmarking accounts
* Use package name instead of manifest path
Co-authored-by: Hernando Castano <hernando@hcastano.com>
* Use more accurate weight calculation in declared weight
* Remove session length and validator set size config constants
* Remove config params from mock
* Allow specifying total number of votes-ancestries per justification
* Change limits used during benchmarking
* Regenerate weights
* Use simplified weight annotation
* Remove comment
* Address leftover TODO
* Prevent possible divide by zero errors
* Use correct argument order in weight declaration
* Add benchmarking skeleton
* Allow runtime to indicate concrete header type for benches
* Set up skeleton for benchmark tests
* Play around with mutating bench header
* Create a working test for benchmarking
* Add benches related to enacting authority set changes
* Add bench for checking effect of prec-commits/vote ancestries
* Use new `no_std` test utils in benchmarks
* Support pallet instances in benchmarking
* Use correct benchmarking instance macro
* Add instance to runtime benchmark helper impl
* Start using new justification creation API
* Allow mock header's number to be specified
* Set up benches with correct fork/depth parameters
* Use new pallet name during runtime bench setup
* Use correct `set_id` in tests
* Limit number of forks as workaround to get tests passing
* Use number of authorities which matches number of forks
* Make sure test post-conditions are checked properly
* Only read `CurrentAuthoritySet` from storage once
* Add combined benchmark for `submit_finality_proof`
* Add bench test
* Introduce config bounds related to justification verification
* Use config consts from pallet in benchmarking
* Return data relevant to benchmarks from helper functions
* Annotate `submit_finality_proof` with autogenerated weights
* Return actual weight after call execution
* Ignore Clippy warnings in bench template
* Update benchmark template
* Use `test-utils` to create test headers
* Clarify that helper is only for messages benches
* Add more documentation to benches
* Update TODOs
* Clarify return types in comment
* Fix pallet name post-merge
* Update NOTE to a TODO item
* Indicate that Config params are max values, not actual values
* Change Config validator count type to be `u32`
* Return decoded justification instead of fields
* Add missing trait bounds for tests
* Correctly issue weight refund
Thanks for spotting this Tomek!
* Update comment
* Add note about SESSION_LENGTH
* Fix benchmarking code
* Stop passing raw encoded justifications to pallet API
By having the API accept a struct-ified justification we are able to
better utilize the justifications fields for weight calculations.
* Update relayer code to use decoded justifications
* Add justification to `expect()` statement
* Fix some imports
* Make justification wrapper contain decoded justification
* Rename some fields
* Get rid of warnings
* Appease Clippy
* Only decode justification once at init time
* Remove unnecessary method
* Remove justification wrapper
This became kinda unnecessary since we could implement the FinalityProof
trait on GrandpaJustification directly.
* Allow creation of authority lists with any number of authorities
* Move keyring helpers into their own module
* Add helper for generating list of test accounts
* Fix import names in tests
* Rename Keyring trait to Signer
* Get list of accounts in a more functional way
* Clarify meaning of `test_keyring` return type
* Use concrete test account type instead of generics
* Make sure voter set contains all authorities which signed off on pre-commits
* Rename `pallet-finality-verifier` to `pallet-bridge-grandpa`
* Missed some CamelCase ones
* Update logging target in GRANDPA pallet
* Rename `pallet-bridge-call-dispatch` to `pallet-bridge-dispatch`
* Rename the dispatch pallet folder
* Update logging target in Dispatch pallet
* Missed a couple
* Format the repo
* Stop listing individual pallets in Compose logs
* Use correct pallet name in module doc comments
* Add `pallet-bridge-dispatch` to README project layout
* Sort crate names in TOML files
* Rename `pallet-bridge-grandpa` runtime Call alias
* Add way to create tunable GRANDPA justifications
* Use new function in tests
* Allow multiple authorities on a single fork
* Only store pre-commit targets instead of full ancestry chains
* Rename precommit_header to be more generic
* Push new digest item instead of overriding entire digest
* Ensure that we generate chains with non-zero length
* Extract justification creation parameters into struct
* Appease Clippy
* use runtime:: prefix for message-lane pallet traces
* renamed message-lane (module and primitives) folder into messages
* replace "message lane" with "messages" where appropriate
* Use `sp-application-crypto` when generating test justifications
* Try to justifications tests compiling
* Try using `ed25519_dalek` for justification creation
* Small cleanup
* Correctly generate a Keypair
The public key didn't correspond to what would be derived
with the given private key.
* Remove enum index hack
* Clean up test account helper functions
* Fix tests in `pallet-finality-verifier`
* Get `pallet-substrate-bridge` tests compiling again
* Use the correct keyring in justification tests
* Clean up Keyring related code a bit
* Appease Clippy
* Remove unused import
* Use keyring variants directly
* Remove unecessary From implementation
* Remove unused Config types from `pallet-finality-verifier`
* Remove unused AncestryChecker trait
* Remove ancestry proof parameter from relayer calls
* Update docs to reflect current state of pallet
* Remove mock ancestry checker
* Remove unused error
* Write headers outside of function used for authority set changes
* Move justification verification into helper function
* Add documentation suggestions
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Clean up module level documentation a bit
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Move storage proof checker to runtime primtives
* Add method for parsing storage proofs
* Use finality-verifier pallet in runtime-common
* Get bridge pallet compiling again
* Use storage prover from bp-runtime in a few more places
* Don't leak `std` items from proof helper into `no-std` builds
* Fix benchmarking compilation
* Remove unused import in fuzzer
* Bump Substrate to version used by Polkadot (`5f056830`)
* Use `log` crate for runtime logging
See https://github.com/paritytech/substrate/pull/8128/ for more info.
* Stop using return value from `execute_block`
* Update test weight
* Add relevant storage items from Substrate pallet
* Add function for importing finalized headers to storage
* Remove unused getter functions
* Add GenesisConfig to pallet
* Add initialization extrinsic
* Add operational extrinsic
* Get existing finality verifier tests compiling again
* Add tests for pallet initialization
* Add tests related to pallet's operational status
* Update tests which were using `pallet-substrate-bridge`
* Add tests related to header imports
* Use wrapper function when init-ing some tests
* Add prefix to tests related to rate limiter
* Fix failed compilation related to GenesisConfig
* Add some documentation
* Change some extrinsics to be Operational
* Add public interface to pallet
* Implement runtime APIs for finality-verifier pallet
* Justify use of `expect` when importing headers
* Reject headers with forced changes
* Add weight to initialize extrinsic
* Remove TODO which will be addressed later
* Move succesful import log to correct location
* Expand proof for when `best_finalized` is fetched
* Move check for newer finalized blocks earlier in pipeline
* Rename `ConflictingFork` error to be more generic
* Only compute finality_target's hash once
* Add missing documentation to Runtime APIs
* Add TODO about using `set_id` from `ScheduledChange` digest
* Use no-op ancestry checker
* Check that current header height is greater than last finalized
* Ensure that incoming headers are strictly greater than last finalized
* Ensure that header numbers always increase in tests
* Add inspect command to take a look at extrinsics.
* cargo fmt --all
* New weight for on-chain remark in tests
* Minor style tweaks.
Co-authored-by: adoerr <0xad@gmx.net>
* how-to-integrate-message-lane-module
* added README stub for bridge-runtime-common
* added README stub for pallet-bridge-call-dispatch
* bridge-runtime-common documentation
* call dispatch module documentation
* some fixes
* more fixes
* more fixes
* more fixes
* more fixes for runtime-common/README.md
* more fixes in call-dispatch/README.md
* more fixes in call-dispatch/README.md
* more fixes in call-dispatch/README.md
* more fixes in message-lane/README.md
* more fixes in message-lane/README.md
* Wrap most text at 100 characters
* Clean up some of the formatting
* Fix broken link
* Stop running CI for README changes
* Don't run any CI steps on documentation changes
Co-authored-by: Hernando Castano <castano.ha@gmail.com>
* Revert "Pin Rust Nightly to 2020-12-17 (#652)"
This reverts commit e54e6f7e3d34c28d698e637f9099162b3c1917e9.
* fix clippy
* clippy again
* more clippy in test code
* and new cargo fmt
* another try
* Make AncestryProof type more flexible
* Only import single finalized header instead of a chain
* Fix unchecked header import tests
* Add option for limiting ancestry proof size
* Update finality verifier Config in runtimes
* Update some documentation
* Fix Clippy warning
* Allow AncestryChecker to return proof size
Stops us from abusing the `Size` trait
* Remove Size impl for Vec<T>
* Remove size contraints for ancestry proofs
With different proof types its unclear how to "size" should be interpreted,
so we remove this requirement all together to avoid confusion.