Skip to content
  1. Nov 30, 2020
  2. Nov 27, 2020
  3. Nov 25, 2020
  4. Nov 24, 2020
    • Alexander Theißen's avatar
      contracts: Add `salt` argument to contract instantiation (#7482) · c3ca78fa
      Alexander Theißen authored
      
      
      * pallet-contracts: Fix seal_restore_to to output proper module errors
      
      Those errors where part of the decl_error for some time but where
      never actually returned. This allows proper debugging of failed
      restorations. Previously, any error did return the misleading
      `ContractTrapped`.
      
      * Bind UncheckedFrom<T::Hash> + AsRef<[u8]> everywhere
      
      This allows us to make assumptions about the AccoutId
      that are necessary for testing and in order to benchmark
      the module properly.
      
      This also groups free standing functions into inherent functions
      in order to minimize the places where the new bounds need to
      be specified.
      
      * Rework contract address determination
      
      * Do not allow override by runtime author
      * Instantiate gained a new parameter "salt"
      
      This change is done now in expecation of the upcoming code rent
      which needs to change the instantiation dispatchable and
      host function anyways.
      
      The situation in where we have only something that is like CREATE2
      makes it impossible for UIs to help the user to create an arbitrary
      amount of instantiations from the same code.
      
      With this change we have the same functionality as ethereum with
      a CREATE and CREATE2 instantation semantic.
      
      * Remove TrieIdGenerator
      
      The new trait bounds allows us to remove this workaround
      from the configuration trait.
      
      * Remove default parameters for config trait
      
      It should be solely the responsiblity to determine proper values for
      these parameter. As a matter of fact most runtime weren't using these
      values anyways.
      
      * Fix tests for new account id type
      
      Because of the new bounds on the trait tests can't get away by using
      u64 as accound id. Replacing the 8 byte value by a 32 byte value
      creates out quite a bit of code churn.
      
      * Fix benchmarks
      
      The benchmarks need adaption to the new instantiate semantics.
      
      * Fix compile errors caused by adding new trait bounds
      * Fix compile errors caused by renaming storage and rent functions
      * Adapt host functions and dispatchables to the new salt
      * Add tests for instantiate host functions (was not possible before)
      
      * Add benchmark results
      
      * Adapt to the new WeightInfo
      
      The new benchmarks add a new parameter for salt "s" to the instantiate weights
      that needs to be applied.
      
      * Fix deploying_wasm_contract_should_work integration test
      
      This test is adapted to use the new instantiate signature.
      
      * Break overlong line
      
      * Break more long lines
      
      Co-authored-by: default avatarParity Benchmarking Bot <[email protected]>
      c3ca78fa
    • Bastian Köcher's avatar
      Wasm-builder 3.0 (#7532) · 923cb8ee
      Bastian Köcher authored
      
      
      * Build every wasm crate in its own project with wasm-builder
      
      Building all wasm crates in one workspace was a nice idea, however it
      just introduced problems:
      
      1. We needed to prune old members, but this didn't worked for old git
      deps.
      2. We locked the whole wasm workspace while building one crate. This
      could lead to infinitely locking the workspace on a crash.
      
      Now we just build every crate in its own project, this means we will
      build the dependencies multiple times. While building the dependencies
      multiple times, we still decrease the build time by around 30 seconds
      for Polkadot and Substrate because of the new parallelism ;)
      
      * Remove the requirement on wasm-builder-runner
      
      This removes the requirement on wasm-builder-runner by using the new
      `build_dep` feature of cargo. We use nightly anyway and that enables us
      to use this feature. This solves the problem of not mixing
      build/proc-macro deps with normal deps. By doing this we get rid off
      this complicated project structure and can depend directly on
      `wasm-builder`. This also removes all the code from wasm-builder-runner
      and mentions that it is deprecated.
      
      * Copy the `Cargo.lock` to the correct folder
      
      * Remove wasm-builder-runner
      
      * Update docs
      
      * Fix deterministic check
      
      Modified-by: default avatarBastian Köcher <[email protected]>
      
      * Try to make the ui test happy
      
      * Switch to `SKIP_WASM_BUILD`
      
      * Rename `SKIP_WASM_BINARY` to the correct name...
      
      * Update utils/wasm-builder/src/builder.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Update utils/wasm-builder/src/builder.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      923cb8ee
  5. Nov 23, 2020
  6. Nov 22, 2020
  7. Nov 20, 2020
  8. Nov 19, 2020
    • Shawn Tabrizi's avatar
      More Extensible Multiaddress Format (#7380) · 4637100a
      Shawn Tabrizi authored
      * More extensible multiaddress format
      
      * update name
      
      * Don't depend on indices to define multiaddress type
      
      * Use MultiAddress in Node Template too!
      
      * reduce traits, fix build
      
      * support multiple `StaticLookup`
      
      * bump tx version
      
      * feedback
      4637100a
  9. Nov 18, 2020
  10. Nov 16, 2020
    • Bastian Köcher's avatar
      Fix some weirdness in `offchain_worker` (#7541) · 2f5f4fe8
      Bastian Köcher authored
      We call `offchain_worker` with the state of the imported block and pass
      the header of this block. However in the runtime we call all
      `offchain_worker` functions with the number of the parent block. Besides
      that we also pass all digests and not only the pre runtime digests. In
      the context where the offchain worker is executed we have all digests, so
      there is no real reason to only pass pre runtime digests. Another fix is
      that we also insert the hash of the current header into the block hash map.
      2f5f4fe8
  11. Nov 12, 2020
  12. Nov 10, 2020
  13. Nov 09, 2020
    • thiolliere's avatar
      2d114fb4
    • Caio's avatar
      cf6c2518
    • Alexander Theißen's avatar
      contracts: Add automated weights for wasm instructions (#7361) · 51c67fe8
      Alexander Theißen authored
      
      
      * pallet_contracts: Inline benchmark helper that is only used once
      
      * Move all max_* Schedule items into a new struct
      
      * Limit the number of globals a module can declare
      
      * The current limits are too high for wasmi to even execute
      
      * Limit the amount of parameters any wasm function is allowed to have
      
      * Limit the size the BrTable's immediate value
      
      * Add instruction benchmarks
      
      * Add new benchmarks to the schedule and make use of it
      
      * Add Benchmark Results generated by the bench bot
      
      * Add proc macro that implements `Debug` for `Schedule`
      
      * Add missing imports necessary for no_std build
      
      * Make the WeightDebug macro available for no_std
      
      In this case a dummy implementation is derived in order to not
      blow up the code size akin to the RuntimeDebug macro.
      
      * Rework instr_memory_grow benchmark to use only the maximum amount of pages allowed
      
      * Add maximum amount of memory when benching (seal_)call/instantiate
      
      * cargo run --release --features runtime-benchmarks --manifest-path bin/node/cli/Cargo.toml -- benchmark --chain dev --steps 50 --repeat 20 --extrinsic * --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output ./bin/node/runtime/src/weights --header ./HEADER --pallet pallet_contracts
      
      * Added utility benchmark that allows pretty printing of the real schedule
      
      * review: Add missing header to the proc-macro lib.rs
      
      * review: Clarify why #[allow(dead_code)] attribute is there
      
      * review: Fix pwasm-utils line
      
      * review: Fixup rand usage
      
      * review: Fix typo
      
      * review: Imported -> Exported
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * contracts: Adapt to new weight structure
      
      * contracts: Fixup runtime WeightInfo
      
      * contracts: Remove unneeded fullpath of WeightInfo type
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarAndrew Jones <[email protected]>
      
      * Fix typo in schedule.rs
      
      Co-authored-by: default avatarAndrew Jones <[email protected]>
      
      * Fix docs in schedule.rs
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarNikolay Volf <[email protected]>
      
      * Don't publish proc-macro crate until 3.0.0 is ready
      
      * Optimize imports for less repetition
      
      * Break overlong line
      
      Co-authored-by: default avatarParity Benchmarking Bot <[email protected]>
      Co-authored-by: default avatarAndrew Jones <[email protected]>
      Co-authored-by: default avatarNikolay Volf <[email protected]>
      51c67fe8
  14. Nov 08, 2020
  15. Nov 05, 2020
  16. Nov 04, 2020
    • Web3 Philosopher's avatar
      Allow BabeConsensusDataProvider fork existing chain (#7078) · 6328f874
      Web3 Philosopher authored
      * parent affbc38a
      
      
      author Seun Lanlege <[email protected]> 1599568164 +0100
      committer Seun Lanlege <[email protected]> 1604321289 +0100
      gpgsig -----BEGIN PGP SIGNATURE-----
      
       iQGzBAABCgAdFiEECvQ02MnjnssnSbjr3HzzEhjN254FAl+gAAkACgkQ3HzzEhjN
       254soAv+KO5JA0HXSe0R0XS5TnwA3IxYsW+UvdF5dXFeC3jFdGTMvor818uoBePD
       dxzYEsUK6gjsNcM9+hpFhoy5JnUrUPInd2BZ7pmZiDuXmYJrHi0s7K5qL0EYDoe0
       m1egPNNyRR125ozJ24M+09c3OQsi3bvTx1TJaV9Aov8hK4So8UmlJTHWpkLw97ku
       HuTre2IPSFbV4GwJE40V+KNuDVHxaKL7zrInYScqbr6/hOTqBCvFn4ib3CjpF5HG
       zDAA5S2PrcbL9NQOothVcVB/TZr3IkhglCFqEjVyCX80IL0JkNZkw8jAh0B8uqXx
       Ug/c1/Mssa8F1jLZMmW45Cway60txqVbcWntPJAymGJbrRErOO/++oUrV0u1C65u
       LW7gXAaIJWQTX9KnX0SEyejNod7ubZktBz7n5WfkJAPIzdw5wtJalhLa673YTgQ9
       zyTPKiWjJj2myCq1AYrJvlK8hSsIBqbBFcUf1zX4SzZWKS+5mtp51o4gfVzcCRPd
       z/6/iPbB
       =g5tx
       -----END PGP SIGNATURE-----
      
      BabeConsensusDataProvider works with existing chains
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      6328f874
  17. Nov 03, 2020
  18. Oct 30, 2020
  19. Oct 29, 2020
  20. Oct 28, 2020
  21. Oct 27, 2020
    • Shawn Tabrizi's avatar
      New Weight Template + Organization (#7391) · e4cfb255
      Shawn Tabrizi authored
      
      
      * add_handlebar_template_to_benchmark
      
      - add benchmark-cli arg to take in a handlebar-template file
      
      * update to always use template
      
      * rewrite writer for handlebars
      
      * polish
      
      * pass cmd data
      
      * update docs
      
      * new weight layout
      
      * separate templates
      
      * support custom filename output
      
      * Update command.rs
      
      * Create frame-weight-template.hbs
      
      * use a vector to maintain benchmark order
      
      * bring back ()
      
      * fix tests
      
      * fix build
      
      * Custom string serializer, remove feature flag
      
      * temp
      
      * rename
      
      * nit
      
      * update docs
      
      * docs on public objects
      
      * small fix
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * remove long line
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=frame_system --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/system/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for system
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for staking
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_identity --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/identity/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for identity and staking
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_collective --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/collective/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for collective
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_democracy --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/democracy/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for democracy
      
      * clean up zeros
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_elections_phragmen --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/elections-phragmen/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for elections phragmen
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_im_online --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/im-online/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for im online
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_indices --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/indices/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for indices
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_multisig --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/multisig/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for multisig
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_proxy --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/proxy/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for proxy
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_scheduler --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/scheduler/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for scheduler
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_session --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/session/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for session
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_timestamp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/timestamp/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for timestamp
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_treasury --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/treasury/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for treasury
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_utility --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/utility/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for utility
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_vesting --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/vesting/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * update for vesting
      
      * temp update
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_utility --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/utility/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      Co-authored-by: default avatarEzadkiel Marbella <[email protected]>
      Co-authored-by: default avatarParity Benchmarking Bot <[email protected]>
      e4cfb255
    • Xiliang Chen's avatar
      Implement batch_all and update Utility pallet for weight refunds (#7188) · f1480977
      Xiliang Chen authored
      
      
      * implement batch_all
      
      * bump version
      
      * updates
      
      * Better weight story for utility
      
      * small fixes
      
      * weights
      
      * assert_noop_ignore_postinfo doesnt make sense
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      f1480977
    • Bernhard Schuster's avatar
      improve error handling in cli (#7436) · f373ecbc
      Bernhard Schuster authored
      
      
      * other error variant should carry a dyn Error
      
      * introduce thiserror for error derive, add explicit error variants, cleanup dependencies
      
      * cleanup handle dev-deps of sc-cli too
      
      * Update client/cli/src/error.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      Co-authored-by: default avatarBernhard Schuster <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      f373ecbc
    • Shawn Tabrizi's avatar
      Use Handlebars Template for Benchmark CLI Output (#7390) · 3ac070b6
      Shawn Tabrizi authored
      
      
      * add_handlebar_template_to_benchmark
      
      - add benchmark-cli arg to take in a handlebar-template file
      
      * update to always use template
      
      * rewrite writer for handlebars
      
      * polish
      
      * pass cmd data
      
      * update docs
      
      * support custom filename output
      
      * Update command.rs
      
      * Create frame-weight-template.hbs
      
      * use a vector to maintain benchmark order
      
      * fix tests
      
      * Custom string serializer, remove feature flag
      
      * update docs
      
      * docs on public objects
      
      * small fix
      
      Co-authored-by: default avatarEzadkiel Marbella <[email protected]>
      3ac070b6
  22. Oct 26, 2020