Skip to content
  1. Jan 05, 2020
  2. Dec 19, 2019
    • Bastian Köcher's avatar
      Make `decl_error!` errors usable (#4449) · 8e393aa5
      Bastian Köcher authored
      * Make `decl_error!` errors usable
      
      This pr implements support for returning errors of different pallets in
      a pallet. These errors need to be declared with `decl_error!`.
      
      The pr changes the following:
      
      - Each dispatchable function now returns a `DispatchResult` which is an
      alias for `Result<(), DispatchError>`.
      - `DispatchError` is an enum that has 4 variants:
        - `Other`: For storing string error messages
        - `CannotLookup`: Variant that is returned when something returns a
        `sp_runtime::LookupError`
        - `BadOrigin`: Variant that is returned for any kind of bad origin
        - `Module`: The error of a specific module. Contains the `index`,
        `error` and the `message`. The index is the index of the module in
        `construct_runtime!`. `error` is the index of the error in the error
        enum declared by `decl_error!`. `message` is the message to the error
        variant (this will not be encoded).
      - `construct_runtime!` now creates a new struct `ModuleToIndex`. This
      struct implements the trait `ModuleToIndex`.
      - `frame_system::Trait` has a new associated type: `ModuleToIndex` that
      expects the `ModuleToIndex` generated by `construct_runtime!`.
      - All error strings returned in any module are being converted now to `DispatchError`.
      - `BadOrigin` is the default error returned by any type that implements `EnsureOrigin`.
      
      * Fix frame system benchmarks
      8e393aa5
  3. Dec 16, 2019
    • Tomasz Drwięga's avatar
      [big refactor] Remove crate aliasing. (#4395) · 8778ca7d
      Tomasz Drwięga authored
      * Rename: Phase 1.
      
      * Unify codec.
      
      * Fixing: Phase 2
      
      * Fixing: Phase 3.
      
      * Fixing: Phase 4.
      
      * Fixing: Phase 5.
      
      * Fixing: Phase 6.
      
      * Fixing: Phase 7.
      
      * Fixing: Phase 8. Tests
      
      * Fixing: Phase 9. Tests!!!
      
      * Fixing: Phase 10. Moar tests!
      
      * Finally done!
      
      * More fixes.
      
      * Rename primitives:: to sp_core::
      
      * Apply renames in finality-grandpa.
      
      * Fix benches.
      
      * Fix benches 2.
      
      * Revert node-template.
      
      * Fix frame-system in our modules.
      8778ca7d
  4. Dec 10, 2019
  5. Dec 02, 2019
    • Benjamin Kampmann's avatar
      The crate rename (#4223) · 927e13c1
      Benjamin Kampmann authored
      * Adding script for rename, could be applicable for nodes on top of it, too
      
      * add stderr and gitlab ci features
      
      * apply script
      
      * fix now minor details in expected stderr
      
      * Update the Cargo.lock
      
      * fix name: sc-transaction -> sc-tracing
      
      * fix rename in script, too
      927e13c1
  6. Nov 29, 2019
  7. Nov 27, 2019
    • asynchronous rob's avatar
      safe multi-era slashing for NPoS (#3846) · 4598e130
      asynchronous rob authored
      
      
      * define slashing spans
      
      * tests and pruning for slashing-spans record
      
      * validators get slashed before nominators
      
      * apply slash to nominators as well
      
      * chill and end slashing spans
      
      * actually perform slashes
      
      * integration (tests failing)
      
      * prune metadata
      
      * fix compilation
      
      * some tests for slashing and metadata garbage collection
      
      * correctly pass session index to slash handler
      
      * test span-max property for nominators and validators
      
      * test that slashes are summed correctly
      
      * reward value computation
      
      * implement rewarding
      
      * add comment about rewards
      
      * do not adjust slash fraction in offences module
      
      * fix offences tests
      
      * remove unused new_offenders field
      
      * update runtime version
      
      * fix up some docs
      
      * fix some CI failures
      
      * remove no-std incompatible vec! invocation
      
      * try to fix span-max rounding error
      
      * Update srml/staking/src/slashing.rs
      
      Fix type: winow -> window
      
      Co-Authored-By: default avatarTomasz Drwięga <[email protected]>
      
      * slashes from prior spans don't kick validator again
      
      * more information for nominators, suppression
      
      * ensure ledger is consistent with itself post-slash
      
      * implement slash out of unlocking funds also
      
      * slashing: create records to be applied after-the-fact
      
      * queue slashes for a few eras later
      
      * method for canceling deferred slashes
      
      * attempt to fix test in CI
      
      * storage migration for `Nominators`
      
      * update node-runtime to use SlashDeferDuration
      
      * adjust migration entry-points somewhat
      
      * fix migration compilation
      
      * add manual Vec import to migration
      
      * enable migrations feature in node-runtime
      
      * bump runtime version
      
      * update to latest master crate renames
      
      * update to use ensure-origin
      
      * Apply suggestions from code review
      
      use `ensure!`
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * fix multi-slash removal
      
      * initialize storage version to current in genesis
      
      * add test for version initialization
      4598e130
  8. Nov 22, 2019
  9. Nov 21, 2019
  10. Nov 14, 2019
    • Benjamin Kampmann's avatar
      Reorganising the repository - external renames and moves (#4074) · 60e5011c
      Benjamin Kampmann authored
      * Adding first rough ouline of the repository structure
      
      * Remove old CI stuff
      
      * add title
      
      * formatting fixes
      
      * move node-exits job's script to scripts dir
      
      * Move docs into subdir
      
      * move to bin
      
      * move maintainence scripts, configs and helpers into its own dir
      
      * add .local to ignore
      
      * move core->client
      
      * start up 'test' area
      
      * move test client
      
      * move test runtime
      
      * make test move compile
      
      * Add dependencies rule enforcement.
      
      * Fix indexing.
      
      * Update docs to reflect latest changes
      
      * Moving /srml->/paint
      
      * update docs
      
      * move client/sr-* -> primitives/
      
      * clean old readme
      
      * remove old broken code in rhd
      
      * update lock
      
      * Step 1.
      
      * starting to untangle client
      
      * Fix after merge.
      
      * start splitting out client interfaces
      
      * move children and blockchain interfaces
      
      * Move trie and state-machine to primitives.
      
      * Fix WASM builds.
      
      * fixing broken imports
      
      * more interface moves
      
      * move backend and light to interfaces
      
      * move CallExecutor
      
      * move cli off client
      
      * moving around more interfaces
      
      * re-add consensus crates into the mix
      
      * fix subkey path
      
      * relieve client from executor
      
      * starting to pull out client from grandpa
      
      * move is_decendent_of out of client
      
      * grandpa still depends on client directly
      
      * lemme tests pass
      
      * rename srml->paint
      
      * Make it compile.
      
      * rename interfaces->client-api
      
      * Move keyring to primitives.
      
      * fixup libp2p dep
      
      * fix broken use
      
      * allow dependency enforcement to fail
      
      * move fork-tree
      
      * Moving wasm-builder
      
      * make env
      
      * move build-script-utils
      
      * fixup broken crate depdencies and names
      
      * fix imports for authority discovery
      
      * fix typo
      
      * update cargo.lock
      
      * fixing imports
      
      * Fix paths and add missing crates
      
      * re-add missing crates
      60e5011c
  11. Nov 07, 2019
  12. Nov 06, 2019
  13. Oct 28, 2019
    • Bastian Köcher's avatar
      Remove footgun around session keys/handlers (#3949) · 057636fd
      Bastian Köcher authored
      * Remove footgun around session keys/handlers
      
      - `OpaqueKeys` now has an associated type `KeyTypeIdProviders`. This can
      be used in the runtime as input for `SessionHandler` from the session
      trait.
      - `impl_opaque_keys` now works with modules and extracts the `KeyTypeId`
      from the module directly.
      - Added some checks to the `session` storage initialization that checks
      that the `SessionHandler` and `Keys` use the same number of keys and
      that the order is equal.
      
      * Update core/sr-primitives/src/traits.rs
      057636fd
  14. Oct 17, 2019
    • Kian Paimani's avatar
      refactor: Transaction-Payment module (#3816) · 183c1881
      Kian Paimani authored
      * Initial draft that compiles
      
      * Extract payment stuff from balances
      
      * Extract multiplier update stuff from system
      
      * Some fixes.
      
      * Update len-fee as well
      
      * some review comments.
      
      * Remove todo
      
      * bump
      183c1881
  15. Oct 10, 2019
  16. Oct 09, 2019
    • Bastian Köcher's avatar
      Move `Externalities` into its own crate (#3775) · 8a39be47
      Bastian Köcher authored
      * Move `Externalities` into `substrate-externalities`
      
      - `Externalities` now support generic extensions
      - Split of `primtives-storage` for storage primitive types
      
      * Move the externalities scoping into `substrate-externalities`
      
      * Fix compilation
      
      * Review feedback
      
      * Adds macro for declaring extensions
      
      * Fix benchmarks
      
      * Introduce `ExtensionStore` trait
      
      * Last review comments
      
      * Implement it for `ExtensionStore`
      8a39be47
  17. Oct 01, 2019
  18. Sep 25, 2019
    • Kian Paimani's avatar
      Refactor: fixed point arithmetic for SRML. (#3456) · 1c15ca6a
      Kian Paimani authored
      
      
      * Macro-ify perthings.
      
      * Refactor fixed64
      
      * Half-workign phragmen refactor.
      
      * Finalize phragmen refactor.
      
      * Fix creation of perquintill
      
      * Fix build errors
      
      * Line-width
      
      * Fix more build errors.
      
      * Line-width
      
      * Fix offence test
      
      * Resolve all TODOs.
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      Co-Authored-By: default avatarthiolliere <[email protected]>
      
      * Fix most of the review comments.
      
      * Updates to multiply by rational
      
      * Fxi build
      
      * Fix abs issue with Fixed64
      
      * Fix tests and improvements.
      
      * Fix build
      
      * Remove more tests from staking.
      
      * Review comments.
      
      * Add fuzzing stuff.
      
      * Better fuzzing
      
      * Better doc.
      
      * Bump.
      
      * Master.into()
      
      * A bit more hardening.
      
      * Final nits.
      
      * Update lock
      
      * Fix indent.
      
      * Revert lock file.
      
      * Bump.
      1c15ca6a
  19. Sep 21, 2019
  20. Sep 19, 2019
  21. Sep 11, 2019
  22. Sep 04, 2019
    • Shawn Tabrizi's avatar
      Normalize Crate Names in SRML/Node Template (#3543) · c284ca21
      Shawn Tabrizi authored
      * Fix some instances of `runtime-io`
      
      * Patch a bunch
      
      * More patches for consistancy
      
      * more patch
      
      * Fix various build issues
      
      * Fix tests
      
      * Patch `srml-support-*` crates
      
      * Fix doc tests
      
      * Revert "Fix doc tests"
      
      This reverts commit ba2ec61da7acc36821a70e76a31a6a5bf13bbe95.
      
      * Revert "Patch `srml-support-*` crates"
      
      This reverts commit 9a6070450107dec17784ba34af4b871023f6dc81.
      
      * Missed one
      
      * Fix doc tests
      c284ca21
  23. Aug 29, 2019
    • thiolliere's avatar
      `srml_support` storage reorganize (#3344) · 99005623
      thiolliere authored
      
      
      * impl
      
      * file split
      
      * old comment
      
      * better error message
      
      * WIP
      
      * basti test works
      
      * comment
      
      * remove old files
      
      * impl swap for storage map
      
      * fix
      
      * fix and comment
      
      * code refactor
      
      * code refactor
      
      * code format
      
      * code refactor
      
      * fix
      
      * fix
      
      * fix
      
      * document generators
      
      * license
      
      * doc
      
      * doc
      
      * fmt
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      
      * some comment addressed
      
      * storage_items small refactor
      
      * fix storage_items
      
      * more precise returned type
      
      * fix
      
      * code fmt suggestion
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      
      * remove box allocation
      
      * bump version
      
      * rename function as behavior has changed
      
      * fix doc
      99005623
    • Kian Paimani's avatar
      Decouple Phragmen from Staking. (#3498) · f830db96
      Kian Paimani authored
      * Move phragmen to primitives
      
      * Improved docs
      
      * New crate.
      
      * Update lock.
      
      * Fix dependency.
      
      * Fix build.
      
      * Add basic testing and truth-value implementation with float types
      
      * Update srml/staking/src/lib.rs
      
      * Nits.
      
      * Bump.
      
      * Fix benchmarks.
      f830db96
  24. Aug 18, 2019
  25. Aug 16, 2019
    • Tomasz Drwięga's avatar
      Offences reporting and slashing (#3322) · 6cc44957
      Tomasz Drwięga authored
      
      
      * Remove offline slashing logic from staking.
      
      * Initial version of reworked offence module, can report offences
      
      * Clean up staking example.
      
      * Commit SlashingOffence
      
      * Force new era on slash.
      
      * Add offenders in the SlashingOffence trait.
      
      * Introduce the ReportOffence trait.
      
      * Rename `Offence`.
      
      * Add on_before_session_ending handler.
      
      * Move offence related stuff under sr-primitives.
      
      * Fix cargo check.
      
      * Import new im-online implementation.
      
      * Adding validator count to historical session storage as it's needed for slash calculations
      
      * Add a comment about offence.
      
      * Add BabeEquivocationOffence
      
      * GrandpaEquivocationOffence
      
      * slash_fraction and fix
      
      * current_era_start_session_index
      
      * UnresponsivnessOffence
      
      * Finalise OnOffenceHandler traits, and stub impl for staking.
      
      * slash_fraction doesn't really need &self
      
      * Note that offenders count is greater than 0
      
      * Add a test to ensure that I got the math right
      
      * Use FullIdentification in offences.
      
      * Use FullIndentification.
      
      * Hook up the offences module.
      
      * Report unresponsive validators
      
      * Make sure eras have the same length.
      
      * Slashing and rewards.
      
      * Fix compilation.
      
      * Distribute rewards.
      
      * Supply validators_count
      
      * Use identificationTuple in Unresponsivness report
      
      * Fix merge.
      
      * Make sure we don't slash if amount is zero.
      
      * We don't return an error from report_offence anymo
      
      * We actually can use vec!
      
      * Prevent division by zero if the reporters is empty
      
      * offence_forces_new_era/nominators_also_get_slashed
      
      * advance_session
      
      * Fix tests.
      
      * Update srml/staking/src/lib.rs
      
      Co-Authored-By: default avatarRobert Habermeier <[email protected]>
      
      * slashing_performed_according_exposure
      
      * Check that reporters receive their slice.
      
      * Small clean-up.
      
      * invulnerables_are_not_slashed
      
      * Minor clean ups.
      
      * Improve docs.
      
      * dont_slash_if_fraction_is_zero
      
      * Remove session dependency from offences.
      
      * Introduce sr-staking-primitives
      
      * Move offence under sr_staking_primitives
      
      * rename session_index
      
      * Resolves todos re using SessionIndex
      
      * Fix staking tests.
      
      * Properly scale denominator.
      
      * Fix UnresponsivnessOffence
      
      * Fix compilation.
      
      * Tests for offences.
      
      * Clean offences tests.
      
      * Fix staking doc test.
      
      * Bump spec version
      
      * Fix aura tests.
      
      * Fix node_executor
      
      * Deposit an event on offence.
      
      * Fix compilation of node-runtime
      
      * Remove aura slashing logic.
      
      * Remove HandleReport
      
      * Update docs for timeslot.
      
      * rename with_on_offence_fractions
      
      * Add should_properly_count_offences
      
      * Replace ValidatorIdByIndex with CurrentElectedSet
      
      ValidatorIdByIndex was querying the current_elected set in each call, doing loading (even though its from cache), deserializing and cloning of element.
      
      Instead of this it is more efficient to use `CurrentElectedSet`. As a small bonus, the invariant became a little bit easier: now we just rely on the fact that `keys` and `current_elected` set are of the same length rather than relying on the fact that `validator_id_by_index` would work similar to `<[T]>::get`.
      
      * Clarify babe equivocation
      
      * Fix offences.
      
      * Rename validators_count to validator_set_count
      
      * Fix squaring.
      
      * Update core/sr-staking-primitives/src/offence.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Docs for CurrentElectedSet.
      
      * Don't punish only invulnerables
      
      * Use `get/insert` instead of `mutate`.
      
      * Fix compilation
      
      * Update core/sr-staking-primitives/src/offence.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Update srml/offences/src/lib.rs
      
      Co-Authored-By: default avatarRobert Habermeier <[email protected]>
      
      * Update srml/im-online/src/lib.rs
      
      Co-Authored-By: default avatarjoe petrowski <[email protected]>
      
      * Update srml/im-online/src/lib.rs
      
      Co-Authored-By: default avatarjoe petrowski <[email protected]>
      
      * Update srml/im-online/src/lib.rs
      
      Co-Authored-By: default avatarjoe petrowski <[email protected]>
      
      * Update srml/babe/src/lib.rs
      
      Co-Authored-By: default avatarjoe petrowski <[email protected]>
      
      * Update core/sr-staking-primitives/src/offence.rs
      
      Co-Authored-By: default avatarjoe petrowski <[email protected]>
      
      * Update core/sr-staking-primitives/src/offence.rs
      
      Co-Authored-By: default avatarjoe petrowski <[email protected]>
      
      * Update core/sr-staking-primitives/src/offence.rs
      
      Co-Authored-By: default avatarjoe petrowski <[email protected]>
      
      * Update core/sr-staking-primitives/src/offence.rs
      
      Co-Authored-By: default avatarjoe petrowski <[email protected]>
      
      * Update core/sr-staking-primitives/src/offence.rs
      
      Co-Authored-By: default avatarjoe petrowski <[email protected]>
      
      * Add aura todo.
      
      * Allow multiple reports for single offence report.
      
      * Fix slash_fraction calculation.
      
      * Fix typos.
      
      * Fix compilation and tests.
      
      * Fix staking tests.
      
      * Update srml/im-online/src/lib.rs
      
      Co-Authored-By: default avatarLogan Saether <[email protected]>
      
      * Fix doc on time_slot
      
      * Allow slashing only on current era (#3411)
      
      * only slash in current era
      
      * prune journal for last era
      
      * comment own_slash
      
      * emit an event when old slashing events are discarded
      
      * Pave the way for pruning
      
      * Address issues.
      
      * Try to refactor collect_offence_reports
      
      * Other fixes.
      
      * More fixes.
      6cc44957
    • André Silva's avatar
      session: add handler for genesis session (#3413) · d1dde7e0
      André Silva authored and Svyatoslav Nikolsky's avatar Svyatoslav Nikolsky committed
      * session: add handler for genesis session
      
      * node: bump spec version
      
      * aura: handle on_genesis_session
      
      * srml: make sure we don't re-initialize genesis authorities
      
      * session: fix mock
      
      * node: remove genesis authorities from chain spec
      
      * staking: fix mock
      
      * srml: don't initialize genesis authorities twice
      
      * aura: don't reinitialize genesis authorities
      
      * aura: fix runtime_io dependency
      
      * Bump runtime
      d1dde7e0
  26. Aug 12, 2019
  27. Aug 08, 2019
    • cheme's avatar
      Child storage tests and genesis fix. (#3185) · b0e1212d
      cheme authored
      * Using child storage, (srml-support only), test failing .
      
      * fix simple tests.
      
      * Enumerable by requiring owned struct (previous form only allow
      &'static).
      Broken tests are from genesis init.
      
      * implement for_child_keys_with_prefix
      
      * indent
      
      * clear_child_prefix fix.
      
      * clear_child_prefix fix 2.
      
      * fix for storage_impl, if/when allowing child and not child this could be
      reverted.
      
      * Fix lot of urlinked child genesis, still need to look upon actual
      genesis srml module code.
      Probably still a lot of broken code needing debugging.
      
      * switch well_known_key to their associated module child trie.
      Fix a genesis init (balance).
      Complete some testing.
      Comment some tests before using.
      
      * fixing test runtime child keys
      
      * latest commit fix broken genesis init
      
      * fix system balances child name.
      
      * Important fix: storage_root from test externalities need children (it is
      already the case for ext).
      
      * executive root with child calculation...
      b0e1212d
  28. Aug 07, 2019
    • thiolliere's avatar
      Staking optimisation (#3300) · 556a9416
      thiolliere authored and asynchronous rob's avatar asynchronous rob committed
      * staking code api
      
      * doc + test
      
      * version bump
      
      * index fn
      
      * rename function
      
      * doc
      
      * adress comments
      
      * add complexity comment
      556a9416
    • Gavin Wood's avatar
      Refactor key management (#3296) · 1a524b82
      Gavin Wood authored
      
      
      * Add Call type to extensible transactions.
      
      Cleanup some naming
      
      * Merge Resource and BlockExhausted into just Exhausted
      
      * Fix
      
      * Another fix
      
      * Call
      
      * Some fixes
      
      * Fix srml tests.
      
      * Fix all tests.
      
      * Refactor crypto so each application of it has its own type.
      
      * Introduce new AuthorityProvider API into Aura
      
      This will eventually allow for dynamic determination of authority
      keys and avoid having to set them directly on CLI.
      
      * Introduce authority determinator for Babe.
      
      Experiment with modular consensus API.
      
      * Work in progress to introduce KeyTypeId and avoid polluting API
      with validator IDs
      
      * Finish up drafting imonline
      
      * Rework offchain workers API.
      
      * Rework API implementation.
      
      * Make it compile for wasm, simplify app_crypto.
      
      * Fix compilation of im-online.
      
      * Fix compilation of im-online.
      
      * Fix more compilation errors.
      
      * Make it compile.
      
      * Fixing tests.
      
      * Rewrite `keystore`
      
      * Fix session tests
      
      * Bring back `TryFrom`'s'
      
      * Fix `srml-grandpa`
      
      * Fix `srml-aura`
      
      * Fix consensus babe
      
      * More fixes
      
      * Make service generate keys from dev_seed
      
      * Build fixes
      
      * Remove offchain tests
      
      * More fixes and cleanups
      
      * Fixes finality grandpa
      
      * Fix `consensus-aura`
      
      * Fix cli
      
      * Fix `node-cli`
      
      * Fix chain_spec builder
      
      * Fix doc tests
      
      * Add authority getter for grandpa.
      
      * Test fix
      
      * Fixes
      
      * Make keystore accessible from the runtime
      
      * Move app crypto to its own crate
      
      * Update `Cargo.lock`
      
      * Make the crypto stuff usable from the runtime
      
      * Adds some runtime crypto tests
      
      * Use last finalized block for grandpa authority
      
      * Fix warning
      
      * Adds `SessionKeys` runtime api
      
      * Remove `FinalityPair` and `ConsensusPair`
      
      * Minor governance tweaks to get it inline with docs.
      
      * Make the governance be up to date with the docs.
      
      * Build fixes.
      
      * Generate the inital session keys
      
      * Failing keystore is a hard error
      
      * Make babe work again
      
      * Fix grandpa
      
      * Fix tests
      
      * Disable `keystore` in consensus critical stuff
      
      * Build fix.
      
      * ImOnline supports multiple authorities at once.
      
      * Update core/application-crypto/src/ed25519.rs
      
      * Merge branch 'master' into gav-in-progress
      
      * Remove unneeded code for now.
      
      * Some `session` testing
      
      * Support querying the public keys
      
      * Cleanup offchain
      
      * Remove warnings
      
      * More cleanup
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarBenjamin Kampmann <[email protected]>
      
      * More cleanups
      
      * JSONRPC API for setting keys.
      
      Also, rename traits::KeyStore* -> traits::BareCryptoStore*
      
      * Bad merge
      
      * Fix integration tests
      
      * Fix test build
      
      * Test fix
      
      * Fixes
      
      * Warnings
      
      * Another warning
      
      * Bump version.
      1a524b82
  29. Jul 29, 2019
    • Kian Paimani's avatar
      Refactor sr_primitives. (#3214) · 79feb23a
      Kian Paimani authored
      * refactor sr_primitives.
      
      * Fix try build error.
      
      * Line-width
      
      * Ui test.
      
      * Final fixes.
      
      * Fix build again.
      
      * bring back ui test.
      
      * Fix unsigned import.
      
      * Another ui fix.
      
      * Also refactor substrate-primitives
      
      * Fix benchmarks.
      
      * Fix doc test.
      
      * fix doc tests
      79feb23a
  30. Jul 25, 2019
    • Kian Peymani's avatar
      Weight annotation. (#3157) · 002acb93
      Kian Peymani authored
      
      
      * Make extrinsics extensible.
      
      Also Remove old extrinsic types.
      
      * Rest of mockup. Add tips.
      
      * Fix some build issues
      
      * Runtiem builds :)
      
      * Substrate builds.
      
      * Fix a doc test
      
      * Compact encoding
      
      * Extract out the era logic into an extension
      
      * Weight Check signed extension. (#3115)
      
      * Weight signed extension.
      
      * Revert a bit + test for check era.
      
      * Update Cargo.toml
      
      * Update node/cli/src/factory_impl.rs
      
      * Update node/executor/src/lib.rs
      
      * Update node/executor/src/lib.rs
      
      * Don't use len for weight - use data.
      
      * Operational Transaction; second attempt (#3138)
      
      * working poc added.
      
      * some fixes.
      
      * Update doc.
      
      * Fix all tests + final logic.
      
      * more refactoring.
      
      * nits.
      
      * System block limit in bytes.
      
      * Silent the storage macro warnings.
      
      * More logic more tests.
      
      * Fix import.
      
      * Refactor names.
      
      * Fix build.
      
      * Update srml/balances/src/lib.rs
      
      * Final refactor.
      
      * Bump transaction version
      
      * Fix weight mult test.
      
      * Fix more tests and improve doc.
      
      * Bump.
      
      * Make some tests work again.
      
      * Fix subkey.
      
      * Remove todos + bump.
      
      * First draft of annotating weights.
      
      * Refactor weight to u64.
      
      * More refactoring and tests.
      
      * New convert for weight to fee
      
      * more tests.
      
      * remove merge redundancy.
      
      * Fix system test.
      
      * Bring back subkey stuff.
      
      * a few stress tests.
      
      * fix some of the grumbles.
      
      * Final nits.
      
      * Update srml/system/src/lib.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Scale weights by 1000.
      
      * Bump.
      
      * Fix decl_storage test.
      002acb93
  31. Jul 24, 2019
    • thiolliere's avatar
      Staking rate targeting and specific rewards. (#2882) · 2b6f664c
      thiolliere authored
      
      
      * PNPoS implementation
      
      * wip: change staking api
      
      * code readibility
      
      * fix overflow
      
      * comment
      
      * license
      
      * doc
      
      * reorganize a bit
      
      * rename to proper english + doc
      
      * address comments
      
      * refactor unused mock
      
      * fix add_point
      
      * update tests
      
      * add not equalize to ci
      
      * Revert "add not equalize to ci"
      
      This reverts commit 1c61c25874b04b1cdfadd7d353b75a189a59ad35.
      
      * bring test back
      
      * update locks
      
      * fix genesis config
      
      * add authorship event handler + test
      
      * uncouple timestamp from staking
      
      * use on finalize instead
      
      * remove todo
      
      * simplify mock
      
      * address comment
      
      * doc
      
      * merge test
      
      * fmt
      
      * remove todo todo
      
      * move add_reward_point to regular function
      
      * doc
      
      * doc
      
      * increase version
      
      * doc and fmt
      
      * Update srml/staking/src/inflation.rs
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      
      * Fix some doc typos
      2b6f664c
  32. 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 <[email protected]>
      
      * 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 <[email protected]>
      
      * 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
  33. Jul 22, 2019
    • Gavin Wood's avatar
      Extensible transactions (and tips) (#3102) · 78bc5edc
      Gavin Wood authored
      * Make extrinsics extensible.
      
      Also Remove old extrinsic types.
      
      * Rest of mockup. Add tips.
      
      * Fix some build issues
      
      * Runtiem builds :)
      
      * Substrate builds.
      
      * Fix a doc test
      
      * Compact encoding
      
      * Extract out the era logic into an extension
      
      * Weight Check signed extension. (#3115)
      
      * Weight signed extension.
      
      * Revert a bit + test for check era.
      
      * Update Cargo.toml
      
      * Update node/cli/src/factory_impl.rs
      
      * Update node/executor/src/lib.rs
      
      * Update node/executor/src/lib.rs
      
      * Don't use len for weight - use data.
      
      * Operational Transaction; second attempt (#3138)
      
      * working poc added.
      
      * some fixes.
      
      * Update doc.
      
      * Fix all tests + final logic.
      
      * more refactoring.
      
      * nits.
      
      * System block limit in bytes.
      
      * Silent the storage macro warnings.
      
      * More logic more tests.
      
      * Fix import.
      
      * Refactor names.
      
      * Fix build.
      
      * Update srml/balances/src/lib.rs
      
      * Final refactor.
      
      * Bump transaction version
      
      * Fix weight mult test.
      
      * Fix more tests and improve doc.
      
      * Bump.
      
      * Make some tests work again.
      
      * Fix subkey.
      
      * Remove todos + bump.
      
      * Ignore expensive test.
      
      * Bump.
      78bc5edc
  34. Jul 19, 2019
    • Amar Singh's avatar
      Transaction Fee Multiplier (#2854) · a757dfb2
      Amar Singh authored
      
      
      * added fee calculations; need some type conversions
      
      * cleaned up make_payment and other stuff
      
      * rename vars to compile
      
      * add WeightToFee type
      
      * clean test files after new type added to balances
      
      * fmting
      
      * fix balance configs in tests
      
      * more fixing mocks and tests
      
      * more comprehensive block weight limit test
      
      * fix compilation errors
      
      * more srml/executive tests && started fixing node/executor tests
      
      * new fee multiplier; still overflows :(
      
      * perbill at the end attempt; needs to be changed
      
      * clean fmting, rename some vars
      
      * new PoC implementation.
      
      * test weight_to_fee range and verify functionality
      
      * 12 of 15 tests in node executor are passing
      
      * 1 test failing; big_block imports are failing for wrong reasons
      
      * Update srml/executive/src/lib.rs
      
      Co-Authored-By: default avatarKian Peymani <[email protected]>
      
      * Some cleanup.
      
      * consolidate tests in runtime impls
      
      * clean and condition executive for stateful fee range test
      
      * remove comments to self
      
      * Major cleanup.
      
      * More cleanup.
      
      * Fix lock files.
      
      * Fix build.
      
      * Update node-template/runtime/Cargo.toml
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Update node/executor/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Update node/executor/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Update node/executor/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Update node/executor/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Update node/executor/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Update node/executor/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Per-block update.
      
      * nit.
      
      * Update docs.
      
      * Fix contracts test.
      
      * Stateful fee update.
      
      * Update lock files.
      
      * Update node/runtime/src/impls.rs
      
      * Revamped again with fixed64.
      
      * fix cargo file.
      
      * nits.
      
      * Some cleanup.
      
      * Some nits.
      
      * Fix build.
      
      * Bump.
      
      * Rename to WeightMultiplier
      
      * Update node/executor/src/lib.rs
      
      Co-Authored-By: default avatarTomasz Drwięga <[email protected]>
      
      * Add weight to election module mock.
      
      * Fix build.
      
      * finalize merge
      
      * Update srml/system/src/lib.rs
      
      * Bring back fees.
      
      * Some nits.
      
      * Code shifting for simplicity.
      
      * Fix build + more tests.
      
      * Update weights.rs
      
      * Update core/sr-primitives/src/weights.rs
      
      * Update lib.rs
      
      * Fix test build
      a757dfb2
  35. Jul 11, 2019
    • Gavin Wood's avatar
      Convert unnecessary storage item to static. (#3093) · e4d45481
      Gavin Wood authored
      * Convert unnecessary storage item to static.
      
      * Polish
      
      * 6 second blocks.
      
      * Compile fixes
      
      * Bump runtime
      
      * Fix
      
      * Another fix
      
      * Import `srml_support::traits::Get`
      
      * Export MinimumPeriod from `decl_module!`
      
      * Remove `config` from Timestamp
      
      * Clean up warnings
      e4d45481