Skip to content

Commit af0535c

Browse files
lexnvdmitry-markin
andauthored
chore: Release litep2p version 0.8.0 (#280)
## [0.8.0] - 2024-11-01 This release adds support for content provider advertisement and discovery to Kademlia protocol implementation (see libp2p [spec](https://github.com/libp2p/specs/blob/master/kad-dht/README.md#content-provider-advertisement-and-discovery)). Additionally, the release includes several improvements and memory leak fixes to enhance the stability and performance of the litep2p library. ### Added - kad: Providers part 8: unit, e2e, and `libp2p` conformance tests ([#258](#258)) - kad: Providers part 7: better types and public API, public addresses & known providers ([#246](#246)) - kad: Providers part 6: stop providing ([#245](#245)) - kad: Providers part 5: `GET_PROVIDERS` query ([#236](#236)) - kad: Providers part 4: refresh local providers ([#235](#235)) - kad: Providers part 3: publish provider records (start providing) ([#234](#234)) ### Changed - transport_service: Improve connection stability by downgrading connections on substream inactivity ([#260](#260)) - transport: Abort canceled dial attempts for TCP, WebSocket and Quic ([#255](#255)) - kad/executor: Add timeout for writting frames ([#277](#277)) - kad: Avoid cloning the `KademliaMessage` and use reference for `RoutingTable::closest` ([#233](#233)) - peer_state: Robust state machine transitions ([#251](#251)) - address_store: Improve address tracking and add eviction algorithm ([#250](#250)) - kad: Remove unused serde cfg ([#262](#262)) - req-resp: Refactor to move functionality to dedicated methods ([#244](#244)) - transport_service: Improve logs and move code from tokio::select macro ([#254](#254)) ### Fixed - tcp/websocket/quic: Fix cancel memory leak ([#272](#272)) - transport: Fix pending dials memory leak ([#271](#271)) - ping: Fix memory leak of unremoved `pending_opens` ([#274](#274)) - identify: Fix memory leak of unused `pending_opens` ([#273](#273)) - kad: Fix not retrieving local records ([#221](#221)) --------- Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> Co-authored-by: Dmitry Markin <dmitry@markin.tech>
1 parent 314a2e9 commit af0535c

File tree

3 files changed

+58
-2
lines changed

3 files changed

+58
-2
lines changed

CHANGELOG.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,62 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.8.0] - 2024-11-04
9+
10+
This release adds support for content provider advertisement and discovery to Kademlia protocol implementation (see libp2p [spec](https://github.com/libp2p/specs/blob/master/kad-dht/README.md#content-provider-advertisement-and-discovery)).
11+
Additionally, the release includes several improvements and memory leak fixes to enhance the stability and performance of the litep2p library.
12+
13+
### [Content Provider Advertisement and Discovery](https://github.com/paritytech/litep2p/pull/234)
14+
15+
Litep2p now supports content provider advertisement and discovery through the Kademlia protocol.
16+
Content providers can publish their records to the network, and other nodes can discover and retrieve these records using the `GET_PROVIDERS` query.
17+
18+
```rust
19+
// Start providing a record to the network.
20+
// This stores the record in the local provider store and starts advertising it to the network.
21+
kad_handle.start_providing(key.clone());
22+
23+
// Wait for some condition to stop providing...
24+
25+
// Stop providing a record to the network.
26+
// The record is removed from the local provider store and stops advertising it to the network.
27+
// Please note that the record will be removed from the network after the TTL expires.
28+
kad_provider.stop_providing(key.clone());
29+
30+
// Retrieve providers for a record from the network.
31+
// This returns a query ID that is later producing the result when polling the `Kademlia` instance.
32+
let query_id = kad_provider.get_providers(key.clone());
33+
```
34+
35+
### Added
36+
37+
- kad: Providers part 8: unit, e2e, and `libp2p` conformance tests ([#258](https://github.com/paritytech/litep2p/pull/258))
38+
- kad: Providers part 7: better types and public API, public addresses & known providers ([#246](https://github.com/paritytech/litep2p/pull/246))
39+
- kad: Providers part 6: stop providing ([#245](https://github.com/paritytech/litep2p/pull/245))
40+
- kad: Providers part 5: `GET_PROVIDERS` query ([#236](https://github.com/paritytech/litep2p/pull/236))
41+
- kad: Providers part 4: refresh local providers ([#235](https://github.com/paritytech/litep2p/pull/235))
42+
- kad: Providers part 3: publish provider records (start providing) ([#234](https://github.com/paritytech/litep2p/pull/234))
43+
44+
### Changed
45+
46+
- transport_service: Improve connection stability by downgrading connections on substream inactivity ([#260](https://github.com/paritytech/litep2p/pull/260))
47+
- transport: Abort canceled dial attempts for TCP, WebSocket and Quic ([#255](https://github.com/paritytech/litep2p/pull/255))
48+
- kad/executor: Add timeout for writting frames ([#277](https://github.com/paritytech/litep2p/pull/277))
49+
- kad: Avoid cloning the `KademliaMessage` and use reference for `RoutingTable::closest` ([#233](https://github.com/paritytech/litep2p/pull/233))
50+
- peer_state: Robust state machine transitions ([#251](https://github.com/paritytech/litep2p/pull/251))
51+
- address_store: Improve address tracking and add eviction algorithm ([#250](https://github.com/paritytech/litep2p/pull/250))
52+
- kad: Remove unused serde cfg ([#262](https://github.com/paritytech/litep2p/pull/262))
53+
- req-resp: Refactor to move functionality to dedicated methods ([#244](https://github.com/paritytech/litep2p/pull/244))
54+
- transport_service: Improve logs and move code from tokio::select macro ([#254](https://github.com/paritytech/litep2p/pull/254))
55+
56+
### Fixed
57+
58+
- tcp/websocket/quic: Fix cancel memory leak ([#272](https://github.com/paritytech/litep2p/pull/272))
59+
- transport: Fix pending dials memory leak ([#271](https://github.com/paritytech/litep2p/pull/271))
60+
- ping: Fix memory leak of unremoved `pending_opens` ([#274](https://github.com/paritytech/litep2p/pull/274))
61+
- identify: Fix memory leak of unused `pending_opens` ([#273](https://github.com/paritytech/litep2p/pull/273))
62+
- kad: Fix not retrieving local records ([#221](https://github.com/paritytech/litep2p/pull/221))
63+
864
## [0.7.0] - 2024-09-05
965

1066
This release introduces several new features, improvements, and fixes to the litep2p library. Key updates include enhanced error handling, configurable connection limits, and a new API for managing public addresses.

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name = "litep2p"
33
description = "Peer-to-peer networking library"
44
license = "MIT"
5-
version = "0.7.0"
5+
version = "0.8.0"
66
edition = "2021"
77

88
[build-dependencies]

0 commit comments

Comments
 (0)