Skip to content
  1. Dec 09, 2019
  2. Dec 06, 2019
  3. Nov 28, 2019
    • Svyatoslav Nikolsky's avatar
      Recover transaction pool on light client (#3833) · 2ffaf054
      Svyatoslav Nikolsky authored
      
      
      * recover tx pool on light client
      
      * revert local tests fix
      
      * removed import renamings
      
      * futures03::Future -> std::future::Future
      
      * Update core/transaction-pool/graph/src/error.rs
      
      Co-Authored-By: default avatarTomasz Drwięga <[email protected]>
      
      * replace remove_from_ready with remove_invalid
      
      * avoid excess hashing
      
      * debug -> warn
      
      * TransactionPool + BasicTransactionPool
      
      * pause future tx reject when resubmitting
      
      * bump impl_version to make CI happy
      
      * and revert back local test fixes
      
      * alter doc to restart CI
      
      * Transaction::clone() -> Transaction::duplicate()
      
      * transactions -> updated_tranasctions
      
      * remove explicit consensus-common ref
      
      * ::std:: -> std::
      
      * manual set/unset flag -> calling clusore with given flag value
      
      * removed comments
      
      * removed force argument
      
      * BestIterator -> Box<Iterator>
      
      * separate crate for TxPool + Maintainer trait
      
      * long line fix
      
      * pos-merge fix
      
      * fix benches compilation
      
      * Rename txpoolapi to txpool_api
      
      * Clean up.
      
      * Finalize merge.
      
      * post-merge fix
      
      * Move transaction pool api to primitives directly.
      
      * Consistent naming for txpool-runtime-api
      
      * Warn about missing docs.
      
      * Move  abstraction for offchain calls to tx-pool-api.
      
      * Merge RPC instantiation.
      
      * Update cargo.lock
      
      * Post merge fixes.
      
      * Avoid depending on client.
      
      * Fix build
      2ffaf054
  4. Nov 26, 2019
    • Benjamin Kampmann's avatar
      Remove all (non-dev) `client` references from `frame`, activate dependency enforcer (#4184) · b3a7c8e4
      Benjamin Kampmann authored
      * Move transaction pool to primitives
      
      * move backend, errors into primitives
      
      * remove unused client depencies
      
      * Move rpc-api into primitives
      
      * Move peerset back to client
      
      * Move rpc/api back to client, move palette/support/rpc into utils
      
      * move support-rpc into subfolder
      
      * move system-rpc into utils
      
      * move transaction-pool  and -graph back into client
      
      * fix broken imports
      
      * Clean up test primitives
      
      * Make support test utils independent of frame
      
      * remove unnecessary node dependencies from service
      
      * Reactivate dependency script:
       - only enforce the now achieved status quo will remain
       - allow for primitives to depend on /client for now without failing
       - more discriptive error message so people understand, what it wants
       - minor fix to differentiative between ../client and /client (which may be a subfolder)
       - don't allow this to fail anylonger.
      
      * fix doc comment
      
      * 'Should not' rather than 'must not'.
      
      * Revert unwanted dependency changes
      
      * fix faulty import
      
      * fixup derive_more version
      
      * fix wrong import path
      b3a7c8e4
  5. Nov 22, 2019
    • Shawn Tabrizi's avatar
      Rename Palette to FRAME (#4182) · 1f26179a
      Shawn Tabrizi authored
      
      
      * palette -> frame
      
      * PALETTE, Palette -> FRAME
      
      * Move folder pallete -> frame
      
      * Update docs/Structure.adoc
      
      Co-Authored-By: default avatarBenjamin Kampmann <[email protected]>
      
      * Update docs/README.adoc
      
      Co-Authored-By: default avatarBenjamin Kampmann <[email protected]>
      
      * Update README.adoc
      1f26179a
    • Ashley's avatar
      Grafana integration (#3913) · d9ca9750
      Ashley authored
      
      
      * Very WIP
      
      * record_metrics macro works
      
      * Integrate into service
      
      * Licenses and documentation
      
      * Remove unused Debugs, make respond function clearer
      
      * Conform to line widths, fix service test
      
      * Switch to storing the timestamps as millis instead
      
      * Update core/grafana-data-source/src/lib.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Transform timestamps to i64 in serialization
      
      * Fix license date
      
      * Binary sort to find selection range for metrics
      
      * Obey maxDataPoints
      
      * Run a cleaning future
      
      * Newlines at EOF
      
      * Update core/service/Cargo.toml
      
      Co-Authored-By: default avatarPierre Krieger <[email protected]>
      
      * Update core/grafana-data-source/src/lib.rs
      
      Co-Authored-By: default avatarPierre Krieger <[email protected]>
      
      * Fix indentation
      
      * Improve select_points
      
      * Made test more accurate
      
      * Inprogress
      
      * Use the same futures version as hyper for now
      
      * Error handling
      
      * Remove dependence on hyper's tokio feature
      
      * Added target_os flag
      
      * Update Cargo.toml
      
      Co-Authored-By: default avatarPierre Krieger <[email protected]>
      
      * Simplify example
      
      * Remove compat wildcard
      
      * Updated lock file
      
      * Fix indentation 😉
      d9ca9750
    • mattrutherford's avatar
      Add instrumentation, with performance profiling capability (#4132) · 3402cc88
      mattrutherford authored
      * Implement instrumentation for performance profiling
      
      * Add profiling to runtime functions declared in `decl_module` inc.
      `on_initialize` and `on_finalize`
      
      * Remove changes
      
      * add docs, tidy up
      
      * fix versions
      
      * fix copyright date
      
      * switch to hashmap and instant
      
      * update example
      
      * update example
      
      * implement receiver for logger and make default
      
      * fix comment
      
      * use `if_std!` macro
      
      * remove whitespace
      
      * fix whitespace
      
      * fix nits
      3402cc88
  6. Nov 21, 2019
  7. Nov 20, 2019
    • Benjamin Kampmann's avatar
      Move inherents to primitives (#4126) · 904acd5a
      Benjamin Kampmann authored
      * Split Aura and Timestamp inherents out of paint
      
      * fixup node depedencies
      
      * move babe inherents to primitives
      
      * move authorship inherents into primitives
      
      * Move finalty tracker inherents into primitives
      
      * fix aura primitives import
      904acd5a
  8. Nov 14, 2019
    • Benjamin Kampmann's avatar
      Reorganising the repository - external renames and moves (#4074) · f44873dc
      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
      f44873dc
  9. Nov 11, 2019
    • Bastian Köcher's avatar
      Refactor sr-api to not depend on client anymore (#4086) · d2c4b0db
      Bastian Köcher authored
      
      
      * Refactor sr-api to not depend on client anymore
      
      * Fix benches
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarTomasz Drwięga <[email protected]>
      
      * Apply suggestions from code review
      d2c4b0db
    • Tomasz Drwięga's avatar
      Typed chain state queries over rpc. (#4079) · 50c1cf5e
      Tomasz Drwięga authored
      * Create typed client helpers for querying chain state storage items declared by
      'decl_storage!'.
      
      * Update substrate-rpc-custom functions to use async await syntax.
      
      * The implementation of substrate-rpc-custom was a bit verbose and repetitive.
      This commit makes the implementation simpler by intruducing a struct which
      represents query for a typed value in storage. The new struct is called
      StorageQuery. A StorageQuery wraps a raw StorageKey but is not directy
      constructable. To construct a StorageQuery, the user must supply an
      implementation of a srml_support::storage::generator trait such as
      StorageValue or StorageMap.
      
      A type implementing one of the generator traits can be aquired by:
      A) marking a storage item as pub within a call to decl_storage (recommended)
      or B) implementing one of the generator types manually.
      
      While option B may sometimes me necessary, it's not recommended because
      separate manual implementaions may lose sync with the original definition.
      
      * drop unused dependency
      
      * fmt
      
      * Remove unnecessary pub from Authorities field in test-runtime storage
      declaration.
      
      This field was added to support a test in an earlier commit. The
      test no longer relies on test-runtime so the change can be reverted.
      
      * Move it to srml as support extension.
      
      * Fix long lines.
      
      * Fix.
      50c1cf5e
  10. Nov 10, 2019
    • Bastian Köcher's avatar
      Substrate runtime interface 2.0 (#4057) · a86bb37b
      Bastian Köcher authored
      * Adds first version of traits for generating the host functions
      
      * First steps of the procedural macro
      
      * Implements generation of the host extern functions
      
      * Prefix ext host function with snake case trait name
      
      * Implement host functions implementation on the host
      
      * Change `HostFunctions` interface
      
      * Implement `HostFunctions` for tuples
      
      * Make `WasmExecutor` generic over the host functions
      
      * Begin to add a test and make it compile
      
      * Make the test succeed
      
      * Add test to ensure that host functions are not found
      
      * It's alive! Make the `set_storage` test work
      
      * Add test for mutable references
      
      * Code cleanup and documentation etc
      
      * Add marker trait for types that should be passed as SCALE encoded
      
      * Inherit the visibility from the trait and more improvements
      
      * More impls and move them into their own file
      
      * Code simplification by dropping one trait
      
      * Give it a better name
      
      * Implement traits for arrays
      
      * Refactor code to support pass by codec/inner
      
      * Docs
      
      * Implement pass by inner for some crypto types and add a test
      
      * Implement exchangeable function support
      
      * Rewrite sr-io with as runtime interface
      
      * Start reworking after master merge
      
      * Adds `PassByCodec` derive
      
      * Adds `PassByInner` derive
      
      * Fix compilation errors
      
      * More implementations
      
      * Implement runtime interface traits for `str`
      
      * Make `sr-io` compile again
      
      * Fix more compilation errors
      
      * More progress on getting stuff back to compile
      
      * More compilation fixes
      
      * Fix warnings
      
      * Remove le conversions
      
      * Add support for `wasm_only` interfaces
      
      * Implement `Allocator` interface
      
      * Improve error message
      
      * Move `WasmAllocator` to `sr-io` and more clean ups
      
      * Use correct function signature for wasm functions
      
      * Store the host functions with the Wasm runtime
      
      * Docs update
      
      * Fix compilation after master merge
      
      * Remove `sr-io/without_std`
      
      * Make `srml-support` tests run again
      
      * More compilation error fixes
      
      * Use correct doc syntax
      
      * Fix test-runtime
      
      * Fix compilation
      
      * Catch native panics when executing the wasm runtime
      
      As with the native runtime, we now catch all native panics when we
      execute the wasm runtime. The panics inside the wasm runtime were
      already catched before by the wasm executor automatically, but any panic
      in the host functions could bring down the node. The recent switch to
      execute the native counterpart of the host function in `sr-io`, makes
      this change required. The native `sr-io` functions just `panic` when
      something is not provided or any other error occured.
      
      * Fix compilation
      
      * Don't panic in a panic
      
      * Move `sr-sandbox` to new runtime interface
      
      * Fixes tests after sandbox changes
      
      * Make sure we detect invalid utf8
      
      * Fixes after master merge
      
      * Adds pass by enum strategy
      
      * Fix wasmtime integration
      
      * Some macro structure clean up
      
      * Rework and test exchangebale host functions
      
      * PassBy derive macros documentation
      
      * Docs for `runtime_interface` macro
      
      * Support wild card argument names
      
      * Adds ui tests
      
      * Make sure that we are backwards compatible to the old runtime interfaces
      
      * Documentation
      
      * Fixes after latest master merge
      
      * Make `wasmtime` happy
      
      * Make `full_crypto` work
      
      * Make the new interface versionable
      
      * Rename `Sanboxing` to `Sandbox`
      
      * Don't finalize in test while importing
      
      * Fix Performance regression
      
      * Fix test
      a86bb37b
  11. Nov 03, 2019
    • Wei Tang's avatar
      Substrate EVM (#3927) · 1d5cae9a
      Wei Tang authored
      
      
      * srml-evm: init the basic structures
      
      * srml-evm: finish executor implementation
      
      * srml-evm: implement balance deposit and withdraw
      
      * srml-evm: implement the actuall call/create
      
      * srml-evm: use crates.io version of evm
      
      * srml-evm: fix no-std compile
      
      * Remove dependency patch
      
      * Update to evm 0.14
      
      * Use double map for account storage
      
      * Add precompiles support
      
      * Add some basic docs
      
      * Use runtime_io::chain_id()
      
      * Update srml/evm/src/lib.rs
      
      Co-Authored-By: default avatarXiliang Chen <[email protected]>
      
      * Update srml/evm/src/lib.rs
      
      Co-Authored-By: default avatarXiliang Chen <[email protected]>
      
      * Fix WithdrawReason
      
      * Unique saturate balance to u128
      
      * Unique saturate withdraw to u128
      
      * Remove extern crate alloc
      
      * Move account code to a separate storage and use ref for convert_account_id
      
      * More match cause for error message
      
      * Fix potential interger overflow
      
      * Use decode_len for fetching code length
      1d5cae9a
  12. Nov 01, 2019
    • Jim Posen's avatar
      Integrate Wasmtime for runtime execution (#3869) · c2975363
      Jim Posen authored
      * executor: Use non wasmi-specific execution in tests.
      
      * executor: Move all runtime execution tests into tests file.
      
      * executor: Use test_case macro to easily execute tests with different
      Wasm execution methods.
      
      * executor: Convert errors to strings with Display, not Debug.
      
      * node-executor: Rewrite benchmarks with criterion.
      
      They were not passing compilation before and criterion seems to be more
      widely used in Substrate.
      
      * executor: Begin implementation of Wasm runtime.
      
      The implementation demonstrates the outline of the execution, but does
      not link against the external host functions.
      
      * executor: Define and implement basic FunctionExecutor.
      
      The SandboxCapabilities::invoke is still left unimplemented.
      
      * executor: Implement host function trampoline generation.
      
      * executor: Instantiate and link runtime module to env module.
      
      * executor: Provide input data during wasmtime execution.
      
      * executor: Implement SandboxCapabilites::invoke for wasmtime executor.
      
      * executor: Integrate and test wasmtime execution method.
      
      * executor: Improve FunctionExecution error messages.
      
      * Scope the unsafe blocks to be smaller.
      
      * Rename TrampolineState to EnvState.
      
      * Let EnvState own its own compiler instead of unsafe lifetime cast.
      
      * Refactor out some common wasmi/wasmtime logic.
      
      * Typos and cosmetic changes.
      
      * More trampoline comments.
      
      * Cargo.lock update.
      
      * cli: CLI option for running Substrate with compiled Wasm execution.
      
      * executor: Switch dependency from fork to official wasmtime repo.
      
      * Quiet down cranelift logs.
      
      * Explicitly catch panics during host calls.
      
      We do this to ensure that panics do not cross language boundaries.
      
      * Additional checks and clarifications in make_trampoline.
      
      * Fixes after merge from master and panic safety for wasmtime
      instantiation.
      c2975363
  13. Oct 30, 2019
  14. Oct 28, 2019
  15. Oct 27, 2019
  16. Oct 22, 2019
  17. Oct 19, 2019
    • Ashley's avatar
      Move sr-arithmetic to a new crate and add in a fuzzer (#3799) · dccaf161
      Ashley authored
      
      
      * Split up sr_arithmetic.rs
      
      * Add some basic fuzzing
      
      * Add more tests
      
      * Add printing to fuzzing
      
      * Clean things up
      
      * Remove arbitrary
      
      * Remove comments
      
      * More cleaning, fix small error that was causing a panic
      
      * Add rational128
      
      * Remove old random tests
      
      * introduce panic
      
      * fuzzing should panic properly
      
      * Bit of cleanup
      
      * Add a test uncovered via fuzzing that fails!
      
      * Few small changes
      
      * Move sr-arithmetic to its own crate
      
      * Fix fuzzing
      
      * Got rid of fuzzer Cargo.lock
      
      * Added no_std
      
      * re-export assert_eq_error_rate
      
      * bump impl and spec version
      
      * re add convert into
      
      * Add an ignore to the test
      
      * Enabled benchmarking
      
      * Reindent
      
      * Clean up biguint fuzzer
      
      * Clean up biguint more
      
      * shuffle sr-primitives/traits about
      
      * Remove unused dependencies
      
      * Apply clippy suggestions
      
      * upgrade primitive-types versions
      
      * Run tests against num-bigint
      
      * Get rid of allocation in assert_biguints_eq
      
      * Add an optimisation to multiply_by_rational
      
      * rename parts_per_x -> per_things
      
      * Change fuzzer cargo.toml
      
      * Remove allocation from BigUint PartialEq impl
      
      * Remove accidental indentation
      
      * Renmove Lazy and Convert traits
      
      * Copy assert_eq_error_rate macro back to sr-primitives
      
      * Add documentation to fuzzers
      
      * fix sr-primitives assert_eq_error_rate
      
      * add cfg(test)
      
      * Update core/sr-arithmetic/src/traits.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Update core/sr-arithmetic/src/traits.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Update core/sr-arithmetic/fuzzer/src/biguint.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Allow rounding up in rational128
      
      * Make changes to biguint.rs
      
      * Update core/sr-arithmetic/src/traits.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Final touches
      
      * Convert to num_bigint::BigUint to compare
      
      * remove unused mut
      
      * more small changes
      
      * shuffle sr-primitives trait imports
      
      * more code review
      
      * move assert_eq_error_rate to lib.rs
      
      * Update core/sr-arithmetic/fuzzer/src/biguint.rs
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      
      * Get rid of S
      
      * Simplify rational128 honggfuzz link
      
      * Insignificantly change rational128 fuzzing code
      
      * Slightly tidy up some of the arithmetic logic
      
      * Get rid of sr_arithmetic again(?) and fix sr-primitives/weights
      
      * Apply updates to sr_arithmetic.rs to crate
      dccaf161
  18. Oct 17, 2019
    • Kian Paimani's avatar
      refactor: Transaction-Payment module (#3816) · df1582be
      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
      df1582be
  19. Oct 16, 2019
  20. Oct 09, 2019
    • Bastian Köcher's avatar
      Move `Externalities` into its own crate (#3775) · 79c776af
      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`
      79c776af
  21. Oct 08, 2019
  22. Oct 04, 2019
  23. Oct 02, 2019
    • DemiMarie-parity's avatar
      Upgrade dependencies whenever “easy” (#3556) · 0cfe7438
      DemiMarie-parity authored
      * Update all dependencies
      
      * Upgrade dependencies whenever “easy”
      
      “easy” means that there are no major changes required.
      
      * Fix build and bump paste dependency to 0.1.6
      
      * Remove dead code
      
      * Re-add = dependency for futures-preview
      
      * Add missing std features for runtime-io
      
      * Remove git dependencies
      
      as updated versions have been published to crates.io
      
      * try to debug bug
      
      * For sr-io, "std" should imply "no_oom" and "no_panic_handler".
      
      Otherwise, rustc complains (correctly) about duplicate lang items.
      
      * Add missing "runtime-io/std" features
      
      * Fix compilation errors
      
      * Prevent duplicate lang items
      
      Rust does not allow duplicate lang items.  When compiled without the
      `std` feature, `sr-io` defines two lang items.  Therefore, `sr-io`
      compiled without `feature = "std"` must not be linked with `std`.
      
      However, `pwasm-utils` and `wasmi-validation` both bring in `std` unless
      compiled with `default-features = "false"`.  This caused a duplicate
      lang item error.  Building both with `default-features = "false"`
      prevents this error.  When building with `feature = "std"`, they should
      both be built with the `std` feature, so this feature needs to be
      explicitly depended on.
      
      * Bump `impl_version`
      
      * Make tests pass
      
      Three tests used 1 less gas than they had previously.
      
      * Try to un-break build
      
      * Add a Cargo.lock file
      
      * Revert offchain code
      
      * Revert "Revert offchain code"
      
      This reverts commit d216d08c
      
      .
      
      * Don’t try to send a body with a GET request
      
      without adding a Transfer-Encoding or Content-Length header.
      
      This has always been wrong, but hyperium/hyper#1925 hid the bug until
      hyper was upgraded to 0.12.35.
      
      * Change some more GET requests to POST requests
      
      * Fix excess line width and remove an `extern crate`
      
      * Delete commented-out extern crate
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Fix regression in Cargo.toml files
      
      dev-dependencies need `default-features = false`, too.
      
      * Bump parity-wasm dependency
      
      * Bump `futures-preview`
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      
      * Update Cargo.lock files
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      
      * Update core/service/src/chain_ops.rs
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      0cfe7438
    • Marcio Diaz's avatar
      Optimize tree route to sync faster (#3665) · d7be2906
      Marcio Diaz authored
      * Introduce HeaderMetadata and use it for tree_route. Add lowest_common_ancestor.
      * Add tests.
      d7be2906
  24. Sep 28, 2019
    • Tomasz Drwięga's avatar
      ChainSpec extensions (#3692) · d1401df7
      Tomasz Drwięga authored
      * Add some chainspec tests and make sure we validate it.
      
      * Manual implementation of Extension + Forks definitions.
      
      * Move chain spec to separate crate.
      
      * Allow using ChainSpec with extensions.
      
      * Renames.
      
      * Implement Extension derive.
      
      * Implement Extension for Forks.
      
      * Support specifying fork blocks.
      
      * make for_blocks work
      
      * Support forks correctly.
      
      * Add a bunch of docs.
      
      * Make fork blocks optional.
      
      * Add missing docs.
      
      * Fix build.
      
      * Use struct for check_block params.
      
      * Fix tests?
      
      * Clean up.
      d1401df7
  25. Sep 23, 2019
  26. Sep 21, 2019
  27. Sep 19, 2019
    • Kian Paimani's avatar
      srml-module: Phragmen election (#3364) · e8334c27
      Kian Paimani authored
      
      
      * phragmen election module.
      
      * Add new files.
      
      * Some doc update
      
      * Update weights.
      
      * bump and a few nits.
      
      * Performance improvement.
      
      * Master.into()
      
      * Update srml/elections-phragmen/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Fix build
      
      * Some fixes.
      
      * Fix build.
      
      * Proper outgoing and runner-up managment.
      
      * Bit more sensical weight values.
      
      * Update srml/elections-phragmen/src/lib.rs
      
      * Update srml/elections-phragmen/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Update srml/elections-phragmen/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Update srml/elections-phragmen/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * fix lock file
      
      * Fix build.
      
      * Remove runner-ups
      
      * Some refactors.
      
      * Add support for reporting voters.
      
      * Fix member check.
      
      * Remove equlize.rs
      
      * Update srml/elections-phragmen/src/lib.rs
      
      * Update srml/elections-phragmen/src/lib.rs
      
      * Update srml/elections-phragmen/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Update srml/elections-phragmen/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Bring back runner ups.
      
      * use decode_len
      
      * Better weight values.
      
      * Update bogus doc
      
      * Bump.
      
      * Update srml/elections-phragmen/src/lib.rs
      
      Co-Authored-By: default avatarGavin Wood <[email protected]>
      
      * Review comments.
      
      * One more test
      
      * Fix tests
      
      * Fix build
      
      * .. and fix benchmarks.
      
      * Update srml/elections-phragmen/src/lib.rs
      
      * Version bump
      e8334c27
  28. Sep 12, 2019
  29. Sep 10, 2019
    • Bastian Köcher's avatar
      First step for generating host externals out of the function definition in `sr-io` (#3567) · 58ddde4d
      Bastian Köcher authored
      
      
      * Adds new wrapper traits for wasm executor
      
      * Add new crate `substrate-wasm-interface`
      
      Thew new crate holds types and traits for the communicating between the
      wasm runtime and the host.
      
      * Rewrite externals with new macro etc
      
      * Fix vec initialization
      
      * Make executor tests working
      
      * Remove unused code + warnings
      
      * Introduce `Pointer` and `WordSize` for working with wasm
      
      * Fix tests and compilation
      
      * Fix compilation
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Review feedback
      
      * Remove unused conversions
      
      * Make each host function its own struct
      
      `HostFunctions` now just returns these function structs. Each function
      can be executed by using one of the function structs. The inherent host
      functions are now moved to the "normal" host functions.
      
      * Remove byteorder
      
      * Add floating point types
      
      * Make pointer interface more safe
      
      * Add type alias for wasm-interface Result
      
      * More review comments
      58ddde4d
  30. 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
  31. 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
  32. 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
  33. 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
  34. Aug 07, 2019