* Fixes logging of target names with dashes
There was a bug in tracing-core which resulted in not supporting dashes
in target names. This was fixed upstream. Besides that a test was added
to ensure that we don't break this again.
* Extend test
* seal: Add capability to put uninstrumented code (for benchmarks)
Benchmarks should only measure the overhead of the API calls itself.
For that reason we want to run them without instrumentation.
* seal: Cap the the data length for deposited events
Data used in events has storage implications for archive nodes.
Those need to keep the events in storage forever. For that reason
we want to limit the amount of storage that can be used inside events.
* seal: Fix error reporting in the case out of bound sandbox access
* seal: Refactor existing benchmarks
* seal: Convert benchmark file to tabs
* seal: Add benchmarks for functions called by contracts
* seal: Create a default schedule from benchmark generated WeightInfo
* seal: Make use of WeightInfo in extrinsic weight annotations
* seal: Replace the old schedule by the benchmark generated one
* Review: Fix copy paste typo in schedule construction
* Review: Fix stale docs
* Fix whitespace errors
Co-authored-by: Sergei Shulepov <sergei@parity.io>
* Review: Use checked_div in order to be more defensive
* Review: Rename no_charge to already_charged
* Review: Whitelist caller of extrinsics
* Review: Remove trailing whitespace
* Review: Remove confusing "self::" syntax
* Review: Add docs for the benchmark prepration submodule
* Review: Move code generation functions to own module
* Review: Refactor and document benchmark helper functions
* Remove additional empty line
* Added missing comment on caller_funding
* Update frame/contracts/src/benchmarking/code.rs
Co-authored-by: Sergei Shulepov <sergei@parity.io>
* Fix missing sp_std::prelude import in code.rs
* 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 --output ./bin/node/runtime/src/weights --header ./HEADER --pallet pallet_contracts --heap-pages 4096
* Use weights from the benchmark machine for the substrate node
* Remove prefixes from Schedule members
* Data lengths in the WeightInfo Trait are specified in kilobytes
* Rename ApiWeights to HostFunctionWeights
Co-authored-by: Sergei Shulepov <sergei@parity.io>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* bump-allocator: refine comments
* Rename EMPTY_MARKER to Nil
It's a misnomer since it doesn't actually denote an empty list as it might suggest but rather the end of a list. So I borrowed Nil from Cons/Nil.I could've gone with Null, especially considering that the variant name is already named `Null`, but I preferred `Nil` because the NIL_MARKER is not 0 as `null` may suggest, but rather 0xFFFFFFFF.
* Rename N to N_ORDERS; docs;
Supply a, hopefully, more readable comment as well.
* allocator poisoning: document and enforce.
* Review: Fix line wrapping for a call
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* add a test on oom
* Update primitives/allocator/src/freeing_bump.rs
* Make ui tests happy
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Bastian Köcher <git@kchr.de>
* move the time delayed proxies migration into a separate function
* add use statement
* Update frame/proxy/src/lib.rs
* bump proxy cargo version
* update Cargo.lock
* Update lib.rs
* better format
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Gav Wood <gavin@parity.io>
* Revamp npos-elections and implement phragmms
* Update primitives/npos-elections/src/phragmms.rs
* Fix build
* Some review grumbles
* Add some stuff for remote testing
* fix some of the grumbles.
* Add remote testing stuff.
* Cleanup
* fix docs
* Update primitives/arithmetic/src/rational.rs
Co-authored-by: Dan Forbes <dan@danforbes.dev>
* Small config change
* Better handling of approval_stake == 0
* Final touhces.
* Clean fuzzer a bit
* Clean fuzzer a bit
* Update primitives/npos-elections/src/balancing.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Fix fuzzer.
* Better api for normalize
* Add noramlize_up
* A large number of small fixes.
* make it merge ready
* Fix warns
* bump
* Fix fuzzers a bit.
* Fix warns as well.
* Fix more tests.
Co-authored-by: Dan Forbes <dan@danforbes.dev>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* grandpa-rpc: use FinalityProofProvider to check finality for rpc
* grandpa-rpc: minor tidy
* grandpa-rpc: remove dyn FinalityProofProvider
* grandpa-rpc: remove unused dependencies
* node: move finality_proof_provider setup
* grandpa-rpc: print error reported by finality_proof_provider
* grandpa-rpc: add note about unnecessary encode/decode
* grandpa-rpc: dont encode/decode and use correct hash
* grandpa-rpc: set_id is optional
* grandpa-rpc: create test for prove_finality
* grandpa-rpc: set visibility back to how it was
* grandpa-rpc: remove unused dependency
* grandpa-rpc: minor tidy
* grandpa: doc strings
* grandpa-rpc: rename to prove_finality
* grandpa-rpc: use current set id if none is provided
* grandpa-rpc: remove unnecessary check in test
* node: group finality_proof_provider in rpc_setup
* grandpa: make prove_finality concrete in FinalityProofProvider
* grandpa-rpc: wrap finality output in struct and store as Bytes
* grandpa-rpc: exhaustive error codes and wrap
* grandpa-rpc: let prove_finality take a range instead of a starting point
* grandpa-rpc: fix test for changed API
* grandpa-rpc: fix line length
* grandpa: fix reviewer nits
* node/rpc: fix reviewer comments
* New worker design
* Remove unused thread import
* Add back missing inherent data provider registration
* Add function to get a Cloned metadata
* Add some docs
* Derive Eq and PartialEq for MiningMetadata
* Fix cargo lock
* Fix line width
* Add docs and fix issues in UntilImportedOrTimeout
* Update client/consensus/pow/src/lib.rs
Co-authored-by: David <dvdplm@gmail.com>
* Add back comments
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: David <dvdplm@gmail.com>
* implement events handling, implement parent_id for spans & events
* add events to sp_io::storage
* update test
* add tests
* adjust limit
* let tracing crate handle parent_ids
* re-enable current-id tracking
* add test for threads with CurrentSpan
* fix log level
* remove redundant check for non wasm traces
* remove duplicate definition in test
* Adding conditional events API
* prefer explicit parent_id over current,
enhance test
* limit changes to client::tracing event implementation
* remove From impl due to fallback required on parent_id
* make tracing codecable
* replace with global tracing
* new tracing interface
* impl TracingSubscriber in client
* implement access to global TracingSubscriber from primitives
* span for wasm
* increment towards Wasm Tracing Subscriber implementation
* increment, remove sp-tracing from runtime-interface
* increment, it compiles
* attained original functionality with new mechanism
* implement remaining TracingSubscriber functions
* remove spans from decl_module
* add handling for encoded values
* Revert "replace with global tracing"
This reverts commit 8824a60deea54d9b437407a21c8ceaf6a1902ee5.
* Wasm Side Tracing
* tracing on wasm
* enable tracing wasm on node-runtime
* export all the macros in std
* tracing subscriber on wasm-side only
* pass spans and events over and record them
* reactivate previous code and cleanup
* further cleaning up
* extend the span macros, activate through executive
* tracking the actual extrinsic, too
* style
* fixing tests
* spaces -> tabs
* attempting to reactivate params
* activate our tests in CI
* some passing
* tests passing
* with core lazy
* global tracer for wasm side with pass over
* fixing metadata referencing
* remove const_fn feature requirement
* reenable dispatch traces
* reset client tracing
* further cleaning up
* fixing runtime-test
* move tracing-build setup into runtime-test
* Merge DebugWriter from tracing and frame-support, move to sp-std
* remove dangling fixme
* Docs for tracing primitives
* cleaning up a bit more
* Wasm interface docs
* optimise docs.rs setup
* adding tracing flags to uncomment
* remove brace
* fixing imports
* fixing broken syntax
* add required modules
* nicer formatting
* better target management
* adding low level storage tracing events into frame
* add custom Debug impl for WasmMetadata
* cloning profiler
* adding info about cloning profiler
* using in-scope for within calls
* proper time tracing, cleaning up println
* allow to disable tracing on runtime_interface-macro
* disable tracing for wasm-tracing-interface
* simplify wasm-tracing-api
* update client to new interface
* fixing docs and tests for sp-tracing
* update integration tests
* re-activating enter_span
* dropping FIXME, it's documented
* fix formatting
* fix formatting
* fix imports
* more debug info
* inform wasm about it being disabled by returning 1
* only one tracer, but enabled multi-all support
* make trait pub again for tests
* Apply suggestions from code review
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* fixing wasm doc tests for proper usage
* remove unnecessary import
* fixing formatting
* minor style fixes
* downgrading wabt
* update error message for UI
* Fix interface test
* next attempt to fix macros
* geee
* revert tracing on hashed for future PR
* remove local macros, use originals
* we are able to convert to static items
* implement more WasmValue types
* adding support to convert str, debug and encoded values
* more minor fixes
* revert unsafe 'static making
* fix indentation
* remove commented lines
* bump all them tracing versions
* cleaning up docs and info
* document new flag
* the new layered system handles span cloning better
* Apply suggestions from code review
Co-authored-by: David <dvdplm@gmail.com>
Co-authored-by: Matt Rutherford <mattrutherford@users.noreply.github.com>
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
Co-authored-by: David <dvdplm@gmail.com>
* init_logger: switch from log-based to tracing-based and add compatibility layer
* Move tracing profiling subscriber related config realization
* sp-tracing: change profiling to be a layer instead of a subscriber
* Enable profiling layer in cli
* Change all test env_logger init to sp_tracing::try_init_simple
* Remove all local env_logger dependency
* Add missing tracing-subscriber dependency
* frame-sudo: fix tests
* frame-support: fix tests
* Fix frame/pallet and executor tests
* Fix the remaining tests
* Use subscriber's try_init as recommended by @davidbarsky
* Be explict that the tracing-log feature is needed
* Set subscriber writer to stderr
* Shorter line width
* Update cargo lock tracing version
* Fix sc_tracing crate compile
* Fix sc_authority_discovery crate test
* unremove default-features
* Leave enabled to default true
* Warn if global default cannot be set
* Fix unused import
* Remove unused PROXY_TARGET
* Change all reference from rc5 to rc6
* Change all reference of rc2 to rc6
* Fix styling
* Fix typo
* make logger init error'ing
* re-fixing the test issue
Co-authored-by: Benjamin Kampmann <ben@parity.io>
This improves the error message of wasm-builder when the wasm toolchain
isn't installed. Currently we print that the wasm toolchain is not
installed, but the actual problem is that there is a bug in the
packaging in rust. This will now be much easier to debug, by printing
the full error message of the compiler.
* service builder: fix todo about jsonrpc Option workaround
* grandpa-rpc: only share executor instead of sub manager
* grandpa-rpc: fix compilation
* grandpa-rpc: rename to subscription_executor
* node/cli: remove another unused jsonrpc dependency
* grandpa: apply style fixes from code review
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Add fuzzer for the compact custom codec implementation introduced in PR #6720.
This commit adds a fuzzing harness for the custom compact encoding/decoding
introduced in PR #6720.
* Update primitives/npos-elections/fuzzer/src/compact.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Update Cargo.lock: Add changes in elections-fuzzer
* Change indentation from spaces to tabs
Co-authored-by: Vincent Ulitzsch <vincent@srlabs.de>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* checkpoint before removing CT from change trie
* before trie backend without tx
* undo
* Started no transaction, but would need using a different root
calculation method, out of the scope of this pr, will roll back.
* Remove NoTransaction.
* partially address review.
dummy stats implementation for no_std.
* Remove ChangeTrieOverlay.
* modified function
* Remove witness_ext
* need noops changes root
* update from cumulus branch
* line break
* remove warning
* line break
* From review: renamings and stats active in no std (except time).
* include cache, exclude change trie cache with individual temporary bad looking
no_std check
* little test
* fuse imports and filter_map prepare_extrinsics_input_inner fold.
* put back ExtInner into Ext, awkward double proto for new function.
* Apply suggestions from code review
* Update primitives/state-machine/Cargo.toml
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* add offchain worker api to set reserved nodes.
* new offchain api to get node public key.
* node public key from converter
* refactor set reserved nodes ocw api.
* new ndoe authorization pallet
* remove unnecessary clone and more.
* more
* tests for node authorization pallet
* remove dependency
* fix build
* more tests.
* refactor
* Update primitives/core/src/offchain/testing.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update frame/node-authorization/src/lib.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update frame/node-authorization/src/lib.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update frame/node-authorization/src/lib.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* format code
* expose NetworkService
* remove NetworkStateInfo in offchain
* replace NodePublicKey with PeerId.
* set max length of peer id.
* clear more
* use BTreeSet for set of peers.
* decode opaque peer id.
* extract NetworkProvider for client offchain.
* use OpaquePeerId in node authorization pallet.
* fix test
* better documentation
* fix test
* doc
* more fix
* Update primitives/core/src/offchain/mod.rs
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
* Update client/offchain/src/api.rs
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
* derive serialize and deserialize
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
* client/cli/src/config: Warn on low file descriptor limit
Substrate sets the soft file descriptor limit to the hard limit at
startup. In the case of the latter being low already (< 10_000) a
Substrate node under high demand might run into issues e.g. when opening
up new TCP connections or persisting data to the database.
With this commit a warn message is printed to stderr.
* client/cli/Cargo.toml: Update to fdlimit 0.2.0
* Implement request-responses protocols
* Add tests
* Fix sc-cli
* Apply suggestions from code review
Co-authored-by: Max Inden <mail@max-inden.de>
* Fix naming
* Fix other issues
* Other naming fix
* Fix error logging
* Max sizes to u64
* Don't kill connections on refusal to process
* Adjust comment
Co-authored-by: Max Inden <mail@max-inden.de>
* Reset code, almost ready for PR
* Improved build_hardcoded_spec
* Fix line widths
* Fix tests
* Fix sc-service-test
* Suggestions from code review
* Rename to LightSyncState
* It's not syncing :^(
* It syncs!
* Remove rpc call
* Convert spaces to tabs
* Moved sc-service things to export_sync_state.rs
* Fix tests
* Wait for syncing with network_status_sinks
* Remove sc-network from node-template
* Apply suggestions from code review
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Various changes, split the flag up into 2 pieces to make testing easier.
* Update client/cli/src/commands/build_spec_cmd.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Revert a lot of changes
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* client/authority-discovery/worker: Extract address getter
* client/authority-discovery: Test for no duplicate p2p components
* client/authority-discovery: Append PeerId to Multiaddr at most once
When collecting the addresses to be published for the local node,
`addresses_to_publish` adds the local nodes `PeerId` to each
`Multiaddr`. Before doing so, ensure the `Multiaddr` does not already
contain one.
* client/authority-discovery: Remove explicit return
* *: Update to next libp2p version (likely v0.24.0)
* Revert "*: Update to next libp2p version (likely v0.24.0)"
This reverts commit ffe1545aba6c2557a2843579de331f3fc1c60743.
* */Cargo.toml: Update to libp2p v0.24.0
* client/network/src/service: Handle ConnectionClosed returning Option
* Cargo.*: Test kad usize conversion
* Revert "Cargo.*: Test kad usize conversion"
This reverts commit ad317879782f982cb4a4c76029a72b5b97e82bec.
* Cargo.lock: Update to libp2p-kad v0.22.1
* client/cli/Cargo.toml: Update to libp2p 0.24.0
* Bump version
* update test-utils crates to be ready for publishing
* adding changelog
* Adding automaticly generated READMEs
* fixing versions
* another version mishap
* draft
* revert
* WIP
* all that remains is tests
* update Cargo.lock
* tests WIP
* WIP refactor node-template-runtime and node-runtime
* implments sc_cli::RuntimeAdapter for node_template_runtime::Runtime
* final draft
* fix update_config for subcommands
* proper AccountId decoding
* test-runtime tests
* revert
* move RuntimeAdapter to cli-utils
* use &'static str for TryFrom::<&'a str>::Error for Ss58AddressFormat
* tests
* add frame-system to sc-cli dev-dependencies
* add frame-system to sc-cli dev-dependencies
* fix ui test
* wip
* fixed inspect test
* bump impl version
* bump impl version, fixx spaces remove todos
* pallet-balances-cli, rustc for some reason cannot resolve pallet_balances_cli in node-cli 😩
* wip
* Subcommand::run takes &self
* can't believe i missed that 🤦🏾♂️
* bump wasm-bindgen for some reason
* adds key subcommand, rename generate-node-key to generate-node-id
* cargo update and crossed fingers 🤞🏽
* update ui test
* update more ui tests
* should be all good now
* revert subkey change
* revert subkey change
* adds frame-utilities-cli
* Apply suggestions from code review
Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org>
* removes frame from sc-cli, fix license
* my editor and ci disagrees on line width
* bump spec version
* turn off default features for parity-scale-codec
* enable full_crypto feature for sp-core in cli-utils
* merge frame-utilities-cli with pallet-balances-cli
* remove full_crypto feature from sp_core in cli-utils
* bump Cargo.lock
* cli-utils -> frame-utils
* rename BlockNumber to GenericNumber, fix spaces
* fix spaces
* construct additional_signed manually
* sign test
* remove unused vars
* implement subkey with frame-utilities-cli and sc_cli
* fix moduleid test
* CI and clion disagree on line widths
* adds associated Params type to SignedExtensionProvider
* Apply suggestions from code review
Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org>
* move some code around
* removes unneccesary generic params
* moves module_id back to frame_utilities_cli
* Apply suggestions from code review
Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* remove print_ext
* remove MaybeDisplay from pallet_balances::Trait::Balance
* a lot of stuff tbh
* adds ExtrasParamsBuilder
* remove tests for ModuleIdCmd
* address comments from PR
* bump Cargo.lock
* manually insert key into keystore
* remove unnecessary SharedParams
* add validation to vanity pattern, remove unused arg
* remove SharedParams from Sign, Vanity, Verify
* remove SharedParams from ModuleIdCmd, remove expect from Verify, new line to Cargo.toml
* remove SharedParams from InsertCmd
* 🤦🏾♂️
* deleted prometheus.yml
* move a few things around
* fix vanity test
Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Benjamin Kampmann <ben@parity.io>
* Update to libp2p-0.23.
Thereby incorporate bandwidth measurement along the
lines previously done by libp2p itself.
* Tweak dependencies for wasm32 compilation.
For wasm32 we need to enable unstable features to
make `task::Builder::local` available.
* Simplify dependencies.
* Simplify.
Leave the calculation of bytes sent/received per second
to the outer layers of the code, subject to their own
individual update intervals.
* Cleanup
* Re-add lost dev dependency.
* Avoid division by zero.
* Remove redundant metric.
* Enable sending of noise legacy handshakes.
* Add comment about monotonic gauge.
* CI
* refactor globals snapshot
* ignore test
* update pwasm-utils ref
* line width
* add doc comment for internal struct
* add explanation for iteration
* Demote rustdoc to a comment
* use 0.14
Co-authored-by: Sergei Shulepov <sergei@parity.io>
* seal: Change prefix "ext_" to "seal_" for contract callable functions
The word Ext is a overloaded term in the context of substrate. It usually
is a trait which abstracts away access to external resources usually in order
to mock them away for the purpose of tests. The contract module has its own
`Ext` trait in addition the the substrate `Ext` which makes things even more
confusing.
In order to differentiate the contract callable functions more clearly from
this `Ext` concept we rename them to use the "seal_" prefix instead.
This should change no behaviour at all. This is a pure renaming commit.
* seal: Rename import module from "env" to "seal0"
* seal: Fixup integration test
* seal: Add more tests for new import module names