From a05d422a559a1afd215527a34cc7a149a37a3e9e Mon Sep 17 00:00:00 2001 From: Robert Habermeier Date: Thu, 24 Jan 2019 12:31:22 -0300 Subject: [PATCH] Initial erasure-coding of availability data (#56) * erasure-coding block data * adjust error handling * merkleize chunks and yield branches for each * construction and proving of merkle branches * port over to new GF(2^16) impl * some tests for wrapped_shard * handle extra byte from GF(2^16) better * point to github dependency * add issue link * point to master for reed-solomon-erasure * add missing license header --- polkadot/Cargo.lock | 20 + polkadot/Cargo.toml | 1 + polkadot/erasure-coding/Cargo.toml | 12 + polkadot/erasure-coding/src/lib.rs | 409 ++++++++++++++++++ polkadot/erasure-coding/src/wrapped_shard.rs | 134 ++++++ polkadot/primitives/src/lib.rs | 4 +- polkadot/primitives/src/parachain.rs | 8 +- .../release/polkadot_runtime.compact.wasm | Bin 729582 -> 729132 bytes .../release/polkadot_runtime.wasm | Bin 768542 -> 768028 bytes 9 files changed, 583 insertions(+), 5 deletions(-) create mode 100644 polkadot/erasure-coding/Cargo.toml create mode 100644 polkadot/erasure-coding/src/lib.rs create mode 100644 polkadot/erasure-coding/src/wrapped_shard.rs diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock index 1f996e3f71..e29af5f2f4 100644 --- a/polkadot/Cargo.lock +++ b/polkadot/Cargo.lock @@ -2060,6 +2060,17 @@ dependencies = [ "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "polkadot-erasure-coding" +version = "0.1.0" +dependencies = [ + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "polkadot-primitives 0.1.0", + "reed-solomon-erasure 4.0.0 (git+https://github.com/paritytech/reed-solomon-erasure)", + "substrate-primitives 0.1.0 (git+https://github.com/paritytech/substrate)", + "substrate-trie 0.4.0 (git+https://github.com/paritytech/substrate)", +] + [[package]] name = "polkadot-executor" version = "0.1.0" @@ -2416,6 +2427,14 @@ dependencies = [ "redox_syscall 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "reed-solomon-erasure" +version = "4.0.0" +source = "git+https://github.com/paritytech/reed-solomon-erasure#63c609beaef0f8174a9a21f058d7d3e46c3a762c" +dependencies = [ + "smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "regex" version = "1.0.6" @@ -4583,6 +4602,7 @@ dependencies = [ "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" "checksum redox_syscall 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "cf8fb82a4d1c9b28f1c26c574a5b541f5ffb4315f6c9a791fa47b6a04438fe93" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" +"checksum reed-solomon-erasure 4.0.0 (git+https://github.com/paritytech/reed-solomon-erasure)" = "" "checksum regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ee84f70c8c08744ea9641a731c7fadb475bf2ecc52d7f627feb833e0b3990467" "checksum regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fbc557aac2b708fe84121caf261346cc2eed71978024337e42eb46b8a252ac6e" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" diff --git a/polkadot/Cargo.toml b/polkadot/Cargo.toml index e3d77832a7..0d396cda39 100644 --- a/polkadot/Cargo.toml +++ b/polkadot/Cargo.toml @@ -23,6 +23,7 @@ members = [ "cli", "collator", "consensus", + "erasure-coding", "executor", "network", "primitives", diff --git a/polkadot/erasure-coding/Cargo.toml b/polkadot/erasure-coding/Cargo.toml new file mode 100644 index 0000000000..c00861aac2 --- /dev/null +++ b/polkadot/erasure-coding/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "polkadot-erasure-coding" +version = "0.1.0" +authors = ["Parity Technologies "] +edition = "2018" + +[dependencies] +polkadot-primitives = { path = "../primitives" } +reed-solomon-erasure = { git = "https://github.com/paritytech/reed-solomon-erasure" } +parity-codec = "2.1" +substrate-primitives = { git = "https://github.com/paritytech/substrate" } +substrate-trie = { git = "https://github.com/paritytech/substrate" } diff --git a/polkadot/erasure-coding/src/lib.rs b/polkadot/erasure-coding/src/lib.rs new file mode 100644 index 0000000000..f24d20c295 --- /dev/null +++ b/polkadot/erasure-coding/src/lib.rs @@ -0,0 +1,409 @@ +// Copyright 2018 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! As part of Polkadot's availability system, certain pieces of data +//! for each block are required to be kept available. +//! +//! The way we accomplish this is by erasure coding the data into n pieces +//! and constructing a merkle root of the data. +//! +//! Each of n validators stores their piece of data. We assume n=3f+k, k < 3. +//! f is the maximum number of faulty vaildators in the system. +//! The data is coded so any f+1 chunks can be used to reconstruct the full data. + +extern crate polkadot_primitives as primitives; +extern crate reed_solomon_erasure as reed_solomon; +extern crate parity_codec as codec; +extern crate substrate_primitives; +extern crate substrate_trie as trie; + +use codec::{Encode, Decode}; +use reed_solomon::galois_16::{self, ReedSolomon}; +use primitives::{Hash as H256, BlakeTwo256, HashT}; +use primitives::parachain::{BlockData, Extrinsic}; +use substrate_primitives::Blake2Hasher; +use trie::{MemoryDB, Trie, TrieMut, TrieDB, TrieDBMut}; + +use self::wrapped_shard::WrappedShard; + +mod wrapped_shard; + +// we are limited to the field order of GF(2^16), which is 65536 +const MAX_VALIDATORS: usize = ::ORDER; + +/// Errors in erasure coding. +#[derive(Debug, Clone)] +pub enum Error { + /// Returned when there are too many validators. + TooManyValidators, + /// Cannot encode something for no validators + EmptyValidators, + /// Cannot reconstruct: wrong number of validators. + WrongValidatorCount, + /// Not enough chunks present. + NotEnoughChunks, + /// Too many chunks present. + TooManyChunks, + /// Chunks not of uniform length or the chunks are empty. + NonUniformChunks, + /// An uneven byte-length of a shard is not valid for GF(2^16) encoding. + UnevenLength, + /// Chunk index out of bounds. + ChunkIndexOutOfBounds(usize, usize), + /// Bad payload in reconstructed bytes. + BadPayload, + /// Invalid branch proof. + InvalidBranchProof, + /// Branch out of bounds. + BranchOutOfBounds, +} + +struct CodeParams { + data_shards: usize, + parity_shards: usize, +} + +impl CodeParams { + // the shard length needed for a payload with initial size `base_len`. + fn shard_len(&self, base_len: usize) -> usize { + (base_len / self.data_shards) + (base_len % self.data_shards) + } + + fn make_shards_for(&self, payload: &[u8]) -> Vec { + let shard_len = self.shard_len(payload.len()); + let mut shards = vec![ + WrappedShard::new(vec![0; shard_len + 4]); + self.data_shards + self.parity_shards + ]; + + for (data_chunk, blank_shard) in payload.chunks(shard_len).zip(&mut shards) { + let blank_shard: &mut [u8] = blank_shard.as_mut(); + let (len_slice, blank_shard) = blank_shard.split_at_mut(4); + let len = ::std::cmp::min(data_chunk.len(), blank_shard.len()); + + // prepend the length to each data shard. this will tell us how much + // we need to read. + // + // this is necessary because we are doing RS encoding with 16-bit words, + // but the payload is a byte-slice. We need to know how much data + // to read from each shard when reconstructing. + // + // TODO: could be done more efficiently by pushing extra bytes onto the + // end. https://github.com/paritytech/polkadot/issues/88 + (len as u32).using_encoded(|s| { + len_slice.copy_from_slice(s) + }); + + // fill the empty shards with the corresponding piece of the payload, + // zero-padded to fit in the shards. + blank_shard[..len].copy_from_slice(&data_chunk[..len]); + } + + shards + } + + // make a reed-solomon instance. + fn make_encoder(&self) -> ReedSolomon { + ReedSolomon::new(self.data_shards, self.parity_shards) + .expect("this struct is not created with invalid shard number; qed") + } +} + +fn code_params(n_validators: usize) -> Result { + if n_validators > MAX_VALIDATORS { return Err(Error::TooManyValidators) } + if n_validators == 0 { return Err(Error::EmptyValidators) } + + let n_faulty = n_validators.saturating_sub(1) / 3; + let n_good = n_validators - n_faulty; + + Ok(CodeParams { + data_shards: n_faulty + 1, + parity_shards: n_good - 1, + }) +} + +/// Obtain erasure-coded chunks, one for each validator. +/// +/// Works only up to 256 validators, and `n_validators` must be non-zero. +pub fn obtain_chunks(n_validators: usize, block_data: &BlockData, extrinsic: &Extrinsic) + -> Result>, Error> +{ + let params = code_params(n_validators)?; + let encoded = (block_data, extrinsic).encode(); + + if encoded.is_empty() { + return Err(Error::BadPayload); + } + + let mut shards = params.make_shards_for(&encoded[..]); + + params.make_encoder().encode(&mut shards[..]) + .expect("Payload non-empty, shard sizes are uniform, and validator numbers checked; qed"); + + Ok(shards.into_iter().map(|w| w.into_inner()).collect()) +} + +/// Reconstruct the block data from a set of chunks. +/// +/// Provide an iterator containing chunk data and the corresponding index. +/// The indices of the present chunks must be indicated. If too few chunks +/// are provided, recovery is not possible. +/// +/// Works only up to 256 validators, and `n_validators` must be non-zero. +pub fn reconstruct<'a, I: 'a>(n_validators: usize, chunks: I) + -> Result<(BlockData, Extrinsic), Error> + where I: IntoIterator +{ + let params = code_params(n_validators)?; + let mut shards: Vec> = vec![None; n_validators]; + let mut shard_len = None; + for (chunk_data, chunk_idx) in chunks.into_iter().take(n_validators) { + if chunk_idx >= n_validators { + return Err(Error::ChunkIndexOutOfBounds(chunk_idx, n_validators)); + } + + let shard_len = shard_len.get_or_insert_with(|| chunk_data.len()); + + if *shard_len % 2 != 0 { + return Err(Error::UnevenLength); + } + + if *shard_len != chunk_data.len() || *shard_len == 0 { + return Err(Error::NonUniformChunks); + } + + shards[chunk_idx] = Some(WrappedShard::new(chunk_data.to_vec())); + } + + if let Err(e) = params.make_encoder().reconstruct(&mut shards[..]) { + match e { + reed_solomon::Error::TooFewShardsPresent => Err(Error::NotEnoughChunks)?, + reed_solomon::Error::InvalidShardFlags => Err(Error::WrongValidatorCount)?, + reed_solomon::Error::TooManyShards => Err(Error::TooManyChunks)?, + reed_solomon::Error::EmptyShard => panic!("chunks are all non-empty; this is checked above; qed"), + reed_solomon::Error::IncorrectShardSize => panic!("chunks are all same len; this is checked above; qed"), + _ => panic!("reed_solomon encoder returns no more variants for this function; qed"), + } + } + + // lazily decode from the data shards. + Decode::decode(&mut ShardInput { + shards: shards.iter() + .map(|x| x.as_ref()) + .take(params.data_shards) + .map(|x| x.expect("all data shards have been recovered; qed")) + .filter_map(|x| { + let mut s: &[u8] = x.as_ref(); + let data_len = u32::decode(&mut s)? as usize; + + // NOTE: s has been mutated to point forward by `decode`. + if s.len() < data_len { + None + } else { + Some(&s[..data_len]) + } + }), + cur_shard: None, + }).ok_or_else(|| Error::BadPayload) +} + +/// An iterator that yields merkle branches and chunk data for all chunks to +/// be sent to other validators. +pub struct Branches<'a> { + trie_storage: MemoryDB, + root: H256, + chunks: Vec<&'a [u8]>, + current_pos: usize, +} + +impl<'a> Branches<'a> { + /// Get the trie root. + pub fn root(&self) -> H256 { self.root.clone() } +} + +impl<'a> Iterator for Branches<'a> { + type Item = (Vec>, &'a [u8]); + + fn next(&mut self) -> Option { + use trie::Recorder; + + let trie = TrieDB::new(&self.trie_storage, &self.root) + .expect("`Branches` is only created with a valid memorydb that contains all nodes for the trie with given root; qed"); + + let mut recorder = Recorder::new(); + let res = (self.current_pos as u32).using_encoded(|s| + trie.get_with(s, &mut recorder) + ); + + match res.expect("all nodes in trie present; qed") { + Some(_) => { + let nodes = recorder.drain().into_iter().map(|r| r.data).collect(); + let chunk = &self.chunks.get(self.current_pos) + .expect("there is a one-to-one mapping of chunks to valid merkle branches; qed"); + + self.current_pos += 1; + Some((nodes, chunk)) + } + None => None, + } + } +} + +/// Construct a trie from chunks of an erasure-coded value. This returns the root hash and an +/// iterator of merkle proofs, one for each validator. +pub fn branches<'a>(chunks: Vec<&'a [u8]>) -> Branches<'a> { + let mut trie_storage: MemoryDB = MemoryDB::default(); + let mut root = H256::default(); + + // construct trie mapping each chunk's index to its hash. + { + let mut trie = TrieDBMut::new(&mut trie_storage, &mut root); + for (i, &chunk) in chunks.iter().enumerate() { + (i as u32).using_encoded(|encoded_index| { + let chunk_hash = BlakeTwo256::hash(chunk); + trie.insert(encoded_index, chunk_hash.as_ref()) + .expect("a fresh trie stored in memory cannot have errors loading nodes; qed"); + }) + } + } + + Branches { + trie_storage, + root, + chunks, + current_pos: 0, + } +} + +/// Verify a markle branch, yielding the chunk hash meant to be present at that +/// index. +pub fn branch_hash(root: &H256, branch_nodes: &[Vec], index: usize) -> Result { + let mut trie_storage: MemoryDB = MemoryDB::default(); + for node in branch_nodes.iter() { + (&mut trie_storage as &mut trie::HashDB<_>).insert(node.as_slice()); + } + + let trie = TrieDB::new(&trie_storage, &root).map_err(|_| Error::InvalidBranchProof)?; + let res = (index as u32).using_encoded(|key| + trie.get_with(key, |raw_hash: &[u8]| H256::decode(&mut &raw_hash[..])) + ); + + match res { + Ok(Some(Some(hash))) => Ok(hash), + Ok(Some(None)) => Err(Error::InvalidBranchProof), // hash failed to decode + Ok(None) => Err(Error::BranchOutOfBounds), + Err(_) => Err(Error::InvalidBranchProof), + } +} + +// input for `parity_codec` which draws data from the data shards +struct ShardInput<'a, I> { + shards: I, + cur_shard: Option<(&'a [u8], usize)>, +} + +impl<'a, I: Iterator> codec::Input for ShardInput<'a, I> { + fn read(&mut self, into: &mut [u8]) -> usize { + let mut read_bytes = 0; + + loop { + if read_bytes == into.len() { break } + + let cur_shard = self.cur_shard.take().or_else(|| self.shards.next().map(|s| (s, 0))); + let (active_shard, mut in_shard) = match cur_shard { + Some((s, i)) => (s, i), + None => break, + }; + + if in_shard >= active_shard.len() { + continue; + } + + let remaining_len_out = into.len() - read_bytes; + let remaining_len_shard = active_shard.len() - in_shard; + + let write_len = std::cmp::min(remaining_len_out, remaining_len_shard); + into[read_bytes..][..write_len] + .copy_from_slice(&active_shard[in_shard..][..write_len]); + + in_shard += write_len; + read_bytes += write_len; + self.cur_shard = Some((active_shard, in_shard)) + } + + read_bytes + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn field_order_is_right_size() { + assert_eq!(MAX_VALIDATORS, 65536); + } + + #[test] + fn round_trip_block_data() { + let block_data = BlockData((0..255).collect()); + let ex = Extrinsic { outgoing_messages: Vec::new() }; + let chunks = obtain_chunks( + 10, + &block_data, + &ex, + ).unwrap(); + + assert_eq!(chunks.len(), 10); + + // any 4 chunks should work. + let reconstructed = reconstruct( + 10, + [ + (&*chunks[1], 1), + (&*chunks[4], 4), + (&*chunks[6], 6), + (&*chunks[9], 9), + ].iter().cloned(), + ).unwrap(); + + assert_eq!(reconstructed, (block_data, ex)); + } + + #[test] + fn construct_valid_branches() { + let block_data = BlockData(vec![2; 256]); + let chunks = obtain_chunks( + 10, + &block_data, + &Extrinsic { outgoing_messages: Vec::new() }, + ).unwrap(); + let chunks: Vec<_> = chunks.iter().map(|c| &c[..]).collect(); + + assert_eq!(chunks.len(), 10); + + let branches = branches(chunks.clone()); + let root = branches.root(); + + let proofs: Vec<_> = branches.map(|(proof, _)| proof).collect(); + + assert_eq!(proofs.len(), 10); + + for (i, proof) in proofs.into_iter().enumerate() { + assert_eq!(branch_hash(&root, &proof, i).unwrap(), BlakeTwo256::hash(chunks[i])); + } + } +} diff --git a/polkadot/erasure-coding/src/wrapped_shard.rs b/polkadot/erasure-coding/src/wrapped_shard.rs new file mode 100644 index 0000000000..8c7683829d --- /dev/null +++ b/polkadot/erasure-coding/src/wrapped_shard.rs @@ -0,0 +1,134 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Provides a safe wrapper that gives views into a byte-vec. + +/// Wrapper around a `Vec` that provides views as a `[u8]` and `[[u8; 2]]`. +#[derive(Clone)] +pub(crate) struct WrappedShard { + inner: Vec, +} + +impl WrappedShard { + /// Wrap `data`. + pub(crate) fn new(mut data: Vec) -> Self { + if data.len() % 2 != 0 { + data.push(0); + } + + WrappedShard { inner: data } + } + + /// Unwrap and yield inner data. + pub(crate) fn into_inner(self) -> Vec { + self.inner + } +} + +impl AsRef<[u8]> for WrappedShard { + fn as_ref(&self) -> &[u8] { + self.inner.as_ref() + } +} + +impl AsMut<[u8]> for WrappedShard { + fn as_mut(&mut self) -> &mut [u8] { + self.inner.as_mut() + } +} + +impl AsRef<[[u8; 2]]> for WrappedShard { + fn as_ref(&self) -> &[[u8; 2]] { + assert_eq!(self.inner.len() % 2, 0); + if self.inner.is_empty() { return &[] } + unsafe { + ::std::slice::from_raw_parts(&self.inner[0] as *const _ as _, self.inner.len() / 2) + } + } +} + +impl AsMut<[[u8; 2]]> for WrappedShard { + fn as_mut(&mut self) -> &mut [[u8; 2]] { + let len = self.inner.len(); + assert_eq!(len % 2, 0); + + if self.inner.is_empty() { return &mut [] } + unsafe { + ::std::slice::from_raw_parts_mut(&mut self.inner[0] as *mut _ as _, len / 2) + } + } +} + +impl std::iter::FromIterator<[u8; 2]> for WrappedShard { + fn from_iter>(iterable: I) -> Self { + let iter = iterable.into_iter(); + + let (l, _) = iter.size_hint(); + let mut inner = Vec::with_capacity(l * 2); + + for [a, b] in iter { + inner.push(a); + inner.push(b); + } + + debug_assert_eq!(inner.len() % 2, 0); + WrappedShard { inner } + } +} + +#[cfg(test)] +mod tests { + use super::WrappedShard; + + #[test] + fn wrap_empty_ok() { + let mut wrapped = WrappedShard::new(Vec::new()); + { + let _: &mut [u8] = wrapped.as_mut(); + let _: &mut [[u8; 2]] = wrapped.as_mut(); + } + + { + let _: &[u8] = wrapped.as_ref(); + let _: &[[u8; 2]] = wrapped.as_ref(); + } + } + + #[test] + fn data_order_preserved() { + let mut wrapped = WrappedShard::new(vec![1, 2, 3]); + { + let x: &[u8] = wrapped.as_ref(); + assert_eq!(x, &[1, 2, 3, 0]); + } + { + let x: &mut [[u8; 2]] = wrapped.as_mut(); + assert_eq!(x, &mut [[1, 2], [3, 0]]); + x[1] = [3, 4]; + } + { + let x: &[u8] = wrapped.as_ref(); + assert_eq!(x, &[1, 2, 3, 4]); + } + } + + #[test] + fn from_iter() { + let w: WrappedShard = vec![[1, 2], [3, 4], [5, 6]].into_iter().collect(); + let x: &[u8] = w.as_ref(); + assert_eq!(x, &[1, 2, 3, 4, 5, 6]) + } +} diff --git a/polkadot/primitives/src/lib.rs b/polkadot/primitives/src/lib.rs index 9a312445a2..ae73e99098 100644 --- a/polkadot/primitives/src/lib.rs +++ b/polkadot/primitives/src/lib.rs @@ -44,7 +44,9 @@ extern crate serde; extern crate substrate_client; use rstd::prelude::*; -use runtime_primitives::{generic, traits::{Extrinsic, BlakeTwo256}}; +use runtime_primitives::{generic, traits::Extrinsic}; + +pub use runtime_primitives::traits::{BlakeTwo256, Hash as HashT}; pub mod parachain; diff --git a/polkadot/primitives/src/parachain.rs b/polkadot/primitives/src/parachain.rs index e5bb9ffe03..c304cb1bf0 100644 --- a/polkadot/primitives/src/parachain.rs +++ b/polkadot/primitives/src/parachain.rs @@ -67,8 +67,8 @@ pub struct DutyRoster { } /// An outgoing message -#[derive(Clone, PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug, Encode, Decode))] +#[derive(Clone, PartialEq, Eq, Encode, Decode)] +#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] #[cfg_attr(feature = "std", serde(rename_all = "camelCase"))] #[cfg_attr(feature = "std", serde(deny_unknown_fields))] pub struct OutgoingMessage { @@ -94,8 +94,8 @@ impl Ord for OutgoingMessage { /// /// This is data produced by evaluating the candidate. It contains /// full records of all outgoing messages to other parachains. -#[derive(PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug, Encode, Decode))] +#[derive(PartialEq, Eq, Clone, Encode, Decode)] +#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] #[cfg_attr(feature = "std", serde(rename_all = "camelCase"))] #[cfg_attr(feature = "std", serde(deny_unknown_fields))] pub struct Extrinsic { diff --git a/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm b/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm index 218354264c0d3024cb5bece8fe45891987e22b17..dc2da8492ecfe5e0a4101777675df3e52f8b0ca6 100644 GIT binary patch delta 40356 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

F%m^ZaE}77U6ZFTjYmYb;iNva+U~r3cn_BYm!KQ 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 Kb{L-sLC1dych+wJ delta 40484 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 diff --git a/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm b/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm index 6c6448ec9c3e9eacac0d94cac02e69392097aac2..eb875d05e48711f2937679e25c78c60d5ba34ce4 100755 GIT binary patch delta 42172 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

|o%E`2lKZx>6&%2j5g$X_VImC4Wrx+BhwB6_ue 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 delta 42404 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

A52 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