3139ffa25e
- snowbridge-pezpallet-* → pezsnowbridge-pezpallet-* (201 refs) - pallet/ directories → pezpallet/ (4 locations) - Fixed pezpallet.rs self-include recursion bug - Fixed sc-chain-spec hardcoded crate name in derive macro - Reverted .pezpallet_by_name() to .pallet_by_name() (subxt API) - Added BizinikiwiConfig type alias for zombienet tests - Deleted obsolete session state files Verified: pezsnowbridge-pezpallet-*, pezpallet-staking, pezpallet-staking-async, pezframe-benchmarking-cli all pass cargo check
86 lines
4.7 KiB
HTML
86 lines
4.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width">
|
|
<title>Complex Relay</title>
|
|
</head>
|
|
<body>
|
|
<h1>Complex Relay</h1>
|
|
<p>
|
|
Both Source Chain and Target Chains have Bridge Messages pallets deployed. They also have required
|
|
finality pallets deployed - we don't care about finality type here - they can be either Bridge GRANDPA,
|
|
or Bridge Parachains finality pallets, or any combination of those.<br/>
|
|
</p>
|
|
<p>
|
|
There are 4-6 relayer subprocesses inside the Complex Relayer. They include two message relayers,
|
|
serving the lane in both directions and 2-4 Complex Relayers (depending on the finality type of Source
|
|
and Target Chains).<br/>
|
|
</p>
|
|
<p>
|
|
The following diagram shows the way the complex relayer serves the lane in single direction. Everything
|
|
below may be applied to the opposite direction if you'll swap the Source and Target Chains.
|
|
</p>
|
|
<div class="mermaid">
|
|
sequenceDiagram
|
|
participant Source Chain
|
|
participant Complex Relayer
|
|
participant Target Chain
|
|
|
|
Note right of Source Chain: Finalized: 480, Target Finalized: 50, Sent Messages: 42, Confirmed Messages: 42
|
|
Note left of Target Chain: Finalized: 60, Source Finalized: 420, Received Messages: 42
|
|
|
|
Source Chain ->> Source Chain: someone Sends Message 43
|
|
Source Chain ->> Source Chain: Import and Finalize Block 481
|
|
|
|
Source Chain ->> Complex Relayer: notes new outbound message 43 at Source Chain Block 481
|
|
Note right of Complex Relayer: can't deliver message 43, Source Chain Block 481 is not relayed
|
|
Complex Relayer ->> Complex Relayer: asks on-demand Finality Relayer to relay Source Chain Block 481
|
|
|
|
Source Chain ->> Complex Relayer: Read Finality Proof of Block 481
|
|
Complex Relayer ->> Target Chain: Submit Finality Proof of Block 481
|
|
Target Chain ->> Target Chain: Import and Finalize Block 61
|
|
Note left of Target Chain: Finalized: 61, Source Finalized: 481, Received Messages: 42
|
|
|
|
Source Chain ->> Complex Relayer: Read Proof of Message 43 at Block 481
|
|
Complex Relayer ->> Target Chain: Submit Proof of Message 43 at Block 481
|
|
Target Chain ->> Target Chain: Import and Finalize Block 62
|
|
Note left of Target Chain: Finalized: 62, Source Finalized: 481, Received Messages: { rewarded: 42, messages-relayer-account: [43] }
|
|
|
|
Target Chain ->> Complex Relayer: notes new unrewarded relayer at Target Chain Block 62
|
|
Note right of Complex Relayer: can't relay delivery confirmations because Target Chain Block 62 is not relayed
|
|
Complex Relayer ->> Complex Relayer: asks on-demand Finality Relayer to relay Target Chain Block 62
|
|
|
|
Target Chain ->> Complex Relayer: Read Finality Proof of Block 62
|
|
Complex Relayer ->> Source Chain: Submit Finality Proof of Block 62
|
|
Source Chain ->> Source Chain: Import and Finalize Block 482
|
|
Note right of Source Chain: Finalized: 482, Target Finalized: 62, Confirmed Messages: 42
|
|
|
|
Target Chain ->> Complex Relayer: Read Proof of Message 43 Delivery at Block 62
|
|
Complex Relayer ->> Source Chain: Submit Proof of Message 43 Delivery at Block 612
|
|
Source Chain ->> Source Chain: rewards messages-relayer-account for delivering message [43]
|
|
Source Chain ->> Source Chain: prune delivered message 43 from runtime storage
|
|
Note right of Source Chain: Finalized: 482, Target Finalized: 61, Confirmed Messages: 43
|
|
|
|
Source Chain ->> Source Chain: someone Sends Message 44
|
|
Source Chain ->> Source Chain: Import and Finalize Block 483
|
|
|
|
Source Chain ->> Complex Relayer: notes new outbound message 44 at Source Chain Block 483 and new confirmed message 43
|
|
Note right of Complex Relayer: can't deliver message 44, Source Chain Block 483 is not relayed
|
|
Complex Relayer ->> Complex Relayer: asks on-demand Finality Relayer to relay Source Chain Block 483
|
|
|
|
Source Chain ->> Complex Relayer: Read Finality Proof of Block 483
|
|
Complex Relayer ->> Target Chain: Submit Finality Proof of Block 483
|
|
Target Chain ->> Target Chain: Import and Finalize Block 63
|
|
Note left of Target Chain: Finalized: 63, Source Finalized: 483, Received Messages: { rewarded: 42, messages-relayer-account: [43] }
|
|
|
|
Source Chain ->> Complex Relayer: Read Proof of Message 44 and Proof of Message 43 reward at Block 483
|
|
Complex Relayer ->> Target Chain: Submit Proof of Message 44 and Proof of Message 43 reward at Block 483
|
|
Target Chain ->> Target Chain: Import and Finalize Block 64
|
|
Note left of Target Chain: Finalized: 64, Source Finalized: 483, Received Messages: { rewarded: 43, messages-relayer-account: [44] }-->
|
|
</div>
|
|
<script src="https://cdn.jsdelivr.net/npm/mermaid@8.8.4/dist/mermaid.min.js"></script>
|
|
<script>mermaid.initialize({startOnLoad: true})</script>
|
|
</body>
|
|
</html>
|