Include parent head in CandidateReceipt (#826)

* runtime: candidate receipt must pass parent head

* construct parachain candidates using correct parent_head

* validate that the parent header is correct in candidate receipt

* fix test fallout

* bump runtime versions
This commit is contained in:
Robert Habermeier
2020-02-10 10:14:12 +01:00
committed by GitHub
parent 703ac8bbbc
commit 1c2aff5b4d
11 changed files with 86 additions and 20 deletions
+15 -7
View File
@@ -576,7 +576,9 @@ mod tests {
use super::*;
use sp_keyring::Sr25519Keyring;
use primitives::crypto::UncheckedInto;
use polkadot_primitives::parachain::{AvailableMessages, BlockData, ConsolidatedIngress, Collation};
use polkadot_primitives::parachain::{
AvailableMessages, BlockData, ConsolidatedIngress, Collation, HeadData,
};
use polkadot_erasure_coding::{self as erasure};
use availability_store::ProvideGossipMessages;
use futures::future;
@@ -662,7 +664,8 @@ mod tests {
parachain_index: para_id,
collator: [1; 32].unchecked_into(),
signature: Default::default(),
head_data: ::polkadot_primitives::parachain::HeadData(vec![1, 2, 3, 4]),
head_data: HeadData(vec![1, 2, 3, 4]),
parent_head: HeadData(vec![]),
egress_queue_roots: Vec::new(),
fees: 1_000_000,
block_data_hash: [2; 32].into(),
@@ -718,7 +721,8 @@ mod tests {
parachain_index: para_id,
collator: [1; 32].unchecked_into(),
signature: Default::default(),
head_data: ::polkadot_primitives::parachain::HeadData(vec![1, 2, 3, 4]),
head_data: HeadData(vec![1, 2, 3, 4]),
parent_head: HeadData(vec![]),
egress_queue_roots: Vec::new(),
fees: 1_000_000,
block_data_hash: [2; 32].into(),
@@ -755,7 +759,8 @@ mod tests {
parachain_index: para_id,
collator: [1; 32].unchecked_into(),
signature: Default::default(),
head_data: ::polkadot_primitives::parachain::HeadData(vec![1, 2, 3, 4]),
head_data: HeadData(vec![1, 2, 3, 4]),
parent_head: HeadData(vec![]),
egress_queue_roots: Vec::new(),
fees: 1_000_000,
block_data_hash,
@@ -819,7 +824,8 @@ mod tests {
parachain_index: para_id,
collator: [1; 32].unchecked_into(),
signature: Default::default(),
head_data: ::polkadot_primitives::parachain::HeadData(vec![1, 2, 3, 4]),
head_data: HeadData(vec![1, 2, 3, 4]),
parent_head: HeadData(vec![]),
egress_queue_roots: Vec::new(),
fees: 1_000_000,
block_data_hash: [2; 32].into(),
@@ -902,7 +908,8 @@ mod tests {
parachain_index: para_id,
collator: [1; 32].unchecked_into(),
signature: Default::default(),
head_data: ::polkadot_primitives::parachain::HeadData(vec![1, 2, 3, 4]),
head_data: HeadData(vec![1, 2, 3, 4]),
parent_head: HeadData(vec![]),
egress_queue_roots: Vec::new(),
fees: 1_000_000,
block_data_hash: [2; 32].into(),
@@ -969,7 +976,8 @@ mod tests {
parachain_index: para_id,
collator: [1; 32].unchecked_into(),
signature: Default::default(),
head_data: ::polkadot_primitives::parachain::HeadData(vec![1, 2, 3, 4]),
head_data: HeadData(vec![1, 2, 3, 4]),
parent_head: HeadData(vec![]),
egress_queue_roots: Vec::new(),
fees: 1_000_000,
block_data_hash: [2; 32].into(),