-
Send all topic subscriptions in a single hello RPC when connecting to a new peer, aligning with the GossipSub spec and other implementations (Go, Nim, JS). See PR 6385.
-
Raise MSRV to 1.88.0. See PR 6273.
-
Optimize IDONTWANT sending by avoiding broadcasts for already-seen messages and deduplicating recipient peers. See PR 6356
-
Rename metric
topic_msg_sent_bytestotopic_msg_last_sent_bytesfor accuracy. See PR 6283 -
Add extra metrics for bytes received and sent, filtered and unfiltered for each topic. See PR 6192
-
Reduce log size by implementing custom Debug for RawMessage that logs data length instead of full byte arrays. See PR 6263
-
Log when sending and receiving messages. See PR 6234
-
Prevent mesh exceeding mesh_n_high. See PR 6184
-
Fix underflow when shuffling peers after prunning. See PR 6183
-
Implement gossipsub 1.3 partial messages extension. See PR XXXX
-
Remove peer penalty for duplicate messages. See PR 6112
-
Remove
Rpcfrom the public API. See PR 6091 -
reduce allocations by replacing
or_insertwithor_insert_withSee PR 6136 -
Fix
unsubscribe_backoffexpecting number of seconds instead ofDurationSee PR 6124 -
Fix incorrect default values in ConfigBuilder See PR 6113
-
Remove duplicated config
set_topic_max_transmit_sizemethod, prefermax_transmit_size_for_topic. See PR 6173. -
Switch the internal
async-channelused to dispatch messages fromNetworkBehaviourto theConnectionHandlerwith an internal priority queue. See PR 6175 -
gossipsub: do early return in for an empty input See PR 6208.
-
Refactor gossipsub with in-place negative-score peer removal. See PR 6209.
-
Remove
wasm-bindgenfeature and makewasmsupport implicit. See PR 6102 -
Avoid direct casting from u128 to u64. See PR 6211.
- Harden time arithmetic and bound remote PRUNE backoff. See CVE
- Ignore invalid backoff values on peer prune. See CVE GHSA-gc42-3jg7-rxr2
- Relax
Behaviour::with_metricsrequirements, do not require DataTransform and TopicSubscriptionFilter to also impl Default See PR 6097
-
Fix applying P3 and P6 Score penalties when their weight is zero See PR 6097
-
Fix fanout logic to include correctly scored peers and prevent panics when memcache is set to 0. See PR 6095
-
Fix mesh not being constructed even when not adding any peer. See PR 6100
-
Feature gate metrics related code. This changes some
Behaviourconstructor methods. See PR 6020 -
Send IDONTWANT before Publishing a new message. See PR 6017
-
Improve log messaging by renaming
messagetomessage_id. This change makes it log coherent to the field and also improve duplication ofmessagefield. See PR 5972 -
Fix a race condition for messages published which are already in the network. See PR 5928
-
Improve error messaging by renaming
PublishError::InsufficientPeerstoPublishError::NoPeersSubscribedToTopic. This change makes it clearer that the error occurs specifically when trying to publish to a topic with no subscribed peers, rather than a general peer availability issue. See PR 5912 -
Allow whitelisting topics for metrics to ensure metrics are recorded correctly for these topics. See PR 5895
-
Improve
max_messages_per_rpcconsistency by ensuring RPC control messages also adhere to the existing limits. See PR 5826 -
Respect already received IDONTWANT messages when handling IWANT. See PR 5901
-
Fix messages were not forwarded to floodsub peers. See PR 5908
-
Fix messages were published to all floodsub peers regardless of their topic. See PR 5904
-
Upgrade
prometheus-clienttov0.23See PR 5960. -
Allow customizing max transmit size and mesh-n-* parameters per topic. See PR 5868
-
Allow broadcasting
IDONTWANTmessages when publishing to avoid downloading data that is already available. See PR 5773 -
Add configurable
idontwant_message_size_thresholdparameter. See PR 5770 -
Correct state inconsistencies with the mesh and fanout when unsubscribing. See PR 5690
-
Deprecate
futures-tickerand usefutures-timerinstead. See PR 5674. -
Apply
max_transmit_sizeto the inner message instead of the final payload. See PR 5642. -
Deprecate
voidcrate. See PR 5676. -
Attempt to publish to at least mesh_n peers when flood publish is disabled. See PR 5578.
-
Introduce back pressure and penalize slow peers. Drop stale messages that timeout before being delivered. See PR 5595.
-
Change
Behaviour::unsubscribeandBehaviour::report_message_validation_resulttoboolthey don't need to be aResult. See PR 5595. -
Fix
cargo clippywarnings inrustc 1.84.0-beta.1. See PR 5700. -
Fix an issue where an
InsufficientPeerserror could occur under certain conditions, despite having peers subscribed to a topic. See PR 5793.
- Add ConnectionError to FromSwarm::ConnectionClosed. See PR 5485.
- Use
web-timeinstead ofinstant. See PR 5347.
- Deprecate
Rpcin preparation for removing it from the public API because it is an internal type. See PR 4833.
- Remove
fast_message_id_fnmechanism fromConfig. See PR 4285. - Remove deprecated
gossipsub::Config::idle_timeoutin favor ofSwarmBuilder::idle_connection_timeout. See PR 4642. - Return typed error from config builder. See PR 4445.
- Process outbound stream before inbound stream in
EnabledHandler::poll(..). See PR 4778.
- Deprecate
gossipsub::Config::idle_timeoutin favor ofSwarmBuilder::idle_connection_timeout. See PR 4648.
- Add getter function to obtain
TopicScoreParams. See PR 4231.
- Deprecate
metrics,protocol,subscription_filter,time_cachemodules to make them private. See PR 3777. - Honor the
gossipsub::Config::support_floodsubin all cases. Previously, it was ignored when a custom protocol id was set viagossipsub::Config::protocol_id. See PR 3837.
-
Fix erroneously duplicate message IDs. See PR 3716.
-
Gracefully disable handler on stream errors. Deprecate a few variants of
HandlerError. See PR 3625.
- Signed messages now use sequential integers in the sequence number field. See PR 3551.
- Migrate from
prosttoquick-protobuf. This removesprotocdependency. See PR 3312.
-
Update to
prometheus-clientv0.19.0. See PR 3207. -
Update to
libp2p-corev0.39.0. -
Update to
libp2p-swarmv0.42.0. -
Initialize
ProtocolConfigviaGossipsubConfig. See PR 3381. -
Rename types as per discussion 2174.
Gossipsubhas been renamed toBehaviour. TheGossipsubprefix has been removed from various types likeGossipsubConfigorGossipsubMessage. It is preferred to import the gossipsub protocol as a module (use libp2p::gossipsub;), and refer to its types viagossipsub::. For example:gossipsub::Behaviourorgossipsub::RawMessage. See PR 3303.
-
Update to
libp2p-corev0.38.0. -
Update to
libp2p-swarmv0.41.0. -
Update to
prost-codecv0.3.0. -
Refactoring GossipsubCodec to use common protobuf Codec. See PR 3070.
-
Replace
Gossipsub'sNetworkBehaviourimplementationinject_*methods with the newon_*methods. See PR 3011. -
Replace
GossipsubHandler'sConnectionHandlerimplementationinject_*methods with the newon_*methods. See PR 3085. -
Update
rust-versionto reflect the actual MSRV: 1.62.0. See PR 3090.
-
Bump rand to 0.8 and quickcheck to 1. See PR 2857.
-
Update to
libp2p-corev0.37.0. -
Update to
libp2p-swarmv0.40.0.
-
Update to
libp2p-swarmv0.39.0. -
Update to
libp2p-corev0.36.0. -
Allow publishing with any
impl Into<TopicHash>as a topic. See PR 2862.
-
Update prost requirement from 0.10 to 0.11 which no longer installs the protoc Protobuf compiler. Thus you will need protoc installed locally. See PR 2788.
-
Update to
libp2p-swarmv0.38.0. -
Update to
libp2p-corev0.35.0. -
Update to
prometheus-clientv0.18.0. See PR 2822.
-
Update to
libp2p-corev0.34.0. -
Update to
libp2p-swarmv0.37.0. -
Allow for custom protocol ID via
GossipsubConfigBuilder::protocol_id(). See PR 2718.
- Fix duplicate connection id. See PR 2702.
-
Update to
libp2p-corev0.33.0. -
Update to
libp2p-swarmv0.36.0. -
changed
TimeCache::contains_keyandDuplicateCache::containsto immutable methods. See PR 2620. -
Update to
prometheus-clientv0.16.0. See PR 2631.
-
Update to
libp2p-swarmv0.35.0. -
Fix gossipsub metric (see PR 2558).
-
Allow the user to set the buckets for the score histogram, and to adjust them from the score thresholds. See PR 2595.
-
Update to
libp2p-corev0.32.0. -
Update to
libp2p-swarmv0.34.0. -
Move from
open-metrics-clienttoprometheus-client(see PR 2442). -
Emit gossip of all non-empty topics (see PR 2481).
-
Merge NetworkBehaviour's inject_* paired methods (see PR 2445).
-
Revert to wasm-timer (see PR 2506).
-
Do not overwrite msg's peers if put again into mcache (see PR 2493).
-
Update dependencies.
-
Migrate to Rust edition 2021 (see PR 2339).
-
Add metrics for network and configuration performance analysis (see PR 2346).
-
Improve bandwidth performance by tracking IWANTs and reducing duplicate sends (see PR 2327).
-
Implement
SerializeandDeserializeforMessageIdandFastMessageId(see PR 2408) -
Fix
GossipsubConfigBuilder::build()requiring&selfto live for'static(see PR 2409) -
Implement Unsubscribe backoff as per libp2p specs PR 383 (see PR 2403).
-
Add topic and mesh metrics (see PR 2316).
-
Fix bug in internal peer's topics tracking (see PR 2325).
-
Use
instantandfutures-timerinstead ofwasm-timer(see PR 2245). -
Update dependencies.
-
Add an event to register peers that do not support the gossipsub protocol PR 2241
-
Make default features of
libp2p-coreoptional. PR 2181 -
Improve internal peer tracking. PR 2175
-
Update dependencies.
-
Allow
message_id_fns to accept closures that capture variables. PR 2103 -
Implement std::error::Error for error types. PR 2254
-
Update dependencies.
-
Reduce log levels across the crate to lessen noisiness of libp2p-gossipsub (see PR 2101).
- Keep connections to peers in a mesh alive. Allow closing idle connections to peers not in a mesh PR-2043.
- Remove
regex-filterfeature flag thus always enablingregex::RegexSubscriptionFilterPR 2056.
-
Update
libp2p-swarm. -
Update dependencies.
-
Update
libp2p-swarm. -
Update dependencies.
-
Prevent non-published messages being added to caches. PR 1930
-
Update dependencies.
-
Update dependencies.
-
Implement Gossipsub v1.1 specification. PR 1720
- Update
libp2p-swarmandlibp2p-core.
- Update
libp2p-swarmandlibp2p-core.
- Update dependencies.
- Update dependencies.
- Update
libp2p-swarmandlibp2p-core.
-
Add public API to list topics and peers. PR 1677.
-
Add message signing and extended privacy/validation configurations. PR 1583.
-
Debuginstance forGossipsub. PR 1673. -
Bump
libp2p-coreandlibp2p-swarmdependency.
- Updated dependencies.
- Maintenance release fixing linter warnings.
- Updated dependencies.