Skip to content
  1. Sep 06, 2019
    • Max Inden's avatar
      core/authority-discovery: Enable authorities to discover each other (#3452) · 7fc21cea
      Max Inden authored
      With the *authority-discovery* module an authoritative node makes itself
      discoverable and is able to discover other authorities. Once discovered, a node
      can directly connect to other authorities instead of multi-hop gossiping
      information.
      
      1. **Making itself discoverable**
      
          1. Retrieve its external addresses
      
          2. Adds its network peer id to the addresses
      
          3. Sign the above
      
          4. Put the signature and the addresses on the libp2p Kademlia DHT
      
      2. **Discovering other authorities**
      
          1. Retrieve the current set of authorities
      
          2. Start DHT queries for the ids of the authorities
      
          3. Validate the signatures of the retrieved key value pairs
      
          4. Add the retrieved external addresses as ~reserved~ priority nodes to the
             peerset
      
      
      * node/runtime: Add authority-discovery as session handler
      
      The srml/authority-discovery module implements the OneSessionHandler in
      order to keep its authority set in sync. This commit adds the module to
      the set of session handlers.
      
      * core/network: Make network worker return Dht events on poll
      
      Instead of network worker implement the Future trait, have it implement
      the Stream interface returning Dht events.
      
      For now these events are ignored in build_network_future but will be
      used by the core/authority-discovery module in subsequent commits.
      
      * *: Add scaffolding and integration for core/authority-discovery module
      
      * core/authority-discovery: Implement module logic itself
      7fc21cea
    • Wei Tang's avatar
      Consensus: Proof of Work (#3473) · b9e17824
      Wei Tang authored
      
      
      * consensus-pow: init primtives and verifier
      
      * consensus-pow: add total difficulty auxiliary
      
      * consensus-pow: implement total difficulty chain selection
      
      * consensus-pow: implement pow import queue
      
      * consensus-pow-primitives: add mine into PowApi
      
      * consensus-pow: implement mining
      
      * Update lock file
      
      * Style fixes
      
      No run-on expressions allowed.
      
      * consensus-pow: refactor register_pow_inherent_data_provider
      
      * consensus-pow: make PowApi::mine yieldable
      
      * consensus-pow: better mining loop
      
      * Add missing license header
      
      * consensus-pow-primitives: clarify the meaning of None for PowApi::verify
      
      * consensus-pow: changing total difficulty addition to use saturating add
      
      * consensus-pow: change mine-loop error to log on error! level
      
      * consensus-pow: allow inserting arbitrary preruntime digest for pow
      
      The preruntime digest can be intepreted by the runtime as the block author/coinbase.
      
      * Fix line width
      
      * More line width fixes
      
      * consensus-pow: separate difficulty, verify API
      
      This makes it more apparent that currently in PoW engine, `difficulty` should
      be input, not output.
      
      * srml-pow: implementation of average_span difficulty adjustment
      
      * srml-pow: basic blake2 algo example
      
      * srml-pow-average-span: make it not require genesis config
      
      * srml-pow: add support for authorship
      
      * Missing license headers
      
      * consensus-pow: PowAlgorithm trait generalization
      
      * Missing docs for consensus-pow
      
      * More docs
      
      * node-runtime: bump impl_version
      
      * Add rationale for difficulty type
      
      * consensus-pow: refactor aux_key
      
      * Update lock file
      
      * Update core/consensus/pow/src/lib.rs
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Update core/consensus/pow/src/lib.rs
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Update core/consensus/pow/src/lib.rs
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Update core/consensus/pow/src/lib.rs
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Update core/consensus/pow/src/lib.rs
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Update core/consensus/pow/src/lib.rs
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Update core/consensus/pow/src/lib.rs
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Update core/consensus/pow/primitives/src/lib.rs
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Update core/consensus/pow/primitives/src/lib.rs
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Remove PowRuntimeAlgorithm
      
      * block_id -> parent_block_id
      
      * Auxiliary data -> auxiliary storage data
      
      * Fix error message
      
      * Fix compile
      
      * Update core/consensus/pow/primitives/src/lib.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Update core/consensus/pow/src/lib.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Update core/consensus/pow/primitives/src/lib.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Update core/consensus/pow/src/lib.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Fix crate description
      
      * More docs
      
      * Address grumbles
      
      1. Make preruntime Optional.
      2. Add more docs on what is `preruntie` and `round`.
      3. Replace `Default::default` with the approriate type.
      b9e17824
  2. Aug 20, 2019
    • Max Inden's avatar
      srml/authority-discovery: Introduce srml module to sign and verify (#3385) · 495ccb60
      Max Inden authored
      In order to have authorities (validators) discover each other, they need
      to publish their public addresses by their ip address on the Kademlia
      Dht indexed by their public key. This payload needs to be signed by a
      key identifying them as a valid authority.
      
      Code inside `/core` does not know the current set of authorities nor
      can it assume what kind of cryptography primitives are currently in use.
      Instead it can retrieve its public key and the current set of
      authorities from the runtime and have it sign and verify Dht payloads.
      
      This commit enables code in `/core` to do so by introducing a srml
      module and runtime api to:
      
      1. Retrieve own public key.
      
      2. Retrieve public keys of current authority set.
      
      3. Sign a Dht payload.
      
      4. Verify a Dht payload.
      
      This commit makes the logic from the previous commit
      (`core/consensus/common/primitives.ConsensusApi`)
      444bf719 obsolete and thus removes it.
      495ccb60
    • Tomasz Drwięga's avatar
      Custom RPC implementation for `node`. (#3109) · db5f4948
      Tomasz Drwięga authored
      * Allow RPCs to be customized.
      
      * Implement node-rpc extensions.
      
      * Working on a test.
      
      * Add node-testing crate.
      
      * Fix genesis test config
      
      * Fix nonce lookups.
      
      * Clean up.
      
      * Fix expected block type.
      
      * Make the RPC extension function optional.
      
      * Fix service doc test.
      
      * Bump jsonrpc.
      
      * Bump client version.
      
      * Update Cargo.lock
      
      * Update jsonrpc.
      
      * Fix build.
      
      * Remove unused imports.
      
      * Fix signed extra.
      
      * Post merge clean up.
      
      * Fix tests.
      
      * Patch hashmap-core.
      
      * Fix build.
      
      * Fix build.
      
      * Remove hashmap_core patches.
      db5f4948
  3. Aug 19, 2019
    • Michael Müller's avatar
      Introduce srml/scored-pool (#3381) · b9027af5
      Michael Müller authored
      
      
      * Introduce srml/scored-pool
      
      * Bump impl_version
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      
      * Remove unnecessary pub use
      
      * Remove unnecessary import
      
      * Adapt to InitializeMembers
      
      * Bump impl_version
      
      * Implement remarks (shortens code)
      
      * Improve complexity of score()
      
      Search and remove and search again for the
      new spot and insert then => O(2LogN).
      
      * Get rid of a clone()
      
      * Reduce complexity of issue_candidacy()
      
      * Add CandidateScored event + Improve comments
      
      * Fix naming
      
      * Use Lookup instead of AccountId as param
      
      * Use set_members_sorted instead of computing diff
      
      * Remove function which is only used during genesis
      
      * Get rid of rev() by changing sort order of Pool
      
      * Rename issue_candidacy to submit_candidacy
      
      * Shorten code
      
      * Remove find_in_pool() and have transactor submit index
      
      * Remove unnecessary dependency
      
      * Improve error messages
      
      * Improve naming
      
      * Improve comments
      
      * Make code clearer wrt which receiver to invoke
      
      * Adapt to new system trait
      
      * Refactor to request CandidateDeposit only once
      
      * Refactor to request Pool only once
      
      * Improve structure and comments
      b9027af5
  4. Aug 16, 2019
    • Tomasz Drwięga's avatar
      Offences reporting and slashing (#3322) · 5d992d80
      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.
      5d992d80
  5. Aug 07, 2019
    • Arkadiy Paronyan's avatar
      Set uncles inherent (#3317) · d6eb5dd8
      Arkadiy Paronyan authored
      * Include uncles
      
      * Filter missing uncles
      
      * Moved inherent registration to a new crate
      
      * Ignore invalid inherent encoding
      d6eb5dd8
    • Gavin Wood's avatar
      Refactor key management (#3296) · ed61b1fd
      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.
      ed61b1fd
  6. Jul 22, 2019
  7. Jul 20, 2019
    • Michael Müller's avatar
      Introduce srml/im-online (#3079) · aa8c06a0
      Michael Müller authored
      
      
      * Fix grammar and typo
      
      * Extend network service
      
      * Extend offchain API
      
      * Support creating unsigned UncheckedExtrinsic
      
      * Introduce srml/im-online
      
      * Bump impl and spec version
      
      * Fix web-wasm test
      
      * Apply suggestions from code review
      
      Remove parity-multiaddr dependency
      
      Co-Authored-By: default avatarPierre Krieger <[email protected]>
      
      * Replace transmute with from_raw_parts
      
      * Replace PeerId.to_string() with .to_base58()
      
      Co-Authored-By: default avatarPierre Krieger <[email protected]>
      
      * Update Cargo.lock
      
      * Bump impl and spec version (again)
      
      It was updated in master in the meantime.
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Address comments
      
      * Add public function is_online_in_current_session()
      
      * Bump spec_version
      
      * Fix doc tests
      
      * Improve comments
      
      * Remove superfluous line
      
      * Name parameters consistently
      
      * Implement comments
      
      * Switch From to TryFrom
      
      * Use Vec instead of HashSet
      
      * Fix tests
      
      * Revert me: local testing
      
      * Fix check if already sent during session
      
      We gossip each session, hence we need to check
      if already sent in this session (not era).
      
      * Fix typos
      
      * Consistent terminology
      
      * Revert "Revert me: local testing"
      
      This reverts commit 73fbc29f.
      
      * Introduce IsMember trait
      
      * Implement misc comments
      
      * Remove unused function
      
      * Fix test
      
      * Fix external_addresses being written
      
      * Fix test
      
      * Add necessary trait bound
      
      * Do not increment version
      
      * Update lib.rs
      aa8c06a0
  8. Jul 11, 2019
  9. Jul 10, 2019
    • Gavin Wood's avatar
      Technical Committee (#3041) · 43dac628
      Gavin Wood authored
      * Add copy of council seats as elections module.
      
      * Split council into collective and elections modules.
      
      Make collective instanceable.
      
      * Propagate changes to the runtime and fix origin/event
      
      * insert_ref and put_ref to avoid copies.
      
      * Add tests
      
      * Fix up collective's tests
      
      * One more test
      
      * Fix elections module tests
      
      * Missed merge line
      
      * Minor fix
      
      * Test fixes
      
      * Line widths
      
      * Line widths
      
      * Rntime version
      
      * Remove comment
      
      * Deduplicate
      
      * Bump runtime again
      
      * Fix test
      43dac628
  10. Jul 04, 2019
    • Bastian Köcher's avatar
      Build WASM binaries as part of cargo build (#2868) · 108704a2
      Bastian Köcher authored
      
      
      * Introduce `wasm-builder` and `wasm-builder-runner` to retire `build.sh`
      
      Make use of `wasm-builder` in `test-runtime`.
      
      * Add build script and remove the wasm project
      
      * Port `node-runtime` to new wasm-builder
      
      * Make `substrate-executor` tests work with `wasm-builder`
      
      * Move `node-template` to `wasm-builder`
      
      * Remove `build.sh` :)
      
      * Remove the last include_bytes
      
      * Adds the missing build.rs files
      
      * Remove `build.sh` from CI
      
      * Debug CI
      
      * Make it work in CI
      
      * CI attempt 3
      
      * Make `substrate-runtime-test` compile on stable
      
      * Ahhh, some missed `include_bytes!`
      
      * AHH
      
      * Add suggestions
      
      * Improve search for `Cargo.lock` and don't panic if it is not found
      
      * Searching from manifest path was no good idea
      
      * Make the `wasm-builder` source better configurable
      
      * Expose the bloaty wasm binary as well
      
      * Make sure to rerun WASM recompilation on changes in dependencies
      
      * Introduce new `WASM_BUILD_TYPE` env and make sure to call `build.rs` on
      changes to env variables
      
      * Remove `build.sh` from READMEs
      
      * Rename the projects
      
      * Fixes CI
      
      * Update lock file
      
      * Fixes merge-conflict
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarTriplEight <[email protected]>
      
      * Try to make windows happy
      
      * Replace all back slashes in paths with slashes
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarPierre Krieger <[email protected]>
      
      * Use cargo from `CARGO` env variable
      
      * Fix compilation
      
      * Use `rustup` for running the nightly build
      
      * Make individual projects skipable
      
      * Fix compilation
      
      * Fixes compilation
      
      * Build all WASM projects in one workspace
      
      * Replace more back slashes!
      
      * Remove `inlcude_bytes!`
      
      * Adds some documentation
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarShawn Tabrizi <[email protected]>
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarShawn Tabrizi <[email protected]>
      
      * More review comments
      
      * Update `Cargo.lock`
      
      * Set license
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarjoe petrowski <[email protected]>
      
      * More review comments + adds `TRIGGER_WASM_BUILD` env
      
      * Fix doc tests
      
      * Increase version + update README
      
      * Switch crates.io version of `wasm-builder`
      
      * Update README
      
      * Switch to released version of `wasm-builder-runner`
      108704a2
  11. Jun 26, 2019
  12. Jun 19, 2019
  13. Jun 14, 2019
    • Gavin Wood's avatar
      New sessions, kill consensus module (#2802) · dbf32262
      Gavin Wood authored
      
      
      * Draft of new sessions
      
      * Reintroduce tuple impls
      
      * Move staking module to new session API
      
      * More work on staking and grandpa.
      
      * Use iterator to avoid cloning and tuple macro
      
      * Make runtime build again
      
      * Polish the OpaqueKeys devex
      
      * Move consensus logic into system & aura.
      
      * Fix up system module
      
      * Get build mostly going. Stuck at service.rs
      
      * Building again
      
      * Update srml/staking/src/lib.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Refactoring out Consensus module, AuthorityIdOf, &c.
      
      * Refactored out DigestItem::AuthoritiesChanged. Building.
      
      * Remove tentative code
      
      * Remove invalid comment
      
      * Make Seal opaque and introduce nice methods for handling opaque items.
      
      * Start to use proper digest for Aura authorities tracking.
      
      * Fix up grandpa, remove system::Raw/Log
      
      * Refactor Grandpa to use new logging infrastructure.
      
      Also make authorityid/sessionkey static. Switch over to storing
      authorities in a straight Vec.
      
      * Building again
      
      * Tidy up some AuthorityIds
      
      * Expunge most of the rest of the AuthorityKey confusion.
      
      Also, de-generify Babe and re-generify Aura.
      
      * Remove cruft
      
      * Untangle last of the `AuthorityId`s.
      
      * Sort out finality_tracker
      
      * Refactor median getting
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarRobert Habermeier <[email protected]>
      
      * Session tests works
      
      * Update core/sr-primitives/src/generic/digest.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Session tests works
      
      * Fix for staking from @dvc94ch
      
      * log an error
      
      * fix test runtime build
      
      * Some test fixes
      
      * Staking mock update to new session api.
      
      * Fix build.
      
      * Move OpaqueKeys to primitives.
      
      * Use on_initialize instead of check_rotate_session.
      
      * Update tests to new staking api.
      
      * fixup mock
      
      * Fix bond_extra_and_withdraw_unbonded_works.
      
      * Fix bond_with_little_staked_value_bounded_by_slot_stake.
      
      * Fix bond_with_no_staked_value.
      
      * Fix change_controller_works.
      
      * Fix less_than_needed_candidates_works.
      
      * Fix multi_era_reward_should_work.
      
      * Fix nominating_and_rewards_should_work.
      
      * Fix nominators_also_get_slashed.
      
      * Fix phragmen_large_scale_test.
      
      * Fix phragmen_poc_works.
      
      * Fix phragmen_score_should_be_accurate_on_large_stakes.
      
      * Fix phragmen_should_not_overflow.
      
      * Fix reward_destination_works.
      
      * Fix rewards_should_work.
      
      * Fix sessions_and_eras_should_work.
      
      * Fix slot_stake_is_least_staked_validator.
      
      * Fix too_many_unbond_calls_should_not_work.
      
      * Fix wrong_vote_is_null.
      
      * Fix runtime.
      
      * Fix wasm runtime build.
      
      * Update Cargo.lock
      
      * Fix warnings.
      
      * Fix grandpa tests.
      
      * Fix test-runtime build.
      
      * Fix template node build.
      
      * Fix stuff.
      
      * Update Cargo.lock to fix CI
      
      * Re-add missing AuRa logs
      
      Runtimes are required to know about every digest they receive ― they
      panic otherwise.  This re-adds support for AuRa pre-runtime digests.
      
      * Update core/consensus/babe/src/digest.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Kill log trait and all that jazz.
      
      * Refactor staking tests.
      
      * Fix ci runtime wasm check.
      
      * Line length 120.
      
      * Make tests build again
      
      * Remove trailing commas in function declarations
      
      The `extern_functions!` macro doesn’t like them, perhaps due to a bug in
      rustc.
      
      * Fix type error
      
      * Fix compilation errors
      
      * Fix a test
      
      * Another couple of fixes
      
      * Fix another test
      
      * More test fixes
      
      * Another test fix
      
      * Bump runtime.
      
      * Wrap long line
      
      * Fix build, remove redundant code.
      
      * Issue to track TODO
      
      * Leave the benchmark code alone.
      
      * Fix missing `std::time::{Instant, Duration}`
      
      * Indentation
      
      * Aura ConsensusLog as enum
      dbf32262
  14. Jun 11, 2019
    • Tomasz Drwięga's avatar
      Make test-client generic over runtime (#2824) · 6df8a813
      Tomasz Drwięga authored
      * Make test-client generic over runtime.
      
      * Make sure genesis storage is constructed correctly.
      
      * Use prelude in tests.
      
      * Add an example of how to use test-client with node/runtime.
      
      * Bump version.
      
      * Rename test-clients.
      6df8a813
  15. Jun 04, 2019
    • Tomasz Drwięga's avatar
      JSON-RPC client generation (#2778) · e8739300
      Tomasz Drwięga authored
      * Bump jsonrpc & generate clients.
      
      * Initial version of JSON-RPC client.
      
      * Re-wort
      
      * Remove spurious `#[derive(Encode, Decode)]`
      
      They did not compile, since `Encode` and `Decode` are deliberately not
      implemented for `usize`.
      
      Fixes #2742.
      
      * Re-write rpc-client example.
      
      * Update to jsonrpc=12.0.0
      
      * Remove unnecessary import
      
      * Bump version.
      
      * Revert version bump.
      
      * Bump again.
      e8739300
  16. May 24, 2019
    • Tomasz Drwięga's avatar
      Expunge error-chain (feat. tomaka) (#2662) · d713fbc3
      Tomasz Drwięga authored
      * Remove error_chain
      
      * Expunge error-chain from rpc and service.
      
      * Expunge from transaction pool.
      
      * Expunge from node/cli
      
      * Expunge from keystore.
      
      * Remove some boilerplate.
      
      * Fix remaining stuff.
      
      * Improve on deprecation message.
      
      * Fix issues.
      
      * Fix trnsaction pool tests.
      
      * Fix the rest.
      
      * Fix borked merge.
      
      * Update lock
      d713fbc3
  17. May 10, 2019
  18. May 09, 2019
  19. Apr 15, 2019
    • DemiMarie-parity's avatar
      Add basic BABE consensus type (#2165) · dd2225d5
      DemiMarie-parity authored
      
      
      * Add basic BABE consensus type
      
      * Update core/consensus/babe/slots/Cargo.toml
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Fix parameterization and run `rustfmt`
      
      * Respond to review comments
      
      * Update various Cargo.lock files
      
      * Revert "Update various Cargo.lock files"
      
      This reverts commit af53d762
      
      .
      
      * `BabeSealSignature` → `BabeSeal`
      
      * Move slot code to its own crate
      
      This was highly non-trivial, due to cyclic dependencies.
      
      * Remove redundancy between AuRa and BABE
      
      Some of the code duplication was removed using a macro.
      
      * Fix build error
      
      * Avoid non-`#[doc(hidden)]` re-exports
      
      Also, bump some library versions in `Cargo.toml`.
      
      * Remove dead code in AuRa
      
      * Remove impl_slot macro
      
      It was more trouble than it was worth.
      
      Also, delete useless dependencies on Serde.
      
      * AuRa and BABE need different DB keys
      
      * Bring back `aura::Network`, but deprecate it.
      
      * Improve docs and add `slot_duration` inherent method
      
      * Add docs to `substrate_consensus_aura::SlotDuration`
      
      * Add missing documentation and #![forbid(missing_docs, unsafe_code)]
      
      * Add a #![forbid(missing_docs)]
      
      * Remove dependency of `test-runtime` on `slots`
      
      * Update core/consensus/babe/src/lib.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Remove wrongly added file
      
      * Fix copyright notice
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Bump `impl_version` and `spec_version`
      
      * Fix deprecation version; remove spurious carets
      
      * Update Cargo.lock
      
      * Update dependencies
      dd2225d5
  20. Apr 02, 2019
    • cheme's avatar
      no_std support for substrate trie (#2146) · f4ced940
      cheme authored
      * no_std trie compile in test_runtime (require to set nightly feature due
      to the way hashbrown currently works).
      
      * No nightly with hashmap_core.
      
      * using crate elastic-array
      
      * switch to publish trie crates
      
      * fix default array decl
      
      * bump impl_version for ci
      
      * set all semver when possible wasm, and remove redundant code.
      
      * Actually test use_trie function
      
      * impl version +1
      
      * Bump impl version
      f4ced940
  21. Apr 01, 2019
    • Gav Wood's avatar
      Bump version to 1.0.0 globally (#2149) · d57202d5
      Gav Wood authored
      * Bump versionb globally
      
      * Rebuild and fix
      
      * Rename fixes
      
      * Rebuild
      
      * Minor fix and code formatting for validator election
      
      * Fix tests
      
      * More test fixes
      
      * Fix several bugs in phragmen elections.
      
      * Rebuild, remove pointless closures
      d57202d5
  22. Mar 23, 2019
  23. Mar 21, 2019
    • Pierre Krieger's avatar
      Add a substrate-peerset crate (#2042) · c1d342a3
      Pierre Krieger authored and asynchronous rob's avatar asynchronous rob committed
      * Add a substrate-peerset crate
      
      * Some adjustements
      
      * More adjustements
      
      * Use a temporary libp2p branch
      
      * Add back-off mechanism
      
      * Fix RPC tests
      
      * Some adjustements
      
      * Another libp2p bugfix
      
      * Do a round-robin in the peerset
      
      * Use a real dependency instead of a patch for libp2p
      
      * Initialize reserved nodes correctly
      
      * Better diagnostic for no address
      
      * Don't allocate slots if in reserved only
      
      * Ban node on dial failure
      
      * Fix indentation
      c1d342a3
  24. Mar 20, 2019
    • Gav Wood's avatar
      Introduce safe types for handling imbalances (#2048) · cc8f93c0
      Gav Wood authored and asynchronous rob's avatar asynchronous rob committed
      * Be a little safer with total issuance.
      
      * PairT instead of _Pair
      
      * Remove rev causing upset
      
      * Remove fees stuff.
      
      * Fix build (including tests)
      
      * Update runtime, bump version
      
      * Fix
      
      * Handle gas refunds properly.
      
      * Rename identifier
      
      ala #2025
      
      * Address grumbles
      
      * New not-quite-linear-typing API
      
      * Slimmer API
      
      * More linear-type test fixes
      
      * Fix tests
      
      * Tidy
      
      * Fix some grumbles
      
      * Keep unchecked functions private
      
      * Remove another less-than-safe currency function and ensure that
      contracts module can never create cash.
      
      * Address a few grumbles and fix tests
      cc8f93c0
  25. Mar 18, 2019
    • Shawn Tabrizi's avatar
      Remove upgrade-key module from SRML (#2018) · 31a398f7
      Shawn Tabrizi authored
      * Remove upgrade-key from SRML. Update chain spec builder text
      
      * bump spec_version, rebuild wasm
      
      * Remove upgrade-key from SRML. Update chain spec builder text
      
      * bump spec_version, rebuild wasm
      
      * Rebase, Rebuild
      
      * Rebuild wasm
      31a398f7
  26. Mar 15, 2019
    • thiolliere's avatar
      Implement parameterisable modules (#1800) · 7c95fb0b
      thiolliere authored
      * first implementation
      
      * remove done comment
      
      * origin done
      
      * impl log for instance
      
      * impl inherent for instance
      
      * Fix wasm build + full example build
      
      this requires parity codec implements codec for core::marker::PhantomData
      
      * patch parity-codec link to github branch
      
      * improve internal names and fix instance prefix
      
      * Fix in macros
      
      * add test modules for support
      
      this allow to test for construct_runtime as well.
      
      The reason to have put that in another crate is:
      * if we put test in `tests/` dir of srml/support then decl_storage fails to get
        srml-support access because it believes it is inside srml-support
        crate and so derive access to `quote!{ crate }` but this is wrong
        (and I don't see any way to prevent that, and it only bother us so I
        don't think that matters that much)
      * if we put test inside lib.rs then contruct_runtime cannot be used
        because it call some macros that are defined with macros
        (decl_outer_event and decl_outer_origin) and thus rustc complains.
      
      * defaultinstance to its own struct to avoid errors
      
      * enforce <T, I> for Event and Config, impl test
      
      * add origin, log, inherent to test
      
      * test more code generation
      
      * basic storage test
      
      * fix typo
      
      * rename a few imports and field
      
      * delete wip test in example and runtime
      
      * change default prefix to make it backward compatible with test
      
      * rename Instance to I and Instantiable to Instance
      
      note: the name of generic parameter I is only enforce by decl_module!
      and this could be rewritten
      
      * doc
      
      * clean old TODOs
      
      * update parity-codec to 3.2
      
      * update node impl version + builds
      
      * fix warning
      
      * fix unrelated grandpa test
      
      * refactor code
      7c95fb0b
  27. Mar 05, 2019
    • asynchronous rob's avatar
      Offline fallback for GRANDPA (#1619) · 4399e579
      asynchronous rob authored
      
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * skeleton for finality tracker
      
      * dispatch events when nothing finalized for a long time
      
      * begin integrating finality tracker into grandpa
      
      * add delay field to pending change
      
      * add has_api_with function to sr_version for querying APIs
      
      * partially integrate new force changes into grandpa
      
      * implement forced changes
      
      * get srml-grandpa compiling
      
      * Update core/finality-grandpa/src/authorities.rs
      
      Co-Authored-By: default avatarrphmeier <[email protected]>
      
      * Update core/finality-grandpa/src/authorities.rs
      
      Co-Authored-By: default avatarrphmeier <[email protected]>
      
      * Update core/finality-grandpa/src/authorities.rs
      
      Co-Authored-By: default avatarrphmeier <[email protected]>
      
      * remove explicit dependence on CoreApi
      
      * increase node runtime version
      
      * integrate grandpa forced changes into node runtime
      
      * add some tests to finality-tracker
      
      * integrate finality tracking into node-runtime
      
      * test forced-change logic
      
      * test forced changes in the authority-set handler
      
      * kill some unneeded bounds in client
      
      * test forced-changes in finality-grandpa and fix logic
      
      * build wasm and finality-tracker is no-std
      
      * restart voter on forced change
      
      * allow returning custom error type from lock_import_and_run
      
      * extract out most DB logic to aux_schema and use atomic client ops
      
      * unify authority set writing
      
      * implement set pausing
      
      * bump runtime version
      
      * note on DB when we pause.
      
      * core: grandpa: integrate forced changes with multiple pending standard changes
      
      * core: grandpa: fix AuthoritySet tests
      
      * runtime: bump impl_version
      
      * core: clear pending justification requests after forced change import
      
      * srml: finality-tracker: use FinalizedInherentData
      
      * core: log requests for clearing justification requests
      
      * core, node: update runtimes
      
      * core: grandpa: fix tests
      
      * core: grandpa: remove todos and add comments
      
      * core: grandpa: use has_api_with from ApiExt
      
      * core: fix tests
      
      * core: grandpa: remove unnecessary mut modifier
      
      * core: replace PostImportActions bitflags with struct
      
      * core: grandpa: restrict genesis on forced authority set change
      
      * core: grandpa: add more docs
      
      * core: grandpa: prevent safety violations in Environment::finalize_block
      
      * core: grandpa: register finality tracker inherent data provider
      
      * core: grandpa: fix tests
      
      * node: update runtime blobs
      
      * core: grandpa: remove outdated todo
      
      * core: aura: fix typo in log message
      
      * core: grandpa: check re-finalization is on canonical chain
      
      * srml: finality-tracker: fix initialization
      
      * node: update runtime wasm
      
      * srml: finality-tracker: don't re-initialize config keys
      4399e579
  28. Feb 19, 2019
    • André Silva's avatar
      Import multiple authority set change blocks (#1808) · 18bbe130
      André Silva authored
      * core: implement logic for tracking dag of possible pending changes
      
      * core: move pending justifications dag to its own crate
      
      * core: remove unnecessary clone bounds on dag
      
      * core: request justifications in-order from the dag
      
      * core: dag: rename changes variables to node
      
      * core: dag: allow finalizing blocks not part of dag
      
      * core: dag: track best finalized number
      
      * core: dag: add more tests
      
      * core: sync: clean up pending justifications dag
      
      * core: dag: derive codec decode encode
      
      * core: dag: better error support
      
      * core: dag: add finalization guarded by predicate
      
      * core: grandpa: track multiple authority set changes in dag
      
      * core: dag: add pre-order iterator
      
      * core: grandpa: request justifications on startup
      
      * core: dag: rearrange order of definitions
      
      * core: rename util/dag to util/fork_tree
      
      * core: fork_tree: add docs
      
      * core: fork_tree: add more tests
      
      * core: fork_tree: fix issues found in tests
      
      * core: grandpa: fix authorities tests
      
      * core: grandpa: add docs for is_descendent_of
      
      * core: sync: add docs for PendingJustifications
      
      * core: sync: add test for justification requests across forks
      
      * core: sync: don't resend import or finality notifications in tests
      
      * core: grandpa: add test for importing multiple change blocks
      
      * core: grandpa: fix logic for checking if a block enacts a change
      
      * core: grandpa: fix authorities tests
      18bbe130
  29. Feb 15, 2019
    • Xiliang Chen's avatar
      Transaction Fee Module (#1648) · 14ee64c3
      Xiliang Chen authored
      * wip
      
      * Split bytes fee charging and charging by amount into different traits.
      
      * Move to edition 2018.
      
      * Implemented charge fee traits for fees module.
      
      * Implemented 'on_finalise' for fee module.
      
      * Updated fees finalize impl.
      
      * Renaming and documentation update.
      
      * Added overflow & underflow check for fee calculation.
      
      * Added mock and unit tests for fee module.
      
      * More unit tests for fees module.
      
      * Fixed srml-executive unit tests.
      
      * Remove transaction base/bytes fee from balances module, fix unit tests.
      
      * fix compile error
      
      * Fixed unit test.
      
      * Minor fixes.
      
      * Bump spec version.
      
      * Bump spec version.
      
      * Updated fees module and runtime wasm.
      
      * Fees module code style improvement; updated runtime wasm.
      
      * Bump spec and impl version.
      14ee64c3
  30. Feb 13, 2019
  31. Feb 06, 2019
    • Bastian Köcher's avatar
      Moves `node-template` into substrate repo (#1637) · e4c8d74c
      Bastian Köcher authored
      * Make runtime macros work without required `macro_use`
      
      * Adds node-template
      
      * Adds node-template-release tool
      
      * Fixes building `node-template` and improve the release
      
      * Add `profile.release` by release script to remove warning
      
      * Adds script for releasing the node template
      
      * Fixes compilation after master merge
      
      * Port node-template to edition 2018
      
      * Remove license
      
      * Fixes compilation after master merge
      
      * Add `node-template-release.sh` into the CI
      
      * WIP Ci integrate node template (#1701)
      
      * copy artifacts to s3 bucket latest path
      
      * typo
      
      * bucket name
      
      * Update wasm files
      e4c8d74c
    • Wei Tang's avatar
      Update trie to v0.11 (#1704) · 2056e4cd
      Wei Tang authored
      * Update trie to v0.11
      
      * Update wasm runtimes
      2056e4cd
    • Wei Tang's avatar
      Support multi-hash in multi-trie via PlainDB (#1106) · dd3fdeed
      Wei Tang authored and Arkadiy Paronyan's avatar Arkadiy Paronyan committed
      * Temporarily pin trie to #2
      
      * Use generic and delay trait object casting
      
      Rust does not support super-trait upcasting
      
      * Add PlainDB impl for Ephemeral
      
      * Add PlainDB trait alias for completeness
      
      * Use PlainDB for test TrieBackendStorage fetch
      
      We always check overlay first for a storage fetch, which already checked null data. Using PlainDB here makes it work
      nicer with other PlainDB overlays.
      
      * Update trie reference
      
      * Use HashDBRef in places when approriate
      
      * Use PlainDBRef in places when approriate
      
      * Update trie crate reference
      
      * Remove unused HashDB::keys
      
      * Patch dependencies
      
      * Fix cargolock
      
      * Update cargo lock again
      dd3fdeed
  32. Feb 04, 2019
  33. Jan 25, 2019
    • Benjamin Kampmann's avatar
      Update dependencies (#1527) · f17d79fb
      Benjamin Kampmann authored
      * update to latest env_logger
      
      * roundabout dependency update
      
      * Update to latest vengen
      
      * Update rand to 0.6
      
      * Update to latest rng shuffle API
      
      * Roundabout update of dependencies
      
      * Update rustc_hex
      
      * Update wasm
      
      * Fix logging setup in tests
      
      * revert to fix test
      f17d79fb
  34. Jan 22, 2019
    • Bastian Köcher's avatar
      Rewrite Inherent data (#1488) · 53bf81e5
      Bastian Köcher authored
      
      
      * Implement new inherent data
      
      * Fixes compilation on wasm
      
      * Fixes after rebase
      
      * Switch back to generate inherent stuff by macro
      
      * Update after rebase
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarbkchr <[email protected]>
      
      * Fix compilation after rebase
      
      * Address grumbles
      
      * Remove `InherentDataProviders` from `Client`
      
      * Update wasm files after rebase
      
      * Address grumbles
      
      * Fixes compilation after latest merge
      
      * Last fix
      53bf81e5
  35. Jan 16, 2019
    • Gav Wood's avatar
      Split Indices module from Balances (#1404) · defa2ec3
      Gav Wood authored
      * Indices module
      
      * Remove indices stuff from balances
      
      * Rejob node, move Lookup into system.
      
      * Fix up some modules.
      
      * Fix democracy tests
      
      * Fix staking tests
      
      * Fix more tests
      
      * Final test fixes
      
      * Bump runtime versions
      
      * Assets uses compact dispatchers
      
      * Contracts module uses indexed addressing
      
      * Democracy has more compact encoding
      
      * Example now demonstrates compact eencoding
      
      * Sudo uses indexed address
      
      * Upgrade key also uses indexed lookups
      
      * Assets more compact types.
      
      * Fix test
      
      * Rebuild runtime, whitespace
      
      * Remove TOODs
      
      * Remove TODOs
      
      * Add a couple of tests back to balances.
      
      * Update lib.rs
      
      * Update lib.rs
      defa2ec3