Skip to content

Commit 675bd55

Browse files
committed
move gossipsub into a separate crate
1 parent 2a3c709 commit 675bd55

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+657
-379
lines changed

Cargo.lock

Lines changed: 41 additions & 316 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ members = [
99
"beacon_node/client",
1010
"beacon_node/eth1",
1111
"beacon_node/lighthouse_network",
12+
"beacon_node/lighthouse_network/gossipsub",
1213
"beacon_node/execution_layer",
1314
"beacon_node/http_api",
1415
"beacon_node/http_metrics",
@@ -200,6 +201,7 @@ execution_layer = { path = "beacon_node/execution_layer" }
200201
filesystem = { path = "common/filesystem" }
201202
fork_choice = { path = "consensus/fork_choice" }
202203
genesis = { path = "beacon_node/genesis" }
204+
gossipsub = { path = "beacon_node/lighthouse_network/gossipsub/" }
203205
http_api = { path = "beacon_node/http_api" }
204206
int_to_bytes = { path = "consensus/int_to_bytes" }
205207
kzg = { path = "crypto/kzg" }
Lines changed: 378 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,378 @@
1+
## 0.5 Sigma Prime fork
2+
3+
- Attempt to publish to at least mesh_n peers when publishing a message when flood publish is disabled.
4+
See [PR 5357](https://github.com/sigp/lighthouse/pull/5357).
5+
- Drop `Publish` and `Forward` gossipsub stale messages when polling ConnectionHandler.
6+
See [PR 5175](https://github.com/sigp/lighthouse/pull/5175).
7+
- Apply back pressure by setting a limit in the ConnectionHandler message queue.
8+
See [PR 5066](https://github.com/sigp/lighthouse/pull/5066).
9+
10+
## 0.46.1
11+
12+
- Deprecate `Rpc` in preparation for removing it from the public API because it is an internal type.
13+
See [PR 4833](https://github.com/libp2p/rust-libp2p/pull/4833).
14+
15+
## 0.46.0
16+
17+
- Remove `fast_message_id_fn` mechanism from `Config`.
18+
See [PR 4285](https://github.com/libp2p/rust-libp2p/pull/4285).
19+
- Remove deprecated `gossipsub::Config::idle_timeout` in favor of `SwarmBuilder::idle_connection_timeout`.
20+
See [PR 4642](https://github.com/libp2p/rust-libp2p/pull/4642).
21+
- Return typed error from config builder.
22+
See [PR 4445](https://github.com/libp2p/rust-libp2p/pull/4445).
23+
- Process outbound stream before inbound stream in `EnabledHandler::poll(..)`.
24+
See [PR 4778](https://github.com/libp2p/rust-libp2p/pull/4778).
25+
26+
## 0.45.2
27+
28+
- Deprecate `gossipsub::Config::idle_timeout` in favor of `SwarmBuilder::idle_connection_timeout`.
29+
See [PR 4648].
30+
31+
<!-- Interal changes:
32+
33+
- Allow new clippy lint.
34+
35+
-->
36+
37+
[PR 4648]: (https://github.com/libp2p/rust-libp2p/pull/4648)
38+
39+
<!-- Internal changes
40+
41+
- Allow deprecated usage of `KeepAlive::Until`
42+
43+
-->
44+
45+
## 0.45.1
46+
47+
- Add getter function to o btain `TopicScoreParams`.
48+
See [PR 4231].
49+
50+
[PR 4231]: https://github.com/libp2p/rust-libp2p/pull/4231
51+
52+
## 0.45.0
53+
54+
- Raise MSRV to 1.65.
55+
See [PR 3715].
56+
- Remove deprecated items. See [PR 3862].
57+
58+
[PR 3715]: https://github.com/libp2p/rust-libp2p/pull/3715
59+
[PR 3862]: https://github.com/libp2p/rust-libp2p/pull/3862
60+
61+
## 0.44.4
62+
63+
- Deprecate `metrics`, `protocol`, `subscription_filter`, `time_cache` modules to make them private. See [PR 3777].
64+
- Honor the `gossipsub::Config::support_floodsub` in all cases.
65+
Previously, it was ignored when a custom protocol id was set via `gossipsub::Config::protocol_id`.
66+
See [PR 3837].
67+
68+
[PR 3777]: https://github.com/libp2p/rust-libp2p/pull/3777
69+
[PR 3837]: https://github.com/libp2p/rust-libp2p/pull/3837
70+
71+
## 0.44.3
72+
73+
- Fix erroneously duplicate message IDs. See [PR 3716].
74+
75+
- Gracefully disable handler on stream errors. Deprecate a few variants of `HandlerError`.
76+
See [PR 3625].
77+
78+
[PR 3716]: https://github.com/libp2p/rust-libp2p/pull/3716
79+
[PR 3625]: https://github.com/libp2p/rust-libp2p/pull/3325
80+
81+
## 0.44.2
82+
83+
- Signed messages now use sequential integers in the sequence number field.
84+
See [PR 3551].
85+
86+
[PR 3551]: https://github.com/libp2p/rust-libp2p/pull/3551
87+
88+
## 0.44.1
89+
90+
- Migrate from `prost` to `quick-protobuf`. This removes `protoc` dependency. See [PR 3312].
91+
92+
[PR 3312]: https://github.com/libp2p/rust-libp2p/pull/3312
93+
94+
## 0.44.0
95+
96+
- Update to `prometheus-client` `v0.19.0`. See [PR 3207].
97+
98+
- Update to `libp2p-core` `v0.39.0`.
99+
100+
- Update to `libp2p-swarm` `v0.42.0`.
101+
102+
- Initialize `ProtocolConfig` via `GossipsubConfig`. See [PR 3381].
103+
104+
- Rename types as per [discussion 2174].
105+
`Gossipsub` has been renamed to `Behaviour`.
106+
The `Gossipsub` prefix has been removed from various types like `GossipsubConfig` or `GossipsubMessage`.
107+
It is preferred to import the gossipsub protocol as a module (`use libp2p::gossipsub;`), and refer to its types via `gossipsub::`.
108+
For example: `gossipsub::Behaviour` or `gossipsub::RawMessage`. See [PR 3303].
109+
110+
[PR 3207]: https://github.com/libp2p/rust-libp2p/pull/3207/
111+
[PR 3303]: https://github.com/libp2p/rust-libp2p/pull/3303/
112+
[PR 3381]: https://github.com/libp2p/rust-libp2p/pull/3381/
113+
[discussion 2174]: https://github.com/libp2p/rust-libp2p/discussions/2174
114+
115+
## 0.43.0
116+
117+
- Update to `libp2p-core` `v0.38.0`.
118+
119+
- Update to `libp2p-swarm` `v0.41.0`.
120+
121+
- Update to `prost-codec` `v0.3.0`.
122+
123+
- Refactoring GossipsubCodec to use common protobuf Codec. See [PR 3070].
124+
125+
- Replace `Gossipsub`'s `NetworkBehaviour` implementation `inject_*` methods with the new `on_*` methods.
126+
See [PR 3011].
127+
128+
- Replace `GossipsubHandler`'s `ConnectionHandler` implementation `inject_*` methods with the new `on_*` methods.
129+
See [PR 3085].
130+
131+
- Update `rust-version` to reflect the actual MSRV: 1.62.0. See [PR 3090].
132+
133+
[PR 3085]: https://github.com/libp2p/rust-libp2p/pull/3085
134+
[PR 3070]: https://github.com/libp2p/rust-libp2p/pull/3070
135+
[PR 3011]: https://github.com/libp2p/rust-libp2p/pull/3011
136+
[PR 3090]: https://github.com/libp2p/rust-libp2p/pull/3090
137+
138+
## 0.42.0
139+
140+
- Bump rand to 0.8 and quickcheck to 1. See [PR 2857].
141+
142+
- Update to `libp2p-core` `v0.37.0`.
143+
144+
- Update to `libp2p-swarm` `v0.40.0`.
145+
146+
[PR 2857]: https://github.com/libp2p/rust-libp2p/pull/2857
147+
148+
## 0.41.0
149+
150+
- Update to `libp2p-swarm` `v0.39.0`.
151+
152+
- Update to `libp2p-core` `v0.36.0`.
153+
154+
- Allow publishing with any `impl Into<TopicHash>` as a topic. See [PR 2862].
155+
156+
[PR 2862]: https://github.com/libp2p/rust-libp2p/pull/2862
157+
158+
## 0.40.0
159+
160+
- Update prost requirement from 0.10 to 0.11 which no longer installs the protoc Protobuf compiler.
161+
Thus you will need protoc installed locally. See [PR 2788].
162+
163+
- Update to `libp2p-swarm` `v0.38.0`.
164+
165+
- Update to `libp2p-core` `v0.35.0`.
166+
167+
- Update to `prometheus-client` `v0.18.0`. See [PR 2822].
168+
169+
[PR 2822]: https://github.com/libp2p/rust-libp2p/pull/2761/
170+
[PR 2788]: https://github.com/libp2p/rust-libp2p/pull/2788
171+
172+
## 0.39.0
173+
174+
- Update to `libp2p-core` `v0.34.0`.
175+
176+
- Update to `libp2p-swarm` `v0.37.0`.
177+
178+
- Allow for custom protocol ID via `GossipsubConfigBuilder::protocol_id()`. See [PR 2718].
179+
180+
[PR 2718]: https://github.com/libp2p/rust-libp2p/pull/2718/
181+
182+
## 0.38.1
183+
184+
- Fix duplicate connection id. See [PR 2702].
185+
186+
[PR 2702]: https://github.com/libp2p/rust-libp2p/pull/2702
187+
188+
## 0.38.0
189+
190+
- Update to `libp2p-core` `v0.33.0`.
191+
192+
- Update to `libp2p-swarm` `v0.36.0`.
193+
194+
- changed `TimeCache::contains_key` and `DuplicateCache::contains` to immutable methods. See [PR 2620].
195+
196+
- Update to `prometheus-client` `v0.16.0`. See [PR 2631].
197+
198+
[PR 2620]: https://github.com/libp2p/rust-libp2p/pull/2620
199+
[PR 2631]: https://github.com/libp2p/rust-libp2p/pull/2631
200+
201+
## 0.37.0
202+
203+
- Update to `libp2p-swarm` `v0.35.0`.
204+
205+
- Fix gossipsub metric (see [PR 2558]).
206+
207+
- Allow the user to set the buckets for the score histogram, and to adjust them from the score thresholds. See [PR 2595].
208+
209+
[PR 2558]: https://github.com/libp2p/rust-libp2p/pull/2558
210+
[PR 2595]: https://github.com/libp2p/rust-libp2p/pull/2595
211+
212+
## 0.36.0 [2022-02-22]
213+
214+
- Update to `libp2p-core` `v0.32.0`.
215+
216+
- Update to `libp2p-swarm` `v0.34.0`.
217+
218+
- Move from `open-metrics-client` to `prometheus-client` (see [PR 2442]).
219+
220+
- Emit gossip of all non empty topics (see [PR 2481]).
221+
222+
- Merge NetworkBehaviour's inject_\* paired methods (see [PR 2445]).
223+
224+
- Revert to wasm-timer (see [PR 2506]).
225+
226+
- Do not overwrite msg's peers if put again into mcache (see [PR 2493]).
227+
228+
[PR 2442]: https://github.com/libp2p/rust-libp2p/pull/2442
229+
[PR 2481]: https://github.com/libp2p/rust-libp2p/pull/2481
230+
[PR 2445]: https://github.com/libp2p/rust-libp2p/pull/2445
231+
[PR 2506]: https://github.com/libp2p/rust-libp2p/pull/2506
232+
[PR 2493]: https://github.com/libp2p/rust-libp2p/pull/2493
233+
234+
## 0.35.0 [2022-01-27]
235+
236+
- Update dependencies.
237+
238+
- Migrate to Rust edition 2021 (see [PR 2339]).
239+
240+
- Add metrics for network and configuration performance analysis (see [PR 2346]).
241+
242+
- Improve bandwidth performance by tracking IWANTs and reducing duplicate sends
243+
(see [PR 2327]).
244+
245+
- Implement `Serialize` and `Deserialize` for `MessageId` and `FastMessageId` (see [PR 2408])
246+
247+
- Fix `GossipsubConfigBuilder::build()` requiring `&self` to live for `'static` (see [PR 2409])
248+
249+
- Implement Unsubscribe backoff as per [libp2p specs PR 383] (see [PR 2403]).
250+
251+
[PR 2346]: https://github.com/libp2p/rust-libp2p/pull/2346
252+
[PR 2339]: https://github.com/libp2p/rust-libp2p/pull/2339
253+
[PR 2327]: https://github.com/libp2p/rust-libp2p/pull/2327
254+
[PR 2408]: https://github.com/libp2p/rust-libp2p/pull/2408
255+
[PR 2409]: https://github.com/libp2p/rust-libp2p/pull/2409
256+
[PR 2403]: https://github.com/libp2p/rust-libp2p/pull/2403
257+
[libp2p specs PR 383]: https://github.com/libp2p/specs/pull/383
258+
259+
## 0.34.0 [2021-11-16]
260+
261+
- Add topic and mesh metrics (see [PR 2316]).
262+
263+
- Fix bug in internal peer's topics tracking (see [PR 2325]).
264+
265+
- Use `instant` and `futures-timer` instead of `wasm-timer` (see [PR 2245]).
266+
267+
- Update dependencies.
268+
269+
[PR 2245]: https://github.com/libp2p/rust-libp2p/pull/2245
270+
[PR 2325]: https://github.com/libp2p/rust-libp2p/pull/2325
271+
[PR 2316]: https://github.com/libp2p/rust-libp2p/pull/2316
272+
273+
## 0.33.0 [2021-11-01]
274+
275+
- Add an event to register peers that do not support the gossipsub protocol
276+
[PR 2241](https://github.com/libp2p/rust-libp2p/pull/2241)
277+
278+
- Make default features of `libp2p-core` optional.
279+
[PR 2181](https://github.com/libp2p/rust-libp2p/pull/2181)
280+
281+
- Improve internal peer tracking.
282+
[PR 2175](https://github.com/libp2p/rust-libp2p/pull/2175)
283+
284+
- Update dependencies.
285+
286+
- Allow `message_id_fn`s to accept closures that capture variables.
287+
[PR 2103](https://github.com/libp2p/rust-libp2p/pull/2103)
288+
289+
- Implement std::error::Error for error types.
290+
[PR 2254](https://github.com/libp2p/rust-libp2p/pull/2254)
291+
292+
## 0.32.0 [2021-07-12]
293+
294+
- Update dependencies.
295+
296+
- Reduce log levels across the crate to lessen noisiness of libp2p-gossipsub (see [PR 2101]).
297+
298+
[PR 2101]: https://github.com/libp2p/rust-libp2p/pull/2101
299+
300+
## 0.31.0 [2021-05-17]
301+
302+
- Keep connections to peers in a mesh alive. Allow closing idle connections to peers not in a mesh
303+
[PR-2043].
304+
305+
[PR-2043]: https://github.com/libp2p/rust-libp2p/pull/2043https://github.com/libp2p/rust-libp2p/pull/2043
306+
307+
## 0.30.1 [2021-04-27]
308+
309+
- Remove `regex-filter` feature flag thus always enabling `regex::RegexSubscriptionFilter` [PR
310+
2056](https://github.com/libp2p/rust-libp2p/pull/2056).
311+
312+
## 0.30.0 [2021-04-13]
313+
314+
- Update `libp2p-swarm`.
315+
316+
- Update dependencies.
317+
318+
## 0.29.0 [2021-03-17]
319+
320+
- Update `libp2p-swarm`.
321+
322+
- Update dependencies.
323+
324+
## 0.28.0 [2021-02-15]
325+
326+
- Prevent non-published messages being added to caches.
327+
[PR 1930](https://github.com/libp2p/rust-libp2p/pull/1930)
328+
329+
- Update dependencies.
330+
331+
## 0.27.0 [2021-01-12]
332+
333+
- Update dependencies.
334+
335+
- Implement Gossipsub v1.1 specification.
336+
[PR 1720](https://github.com/libp2p/rust-libp2p/pull/1720)
337+
338+
## 0.26.0 [2020-12-17]
339+
340+
- Update `libp2p-swarm` and `libp2p-core`.
341+
342+
## 0.25.0 [2020-11-25]
343+
344+
- Update `libp2p-swarm` and `libp2p-core`.
345+
346+
## 0.24.0 [2020-11-09]
347+
348+
- Update dependencies.
349+
350+
## 0.23.0 [2020-10-16]
351+
352+
- Update dependencies.
353+
354+
## 0.22.0 [2020-09-09]
355+
356+
- Update `libp2p-swarm` and `libp2p-core`.
357+
358+
## 0.21.0 [2020-08-18]
359+
360+
- Add public API to list topics and peers. [PR 1677](https://github.com/libp2p/rust-libp2p/pull/1677).
361+
362+
- Add message signing and extended privacy/validation configurations. [PR 1583](https://github.com/libp2p/rust-libp2p/pull/1583).
363+
364+
- `Debug` instance for `Gossipsub`. [PR 1673](https://github.com/libp2p/rust-libp2p/pull/1673).
365+
366+
- Bump `libp2p-core` and `libp2p-swarm` dependency.
367+
368+
## 0.20.0 [2020-07-01]
369+
370+
- Updated dependencies.
371+
372+
## 0.19.3 [2020-06-23]
373+
374+
- Maintenance release fixing linter warnings.
375+
376+
## 0.19.2 [2020-06-22]
377+
378+
- Updated dependencies.

0 commit comments

Comments
 (0)