Commit Graph

15939 Commits

Author SHA1 Message Date
Hernando Castano fb7c191234 Stop Importing Full Header Chain (#707)
* 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.
2024-04-10 10:28:37 +02:00
dependabot-preview[bot] 2f44aecd97 Bump serde_json from 1.0.61 to 1.0.62 (#708)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.61 to 1.0.62.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.61...v1.0.62)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2024-04-10 10:28:37 +02:00
dependabot-preview[bot] 0344d8de84 Bump serde from 1.0.121 to 1.0.123 (#709) 2024-04-10 10:28:37 +02:00
Hernando Castano 51364e732c Add Logging to Finality Verifier Pallet (#702)
* Add some logging to the finality verifier pallet

* Add finality target to happy path log
2024-04-10 10:28:37 +02:00
Hernando Castano 8c7d0ca35d Wire Finality Verifier Pallet Into Runtimes (#696)
* Add Finality Verifier pallet to runtimes

* Implement simple ancestry checker

* Use the new checker in runtimes

* Remove unused import warning

* Bump max allowed ancestry proof size

* Add a few optimization suggestions when verifying ancestry

* Use session length as upper bound for ancestry proof size

* Remove unused time units
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky d73100cb30 Fixed call encoding in signature digest (#699)
* fixed call encoding in signature digets

* udpated test
2024-04-10 10:28:37 +02:00
Tomasz Drwięga 4719cb2292 Add finality verifier test with different validator set id. (#698)
* Add test for invalid set id.

* cargo fmt --all

* Update modules/finality-verifier/src/lib.rs

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
2024-04-10 10:28:37 +02:00
dependabot-preview[bot] 277167face Bump serde from 1.0.118 to 1.0.121 (#674) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 8953967d92 pause relays(s) when node is syncing (#605) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 8ee90afae6 Pre-dispatch call filter (#687)
* pre-dispatch call filter

* swap filter <-> weight

* clippy

* fmt
2024-04-10 10:28:37 +02:00
dependabot-preview[bot] a9e607c9a2 Bump ethereum-types from 0.10.0 to 0.11.0 (#693) 2024-04-10 10:28:37 +02:00
dependabot-preview[bot] adb58d8fb0 Bump log from 0.4.13 to 0.4.14 (#692) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 19c87db139 Add proof-size related benchmarks to message lane module (#675)
* fix benchmakrs + proof-size related benchmarks

* Update modules/message-lane/src/benchmarking.rs

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
2024-04-10 10:28:37 +02:00
Hernando Castano ac1d12e607 Bump Substrate Dependency (#684)
* Bump Substrate to commit `0b0d124d5`

* Get Millau node compiling

* Get Rialto node compiling

* Increase account reference count before test

* Fix Clippy warnings for Millau node

* Fix Clippy warnings for Rialto node

* Trigger build.

Co-authored-by: Tomasz Drwięga <tomasz@parity.io>
2024-04-10 10:28:37 +02:00
Hernando Castano e4f195d14c Make Account Derivation More Unique (#686)
* Use more unique prefix when generating account IDs

* Update derived addresses used in tests

* Make `account` prefix more unique

Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>

* Update test account IDs again

Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
2024-04-10 10:28:37 +02:00
Hernando Castano b921a485fb Add Unchecked Header Writes to Bridge Pallet (#672)
* Add method for unchecked header imports

* Update docs for importing unchecked headers

* Import unchecked headers in HeaderChain implementation

* Fix Clippy warnings

* Move unchecked header import out of Verifier struct

* Clean up unchecked import tests

* Change HeaderChain API to accept iterator of headers

* Use chains of headers in tests

* Remove unused Result return type when appending finalized headers

* Add test which shows that genesis changes are not enacted

* Use initial header's hash for unchecked authority set changes

* Appease Clippy

* Check ancestry before making unchecked writes

* Fix typo

* Fix Clippy warning

* Add note about `ancestry_proof` structure

* Use best hash storage item directly

Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky acee5580ca decode call after spec_version check (#663) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 44bf84269a Extract common part of relay loops (#660)
* extract common parts of relay loops: begin

* merge client impls

* backoff in exchange loop

* reconnect without clone
2024-04-10 10:28:37 +02:00
Andreas Doerr 926520292e Prevent potential signature reuse (#667)
* patch audit findings #42

* extend msg signature for substrate relay

* signature verification test

* make proof dependet on call_dispatch crate

* silence clippy

* revert deny exception

* address code review

* since it's not really a proof, call it digest
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 9414c0d6fe Emit dispatch message when whole message (payload) has invalid encoding (#664)
* emit dispatch message when whole message (payload) has invalid encoding

* DispatchMessage::dispatch accepts Result
2024-04-10 10:28:37 +02:00
Hernando Castano dee8d6df94 Clean up initialization tests slightly (#678) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 38c1bf89b4 Update weight related parameters in relay (#662)
* update weight-related parameters in relay

* asserts + docs

Co-authored-by: Hernando Castano <castano.ha@gmail.com>
2024-04-10 10:28:37 +02:00
Hernando Castano be59072359 Migrate Finality Verifier Pallet to FRAME v2 (#669)
* Get pallet compiling with FRAME v2

* Get tests compiling

* Stop printing metadata in tests

* Remove more metadata related code

* Remove unecessary storage attribute
2024-04-10 10:28:37 +02:00
Hernando Castano ea5d8662be Finality Verifier Pallet (#629)
* Add skeleton for `pallet-finality-verifier`

* Sketch out implementation for importing finality proofs

* Get pallet compiling

* Introduce skeleton for mock runtime

* Start using real Grandpa types in finality pallet

* Redefine types in header chain primitives crate

* Implement HeaderChain for Substrate bridge pallet

* Plug Substrate Bridge Pallet into verifier mock

* Fix compilation of `header-chain` primitives

* Start writing to base pallet storage

* Add first "cross-pallet" test

* Move keyring primitives used in tests to shared crate

* Stop pulling `std` deps into `no_std` builds

* Revert "Stop pulling `std` deps into `no_std` builds"

This reverts commit f74dd660652f98b7336936d1534a4e63cc9169a5.

* Revert "Move keyring primitives used in tests to shared crate"

This reverts commit b774fa730b2cdc40545afff308a66b0840266001.

* Use new SS58Prefix type in mock

* Start using `bp-test-utils` in finality pallet

* Start using real justification code

* Get a test working with real justification verification

* Add basic tests for invalid proofs

* Get rid of AncestryProof config type

* Add error types to transaction outcome

* Bound number of headers allowed in a single ancestry proof

* Disallow invalid authority sets

* Remove unused items

* Add some documentation

* Get rid of Clippy warnings

* Rename BaseHeaderChain to TransactionVerifier

* Remove unused code

* Make dummy trait implementations more generic

* Fix more Clippy complaints

* Update tests to use fix for duplicate headers

* Fix benchmarking compilation

* Rename TransactionVerifier to InclusionProofVerifier
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 5e38b126f2 fix compilation (#671) 2024-04-10 10:28:37 +02:00
Hernando Castano 5847020fdf Explain why we defer signature verification (#668) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 0f56f18778 Use real weights to compute message delivery and dispatch fee (#598)
* message fee formula

* update GetDelvieryConfirmationTransactionFee

* include cost of transactions (i.e. not only dispatch cost) in delivery_and_dispatch_fee

* endow relayers fund account

* include db ops weight in max tx weight estimation

* (in bytes)

Co-authored-by: Hernando Castano <castano.ha@gmail.com>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky fd7f2a45d8 Fixed messages count check (#659)
* fixed messages count check

* explicit check of `messages_count` in the receive_messages_proof

* change messages_count to be u32

* Update modules/message-lane/src/lib.rs

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
2024-04-10 10:28:37 +02:00
Hernando Castano 6cd4f5edf1 Disallow Duplicate Best Headers (#653)
* Add test proving bug

* Add checks for duplicate headers

* Fix Clippy error
2024-04-10 10:28:37 +02:00
dependabot-preview[bot] 507edb950c Bump log from 0.4.11 to 0.4.13 (#657) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 8be43d1e63 fixed actual dispatch weight calculation (#658) 2024-04-10 10:28:37 +02:00
dependabot-preview[bot] d630b6f751 Bump futures from 0.3.9 to 0.3.12 (#655) 2024-04-10 10:28:37 +02:00
dependabot-preview[bot] b94ac80a55 Bump async-std from 1.8.0 to 1.9.0 (#654) 2024-04-10 10:28:37 +02:00
Hernando Castano c6df9924e4 Move justification code to primitives crate (#640)
* Move justification module to header-chain primitives crate

* Get justification module compiling in new location

* Get justification module tests compiling

* Use justification code from `header-chain` crate

Mostly compiles, having issues with std/test feature flags across crates.

* Move some code around

* Move justification tests to integration testing crate

* Add `test-utils` crate

* Remove tests and test-helper module from justification code

* Use `test-utils` in Substrate bridge pallet tests

* Remove `sp-keyring` related code from `pallet-substrate-bridge`

* Remove `helpers` module from `pallet-substrate-bridge`

* Add some documentation

* Add more documentation

* Fix typo

Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>

Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 0280400e30 Improve Substrate pallet logs (#650) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 0f7a096d55 Do not refetch completion data instantly (#649)
* do not refetch completion data instantly

* clippy
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky f3ea6a8d3d Reward delivery confirmation transaction submitter (aka confirmation relayer) (#599)
* reward confirmation relayer

* Update modules/message-lane/src/instant_payments.rs

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>

* added some constants

* pallet_balances

* removed comment

* fix typo

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 2cfd2e72b7 fix log level (#644) 2024-04-10 10:28:37 +02:00
Tomasz Drwięga 3ffeaade1c Expose message lane storage. (#642) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky dad5374bc2 swap target <-> source in race logs (#641) 2024-04-10 10:28:37 +02:00
Tomasz Drwięga e6fc67c705 Remove redundant data from InboundLaneData (#638)
* Remove latest_*_nonce.

* cargo fmt --all

* Fix tests.

* cargo fmt --all

* Fix benchmarking.

* Update docs.
2024-04-10 10:28:37 +02:00
dependabot-preview[bot] 58fbd8cb49 Bump substrate & deps (#637) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 820407ee98 send_message weight now depends on message size (#603)
* `send_message` weight now depends on message size

* fix tests

* Update modules/message-lane/src/benchmarking.rs

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>

* Update modules/message-lane/src/benchmarking.rs

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
2024-04-10 10:28:37 +02:00
Tomasz Drwięga de3037853b Add more documentation for the TargetAccount variant. (#625) 2024-04-10 10:28:37 +02:00
Tomasz Drwięga 3f7107da10 Relayer rewards improvements (#624)
* Document relayers fund existence and add root account.

* Introduce initialize method instead of assuming that relayer_fund_account is always required.

* cargo fmt --all

* Fix benchmarks.

* cargo fmt --all

* Fix docs for the relayer fund account.
2024-04-10 10:28:37 +02:00
Andreas Doerr a30b2cac20 reference correct relayer startup script in readme (#623) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 9fbb922766 Estimate message fee api (#600)
* estimate_message_delivery_and_dispatch_fee runtime API

* auto-determine message fees in relay

* remove fee argument from relay calls

* Fix import of weight contant

Co-authored-by: Hernando Castano <castano.ha@gmail.com>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 0624fd0d94 Update Substrate reference (#604) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 481a3fff19 Fix Ethereum pallet benchmarks (#601) 2024-04-10 10:28:37 +02:00
dependabot-preview[bot] 5ed92180bb Bump serde_json from 1.0.60 to 1.0.61 (#606) 2024-04-10 10:28:37 +02:00