Introduction

Each Bridge Instance consists of four components (Source::Truth, Source:Message, Target:Message, Target:Truth).

Bridges Cases

  1. darwinia parachain <> Thirdparty standalone substrate chain. (s2s grandpa finality pallet, s2s message pallet, s2s parachain grandpa finality pallet)
  2. darwinia parachain <> EVM chain. (Ethereum/BSC/Heco) (parachain gandpa finlaity solidity, our beefy design)
  3. darwinia standalone <> Thirdparty standalone (s2s finality pallet)
  4. darwinia standalone <> Thirdparty parachain (s2s parachain finality pallet)
  5. darwinia parachain(Polkadot) <> Thirdparty parachain(Kusama) (s2s parachain finality pallet)
  6. darwinia parachain(Polkadot) <> Thirdparty parachain(Polkadot) , use Polkadot XCMP.

Components:

  1. Truth Layer

    1. Grandpa finality pallet (For substrate standalone), with two implementations: [Substrate_Pallet, EVM_Solidity]
    2. Parachain Grandpa finality pallet (For parachain, via Relay chain), with two implementations: [Substrate_Pallet, EVM_Solidity]
    3. Legacy eth1 pow finality pallet (For pow eth1)
    4. BSC finality pallet
    5. Eth2 consensus finality(For eth2 execution layer via eth2 consensus)
  2. Message Layer

    Note that Darwinia standalone will be both compatible with substrate and evm.

    And current combinations are mainly about:

    1. (Source:Message, Target:Message) = (substrate_message_pallet, substrate_message_pallet)
    2. (Source:Message, Target:Message) = (evm_message_solidity, evm_message_solidity)

Implementation

A. Darwinia Standalone Chain as Hub (Current Approach)

https://user-images.githubusercontent.com/1070122/121144387-851b8e00-c870-11eb-80f2-2711b45a0dd3.png

B.png

Source Target Source::Truth Source::Message Target:Message Target::Truth
Darwinia standalone Substrate standalone chain Grandpa finality pallet Substrate Message Pallet Substrate Message Pallet Grandpa finality pallet
Darwinia standalone EVM-like chain Grandpa & BEEFY(Custom commitment)
Lang: Solidity EVM Message Solidity EVM Message Solidity Chain specific Consensus Finality
Darwinia standalone Moonbeam Grandpa & BEEFY(Custom commitment)
Lang: Solidity EVM Message Solidity EVM Message Solidity Parachain grandpa finality pallet(Via Polkadot)
Darwinia standalone Polkadot’s Other Parachain Grandpa finality pallet Substrate Message pallet Substrate Message pallet Parachain grandpa finality pallet(Via Polkadot)
Darwinia parachain Polkadot’s other parachain Polkadot Consensus
(Relay Chain) XCMP XCMP Polkadot Consensus
(Relay Chain)
Darwinia standalone Darwinia Parachain Grandpa finality pallet Substrate Message pallet Substrate Message pallet Parachain grandpa finality pallet(Via Polkadot)
Darwinia parachain Substrate standalone chain NaN Route through Darwinia standalone Route through Darwinia standalone NaN
Darwinia parachain EVM-like chain NaN Route through Darwinia standalone Route through Darwinia standalone NaN
Darwinia standalone Polkadot’s other parachain NaN Route through Darwinia parachain and XCMP Route through Darwinia parachain XCMP NaN

B. Darwinia Parachain as Hub(Not used)

Source Target Source::Truth Source::Message Target:Message Target::Truth
Darwinia standalone Substrate standalone chain NaN Route through Darwinia Parachain Route through Darwinia Parachain NaN
Darwinia standalone EVM-like chain NaN Route through Darwinia Parachain Route through Darwinia Parachain NaN
Darwinia parachain Substrate standalone chain Parachain grandpa finality pallet(Via Polkadot) Substrate Message pallet Substrate Message pallet Grandpa finality pallet
Darwinia parachain EVM-like chain Polkadot Grandpa & BEEFY + Darwinia Digest( Message Commitment)
Lang: Solidity Substrate Message Pallet / EVM Message Solidity(If parachain support EVM)
[TBD] EVM Message Solidity Chain specific Consensus Finality
Darwinia Parachain Darwinia standalone Parachain grandpa finality pallet(Via Polkadot) Substrate Message pallet Substrate Message pallet Grandpa finality pallet
Darwinia parachain Polkadot’s other parachain Polkadot Consensus(Relay Chain) XCMP XCMP Polkadot Consensus(Relay Chain)
Darwinia standalone Polkadot’s other parachain NaN Route through Darwinia Parachain Route through Darwinia Parachain NaN