GRANDPA finality proof draft (#1268)

* grandpa finality proof

* prove GrandpaApi::grandpa_authorities using parent block + some docs

* create justification when consensus data is changed

* generate justifications periodically

* test for ConsensusChanges
This commit is contained in:
Svyatoslav Nikolsky
2019-01-11 21:25:03 +03:00
committed by Gav Wood
parent 677b79765b
commit 616716cb4b
18 changed files with 786 additions and 113 deletions
@@ -327,7 +327,7 @@ mod tests {
/// Verify extrinsic at given block.
fn validate_transaction(&self, at: &BlockId<Self::Block>, uxt: &ExtrinsicFor<Self>) -> Result<TransactionValidity, Self::Error> {
let block_number = self.block_id_to_number(at)?.unwrap();
let nonce = uxt.transfer.nonce;
let nonce = uxt.transfer().nonce;
if nonce < block_number {
Ok(TransactionValidity::Invalid)
@@ -359,15 +359,12 @@ mod tests {
/// Hash the extrinsic.
fn hash(&self, uxt: &ExtrinsicFor<Self>) -> Self::Hash {
(uxt.transfer.from.to_low_u64_be() << 5) + uxt.transfer.nonce
(uxt.transfer().from.to_low_u64_be() << 5) + uxt.transfer().nonce
}
}
fn uxt(transfer: Transfer) -> Extrinsic {
Extrinsic {
transfer,
signature: Default::default(),
}
Extrinsic::Transfer(transfer, Default::default())
}
fn pool() -> Pool<TestApi> {