Pierre Krieger
074d80f519
Fix potential state mismatch in behaviour.rs ( #6013 )
...
* Fix state mismatch in behaviour.rs
* Add TODO
2020-05-13 19:50:01 +02:00
Pierre Krieger
10492c0689
Add mitigation for the state inconsistency issue ( #5996 )
...
* Add mitigation for the state inconsistency issue
* Add logging
2020-05-13 14:54:59 +02:00
Pierre Krieger
0a11c48aa1
Turn an error! into a debug! ( #6000 )
2020-05-12 19:22:41 +02:00
Max Inden
1ede6d1e36
client/network: Remove default Kademlia DHT in favor of per protocol DHT ( #5993 )
...
Substrate was previously running both a chain specific Kademlia DHT as
well as the `/ipfs/kad/1.0.0` Kademlia DHT for backwards compatibility.
(See 4db45a8 for details.)
With the end of the transition period this commit removes the former
only leaving the latter and thus preventing the discovery of
incompatible nodes via Kademlia.
2020-05-12 19:07:36 +02:00
Pierre Krieger
b4b1293c78
Restore the reputation penalty for timeouts ( #5984 )
2020-05-12 17:08:05 +02:00
Pierre Krieger
e5a36c8fa9
Small fix to block response completion reporting ( #5967 )
...
* Small fix to block response completion reporting
* while -> if
2020-05-11 17:39:39 +02:00
Pierre Krieger
ed6c5bb190
Properly log when we discard a sync response ( #5969 )
2020-05-11 14:31:56 +02:00
Nikolay Volf
679c91e18c
Refactor network transactions handling ( #5939 )
...
* change propagation
* add bound
2020-05-11 10:36:00 +02:00
Pierre Krieger
a8fac92396
Disconnect node after sync request cancelled ( #5945 )
2020-05-07 15:07:52 +02:00
Nikolay Volf
ffb2d09aa1
change to vecdeque ( #5937 )
2020-05-07 12:50:07 +02:00
Arkadiy Paronyan
8606b886aa
Validate block bodies when syncing ( #5894 )
2020-05-05 16:21:12 +02:00
Bastian Köcher
9c5536e01a
Expose that BasicQueue expects blocking spawn ( #5860 )
...
* Expose that `BasicQueue` expects blocking spawn
Up to now `BasicQueue` expected a closure that to spawn a `Future`.
This was expected to be a closure that spawns a blocking future.
However, this wasn't documented anywhere. This pr introduces a new trait
`SpawnBlocking` that exposes this requirement to the outside.
* Feedback
2020-05-04 19:40:29 +02:00
Bastian Köcher
3d188ef17d
Fix sync logging ( #5879 )
2020-05-04 13:43:08 +02:00
Pierre Krieger
2d9e6dc18e
Include the network overhead in the request-in-time metric ( #5854 )
2020-04-30 17:38:28 +00:00
Pierre Krieger
929bd07bef
Move around stuff in sc_network ( #5847 )
2020-04-30 13:08:38 +00:00
Nikolay Volf
c09bb1f350
Use mem::take instead of mem::replace where appropriate ( #5846 )
...
* replace replace with take
* Update client/api/src/cht.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/api/src/cht.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
2020-04-30 12:53:36 +00:00
Arkadiy Paronyan
fdde90077b
Optimize collecting pending block requests ( #5829 )
...
* Optimized collecting pending block requests
* Make sure request iterator is consumed
2020-04-30 09:50:08 +02:00
pscott
0f401e4699
Move spawning tasks from thread pools to Service's TaskManager for block importing ( #5647 )
...
Co-Authored-By: Pierre Krieger <pierre.krieger1708@gmail.com >
2020-04-29 18:46:39 +02:00
Arkadiy Paronyan
ba50664fea
Reputation penalty for sending empty block response ( #5814 )
2020-04-29 10:12:23 +02:00
Pierre Krieger
1be634da85
Add metrics about block requests ( #5811 )
...
* Add metrics about block requests
* Apply suggestions from code review
Co-Authored-By: Max Inden <mail@max-inden.de >
Co-authored-by: Gavin Wood <i@gavwood.com >
Co-authored-by: Max Inden <mail@max-inden.de >
2020-04-28 17:47:40 +02:00
Seun Lanlege
4fa5941f44
Move sc-client into sc-service ( #5502 )
...
* Drop client from sc-network and sc-client-db, move LongestChain to sc-client-api
* move leaves, cht, in_mem to sc-client-api, drop client from sc-finality-grandpa
* drop sc-service from sc-rpc
* drop sc-service from sc-consensus-aura
* drop sc-client from manual-seal and babe
* drop sc-client from utils/frame/rpc/system and utils/frame/benchmarking-cli
* drop sc-client from bin/node and bin/node-template
* drop sc-client
* fix tests
* remove check -p sc-client from gitlab.yml
* fix warnings
* fixes ui test
* fix light client tests
* adds associated Client type to AbstractService
* adds UsageProvider to Client
* fixed ui test, again
* tried and failed to get node-cli to compile for wasm
* thanks to tomaka for helping me get node-cli to compile for wasmm
* ui test pls pas 🙏🏾
* all tests passing 🪄
* no_run documentation code
* rm -f documentation code
* ClientProvider
* fix mega trait
* move LongestChain to sc-consensus, use adds minimal bounds to AbstractService::Client
* adds license to sc-consensus
Co-authored-by: Benjamin Kampmann <ben@parity.io >
2020-04-28 11:59:31 +00:00
Pierre Krieger
636ddd95d2
Extra timeout handling in block_requests ( #5794 )
2020-04-27 12:17:26 +02:00
Pierre Krieger
6a7e86e677
Use new block requests protocol ( #5760 )
...
* Use new block requests protocol
* Tweak comment
2020-04-24 13:48:22 +02:00
Chevdor
e731817e24
Fix error message when providing an incorrect peer-id ( #5724 )
...
* Fix error message when providing an incorrect peer-id
* Fix error message to cover all cases
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com >
2020-04-23 22:20:24 +02:00
Toralf Wittner
421ef498f4
network: Only insert global addresses into the DHT. ( #5735 )
...
* network: Only insert global addresses into the DHT.
Currently every address reported via libp2p-identify is inserted into
the DHT which thus contains a multitude of unreachable addresses such
as from 127.0.0.0/8 or 10.0.0.0/8.
Issue #5099 suggested a dedicated service over UDP to gauge the
reachability of an address, which would however incur extra I/O costs
and be of limited use.
As an alternative and simpler tactic, this PR only allows global IP
addresses to be inserted into the DHT unless an explicit command-line
flag `--allow-non-global-addresses-in-dht` is given or a node is
started with `--dev`. This opt-in behaviour is meant to allow
site-local networks to still make use of a DHT.
* Enable non-global in more test setups.
* Replace command-line option with different name.
* Another test fix.
2020-04-23 09:52:20 +02:00
Pierre Krieger
a7f578d63a
Add a protocol that answers finality proofs ( #5718 )
...
* Add a protocol that answers finality proofs
* Fix documentation
* Use Toggle
2020-04-22 10:58:26 +02:00
Pierre Krieger
3ad9f65f11
Send a status message on block announce handshake ( #5726 )
...
* Send a status message on block announce handshake
* Make sure to send the handshake to all handlers
2020-04-22 10:20:52 +02:00
Pierre Krieger
25c3ab2c1e
Fix warning reported in out_events when Registry is None ( #5716 )
2020-04-22 00:36:12 +02:00
Pierre Krieger
f2578bdc3b
Pass an encoded Roles as the notifications protocols handshakes ( #5665 )
2020-04-21 10:47:37 +02:00
cheme
4ffcf98d8d
Child trie api changes BREAKING ( #4857 )
...
Co-Authored-By: thiolliere <gui.thiolliere@gmail.com >
2020-04-20 15:21:22 +02:00
Pierre Krieger
ca1c60c2cf
Move around definitions in sc_network ( #5701 )
2020-04-20 14:35:17 +02:00
Pierre Krieger
cff487dd22
Refactor misleading log in discovery ( #5679 )
...
* Refactor misleading log
* Forgot to git add the compilation fix
2020-04-18 14:04:23 +02:00
Ashley
95dc400bb8
Make network_config_path an Option ( #5661 )
...
* Make network_config_path an Option
* Fix network tests
* Use None as the network config path
* Fix cli
* Don't make PathBuf an Option in a cli context
2020-04-17 14:48:45 +02:00
Pierre Krieger
0fd5643e84
Adjustments to Kademlia-related metrics ( #5660 )
...
* Turn kbuckets_num_nodes into a GaugeVec
* random_kademlia_queries -> kademlia_random_queries
* kademalia_random_queries_total now a CounterVec
* Add metrics about records store
2020-04-17 09:11:47 +02:00
Pierre Krieger
95ee37d242
Add alternative RPC methods to system_networkState ( #5643 )
...
* Add alternatives to system_networkState
* Fix tests
* Apply suggestions from code review
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
2020-04-16 16:36:14 +01:00
Pierre Krieger
239d0998ea
Several tweaks to networking Prometheus metrics ( #5636 )
2020-04-16 15:18:35 +02:00
Toralf Wittner
4db45a85de
Use a Kademlia instance per ProtocolId. ( #5045 )
2020-04-16 10:43:40 +02:00
Pierre Krieger
efde6056f6
Temporarily increase notifications buffer size ( #5644 )
...
* Temporarily increase notifications buffer size
* Add a 511.0 bucket
2020-04-15 23:27:33 +02:00
Pierre Krieger
1e1b0e2767
Give names to channels ( #5626 )
...
* Give names to channels
* Fix
* A couple more changes
* More minor tweaks
* Fix test
2020-04-14 14:49:41 +02:00
Arkadiy Paronyan
76a5555031
More robust sync ( #5604 )
...
* More robust ancestry search
* Punish peers for being on the wrong fork
* Update client/network/src/protocol/sync.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
2020-04-13 19:09:43 +02:00
Pierre Krieger
877a7ab531
Add metrics for the events in the network output channels ( #5597 )
...
* Add metrics for the events in the network output channels
* Documentation fixes
* A couple fixes
* Fix panic at destruction
* Rework for direct Prometheus integration
* Don't lock on the Receiver
* Another review address
* Address review
* Update client/network/src/service/out_events.rs
Co-Authored-By: Max Inden <mail@max-inden.de >
* Fix bad event name
* Fix descriptions
* Fix names
* client/network/service/out_events: Apply remaining suggestions
Co-authored-by: Max Inden <mail@max-inden.de >
2020-04-09 20:30:34 +02:00
Pierre Krieger
ac9a852028
Update to libp2p 0.18 ( #5602 )
...
* Update to libp2p 0.18
* Update Cargo.lock
* Also bump in browser-utils
2020-04-09 18:41:21 +02:00
Roman Borschel
40c56deea3
Do not prematurely emit CustomProtocolClosed on connection close. ( #5595 )
2020-04-09 12:41:34 +02:00
Pierre Krieger
cebd073649
Report local force-closing connections to Prometheus ( #5575 )
...
* Report local force-closing connections to Prometheus
* Also report ping timeouts separately
* Address concerns of #5571
2020-04-09 11:24:01 +02:00
Pierre Krieger
0cc2e4df89
Fix #5516 ( #5560 )
...
* Add a failing test
* Make test not freeze
* Fix the bug
* Fix spaces
* Fix tests
* Apply suggestions from code review
Co-Authored-By: Toralf Wittner <tw@dtex.org >
* Make sure test doesn't succeed if nothing happened
* Fix build
* Do the events change
Co-authored-by: Toralf Wittner <tw@dtex.org >
2020-04-08 13:32:22 +02:00
Pierre Krieger
571f1daa49
Add more Prometheus metrics ( #5571 )
...
* Add more Prometheus metrics
* Update client/network/src/service.rs
Co-Authored-By: Max Inden <mail@max-inden.de >
* Update client/network/src/service.rs
Co-Authored-By: Max Inden <mail@max-inden.de >
Co-authored-by: Gavin Wood <gavin@parity.io >
Co-authored-by: Max Inden <mail@max-inden.de >
2020-04-08 11:14:35 +02:00
Roman Borschel
f8c8355ac7
libp2p-next ( #5278 )
...
* Adapt to rust-libp2p#1440.
* Further adapt to libp2p/master.
* Update to libp2p-0.17
* Finishing touches.
* Remove stray TODO.
* Incorporate review feedback.
* Remove unused import.
2020-04-08 09:23:21 +02:00
Gavin Wood
0253793d90
More emoji ( #5556 )
2020-04-07 11:55:46 +01:00
Cecile Tonglet
3da069e359
CLI: refactoring: remove Options from sc_service::Configuration's fields ( #5271 )
...
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* Rename IntoConfiguration to CliConfiguration
* Renamed into_configuration to create_configuration
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* Move keystore params to its own module
* Use in-memory keystore even for build-spec
* Enforce proper value for node name
* dev_key_seed
* Telemetry endpoints
* rustfmt
* Converted all RunCmd
* rustfmt
* Added export-blocks
* Missed something
* Removed config_path in NetworkConfiguration (not used)
* Fixed warnings
* public_addresses is used but never set, keeping it
* Merge Configuration.node and NetworkConfiguration.node_name
...because they are the same thing
* Added: import-blocks
* Adding a proc_macro to help impl SubstrateCli
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* Re-export spec_factory from sc_cli
* Re-added all the commands
* Refactored node_key_params
* Fixed previous refucktoring
* Clean-up and removed full_version()
* Renamed get_is_dev to not confuse with Configuration field
* Fixed sc-cli-derive example
* Fixing tests
* Fixing tests and removing some (will re-add later)
* Fixing more tests
* Removes the need of type parameter
* Converting bin/node and simplifying API
* Converting more
* Converting last command
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* Fixing tests and added default for WasmExecutionMethod
* Fixing stuff
* Fixed something I broke oops
* Update Cargo.lock
* Moving things around
* Convert everything to Result
* Added new macros to simplify the impl of CliConfiguration
* Added a macro to generate CliConfiguration automatically for subcommands
* Revert... too many macros (this one is not really useful)
This reverts commit 9c516dd38b40fbc420b02c1f8e61d5b2b1a4e434.
* Renamed is_dev to get_is_dev
Good enough for now
* Fixed name roles (this is plural, not singular)
* Clean-up
* Re-export NodeKeyConfig and TelemetryEndpoints from sc_service
* Improve styling/formatting
* Added copyrights
* Added doc and fixed warnings
* Added myself to code owners
* Yes it is needed according to the history
* Revert formatting
* Fixing conflict
* Updated build.rs
* Cargo.lock
* Clean-up
* Update client/cli-derive/Cargo.toml
Co-Authored-By: Seun Lanlege <seunlanlege@gmail.com >
* Fail if using proc_macro and build.rs is not set properly
* Dropped all get_ in front of methods
* Clean-up
* Fixing proc macro missing env var
* Get the configuration inside the Runtime (needed for polkadot)
* Clean-up
* Get is_dev from argument like the others
* Get chain ID instead of chain spec from shared params
* &self is passed to spec_factory/load_spec
* Wrong text
* Fix example
* Officialize macro and made a cool doc
* Renamed spec_factory to load_spec (substrate_cli_configuration)
* Removed not so useful ChainSpec
* Renamed SubstrateCLI to SubstrateCli
* Added changelog for impl_version being full now
* Renamed Runtime to Runner
* Update changelog to show example
* Removed option on database cache size
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* Fix on removal of option
* typo
* Clean-up imports
* Added info in Cargo.toml
* typo
* remarks
* Moved function for build.rs to substrate-build-script-utils
* Fixed example & test of cli-derive
* Moved function for build.rs to substrate-build-script-utils
* Renamed substrate_cli_configuration to substrate_cli oops
It implements SubstrateCli not CliConfiguration!
* Added documentation and wrapper macro
* Removed option on database cache size
* Removed option on database cache size
* Clean-up
* Reduce risk of errors due to typos
* Removed option on database cache size
* Added NOTE as suggested
* Added doc as suggested
* Fixed test
* typo
* renamed runtime to runner
* Fixed weird argument
* More commas
* Moved client/cli-derive to client/cli/derive
* Added 7 tests for the macros
* Improve error message
* Upgrade assert_cmd
* Fixing missing stuff
* Fixed unused import
* Improve SubstrateCli doc
* Applied suggestions
* Fix and clean-up imports
* Started replacing macros WIP
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* Started removing substrate_cli
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* WIP
Forked at: d6aa8e954c
Parent branch: origin/master
* fixed bug introduced while refactoring
* Renamed NetworkConfigurationParams to NetworkParams for consistency sake
* Fixed test
* Update client/cli/src/commands/runcmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/commands/runcmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/commands/export_blocks_cmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/commands/check_block_cmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update bin/node/cli/src/command.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update bin/node/cli/src/command.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/commands/export_blocks_cmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Revert "Update client/cli/src/commands/export_blocks_cmd.rs"
This reverts commit 5906776953392c02beac6bc0bf50f8cbe1a12a01.
* Revert "Update client/cli/src/commands/check_block_cmd.rs"
This reverts commit f705f42b7f3d732be001141afee210fe46a1ef47.
* Revert "Update client/cli/src/commands/export_blocks_cmd.rs"
This reverts commit 8d57c0550164449e6eb2d3bacb04c750c714fcea.
* Revert "Update client/cli/src/commands/runcmd.rs"
This reverts commit 93e74cf5d2e1c0dc49cdff8608d59fc40fc59338.
* Revert "Update client/cli/src/commands/runcmd.rs"
This reverts commit 11d527ba345c0d79f0d3b5b071933d95474d0614.
* Update client/cli/src/commands/export_blocks_cmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/commands/import_blocks_cmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/commands/purge_chain_cmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Changed ::sc_cli to $crate in the macro
* fixed tests
* fixed conflicts
* Fixing test
* Update client/cli/src/commands/purge_chain_cmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/params/pruning_params.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Remove comment as suggested
* Apply suggestion
* Update client/cli/src/commands/purge_chain_cmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/commands/purge_chain_cmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/commands/purge_chain_cmd.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update utils/frame/benchmarking-cli/src/command.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/runner.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/runner.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/runner.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/params/pruning_params.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/params/node_key_params.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/params/network_params.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/lib.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/config.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com >
* Added doc
* Fixed error introduced after applying suggestion
* Revert "Update client/cli/src/params/pruning_params.rs"
This reverts commit 0574d06a4f1efd86e94c1214420a12e7a4be0099.
* Print error
* Apply suggestions from code review
* Remove useless Results
* Fixed CI failing on polkadot approval
Co-authored-by: Seun Lanlege <seunlanlege@gmail.com >
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
2020-04-07 11:38:07 +02:00
Pierre Krieger
dba0fcbaea
Prometheus Metrics: Turn notifications_total counter into notifications_sizes histogram ( #5535 )
...
* Turn notifications_total into notifications_sizes
* Address review
2020-04-06 18:36:46 +02:00