* parity-version: betalize 2.0
* Multiple improvements to discovery ping handling (#8771)
* discovery: Only add nodes to routing table after receiving pong.
Previously the discovery algorithm would add nodes to the routing table
before confirming that the endpoint is participating in the protocol. This
now tracks in-flight pings and adds to the routing table only after receiving
a response.
* discovery: Refactor packet creation into its own function.
This function is useful inside unit tests.
* discovery: Additional testing for new add_node behavior.
* discovery: Track expiration of pings to non-yet-in-bucket nodes.
Now that we may ping nodes before adding to a k-bucket, the timeout tracking
must be separate from BucketEntry.
* discovery: Verify echo hash on pong packets.
Stores packet hash with in-flight requests and matches with pong response.
* discovery: Track timeouts on FIND_NODE requests.
* discovery: Retry failed pings with exponential backoff.
UDP packets may get dropped, so instead of immediately booting nodes that fail
to respond to a ping, retry 4 times with exponential backoff.
* !fixup Use slice instead of Vec for request_backoff.
* Add separate database directory for light client (#8927) (#9064)
* Add seperate default DB path for light client (#8927)
* Improve readability
* Revert "Replace `std::env::home_dir` with `dirs::home_dir` (#9077)" (#9097)
* Revert "Replace `std::env::home_dir` with `dirs::home_dir` (#9077)"
This reverts commit 7e779327eb.
* Restore some of the changes
* Update parity-common
* Offload cull to IoWorker. (#9099)
* Fix work-notify. (#9104)
* Update hidapi, fixes#7542 (#9108)
* docker: add cmake dependency (#9111)
* Update light client hardcoded headers (#9098)
* Insert Kovan hardcoded headers until #7690241
* Insert Kovan hardcoded headers until block 7690241
* Insert Ropsten hardcoded headers until #3612673
* Insert Mainnet hardcoded headers until block 5941249
* Make sure to produce full blocks. (#9115)
* Insert ETC (classic) hardcoded headers until block #6170625 (#9121)
* fix verification in ethcore-sync collect_blocks (#9135)
* Completely remove all dapps struct from rpc (#9107)
* Completely remove all dapps struct from rpc
* Remove unused pub use
* `evm bench` fix broken dependencies (#9134)
* `evm bench` use valid dependencies
Benchmarks of the `evm` used stale versions of a couple a crates that
this commit fixes!
* fix warnings
* Update snapcraft.yaml (#9132)
* Remove the dapps system from Parity
* Move node-health outside of dapps
* Fix set dapps list test
* Update Cargo.lock
* Deprecate options
* Add _legacy_ prefixes in Dapps
* Fix tests
* Fix deprecatedness of dapps-path
* Update `add_license` script
* run script
* add `remove duplicate lines script` and run it
* Revert changes `English spaces`
* strip whitespaces
* Revert `GPL` in files with `apache/mit license`
* don't append `gpl license` in files with other lic
* Don't append `gpl header` in files with other lic.
* re-ran script
* include c and cpp files too
* remove duplicate header
* rebase nit
* updater: refactor updater flow into state machine
* updater: delay update randomly within max range
* updater: configurable update delay
* updater: split polling and updater state machine step
* updater: drop state to avoid deadlocking
* updater: fix fetch backoff
* updater: fix overflow in update delay calculation
* updater: configurable update check frequency
* updater: fix update policy frequency comparison
* updater: use lazy_static for platform and platform_id_hash
* updater: refactor operations contract calls into OperationsClient
* updater: make updater generic over operations and fetch client
* updater: fix compilation
* updater: add testing infrastructure and minimal test
* updater: fix minor grumbles
* updater: add test for successful updater flow
* updater: add test for update delay
* updater: add test for update check frequency
* updater: mock time and rng for deterministic tests
* updater: test backoff on failure
* updater: add test for backoff short-circuit on new release
* updater: refactor to increase readability
* updater: cap maximum backoff to one month
* updater: add test for detecting already downloaded update
* updater: add test for updater disable on fatal errors
* updater: add test for pending outdated fetch
* updater: test auto install of updates
* updater: add test for capability updates
* updater: fix capability update
* updater: use ethabi to create event topic filter
* updater: decrease maximum backoff to 1 day
* updater: cap maximum update delay with upcoming fork block number
* updater: receive state mutex guard in updater_step
* updater: overload execute_upgrade to take state mutex guard
* updater: remove unnecessary clone of latest operations info
* updater: remove latest operations info clone when triggering fetch
* Refactor updater to use ethabi-derive
* Grumble: do_call type alias
* Empty commit to trigger test re-run
* migration to ethabi-5.0
* migration to ethabi-5.0 in progress
* use ethabi_deriven to generate TransactAcl contract
* use ethabi_deriven to generate Registry contract
* hash-fetch uses ethabi_derive, removed retain cycle from updater, fixed#7720
* node-filter crate uses ethabi_derive to generate peer_set contract interface
* use LruCache in node-filter instead of HashMap
* validator_set engine uses ethabi_derive
* ethcore does not depend on native_contracts
* miner does no depend on native_contracts
* secret_store does not use native_contracts (in progress)
* removed native-contracts
* ethcore and updater does not depend on futures
* updated ethereum-types
* fixed all warnings caused by using new version of ethereum-types
* updated ethabi_derive && ethabi_contract to get rid of warnings
* removed another retain cycle in updater, fixed following minor version on update
* moved contracts out of native_contracts res
* updated ethabi_contract
* fixed failing test
* fixed failing test
* there is no need to create two contracts of the same kind any more
* simplify updater::ReleaseTrack conversion into u8 and add several tests for it
* applied review suggestions
* applied review suggestions
* created the dir crate in util
* moved code from ethstore/src/dir/paths.rs to dir crate
* rename dir module in ethstore to accounts_dir to distinguish it
from the dir crate
* changes after @tomusdrw on #6952