* Update to libp2p-0.29.
* Update dependencies.
* Update Cargo.toml
Co-authored-by: Max Inden <mail@max-inden.de>
* Fix tests.
* Fix tests.
* Fix more tests.
* Update to 0.29.1
* Update ed25519-dalek dependency of sp-core.
* Update Cargo.lock.
Co-authored-by: Max Inden <mail@max-inden.de>
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
* Refactor sc-network/service metrics.
1. Aggregate sc-network metrics into a submodule, introducing
two more sourced metrics to avoid duplicate atomics.
2. Decouple periodic sc-service network metrics from other
metrics, so that they can be updated independently.
* Update client/service/src/metrics.rs
* Update client/service/src/metrics.rs
* Add support for sourced metrics.
A sourced metric is a metric that obtains its values
from an existing source, rather than the values being
independently recorded. It thus allows collecting
metrics from existing counters or gauges without
having to duplicate them in a dedicated prometheus
counter or gauge (and hence another atomic value).
The first use-case is to feed the bandwidth counters
from libp2p directly into prometheus.
* Tabs, not spaces.
* Tweak bandwidth counter registration.
* Add debug assertion for variable labels and values.
* Document monotonicity requirement for sourced counters.
* CI
* Update client/network/src/service.rs
Co-authored-by: Max Inden <mail@max-inden.de>
Co-authored-by: Max Inden <mail@max-inden.de>
* 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
When a peer in `Incoming` state disconnects, the "alive" entry
in the `incoming` list for that peer must be updated (set to `false`).
Currently the entry that is updated may be an earlier entry for the
same peer that is already no longer alive. This can happen if a
peer repeatedly connects (incoming) and disconnects between invocations to
`poll()` of the behaviour.
* Ensure authority discovery avoids self-lookups.
Thereby additionally guard the `NetworkService` against
adding the local peer to the PSM or registering a
"known address" for the local peer.
* Clarify comments.
* See if returning errors is ok.
* Changes for the next libp2p release:
* Updates to the Kademlia APIs.
* Updated imports due to the extracted libp2p-swarm crate.
* ...
Still pending at least the following:
* rust-libp2p/#1189
* rust-libp2p/#1191
* rust-libp2p/#1194
* Use Quorum::One.
The previous choice was apparently arbitrary.
* Use libp2p-0.11 from crates.io. Address feedback.
* Correct imports after merge.
* Fix DiscoveryBehaviour::poll.
The previous implementation regularly returned `NotReady` from `poll`
despite the inner Kademlia behaviour having events ready, thus letting
the `poll`ing be largely driven by the task wakeups from the Delay for
the next random Kademlia query, inducing major delays in consuming
the ready Kademlia events and thus slowing progress.
The discovery test now passes quickly, as expected.
* Ensure the Delay is polled right after reset.
For task wakeup.
* Update libp2p. Add support for ed25519 node (network) keys.
* Update networking to the changes from https://github.com/libp2p/rust-libp2p/pull/972.
* Add support for using ed25519 keys for libp2p networking.
* Add support for reading libp2p secret keys from (external) files.
* Adapt to changes from https://github.com/libp2p/rust-libp2p/pull/992
* More tests.
* Cosmetics
* Deduplicate tests.
* Remove quickcheck from tests that don't use extra random inputs.
* Remove quickcheck.
* Swap new/default impls for NetworkConfiguration.
* Use libp2p-0.5.0 from crates.io.
* Post-rebase update.
* Remove unnecessary wildcard pattern.
* Combine two overlapping tests.
Ensure the config directory exists before trying to write the public key file.
It is the responsibility of obtain_private_key to do so, as per the purpose
of this function.