Skip to content
Snippets Groups Projects
  1. Oct 05, 2019
  2. Jul 23, 2019
    • DemiMarie-parity's avatar
      BABE Epochs (#3028) · f78a7807
      DemiMarie-parity authored and asynchronous rob's avatar asynchronous rob committed
      
      * Add `epoch` field to `SlotInfo`
      
      * Add slot calculations
      
      * More work on epochs in BABE
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarBastian Köcher <bkchr@users.noreply.github.com>
      
      * Typo: `/` not `%` for division
      
      * Delete useless `LastSlotInEpoch::put(false)`
      
      * Bump `spec_version`
      
      * Make test suite pass again
      
      * Implement BABE epoch randomness signing
      
      * Try to fix compilation
      
      Currently causes a stack overflow in the compiler
      
      * Fix rustc stack overflow
      
      * Add missing `PartialEq` and `Eq` implementations
      
      * Fix compile errors in test suite
      
      * Another silly compile error
      
      * Clone `epoch`
      
      * Fix compile error in benchmarks
      
      * Implement `clone` for `Epoch`
      
      * Merge master
      
      * AUTHORING TEST PASSES!!!
      
      * Fix compilation
      
      * Bump `spec_version`
      
      * Fix compilation
      
      * Fix compilation (again)
      
      * Remove an outdated FIXME
      
      * Fix run.sh and move it to scripts/
      
      * Delete commented-out code
      
      * Fix documentation
      
      Co-Authored-By: default avatarAndré Silva <andre.beat@gmail.com>
      
      * Fix BABE initialization and refactor
      
      * Respond to review
      
      * typo
      
      * Remove useless data in `CheckedHeader::Deferred`
      
      * Remove `slot_number` from Epoch
      
      It is not needed, and only served to waste space and cause confusion.
      
      * Remove epoch from BABE digests
      
      * Move digest.rs to primitives
      
      * Fix incorrect warning names
      
      * Fix compile error
      
      * Consistent field naming for BABE digests
      
      * More compiler error fixex
      
      * Unbound variable
      
      * more compile errors
      
      * another compile error
      
      * Fix compile errors in runtime
      
      * another compile error
      
      * Another compile error
      
      * Fix wasm build
      
      * missing import
      
      * Fix more compile errors
      
      * yet another compile error
      
      * compile fix in test runtime
      
      * Fix and simplify the BABE runtime
      
      The BABE runtime was massively overcomplicated and also wrong.  It
      assumed it needed to:
      
      1. delay new authorities taking effect until the next epoch
      2. not delay emitting `Consensus` digests to mark epoch changes
      
      However, the first is handled by the `srml_session` crate, and the
      second is flat-out incorrect: `Consensus` digests take effect
      immediately.  Furthermore, `srml_babe` tried to duplicate the
      functionality of `srml_session::PeriodicSession`, but did it both
      clumsily and incorrectly.  Fortunately, the new code is simpler and far
      more likely to be correct.
      
      * Use `system` to get the test authorities
      
      The genesis block used by tests defines no authorities.  Only the test
      suite is affected.
      
      * Fix test runtime impl for BabeApi::epoch() with std
      
      * Fix compilation
      
      * Cached authorities are in the form of an epoch
      
      not a `Vec<AuthorityId>`.
      
      * `slots_per_epoch` is not fixed in general
      
      The BABE code previously assumed `slots_per_epoch` to be a constant,
      but that assumption is false in general.  Furthermore, removing this
      assumption also allows a lot of code to go away.
      
      * fix compile error
      
      * Implement epoch checker
      
      * Fix runtime compilation
      
      * fork-tree: add method for finding a node in the tree
      
      * babe: register epoch transitions in fork tree and validate them
      
      * fork-tree: add method for arbitrary pruning
      
      * Expose the queued validator set to SRML modules
      
      BABE needs to know not only what the current validator set is, but also
      what the next validator set will be.  Expose this to clients of the
      session module.
      
      * Bump hex-literal
      
      Hopefully this will fix the panic
      
      * babe: prune epoch change fork tree on finality
      
      * babe: validate epoch index on transition
      
      * babe: persist epoch changes tree
      
      * Fix compile error in tests
      
      * Fix compile error in tests
      
      * Another compile error in tests
      
      * Fix compilation of tests
      
      * core: move grandpa::is_descendent_of to client utils
      
      * babe: use is_descendent_of from client utils
      
      * babe: extract slot_number from pre_digest in import_block
      
      * Move BABE testsuite to its own file
      
      * Initial part of test code
      
      * Missing `WeightMultiplierUpdate` in test-runtime
      
      * bump `spec_version`
      
      * Add a test that a very bogus is rejected
      
      * Run the tests again
      
      * Fix compiler diagnostics
      
      * Bump `spec_version`
      
      * Initial infrastructure for mutation testing
      
      * Mutation testing of block import
      
      * babe: revert epoch changes in case of block import error
      
      * babe: fix logging target
      
      * babe: BabeBlockImport doesn't box inner BlockImport
      
      * babe: fix epoch check in block import
      
      * babe: populate authorities cache on block authorship
      
      * babe: remove unused functions
      
      * babe: use RANDOMNESS_LENGTH const
      
      * babe: remove unneeded config parameters
      
      * core: revert change to hex dependency version
      
      * cleanup gitignore
      
      * babe: add docs to aux_schema
      
      * babe: remove useless drops in tests
      
      * babe: remove annoying macos smart quotes
      
      * fork-tree: docs
      
      * fork-tree: add tests
      
      * babe: style
      
      * babe: rename randomness config variable
      
      * babe: remove randomness helper function
      
      * babe: style fixes
      
      * babe: add docs
      
      * babe: fix tests
      
      * node: bump spec_version
      
      * babe: fix tests
      f78a7807
  3. Jul 04, 2019
  4. May 29, 2019
    • DemiMarie-parity's avatar
      Introduce inherent digests (#2466) · c7d1204c
      DemiMarie-parity authored
      
      * Introduce inherent digests
      
      * Implement inherent digests
      
      * fix silly error
      
      * Implementation of inherent digests in BABE
      
      All tests pass. There are still limitations:
      
      1. The runtime strips out inherent digests, so BABE must re-add them.
      2. The test runtime checks that it can re-compute all digests.  It
         can’t, so I had to comment out that test.
      
      * Fix compilation and seal import
      
      Seals were not imported correctly: the pre-digest was imported twice,
      instead of both it and the seal being imported.  Also, other parts of
      the code did not compile due to incomplete refactoring.
      
      * Remove bogus assertion
      
      * Fix testsuite compilation
      
      * Remove unused import
      
      * Fix compiler diagnostics
      
      * Add inherent digest parameters to block constructors
      
      This enforces that inherent digests are added first.
      
      * Fixup Cargo.lock
      
      * Fix build errors
      
      * Re-add an incorrectly removed import
      
      * Bump primitive-types version
      
      * Update Cargo.lock
      
      * Refactoring
      
      * Use inherent digests for AuRa
      
      They do reach the runtime, but get stripped.  I have not figured out
      where.
      
      * Fix compilation errors
      
      * Fix compilation errors due to incorrect types
      
      * Fix whitespace
      
      Suggested-by: default avatarTomasz Drwiega <tomasz@parity.io>
      
      * Add preamble
      
      Suggested-by: default avatarTomasz Drwiega <tomasz@parity.io>
      
      * Fix silly compile error
      
      * Refactor pre-digest finding code into a separate function
      
      * Remove unwanted assertion
      
      It is too likely to bring down the entire blockchain.
      
      Suggested-by: default avatarTomasz Drwiega <tomasz@parity.io>
      
      * Use `find_pre_digest` after runtime, too
      
      Also, use `Member` trait rather than rolling our own requirements.
      
      Suggested-by: default avatarTomasz Drwiega <tomasz@parity.io>
      
      * Fix various warnings
      
      mostly due to upgrading the dependency on `error_chain`.
      
      * Pre-digests nearly complete
      
      This nearly completes the implementation of pre-runtime digests.
      
      * `Seal2` → `Seal` and fix test suite
      
      * Try to fix the storage error
      
      * Try to fix storage (again)
      
      * Fix tests
      
      * Hopefully finish pre-runtime digests
      
      The key is to pass *only* the pre-runtime digests to the runtime.  The
      others must be stripped out by `initialize_block`.
      
      * Fix silly typo
      
      * Fix another silly mistake
      
      * Remove unnecessary filtering of BABE pre-digests
      
      We no longer get duplicate BABE pre-digests, so if they appear, the
      header should be rejected outright.
      
      * Update Cargo.lock files
      
      * Reformatting
      
      * Fix silly typo in inherent digest code
      
      Also, revert `error.rs` files that contained calls to the `error_chain!`
      macro.
      
      * Try to keep the runtime from stripping pre-digests
      
      Currently runs into the “Storage root must match that calculated”
      assertion.
      
      * Don’t compute storage root until storage changes are done.
      
      Also, fix a compilation error.
      
      * Fix compile-time error
      
      * Fix compilation errors
      
      * Fix more compile errors
      
      * Hopefully it compiles this time…
      
      * Fix compilation and add docs
      
      * Prevent BABE from adding duplicate pre-runtime digests
      
      Found by comparing with the AuRa code.  I also did some refactoring.
      
      * Respond to review and fix some warnings
      
      * Delete some dead code introduced earlier
      
      * More dead code goes away
      
      * `ref mut` → `&mut`
      
      * Respond to review and fix some warnings
      
      * Fix compilation error
      
      * Remove unneeded `HashT` type parameter
      
      Suggested-by: default avatarRobert Habermeier <robert@parity.io>
      
      * Remove spurious #[allow(deprecated)]
      
      * Document inherent digest parameter to `build_block`
      
      * Delete `Simple` trait
      
      It wasn’t needed
      
      * delete wrongly added files
      
      * Fix trait bounds
      
      * Digest serialization tests
      
      I also did some reformatting and cleanup.
      
      * Apply suggestions from code review
      
      Reformatting
      
      Co-Authored-By: default avatarAndré Silva <andre.beat@gmail.com>
      
      * Swap two arguments to `propose` and `propose_with`
      
      Also, remove some needless unsafe code.
      
      * Remove bogus `#![allow(deprecated)]` annotations
      
      With the removal of the deprecated `Seal` variant, these are not needed.
      
      * Add a missing `#[allow(deprecated)]` in the AuRa tests
      
      * Fix silly compile error
      
      * Fix silly compiler error
      
      RLS did not tell me that I hadn’t fixed `babe/lib.rs`, so I missed it.
      
      * Fixes made automatically by Cargo
      c7d1204c
  5. May 10, 2019
  6. Jan 19, 2019
  7. Nov 12, 2018
  8. Nov 01, 2018
  9. Oct 18, 2018
  10. Aug 14, 2018
  11. Aug 03, 2018