Commit Graph

28 Commits

Author SHA1 Message Date
Svyatoslav Nikolsky d713ef174e Pass finality proof verification context to the call builder (#2823)
* pass verification context to the build_submit_finality_proof_call

* current_set_id -> context
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 6c31cdbe19 Select header that will be fully refunded in on-demand batch finality relay (#2729)
* select header that will be fully refunded for submission in on-demand **batch** finality relay

* added the only possible test

* spelling

* nl

* updated comment
2024-04-10 10:28:37 +02:00
Serban Iorga 9bfad80664 Add basic equivocation detection pipeline schema (#2338) (#2341)
* Move finality Engine to finality_base folder

* Define SubstrateFinalityPipeline

Extract basic parts of SubstrateFinalitySyncPipeline into
SubstrateFinalityPipeline

* Add equivocation detection pipeline

* Fix comment
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 4d42bb22f3 Update dependecies (#2277) (#2281)
* cargo update -p parachain-info

* flush

* it compiles

* clippy

* temporary add more logging to cargo deny

* Revert "temporary add more logging to cargo deny"

This reverts commit 20daa88bca6d9a01dbe933579b1d57ae5c3a7bd8.

* list installed Rust binaries before running cargo deny

* changed prev commit

* once again

* try cargo update?

* post-update fixes (nothing important)
2024-04-10 10:28:37 +02:00
Serban Iorga b4c7ffd3d3 GRANDPA: optimize votes_ancestries when needed (#2262) (#2264)
* GRANDPA: optimize votes_ancestries when needed

* Address review comments
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky a4a6902bfb optimize justifications before they're included into complex transaction (#1949) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 61e00a56c0 Reconnect on-demand clients from MessagesSource::reconnect and MessagesTarget::reconnect (#1927)
* reconnect on-demand clients from MessagesSource::reconnect and MessagesTarget::reconnect

* add issue reference

* fmt
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky e7f5560951 Fix multiple parachain headers submission for single message delivery (#1916)
* switch off parachains relay when we don't need to relay parachains (temp solution)

* parachains relay now only works with single parachain

* fix usages of parachains relay

* revert hacky fix

* fixes

* fixed Westmint parachain ID

* fixed metrics

* fixed compilation

* fmt

* clippy

* call -> typed_state_call
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky f0c4073dc6 Fix on demand parachains relay when no parachain head at target (#1834)
* `best_finalized_peer_at_best_self` in messages relay is now Option<> - before it was an error, which effectively blocked the lane

* unnecessary mut

* clone on return
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 606768bc6a Use specific error for case when para head is missing from the bridge pallet (#1829)
* use specific error for case when para head is missing from the bridge pallet

* fix match to support both error types
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 4689dfaf2c Do not read parachain heads from ancient relay headers (#1827)
* do not read parachain heads from ancient relay headers

* revert test change
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 804ab654bc do not call best_finalized_para_block_at_source for ancient block (#1819) 2024-04-10 10:28:37 +02:00
Serban Iorga 63a538a9bb Deduplicate pallet call structs used for indirect runtime calls (#1744)
* Small changes

* Define generic bridge pallets call structs

* polkadot-core SignedExtension simplifications

- we don't seem to need to pass the Call as a generic param
- we can use codec(skip) instead of implementing Encode and Decode

* Split BridgeHubRococo and BridgeHubWococo calls

* code review fixes
2024-04-10 10:28:37 +02:00
Serban Iorga 41daa32acb Simplify read_client_state() (#1739) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 15e7d828ea Expose metrics of on-demand relay chain headers sync from with-parachain complex relays (#1737)
* expose metrics of on-demand relay chain headers sync from with-parachain complex relays

* spelling

* remove renundant arg
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky be27bd5e97 Batch transactions in complex relays (#1669)
* batch transactions in message relay: API prototype

* get rid of Box<dyn BatchTransaction> and actually submit it

* test batch transactions

* message_lane_loop_works_with_batch_transactions

* removed logger

* BatchConfirmationTransaction + BatchDeliveryTransaction

* more prototyping

* fmt

* continue with batch calls

* impl BatchCallBuilder for ()

* BatchDeliveryTransaction impl

* BundledBatchCallBuilder

* proper impl of BundledBatchCallBuilder + use it in RialtoParachain -> Millau

* impl prove_header in OnDemandHeadersRelay

* impl OnDemandParachainsRelay::prove_header (needs extensive tests)

* added a couple of TODOs

* return Result<Option<BatchTx>> when asking for more headers

* prove headers when reauire_* is called && return proper headers from required_header_id

* split parachains::prove_header and test select_headers_to_prove

* more traces and leave TODOs

* use finality stream in SubstrateFinalitySource::prove_block_finality

* prove parachain head at block, selected by headers relay

* const ANCIENT_BLOCK_THRESHOLD

* TODO -> proof

* clippy and spelling

* BatchCallBuilder::build_batch_call() returns Result

* read first proof from two streams

* FailedToFindFinalityProof -> FinalityProofNotFound

* changed select_headers_to_prove to version from PR review
2024-04-10 10:28:37 +02:00
Serban Iorga bde1629f86 Remove SOURCE_PARACHAIN_PARA_ID (#1716)
* Remove SOURCE_PARACHAIN_PARA_ID

Remove SubstrateParachainsPipeline::SOURCE_PARACHAIN_PARA_ID

* Avoid duplicate ChainBase and ParachainBase implementations

* Replace ChainShadow with UnderlyingChainProvider
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky a979340e49 refactor transaction sign scheme (#1621) 2024-04-10 10:28:37 +02:00
Serban Iorga 01538bc5fa Finality loop: get block justification and authorities change by consensus engine ID (#1619)
* SignedBlock: get justification by consensus engine id

* Define ConsensusLogReader

Making the check for authority changes more generic

* cod review changes
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky f58e076ca2 fixes for nightly clippy (#1618) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky f35b4f4897 Extract unsigned tx from the SignParam structure (#1561)
* change sign_transaction method

* clippy

* rustup update && clippy

* remove redudnant clone
2024-04-10 10:28:37 +02:00
Serban Iorga 77af92b17b Follow-up on #1419 (#1531)
* Parachains source cosmetic changes

- Make `ParaHashAtSource` more generic
- Modify `on_chain_parachain_header` to return `HeaderId`
- Shortening variable names

Signed-off-by: Serban Iorga <serban@parity.io>

* Change ParachainsSource::max_head_id type

Change ParachainsSource::max_head_id to Arc<Mutex<NoopOption>>

Signed-off-by: Serban Iorga <serban@parity.io>

* code review changes
2024-04-10 10:28:37 +02:00
Serban Iorga f13211344b Small cosmetic changes
Signed-off-by: Serban Iorga <serban@parity.io>
2024-04-10 10:28:37 +02:00
Serban Iorga dc38e3d079 Define HeaderIdProvider trait
Define HeaderIdProvider trait

Signed-off-by: Serban Iorga <serban@parity.io>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 31a2be845c Fix on-different-forks metrics during initialization (#1468)
* fix on-different-forks metrics during initialization

* "initialize" parachain finality pallet in on-demand parachains relay

* decrease converstion rate requests count

* more error logging

* fix compilation

* clippy
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 4001cfb758 Add RialtoParachain <> Millau bridge to test deployments (#1412)
* add RialtoParachain <> Millau bridge to test deployments

* flush (still not working, but possible fix in comments)

* proper fix

* fixed on-demand parachains relay case: if better relay header is delivered, then we must select para header that may be proved using this relay header

* dashboards

* fmt

* removing debugging code

* more cleanup
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 0a3f8ace26 fixed on-demand parachains relay case: if better relay header is delivered, then we must select para header that may be proved using this relay header (#1419) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 542ebb5654 Complex RialtoParachain <> Millau relay (#1405)
* complex parachain relay

* fix spelling
2024-04-10 10:28:37 +02:00