Commit Graph
18 Commits
Author SHA1 Message Date
Anton 476ee340d9 fix: always set Kademlia mode to server (#14703)
otherwise, connectivity drops significantly.
2023-08-03 20:53:42 +03:00
Anton fb39893bb3 use Toggle instead of Option for mdns (#14667)
refs https://github.com/paritytech/substrate/pull/14429#discussion_r1272061153
2023-07-31 07:36:08 +00:00
Antonandparity-processbot bc5a52678a [Substrate companion] update libp2p to 0.52.0 (#2838)
* update tinyvec to 1.6.0

* update once_cell to 1.18.0

* update data-encoding and libc

* update js-sys

* update wasm-bindgen-futures

* update pin-project

* update arrayvec

* update sha2

* update lru to 0.11

* update sha2 w/ diener patched substrate

* updated Cargo.lock

* redo updates

* redo sha2 updates with diener

* update lockfile for {"polkadot", "substrate"}

---------

Co-authored-by: parity-processbot <>
2023-07-25 14:58:13 +00:00
Antonandparity-processbot 7a1d96e1ce [Substrate companion] update libp2p to 0.52.0 (#7472)
* update tinyvec to 1.6.0

* update once_cell to 1.18.0

* update data-encoding to 2.4.0

* update libc

* update js-sys

* update wasm-bindgen-futures

* update pin-project

* update tokio

* update syn

* p2p protocol now contains `PeerId`

not multihash

* update arrayvec to 0.7.4

* update sha2

* update smallvec

* updates to Cargo.lock after merge

* redo dep updates

* update lru

in attempt to compile polkadot

* update lockfile for {"substrate"}

---------

Co-authored-by: parity-processbot <>
2023-07-25 14:24:59 +00:00
Antonandparity-processbot 59d8b86450 chore: update libp2p to 0.52.1 (#14429)
* update libp2p to 0.52.0

* proto name now must implement `AsRef<str>`

* update libp2p version everywhere

* ToSwarm, FromBehaviour, ToBehaviour

also LocalProtocolsChange and RemoteProtocolsChange

* new NetworkBehaviour invariants

* replace `Vec<u8>` with `StreamProtocol`

* rename ConnectionHandlerEvent::Custom to NotifyBehaviour

* remove DialError & ListenError invariants

also fix pending_events

* use connection_limits::Behaviour

See https://github.com/libp2p/rust-libp2p/pull/3885

* impl `void::Void` for `BehaviourOut`

also use `Behaviour::with_codec`

* KademliaHandler no longer public

* fix StreamProtocol construction

* update libp2p-identify to 0.2.0

* remove non-existing methods from PollParameters

rename ConnectionHandlerUpgrErr to StreamUpgradeError

* `P2p` now contains `PeerId`, not `Multihash`

* use multihash-codetable crate

* update Cargo.lock

* reformat text

* comment out tests for now

* remove `.into()` from P2p

* confirm observed addr manually

See https://github.com/libp2p/rust-libp2p/blob/master/protocols/identify/CHANGELOG.md#0430

* remove SwarmEvent::Banned

since we're not using `ban_peer_id`, this can be safely removed.
we may want to introduce `libp2p::allow_block_list` module in the future.

* fix imports

* replace `libp2p` with smaller deps in network-gossip

* bring back tests

* finish rewriting tests

* uncomment handler tests

* Revert "uncomment handler tests"

This reverts commit 720a06815887f4e10767c62b58864a7ec3a48e50.

* add a fixme

* update Cargo.lock

* remove extra From

* make void uninhabited

* fix discovery test

* use autonat protocols

confirming external addresses manually is unsafe in open networks

* fix SyncNotificationsClogged invariant

* only set server mode manually in tests

doubt that we need to set it on node since we're adding public addresses

* address @dmitry-markin comments

* remove autonat

* removed unused var

* fix EOL

* update smallvec and sha2

in attempt to compile polkadot

* bump k256

in attempt to build cumulus

---------

Co-authored-by: parity-processbot <>
2023-07-25 11:12:24 +00:00
Antonandcommand-bot 982a6847ae add pallet_im_online::migration to Unreleased migrations (#7387)
* add pallet_im_online::migration to Unreleased migrations

refs https://github.com/paritytech/polkadot/pull/7309#issuecomment-1593030554

* ".git/.scripts/commands/fmt/fmt.sh"

---------

Co-authored-by: command-bot <>
2023-06-26 00:19:55 +02:00
Anton 1453bc9a2d [frame/im-online] remove ensure from pre_upgrade (#14401)
* [frame/im-online] remove ensure from pre_upgrade

modify ensure in post_upgrade to allow for future upgrades
refs https://github.com/paritytech/substrate/pull/14251#discussion_r1230973672

* cargo fmt
2023-06-16 12:17:01 +00:00
Antonandparity-processbot d3d9d4ae66 [frame/im-online] remove network state from heartbeats (#7309)
* [frame/im-online] remove external_addresses from heartbeat

* new benchmarks

* format code

* Revert "format code"

This reverts commit 586ddaa6f588b4aef92a0169cfd6a9610d1337b8.

* remove MaxPeerDataEncodingSize

* update lockfile for {"substrate"}

---------

Co-authored-by: parity-processbot <>
2023-06-15 10:25:57 +00:00
Anton 6cd2c8b395 [frame/im-online] remove network state from heartbeats (#14251)
* [frame/im-online] remove `external_addresses` from heartbeats

Users should use DHT for discovering new nodes. The reason for adding external addresses was
unstable work of authority discovery (see https://github.com/paritytech/substrate/issues/2719),
which is now stable. Hence we can safely remove `external_addresses`.

Refs https://github.com/paritytech/polkadot/issues/7181

* remove unused import

* run benchmark

* remove external_addresses from offchain NetworkState

* add missing fn to TestNetwork

* Revert "run benchmark"

This reverts commit a282042c2d6bf8bae2c383f6e2699c3fe2970a3d.

* update weights

* address @bkchr comments

* remove duplicate fn

* cleanup benchmarking.rs

* fix executor tests

* remove peer_id from hearbeat as well

https://github.com/paritytech/substrate/pull/14251#discussion_r1210887220

* remove MaxPeerDataEncodingSize

* change storage value type to `()`

https://github.com/paritytech/substrate/pull/14251#discussion_r1214268931

* scaffold storage migration

* no need to check the type actually

* remove unnecessary types from v0 mod

* add a test for migration

* expose Config types

+ pre_upgrade and post_upgrade working fn

* fix test

* replace dummy type with ConstU32

* add some comments to migration test

* fix comment

* respond to @bkchr comments

* use BoundedOpaqueNetworkState::default

intead of using default for each field
2023-06-15 09:42:36 +00:00
Antonandparity-processbot 147a823558 [Substrate Companion] Upgrade to libp2p 0.51.3 (#7000)
* upgrade js-sys to 0.3.61

* update wasm-bindgen-futures

* update once_cell

* update either

* update futures

* update pyroscope to 0.5.3

* use the new pyroscope API

* add missing imports

* readme is incorrect

* add shutdown

* fix shutdown

* remove mut

* remove mut 2

* redo updates

* update zeroize

* update lockfile for {"substrate"}

* update lockfile for {"substrate", "cumulus"}

* redo updates

* restart CI

---------

Co-authored-by: parity-processbot <>
2023-05-12 14:52:21 +00:00
Antonandparity-processbot f7439bb30c [Substrate Companion] Upgrade to libp2p 0.51.3 (#2429)
* upgrade js-sys to 0.3.61

* update wasm-bindgen-futures

* update zeroize

* update either

* update once_cell

---------

Co-authored-by: parity-processbot <>
2023-05-12 12:36:58 +00:00
e4b1aa1811 Upgrade to libp2p 0.51.3 (#13587)
* client/network: upgrade to libp2p 0.51.0

* make discovery.rs compile

* make peer_info.rs compile

* changes to notifications and request-response proto

* make service.rs compile

* towards making request_responses.rs compile

* make request_responses.rs compile

* make request_responses.rs compile

* fix notifications/behaviour.rs tests

* fix warnings

* remove old code

* allow deprecated code (temporary)

* upgrade to libp2p 0.51.1

* add TODO for behaviour tests

* return empty vec if peer_id is absent

https://github.com/paritytech/substrate/pull/13587#discussion_r1141695167

fyi: I don't really know what the old behaviour was.

* update comment to reflect new defaults

Closes #13338

* Revert "update comment to reflect new defaults"

This reverts commit 7a981abd69308e9d522ec94905f181439a1b1dba.

* remove config.rs (from wrong merge)

* upgrade to libp2p 0.51.2

* fix formatting

* use handle_pending_outbound_connection in networt_state RPC

* update deps

* use re-exports when we use other libp2p packages

* Apply suggestions from code review

Co-authored-by: Dmitry Markin <dmitry@markin.tech>

* format code

* handle potential errors in network_state RPC

* only update libp2p crate

* update libp2p-core

* fix docs

* use libp2p-identity instead of libp2p

where it's possible. libp2p-identity is much smaller, hence makes sense
to use it instead of larger libp2p crate.

* Update client/network/src/discovery.rs

Co-authored-by: Aaro Altonen <48052676+altonen@users.noreply.github.com>

* update Cargo.lock

* add comment for per_connection_event_buffer_size

current value is somewhat arbitrary and needs to be tweaked depending on
memory usage and network worker sleep stats.

* fix link format

* update Cargo.lock

* upgrade to libp2p 0.51.3

* deprecate mplex

* Revert "deprecate mplex"

This reverts commit 9e25820e706e464a0e962a8604861fcb2a7641eb.

* Revert "upgrade to libp2p 0.51.3"

This reverts commit 6544dd4138e2f89517bd7c7281fc78a638ec7040.

* use new libp2p version in `statement` crate

* pin version temporarily

* libp2p 0.51.3

* deprecate mplex

* deprecate legacy noise handshake

* fix build error

* update libp2p-identity

* enable libp2p-identity:ed25519 feature in sc-consensus

* enable ed25519 for peerset as well

---------

Co-authored-by: Dmitry Markin <dmitry@markin.tech>
Co-authored-by: Aaro Altonen <48052676+altonen@users.noreply.github.com>
Co-authored-by: parity-processbot <>
2023-05-12 07:12:51 +00:00
Anton bb00b262d7 [client/network] Remove unused argument (#13444)
* improve error message

* removed unused argument

* docs: disconnect_peer_inner no longer accepts `ban`

* remove redundant trace message

```
sync: Too many full nodes, rejecting 12D3KooWSQAP2fh4qBkLXBW4mvCtbAiK8sqMnExWHHTZtVAxZ8bQ
sync: 12D3KooWSQAP2fh4qBkLXBW4mvCtbAiK8sqMnExWHHTZtVAxZ8bQ disconnected
```

is enough to understand that we've refused to connect to the given peer

* Revert "removed unused argument"

This reverts commit c87f755b1fd03494fb446b604fe25c2418da7c87.

* ban peer for 10s after disconnect

* do not accept incoming conns if peer was banned

* Revert "do not accept incoming conns if peer was banned"

This reverts commit 7e59d05975765f2547468e9dcfd1361516c41e06.

* Revert "ban peer for 10s after disconnect"

This reverts commit 3859201ced42a5b2d18c0600e29efd20962a7289.

* Revert "Revert "removed unused argument""

This reverts commit f1dc623646dc5a69e1822c35f428e90dffe34d95.

* format code

* Revert "remove redundant trace message"

This reverts commit a87e65f08553dbe69027e9aa4f7ca4779ccaa7f2.
2023-02-27 10:43:15 +00:00
Anton 7539d4d8d6 [client/network] remove peer entry from ephemeral_addresses (#13084)
* [client/network] remove peer entry from `ephemeral_addresses`

if there are no addresses associated with that peer

* refactor as per @bkchr suggestion

https://github.com/paritytech/substrate/pull/13084#discussion_r1068028534

* add missing import

* fix error
2023-02-06 06:21:51 +00:00
Anton 9f6ac763a7 [client/network] Add support for /wss addresses (#13152)
* join dns with another instance of WS transport

Secure Websocket transport needs unresolved addresses, so we join DNS transport with
yet another instance of Websocket transport.

Closes #12024

* WSS transport itself need to wrap DNS transport

in order to resolve addresses before passing them down to TCP transport

Refs https://github.com/libp2p/rust-libp2p/issues/3330

* reverse order

* simplify code: remove WS from WSS inner DNS transport

* remove the 2nd instance of WS transport
2023-01-17 10:28:17 +00:00
Antonandparity-processbot ea5ae8a4c1 upgrade libp2p to 0.50.0 (#2056)
* update asynchronous-codec

* update futures-rustls

* update rustls

* update ipnet

* update once_cell

* update lockfile for {"polkadot", "substrate"}

Co-authored-by: parity-processbot <>
2023-01-05 22:48:33 +00:00
ecaf232a36 upgrade libp2p to 0.50.0 (#6500)
* update asynchronous-codec

* update futures-rustls

* update rustls

* update ipnet

* update once_cell

* update futures

* update futures and its deps

* update lockfile for {"substrate"}

* Bump zombienet test timeout from 30 to 60 s

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Revert "Bump zombienet test timeout from 30 to 60 s"

This reverts commit b1a4b16ccd21ae9b8d84f863dcc45ff00549a677.

* Update Substrate

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: parity-processbot <>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Bastian Köcher <info@kchr.de>
2023-01-05 22:12:26 +00:00
Anton f2dcd9520c upgrade libp2p to 0.50.0 (#12734)
* upgrade libp2p to 0.50.0

* on_swarm_event and on_connection_handler_event

* replace `Swarm::new` with `Swarm::with_threadpool_executor`

* on_swarm_event and on_connection_handler_event part 2

* on_swarm_event and on_connection_handler_event part 3

* on_swarm_event and on_connection_handler_event part 4

* update libp2p

* libp2p 0.50.0

* rename OutboundQueryCompleted to OutboundQueryProgressed

refs https://github.com/libp2p/rust-libp2p/pull/2712

* remove unused var

* accumulate outbound_query_records until query is finished

* format code

* use p_handler instead of new_handler

https://github.com/paritytech/substrate/pull/12734#discussion_r1027640610

* pass ListenFailure to kademlia

https://github.com/paritytech/substrate/pull/12734#discussion_r1034716664

* use tokio executor in tests

https://github.com/paritytech/substrate/pull/12734#discussion_r1039291776

* use chrono Local::now

instead of deprecated Local::today

* remove unused vars from request_responses tests

* attempt to fix pallet UI tests

* restart CI

* restart CI

* restart CI

* restart CI

* restart CI

* restart CI

* restart CI

* restart CI
2023-01-05 12:03:41 +00:00