establish_channel_with_system (#3721)

Implements https://github.com/polkadot-fellows/RFCs/issues/82
Allow any parachain to have bidirectional channel with any system
parachains

Looking for initial feedbacks before continue finish it

TODOs:
- [x] docs
- [x] benchmarks
- [x] tests

---------

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Co-authored-by: Adrian Catangiu <adrian@parity.io>
This commit is contained in:
Xiliang Chen
2024-04-12 22:14:20 +12:00
committed by GitHub
parent 13ca339e4a
commit b1db5f3a90
10 changed files with 214 additions and 2 deletions
+5
View File
@@ -1153,11 +1153,16 @@ impl pallet_message_queue::Config for Runtime {
impl parachains_dmp::Config for Runtime {}
parameter_types! {
pub const DefaultChannelSizeAndCapacityWithSystem: (u32, u32) = (4096, 4);
}
impl parachains_hrmp::Config for Runtime {
type RuntimeOrigin = RuntimeOrigin;
type RuntimeEvent = RuntimeEvent;
type ChannelManager = EnsureRoot<AccountId>;
type Currency = Balances;
type DefaultChannelSizeAndCapacityWithSystem = DefaultChannelSizeAndCapacityWithSystem;
type WeightInfo = weights::runtime_parachains_hrmp::WeightInfo<Self>;
}
@@ -324,4 +324,14 @@ impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInf
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
fn establish_channel_with_system() -> Weight {
// Proof Size summary in bytes:
// Measured: `417`
// Estimated: `6357`
// Minimum execution time: 629_674_000 picoseconds.
Weight::from_parts(640_174_000, 0)
.saturating_add(Weight::from_parts(0, 6357))
.saturating_add(T::DbWeight::get().reads(12))
.saturating_add(T::DbWeight::get().writes(8))
}
}