kill post_finalise (#121)

* kill post_finalise

* update wasm runtimes
This commit is contained in:
Robert Habermeier
2018-04-12 13:17:43 +02:00
committed by Gav Wood
parent 1f717763e2
commit 1c5d6d59a7
8 changed files with 24 additions and 19 deletions
+5 -2
View File
@@ -16,8 +16,7 @@
//! Errors that can occur during the consensus process.
use primitives::block::HeaderHash;
use primitives::block::{HeaderHash, Number};
error_chain! {
links {
PolkadotApi(::polkadot_api::Error, ::polkadot_api::ErrorKind);
@@ -41,6 +40,10 @@ error_chain! {
description("Proposal had wrong parent hash."),
display("Proposal had wrong parent hash. Expected {:?}, got {:?}", expected, got),
}
WrongNumber(expected: Number, got: Number) {
description("Proposal had wrong number."),
display("Proposal had wrong number. Expected {:?}, got {:?}", expected, got),
}
ProposalTooLarge(size: usize) {
description("Proposal exceeded the maximum size."),
display(
+6 -5
View File
@@ -575,7 +575,7 @@ impl<C: PolkadotApi, R: TableRouter> bft::Proposer for Proposer<C, R> {
let substrate_block = Slicable::decode(&mut polkadot_block.encode().as_slice())
.expect("polkadot blocks defined to serialize to substrate blocks correctly; qed");
assert!(evaluate_proposal(&substrate_block, &*self.client, current_timestamp(), &self.parent_hash, &self.parent_id).is_ok());
assert!(evaluate_proposal(&substrate_block, &*self.client, current_timestamp(), &self.parent_hash, self.parent_number, &self.parent_id).is_ok());
Ok(substrate_block)
}
@@ -583,7 +583,7 @@ impl<C: PolkadotApi, R: TableRouter> bft::Proposer for Proposer<C, R> {
// TODO: certain kinds of errors here should lead to a misbehavior report.
fn evaluate(&self, proposal: &SubstrateBlock) -> Result<bool, Error> {
debug!(target: "bft", "evaluating block on top of parent ({}, {:?})", self.parent_number, self.parent_hash);
match evaluate_proposal(proposal, &*self.client, current_timestamp(), &self.parent_hash, &self.parent_id) {
match evaluate_proposal(proposal, &*self.client, current_timestamp(), &self.parent_hash, self.parent_number, &self.parent_id) {
Ok(x) => Ok(x),
Err(e) => match *e.kind() {
ErrorKind::PolkadotApi(polkadot_api::ErrorKind::Executor(_)) => Ok(false),
@@ -656,6 +656,7 @@ fn evaluate_proposal<C: PolkadotApi>(
client: &C,
now: Timestamp,
parent_hash: &HeaderHash,
parent_number: BlockNumber,
parent_id: &C::CheckedBlockId,
) -> Result<bool, Error> {
const MAX_TIMESTAMP_DRIFT: Timestamp = 4;
@@ -677,9 +678,9 @@ fn evaluate_proposal<C: PolkadotApi>(
bail!(ErrorKind::WrongParentHash(*parent_hash, proposal.header.parent_hash));
}
// no need to check number because
// a) we assume the parent is valid.
// b) the runtime checks that `proposal.parent_hash` == `block_hash(proposal.number - 1)`
if proposal.header.number != parent_number + 1 {
bail!(ErrorKind::WrongNumber(parent_number + 1, proposal.header.number))
}
let block_timestamp = proposal.timestamp();
+2 -1
View File
@@ -249,12 +249,13 @@ fn start_bft<F, C>(
return;
}
};
let input = messages.select(hash, network.bft_messages(), authorities).map_err(|e| e.into());
let output = BftSink { network: network, parent_hash: hash.clone(), _e: Default::default() };
match bft_service.build_upon(&header, input, output) {
Ok(Some(bft)) => handle.spawn(bft),
Ok(None) => {},
Err(e) => debug!("BFT agreement error: {:?}", e),
Err(e) => debug!(target: "bft","BFT agreement error: {:?}", e),
}
}