* Bump version
* update test-utils crates to be ready for publishing
* adding changelog
* Adding automaticly generated READMEs
* fixing versions
* another version mishap
* 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
* Rough skeleton for what I think the RPC should look like
* Create channel for sending justifications
Sends finalized header and justification from Grandpa to the
client. This lays the groundwork for hooking into the RPC module.
* WIP: Add subscribers for justifications to Grandpa
Adds the Sender end of a channel into Grandpa, through which notifications
about block finality events can be sent.
* WIP: Add a struct for managing subscriptions
Slightly different approach from the last commit, but same
basic idea. Still a rough sketch, very much doesn't compile yet.
* Make naming more clear and lock data in Arc
* Rough idea of what RPC would look like
* Remove code from previous approach
* Missed some things
* Update client/rpc-api/src/chain/mod.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update client/rpc-api/src/chain/mod.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Split justification subscription into sender and receiver halves
* Replace RwLock with a Mutex
* Add sample usage from the Service's point of view
* Remove code that referred to "chain_" RPC
* Use the Justification sender/receivers from Grandpa LinkHalf
* Add some PubSub boilerplate
* Add guiding comments
* TMP: comment out to fix compilation
* Return MetaIoHandler from PubSubHandler in create_full
* Uncomment pubsub methods in rpc handler (fails to build)
* node/rpc: make Metadata concrete in create_full to fix compilation
* node: pass in SubscriptionManger to grandpa rpc handler
* grandpa-rpc: use SubscriptionManger to add subscriber
* grandpa-rpc: attempt at setting up the justification stream (fails to build)
* grandpa-rpc: fix compilation of connecting stream to sink
* grandpa-rpc: implement unsubscribe
* grandpa-rpc: update older tests
* grandpa-rpc: add full prefix to avoid confusing rust-analyzer
* grandpa-rpc: add test for pubsub not available
* grandpa-rpc: tidy up leftover code
* grandpa-rpc: add test for sub and unsub of justifications
* grandpa-rpc: minor stylistic changes
* grandpa-rpc: split unit test
* grandpa-rpc: minor stylistic changes in test
* grandpa-rpc: skip returning future when cancelling
* grandpa-rpc: reuse testing executor from sc-rpc
* grandpa-rpc: don't need to use PubSubHandler in tests
* node-rpc: use MetaIoHandler rather than PubSubHandler
* grandpa: log if getting header failed
* grandpa: move justification channel creation into factory function
* grandpa: make the justification sender optional
* grandpa: fix compilation warnings
* grandpa: move justification notification types to new file
* grandpa-rpc: move JustificationNotification to grandpa-rpc
* grandpa-rpc: move JustificationNotification to its own file
* grandpa: rename justification channel pairs
* grandpa: rename notifier types
* grandpa: pass justification as GrandpaJustification to the rpc module
* Move Metadata to sc-rpc-api
* grandpa-rpc: remove unsed error code
* grandpa: fix bug for checking if channel is closed before sendind
* grandpa-rpc: unit test for sending justifications
* grandpa-rpc: update comments for the pubsub test
* grandpa-rpc: update pubsub tests with more steps
* grandpa-rpc: fix pubsub test
* grandpa-rpc: minor indendation
* grandpa-rpc: decode instead of encode in test
* grandpa: fix review comments
* grandpa: remove unused serde dependency
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Tomasz Drwięga <tomasz@parity.io>
* Allow blacklisting blocks from being finalized again after block revert
* Use BlockRules for storing unfinalized and add have_state_at in revert
* Move finalization_check in finalize_block upward
* Directly mark finalization blacklist as badblocks
* Remove obselete comment
* Remove service components and add build_network, build_offchain_workers etc
* Improve transaction pool api
* Remove commented out line
* Add PartialComponents
* Add BuildNetworkParams, documentation
* Remove unused imports in tests
* Apply suggestions from code review
Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
* Remove unused imports in node-bench
Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
* Ensure we close old file handles hold by sysinfo
* Dropping is needed unfortunately
* enable process refreshing, ignore result from refresh_process
* jumping to proposed patch
* switch to latest sysinfo
* Initial commit
Forked at: 74655edebc
Parent branch: origin/master
* Move task_manager.rs to mod.rs
* Graceful shutdown for the task manager
* Await all background task JoinHandle at the same time
* Add tests
* Make future() wait also for exit signal + fix essential task failed
Probably related to https://github.com/paritytech/cumulus/issues/111
* add comments for non-obvious code
* Use clean_shutdown() in sc-cli
* Adapt code and upgrade tokio in sc-cli
* cleanup spacing in doc
* Add license
* I guess actually running the clean shutdown would be a good idea
* fix tests
* Update client/cli/src/runner.rs
Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org>
* Improve error logging
* disable other tests (can't reproduce on my machine)
* Revert "disable other tests (can't reproduce on my machine)"
This reverts commit c133c590f33c253123ba0555ce719a71ededd60d.
* It is possible that the tasks are ended first
* Revert "It is possible that the tasks are ended first"
This reverts commit 502aba4a49fb5d892e704c412b8a81768a3f2c71.
* Use single threaded scheduler for more predictability
* enable_time
* Revert "enable_time"
This reverts commit 4e152140764a4bddeedff06a4e36ec701909e8c7.
* Revert "Use single threaded scheduler for more predictability"
This reverts commit ee5e13c5f13ff71e012dcda13579dffeb15f8ffc.
* Revert "Revert "It is possible that the tasks are ended first""
This reverts commit 1b91a8ca3eebbdc18be199c8ca188e88669ae649.
* This cannot be verified either with a threaded pool
* Apply suggestions from code review
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Benjamin Kampmann <ben@parity.io>
Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Simplify a few chain components creation APIs related to the service
* Fix basic-authorship doc tests
* Remove DefaultQueue
* Update client/service/src/builder.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Move ExecutionExtensions comment around
* Remove unused BlakeTwo256
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Improve transaction submission
Before this pr the transaction pool validated each transaction, even if
the transaction was already known to the pool. This pr changes the
behavior to first check if we are already aware of a transaction and
thus, to only validate them if we don't know them yet. However, there is
still the possibility that a given transaction is validated multiple
times. This can happen if the transaction is added the first time, but
is not yet validated and added to the validated pool.
Besides that, this pr fixes the wrong metrics of gossiped transactions
in the network. It also moves some metrics to the transaction pool api,
to better track when a transaction actually is scheduled for validation.
* Make sure we don't submit the same transaction twice from the network concurrently
* Remove added listener call
* Feedback
* Ignore banned on resubmit
* Upgrade `kvdb-*`, `trie-db` and `memory-db`
The updates of `trie-db` and `memory-db` are important, as they fix the
non-deterministic build of Polkadot/Substrate.
* Change `trie-db` version
* Update test-utils/runtime/Cargo.toml
Co-authored-by: Andronik Ordian <write@reusable.software>
* Update primitives/trie/Cargo.toml
Co-authored-by: Andronik Ordian <write@reusable.software>
* Update `Cargo.lock` and `trie-bench`
* Fix UI tests
* Switch to fixed version of memory-db
Co-authored-by: Andronik Ordian <write@reusable.software>
* Update SubstrateCli to return String
* Add default implementation for executable_name()
* Use display instead of PathBuf
* Get file_name in default impl of executable_name
* Remove String::from and use .into()
* Use default impl for executable_name()
* Use .as_str() and remove useless .to_string()
* Update only sp-io when running companion build
* Remove unneeded update of sp-io in CI
Co-authored-by: Cecile Tonglet <cecile@parity.io>
* :)
* Slight tidy
* Remove ServiceBuilderCommand
* Remove whitespace
* Keep task manager alive for check_block/import_blocks
* Pass task_manager to run_until_exit
* Make task_manager in run_until_exit and make subcommands async
* Change the async_run fn to return a future and task manager
* async_run should take a result fn
* Apply suggestions from code review
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Fix spaces in export_raw_state
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Restrict `Protected` to some heap types.
* Comment abut Protected usage.
* Remove Protected from crypto, use secrecy crate for existing uses.
* use a parse function
* fix error convert
* Rename and move secretY string function.
* std result
* WIP
* Making progress
* Almost ready
* Get service tests compiling
* Fix node screenshot
* Line widths
* Fix node cli tests
* Fix node cli warning
* ChainComponents -> ServiceComponents, fix tests
* make spawn_handle public
* Remove spawnnamed impl for taskmanager
* Move the keep alive stuff to the task manager
* Move the telemetry, base path, rpc keep_alive to the service builder
* Make the task manager keep alive an internal detail
* Rewrite the browser start_client future
* Remove run_node etc
* Revert my personal changes to browser-demo/build.sh
* use |config|
* Add a runtime_version function to SubstrateCli
* Reexport role and runtime version from sc cli
* Update Cargo.lock
* runtime_version -> native_runtime_version
* Pass chain spec to native_runtime_version for polkadot
* Fix line widths
* Traitify ServiceComponents Client
* Fix browser informant
* Fix documentation
* Add an informant_output_format function to the cli config
* Wrap informant output format in an option
* Revert batch verifier
* Remove wasm-timer from primitives io cargo lock
* Drop informant_output_format function
* derive debug for output format
Before we only updated the chain info of sync when we have imported
something using the import queue. However, if you import your own
blocks, this is not done using the import queue and so sync is not
updated. If we don't do this, it can lead to sync switching to "major
sync" mode because sync is not informed about new blocks. This
especially happens on Cumulus, where a collator is selected multiple
times to include its block into the relay chain and thus, sync switches
to major sync mode while the node is still building blocks.
* Seperate out the complexity in ServiceBuilder::build_common into seperate functions
* Fix line widths
* Move some functions to their respective crates
* client: use appropriate ExecutionContext for sync/import
* client: remove dead code
* client: ExecutionContext: distinguish between own and foreign imports
* client: fix cli parameter doc
* Revert "client: ExecutionContext: distinguish between own and foreign imports"
This reverts commit 0fac11520704c364a82432c5b927e987ba043cdb.
* primitives: add docs for ExecutionContext
* cli: execution strategy docs
* cli: use different execution context for importing block on validator
* cli: remove defaults from execution context flags
* transaction-pool: expose blocking api for tx submission
* service: separate ServiceBuilder::build for full and light
* service: add ServiceBuilder::build_common
* transaction-pool: extend docs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>