Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

litep2p: Update litep2p to v0.8.0 #6353

Merged
merged 5 commits into from
Nov 5, 2024
Merged

litep2p: Update litep2p to v0.8.0 #6353

merged 5 commits into from
Nov 5, 2024

Conversation

lexnv
Copy link
Contributor

@lexnv lexnv commented Nov 4, 2024

This PR updates litep2p to the latest release.

  • KademliaEvent::PutRecordSucess is renamed to fix word typo
  • KademliaEvent::GetProvidersSuccess and KademliaEvent::IncomingProvider are needed for bootnodes on DHT work and will be utilized later

Added

  • kad: Providers part 8: unit, e2e, and libp2p conformance tests (#258)
  • kad: Providers part 7: better types and public API, public addresses & known providers (#246)
  • kad: Providers part 6: stop providing (#245)
  • kad: Providers part 5: GET_PROVIDERS query (#236)
  • kad: Providers part 4: refresh local providers (#235)
  • kad: Providers part 3: publish provider records (start providing) (#234)

Changed

  • transport_service: Improve connection stability by downgrading connections on substream inactivity (#260)
  • transport: Abort canceled dial attempts for TCP, WebSocket and Quic (#255)
  • kad/executor: Add timeout for writting frames (#277)
  • kad: Avoid cloning the KademliaMessage and use reference for RoutingTable::closest (#233)
  • peer_state: Robust state machine transitions (#251)
  • address_store: Improve address tracking and add eviction algorithm (#250)
  • kad: Remove unused serde cfg (#262)
  • req-resp: Refactor to move functionality to dedicated methods (#244)
  • transport_service: Improve logs and move code from tokio::select macro (#254)

Fixed

  • tcp/websocket/quic: Fix cancel memory leak (#272)
  • transport: Fix pending dials memory leak (#271)
  • ping: Fix memory leak of unremoved pending_opens (#274)
  • identify: Fix memory leak of unused pending_opens (#273)
  • kad: Fix not retrieving local records (#221)

See release changelog for more details: https://github.com/paritytech/litep2p/releases/tag/v0.8.0

cc @paritytech/networking

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
@lexnv lexnv added T0-node This PR/Issue is related to the topic “node”. I5-enhancement An additional feature request. labels Nov 4, 2024
@lexnv lexnv self-assigned this Nov 4, 2024
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
@lexnv
Copy link
Contributor Author

lexnv commented Nov 4, 2024

Testing Done

Two nodes started side by side in Kusama with 200 in/out peers:

Litep2p

Repo Count Level Triage report
polkadot-sdk 31 warn Report .: . to .. Reason: .. Banned, disconnecting. ( Peer disconnected with inflight after backoffs. Banned, disconnecting. )
polkadot-sdk 16 warn 🥩 ran out of peers to request justif #.* from num_cache=.* num_live=.* err=.*
polkadot-sdk 9 warn Report .: . to .. Reason: .. Banned, disconnecting. ( Same block request multiple times. Banned, disconnecting. )
litep2p 6 warn Refusing to add known address that corresponds to a different peer ID
polkadot-sdk 2 error 💔 Called on_validated_block_announce with a bad peer ID .*
litep2p 1 warn litep2p started with no listen addresses, cannot accept inbound connections
polkadot-sdk 1 warn ❌ Error while dialing .: .

Libp2p

Repo Count Level Triage report
polkadot-sdk 579 warn Report .: . to .. Reason: .. Banned, disconnecting. ( Unsupported protocol. Banned, disconnecting. )
polkadot-sdk 45 warn Report .: . to .. Reason: .. Banned, disconnecting. ( Peer disconnected with inflight after backoffs. Banned, disconnecting. )
polkadot-sdk 30 warn Report .: . to .. Reason: .. Banned, disconnecting. ( Not requested block data. Banned, disconnecting. )
polkadot-sdk 18 warn Report .: . to .. Reason: .. Banned, disconnecting. ( Invalid justification. Banned, disconnecting. )
polkadot-sdk 18 warn Report .: . to .. Reason: .. Banned, disconnecting. ( Same block request multiple times. Banned, disconnecting. )
polkadot-sdk 1 warn 💔 Error importing block .: . ( Parent block of 0xe913…165c has no associated weight )
polkadot-sdk 1 warn ❌ Error while dialing .: .
polkadot-sdk 1 error 💔 Called on_validated_block_announce with a bad peer ID .*

It looks like libp2p is producing more errors from the peerstore than litep2p

prdoc/pr_6353.prdoc Outdated Show resolved Hide resolved
Co-authored-by: Dmitry Markin <dmitry@markin.tech>
@lexnv lexnv added this pull request to the merge queue Nov 5, 2024
Merged via the queue into master with commit 94389a9 Nov 5, 2024
196 of 199 checks passed
@lexnv lexnv deleted the lexnv/update-litep2p-0.8.0 branch November 5, 2024 12:48
ordian added a commit that referenced this pull request Nov 5, 2024
* master: (129 commits)
  pallet-revive: Use `RUSTUP_TOOLCHAIN` if set (#6365)
  [eth-rpc] proxy /health (#6360)
  [Release|CI/CD] adjust release pipelines (#6366)
  Bump the known_good_semver group across 1 directory with 3 updates (#6339)
  Run check semver in MQ (#6287)
  [Deprecation] deprecate treasury `spend_local` call and related items (#6169)
  refactor and harden check_core_index (#6217)
  litep2p: Update litep2p to v0.8.0 (#6353)
  [pallet-staking] Additional check for virtual stakers (#5985)
  migrate pallet-remarks to v2 bench syntax (#6291)
  Remove leftover references of Wococo (#6361)
  snowbridge: allow account conversion for Ethereum accounts (#6221)
  authority-discovery: Populate DHT records with public listen addresses (#6298)
  Bounty Pallet: add `approve_bounty_with_curator` call to `bounties` pallet (#5961)
  Silent annoying log (#6351)
  [pallet-revive] rework balance transfers (#6187)
  `statement-distribution`: RFC103 implementation (#5883)
  Disable flaky tests reported in #6343 / #6345 (#6346)
  migrate pallet-recovery to benchmark V2 syntax (#6299)
  inclusion emulator: correctly handle UMP signals (#6178)
  ...
lexnv added a commit that referenced this pull request Nov 15, 2024
This PR updates litep2p to the latest release.

- `KademliaEvent::PutRecordSucess` is renamed to fix word typo
- `KademliaEvent::GetProvidersSuccess` and
`KademliaEvent::IncomingProvider` are needed for bootnodes on DHT work
and will be utilized later

- kad: Providers part 8: unit, e2e, and `libp2p` conformance tests
([#258](paritytech/litep2p#258))
- kad: Providers part 7: better types and public API, public addresses &
known providers ([#246](paritytech/litep2p#246))
- kad: Providers part 6: stop providing
([#245](paritytech/litep2p#245))
- kad: Providers part 5: `GET_PROVIDERS` query
([#236](paritytech/litep2p#236))
- kad: Providers part 4: refresh local providers
([#235](paritytech/litep2p#235))
- kad: Providers part 3: publish provider records (start providing)
([#234](paritytech/litep2p#234))

- transport_service: Improve connection stability by downgrading
connections on substream inactivity
([#260](paritytech/litep2p#260))
- transport: Abort canceled dial attempts for TCP, WebSocket and Quic
([#255](paritytech/litep2p#255))
- kad/executor: Add timeout for writting frames
([#277](paritytech/litep2p#277))
- kad: Avoid cloning the `KademliaMessage` and use reference for
`RoutingTable::closest`
([#233](paritytech/litep2p#233))
- peer_state: Robust state machine transitions
([#251](paritytech/litep2p#251))
- address_store: Improve address tracking and add eviction algorithm
([#250](paritytech/litep2p#250))
- kad: Remove unused serde cfg
([#262](paritytech/litep2p#262))
- req-resp: Refactor to move functionality to dedicated methods
([#244](paritytech/litep2p#244))
- transport_service: Improve logs and move code from tokio::select macro
([#254](paritytech/litep2p#254))

- tcp/websocket/quic: Fix cancel memory leak
([#272](paritytech/litep2p#272))
- transport: Fix pending dials memory leak
([#271](paritytech/litep2p#271))
- ping: Fix memory leak of unremoved `pending_opens`
([#274](paritytech/litep2p#274))
- identify: Fix memory leak of unused `pending_opens`
([#273](paritytech/litep2p#273))
- kad: Fix not retrieving local records
([#221](paritytech/litep2p#221))

See release changelog for more details:
https://github.com/paritytech/litep2p/releases/tag/v0.8.0

cc @paritytech/networking

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Dmitry Markin <dmitry@markin.tech>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I5-enhancement An additional feature request. T0-node This PR/Issue is related to the topic “node”.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants