1. Jan 06, 2021
  2. Jan 05, 2021
    • Max Inden's avatar
      client/network: Use request response for block requests (#7478) · 3f629f74
      Max Inden authored
      
      
      * client/network: Add scaffolding for finality req to use req resp
      	#sc
      
      * client/network/src/finality_requests: Remove
      
      * client/network/src/behaviour: Pass request id down to sync
      
      * client/network: Use request response for block requests
      
      * client/network: Move handler logic into *_*_handler.rs
      
      * client/network: Track ongoing finality requests in protocol.rs
      
      * client/network: Remove commented out finalization initialization
      
      * client/network: Add docs for request handlers
      
      * client/network/finality_request_handler: Log errors
      
      * client/network/block_request_handler: Log errors
      
      * client/network: Format
      
      * client/network: Handle block request failure
      
      * protocols/network: Fix tests
      
      * client/network/src/behaviour: Handle request sending errors
      
      * client/network: Move response handling into custom method
      
      * client/network/protocol: Handle block response errors
      
      * client/network/protocol: Remove tracking of obsolete requests
      
      * client/network/protocol: Remove block request start time tracking
      
      This will be handled generically via request-responses.
      
      * client/network/protocol: Refactor on_*_request_started
      
      * client/network: Pass protocol config instead of protocol name
      
      * client/network: Pass protocol config in tests
      
      * client/network/config: Document request response configs
      
      * client/network/src/_request_handler: Document protocol config gen
      
      * client/network/src/protocol: Document Peer request values
      
      * client/network: Rework request response to always use oneshot
      
      * client/network: Unified metric reporting for all request protocols
      
      * client/network: Move protobuf parsing into protocol.rs
      
      * client/network/src/protocol: Return pending events after poll
      
      * client/network: Improve error handling and documentation
      
      * client/network/behaviour: Remove outdated error types
      
      * Update client/network/src/block_request_handler.rs
      
      Co-authored-by: default avatarAshley <[email protected]>
      
      * Update client/network/src/finality_request_handler.rs
      
      Co-authored-by: default avatarAshley <[email protected]>
      
      * client/network/protocol: Reduce reputation on timeout
      
      * client/network/protocol: Refine reputation changes
      
      * client/network/block_request_handler: Set and explain queue length
      
      * client/service: Deny block requests when light client
      
      * client/service: Fix role matching
      
      * client: Enforce line width
      
      * client/network/request_responses: Fix unit tests
      
      * client/network: Expose time to build response via metrics
      
      * client/network/request_responses: Fix early connection closed error
      
      * client/network/protocol: Fix line length
      
      * client/network/protocol: Disconnect on most request failures
      
      * client/network/protocol: Disconnect peer when oneshot is canceled
      
      * client/network/protocol: Disconnect peer even when connection closed
      
      * client/network/protocol: Remove debugging log line
      
      * client/network/request_response: Use Clone::clone for error
      
      * client/network/request_response: Remove outdated comment
      
      With libp2p v0.33.0 libp2p-request-response properly sends inbound
      failures on connections being closed.
      
      Co-authored-by: default avatarAddie Wagenknecht <[email protected]>
      Co-authored-by: default avatarAshley <[email protected]>
      3f629f74
    • Shawn Tabrizi's avatar
      Participation Lottery Pallet (#7221) · 92f59682
      Shawn Tabrizi authored
      
      
      * Basic design
      
      * start adding tests
      
      * finish tests
      
      * clean up crates
      
      * use call index for match
      
      * finish benchmarks
      
      * add to runtime
      
      * fix
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_lottery --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/lottery/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * more efficient storage
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_lottery --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/lottery/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * Update lib.rs
      
      * Update bin/node/runtime/src/lib.rs
      
      * trait -> config
      
      * add repeating lottery
      
      * new benchmarks
      
      * fix build
      
      * move trait for warning
      
      * feedback from @xlc
      
      * add stop_repeat
      
      * fix
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_lottery --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/lottery/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * Support static calls
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_lottery --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/lottery/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      * fix test
      
      * add loop to mitigate modulo bias
      
      * Update weights for worst case scenario loop
      
      * Initialize pot with ED
      
      * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_lottery --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/lottery/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      Co-authored-by: default avatarParity Benchmarking Bot <[email protected]>
      92f59682
    • kaichao's avatar
      minor fix (#7828) · d2eb87f5
      kaichao authored
      d2eb87f5
    • honeywest's avatar
      Feat sp keystore (#7826) · 6d6794ea
      honeywest authored
      * delete not used VRFTranscriptValue
      
      * specification variable naming
      6d6794ea
    • thiolliere's avatar
      Improve error message on where clause on pallet error (#7821) · ccce3405
      thiolliere authored
      * improve error message on where clause on pallet error
      
      * Revert "improve error message on where clause on pallet error"
      
      This reverts commit 5a3cc38976813fccef3357833553ce30f5b988ea.
      
      * Revert "Revert "improve error message on where clause on pallet error""
      
      This reverts commit e3b3fca6bc4fa89816f80dbcb82dc4536a9b2549.
      ccce3405
    • Alexander Theißen's avatar
      contracts: Prevent contracts from allocating a too large buffer (#7818) · 031b4dda
      Alexander Theißen authored
      * Prevent contracts from allocating a too large buffer
      
      * Fix possible integer overflow
      031b4dda
    • André Silva's avatar
  3. Jan 04, 2021
    • thiolliere's avatar
      fix template (#7823) · 51028310
      thiolliere authored
      51028310
    • Alexander Theißen's avatar
      contracts: Lazy storage removal (#7740) · 3ba8fdfc
      Alexander Theißen authored
      * Do not evict a contract from within a call stack
      
      We don't want to trigger contract eviction automatically when
      a contract is called. This is because those changes can be
      reverted due to how storage transactions are used at the moment.
      More Information:
      https://github.com/paritytech/substrate/issues/6439#issuecomment-648754324
      
      It can be re-introduced once the linked issue is resolved. In the meantime
      `claim_surcharge` must be called to evict a contract.
      
      * Lazily delete storage in on_initialize instead of when removing the contract
      
      * Add missing documentation of new error
      
      * Make Module::claim_surcharge public
      
      It being the only dispatchable that is private is an oversight.
      
      * review: Add final newline
      
      * review: Simplify assert statement
      
      * Add test that checks that partial remove of a contract works
      
      * Premote warning to error
      
      * Added missing docs for seal_terminate
      
      * Lazy deletion should only take AVERAGE_ON_INITIALIZE_RATIO of the block
      
      * Added informational about the lazy deletion throughput
      
      * Avoid lazy deletion in case the block is already full
      
      * Prevent queue decoding in case of an already full block
      
      * Add test that checks that on_initialize honors block limits
      3ba8fdfc
    • Max Inden's avatar
      *: Update to libp2p v0.33.0 (#7759) · f0b99dd2
      Max Inden authored
      * *: Update to libp2p v0.33.0
      
      * client/network: Consistently track request arrival time
      
      With https://github.com/libp2p/rust-libp2p/pull/1886/ one is guaranteed
      to receive either a `ResponseSent` or a `InboundFailure` event for each
      received inbound request via `RequestResponseEvent::Message`. Given this
      guarantee there is no need to track arrival times in a best-effort
      manner and thus there is no need to use a LRU cache for arrival times.
      
      * client/offchain: Adjust to PeerId API changes
      f0b99dd2
    • Alexander Theißen's avatar
      contracts: Allow runtime authors to define a chain extension (#7548) · 51c37ecc
      Alexander Theißen authored
      * Make host functions return TrapReason
      
      This avoids the need to manually store any trap reasons
      to the `Runtime` from the host function. This adds the following
      benefits:
      
      * It properly composes with the upcoming chain extensions
      * Missing to set a trap value is now a compile error
      
      * Add chain extension
      
      The chain extension is a way for the contract author to add new
      host functions for contracts to call.
      
      * Add tests for chain extensions
      
      * Fix regression in set_rent.wat fixture
      
      Not all offsets where properly updated when changing the fixtures
      for the new salt on instantiate.
      
      * Pre-charge a weight amount based off the specified length
      
      * Improve fn write docs
      
      * Renamed state to phantom
      
      * Fix typo
      51c37ecc
    • Bastian Köcher's avatar
      Happy new year (#7814) · e3e651f7
      Bastian Köcher authored
      * Happy new year
      
      Updates the copyright years and fixes wrong license headers.
      
      * Fix the template
      
      * Split HEADER into HEADER-APACHE & HEADER-GPL
      e3e651f7
  4. Jan 03, 2021
    • André Silva's avatar
      Cleanup some warnings (#7816) · e367d57b
      André Silva authored
      * client: cleanup redundant semicolon warnings
      
      * grandpa: remove usage of deprecated compare_and_swap
      e367d57b
    • Bastian Köcher's avatar
      Fix ss58check test when executed with other tests (#7815) · 672a2912
      Bastian Köcher authored
      There was a bug that could make other ss58 tests fail when being
      executed with this one in parallel. This test changes the default ss58
      version and if other tests are run at the time the default version is
      changed, they would fail. To fix this problem, we now run the actual
      test as a new process.
      672a2912
  5. Jan 01, 2021
  6. Dec 30, 2020
  7. Dec 29, 2020
  8. Dec 28, 2020
  9. Dec 27, 2020
  10. Dec 24, 2020
    • thiolliere's avatar
      Add `pallet` attribute macro to declare pallets (#6877) · 6dfad092
      thiolliere authored
      
      
      * rename system Config to system Trait.
      
      command used:
      ```
      find frame/ bin/ test-utils/ utils/ -name *.rs -exec sed -i 's/system::Trait>::/system::Config>::/g' {} \;
      find frame/ bin/ test-utils/ utils/ -name *.rs -exec sed -i 's/impl frame_system::Trait for /impl frame_system::Config for /g' {} \;
      find frame/ bin/ test-utils/ utils/ -name *.rs -exec sed -i 's/impl system::Trait for /impl system::Config for /g' {} \;
      ```
      plus some manual ones especially for frame-support tests and frame-system
      
      * make construct_runtime handle Pallet and Module
      
      pallets can now be implemented on struct named Pallet or Module, both
      definition are valid.
      This is because next macro will generate only Pallet placeholder.
      
      * introduce pallet attribute macro
      
      currently just with tests, frame_system and other example hasn't been
      upgraded
      
      * allow to print some upgrade helper from decl_storage
      
      * Improved error msg, typo.
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      
      * Improved error msg, typo.
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      
      * Improved error message on unexpected attributes + ui test
      
      * add test for transactional
      
      * various typo
      
      * some tips when spans are lost
      
      * allow pallet to depend on other pallet instances
      
      * make event type metadata consistent with call and constant
      
      * error messages
      
      * ignore doc example
      
      * fix pallet upgrade template
      
      * fixup
      
      * fix doc
      
      * fix indentation
      
      * Apply suggestions code formatting
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * some renames + fix compilation
      
      * remove unsupported genesis config type alias
      
      * merge fixup
      
      * fix ui tests
      
      * additional doc
      
      * implement StorageInstance with new syntax
      
      * fix line width
      
      * fix doc: because pallet doc goes below reexport doc
      
      * Update frame/support/procedural/src/pallet/parse/event.rs
      
      Co-authored-by: default avatarAndrew Jones <[email protected]>
      
      * Update frame/system/src/lib.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * Update frame/support/test/tests/pallet_ui.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * improve doc as suggested
      
      * revert construct_runtime Pallet part.
      
      This revert the changes on construct_runtime. Now construct_runtime is
      unchanged and instead pallet macro create a type alias
      `type Module<..> = Pallet<..>` to be used by construct_runtime
      
      * refactor with less intricated code
      
      * fix ui test with new image
      
      * fix ui tests
      
      * add minor tests
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      Co-authored-by: default avatarKian Paimani <[email protected]>
      Co-authored-by: default avatarAndrew Jones <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      6dfad092
  11. Dec 23, 2020
  12. Dec 22, 2020
  13. Dec 21, 2020
    • Bruno Škvorc's avatar
      Typo fix: eror => error (#7773) · 29498f4c
      Bruno Škvorc authored
      29498f4c
    • Bastian Köcher's avatar
      Make it possible to calculate the storage root as often as you want (#7714) · ce97b6e5
      Bastian Köcher authored
      * Make it possible to calculate the storage as often as you want
      
      So, until now each Substrate based blockchain has calculated the storage
      root once, at the end of the block. Now there is Frontier that wants to
      calculate some intermediate storage root. However this failed on block
      import. The problem with that was the extrinsics root. When building the
      block we stored `Default::default()` as extrinsics root, because yeah,
      we don't know the extrinsics root before finishing the block. At the end
      this extrinsics root was then calculated. But on block import we passed
      the already known extrinsics root. This was no problem, as we removed
      this value at the end of the block. However when you all the storage
      root in between, that changes the storage root between block building
      and block import.
      
      This pr changes this behavior. It removes the `ExtrinsicsRoot` storage
      entry and also doesn't pass it anymore to `System::initialize`. By doing
      it, we remove the difference in the storage and fix the storage root mismatch.
      
      * Fix bug with incorrectly calculating the extrinscs root
      
      * Review feedback
      ce97b6e5
    • honeywest's avatar
      optimize biguint div closure (#7754) · 5ed88684
      honeywest authored
      * optimize biguint div closure
      
      * optimize biguint sub and fix note
      
      * change and add biguint split test
      
      * add biguint div_unit test
      
      * update biguint sub v to v1
      
      * add biguint shift_check
      5ed88684
    • Kian Paimani's avatar
      Allow Staking tests to run with session length other than 1 (#7719) · bfb76281
      Kian Paimani authored
      
      
      * fix periodic session
      
      * Allow staking tests to run with session lengths other than 1.
      
      * Update frame/staking/src/mock.rs
      
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      
      * Fix all tests with session length 5.
      
      * Test for active != current
      
      * Better doc
      
      * Update frame/staking/src/lib.rs
      
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      
      * also set the timestamp properly.
      
      * trigger CI
      
      * Revert "trigger CI"
      
      This reverts commit 0f254944cdad848aa6e63bd8a618db95447a8e68.
      
      * Update frame/staking/src/lib.rs
      
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      bfb76281