-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Gossipsub v1.1 #1720
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
Merged
Merged
Gossipsub v1.1 #1720
Changes from 1 commit
Commits
Show all changes
141 commits
Select commit
Hold shift + click to select a range
aeba523
Gossipsub message signing
AgeManning 573e4b6
Update ipfs-private example
AgeManning d2babd4
Add optimisation to prevent key calculation each message
AgeManning 8353474
Support multiple versions
AgeManning b7db121
Initial porting of peer_scoring from go-libp2p
AgeManning ac3c977
Handle forwarding of signed messages and reviewers comments
AgeManning f3ff66b
Merge latest gossipsub signing
AgeManning c8335cc
Progress to porting scoring functions
AgeManning e9afd95
Merge branch 'master' into gossipsub-signing
AgeManning 984a662
Finish first port of score params
AgeManning 80ea7df
Add defaults to scoring
AgeManning 58f61b4
Generalise topic hashing
AgeManning 238e305
Update topic hashing structure
AgeManning fec112a
Update v1.1 tests
AgeManning bc09eb7
Add more unit tests
AgeManning 3d1a025
protocols/gossipsub/src/protocol: Use quickcheck to test signing (#31)
mxinden 31b6849
Shift signing into behaviour
AgeManning a8cec0b
Merge latest master
AgeManning 2b38112
Address reviewers suggestions
AgeManning 7d678f5
Send subscriptions to all peers
AgeManning dc050dd
Update examples
AgeManning 5bf1cfc
Shift signing option into the behaviour
AgeManning 4ffe728
Revert changes to core/
AgeManning 24b738c
Reviewers suggestion
AgeManning a2e4bf0
Merge remote-tracking branch 'origin/master' into gossipsub-signing
AgeManning 2f20571
Merge latest master
AgeManning 2c50ba2
Revert changes to core/
AgeManning 4de878e
Switch gossipsub state to use sets instead of vectors
rklaehn e43f0a0
Make tests pass
rklaehn 57f07aa
Some clippy
rklaehn b6eeb3c
Prevent duplicate finding during JOIN
AgeManning 0d5bde4
Merge #1675
AgeManning aec51e0
Update tests, improve logging
AgeManning 759a5ad
Update the default d_lo constant
AgeManning 495ffe4
Handle errors correctly
AgeManning 1ea2dd9
Add privacy and validation options in the config
AgeManning 8e69465
Merge branch 'master' into gossipsub-v1.1
blacktemplar 1f73ded
A few improvements (#32)
rklaehn 7b76c8f
Improve signing validation logic
AgeManning f5d32b2
Change the gossipsub rpc protocol to use bytes for message ids (#34)
rklaehn c3a7757
Add optional privacy and validation settings
AgeManning 0c43ed4
Correct doc link
AgeManning efa40e3
Prevent invalid messages from being gossiped
AgeManning a514c60
Remove unvalidated messages from gossip. Reintroduce duplicate cache
AgeManning b257025
Send grafts when subscriptions are added to the mesh
AgeManning b20771b
Merge latest master
AgeManning cacadc0
Merge gossipsub-signing
AgeManning 6566925
implement explicit peers
blacktemplar 81338d5
Merge branch 'gossipsub-v1.1' into gossipsub-v1.1-explicit-peers
blacktemplar ecb2d8b
Fix ipfs-kad example
AgeManning 2a830b9
Merge branch 'gossipsub-v1.1' into gossipsub-v1.1-explicit-peers
blacktemplar b78d771
finish merging + rustfmt
blacktemplar 8bffa91
undo changes in ipfs-private
blacktemplar 2f4a50a
Only add messages to memcache if not duplicates
AgeManning 99a37bb
Merge latest signing
AgeManning 284bf1c
Merge pull request #36 from blacktemplar/gossipsub-v1.1-explicit-peers
blacktemplar be7c9e2
Add mesh maintenance tests and remove excess peers from mesh
AgeManning e049ff7
Apply reviewers suggestions
AgeManning 74d2779
Merge latest master
AgeManning 81fca56
Merge latest gossipsub-signing
AgeManning 6bac865
Wrap comments
AgeManning 6e0a6b3
implement px and prune backoff + simplify tests for explicit peers
blacktemplar 1257639
Merge pull request #37 from sigp/gossipsub-v1.1-prune-backoff-and-px
blacktemplar 6c77022
improved data structure for storing backoffs + adding configurable sl…
blacktemplar 8b17725
Merge pull request #38 from sigp/gossipsub-v1.1-prune-backoff-and-px
blacktemplar 2518f9f
allow flood publishing (on by default)
blacktemplar 1994c88
Merge pull request #39 from sigp/gossipsub-v1.1-flood-publishing
blacktemplar dbe0a84
implement adaptive gossip dissemination + complete config debug output
blacktemplar 7155f5c
Merge pull request #40 from sigp/gossipsub-v1.1-adaptive-gossip-disse…
blacktemplar da34368
fix bug in backoff storage data structure
blacktemplar 66730dd
make GossipsubConfig fields private + add getters + improve validatio…
blacktemplar 8a0b278
implements a configurable minimum number of mesh peers that are outbound
blacktemplar 4e1375a
Merge pull request #41 from sigp/gossipsub-v1.1-outbound-mesh-quota
blacktemplar 94469cf
Ensure sequence number is sent
AgeManning 60f8a1e
Merge latest master
AgeManning fef66dd
Maintain the debug trait
AgeManning 799137c
use the score module in the behaviour, calling the score update metho…
blacktemplar efb59ac
Merge pull request #42 from sigp/gossipsub-v1.1-score-wiring
blacktemplar b6fbf05
implement opportunistic grafting
blacktemplar 189ffc4
remove done TODO
blacktemplar f405d2a
remove done TODO
blacktemplar 6fe395a
cargo fmt
blacktemplar 47855d6
Merge branch 'gossipsub-v1.1' into gossip-v1.1-opportunistic-grafting
blacktemplar 5954403
ignore grafts in unknown topics
blacktemplar a228f3b
Merge pull request #43 from sigp/gossip-v1.1-opportunistic-grafting
blacktemplar 3d69944
Merge branch 'gossipsub-v1.1' into gossipsub-v1.1-spam-protection-mea…
blacktemplar afba384
cap the number of gossipsub retransmission for the iwants of the same…
blacktemplar 223f0d8
cap the number of processed ihaves per peer per heartbeat, plus the m…
blacktemplar 1ced56e
Replace lru cache with custom duplicatecache
AgeManning 27ac942
track iwant messages we send and penalize peers not responding to them
blacktemplar 04d3e2f
removes todo
blacktemplar 5c52843
Improve stream management and error handling
AgeManning a135fc0
Merge pull request #44 from sigp/gossipsub-v1.1-spam-protection-measures
blacktemplar d9ee8e4
Merge remote-tracking branch 'origin/gossipsub-signing' into gossipsu…
blacktemplar 714fee3
Merge branch 'master' into gossipsub-v1.1
blacktemplar 7f7fd17
cargo fmt
blacktemplar ee7dd71
Gossipsub v1.1 check fmt (#45)
blacktemplar 5109fe7
Merge duplicate cache
AgeManning b748618
Merge substream updates
AgeManning 7bdb378
Propagate signature verification and peer kinds to behaviour (#46)
AgeManning 83280db
treat peers that do not support the protocol as disconnected (#48)
blacktemplar 5d93c0a
Gossipsub v1.1 various improvements (#49)
blacktemplar 3206da5
Gossipsub 1.1 ammendments (#50)
AgeManning 59034e2
Complete porting of go scoring tests (#51)
AgeManning 521ecdb
Add peer blacklisting (#52)
AgeManning 261f78e
Estimate message size (#53)
AgeManning f71a1bb
Message fragmentation (#54)
AgeManning c762d6c
Correct tests and merge latest master (#55)
AgeManning 8ec6b66
Merge latest master
AgeManning 4f92599
Remove github workflow
AgeManning 618334a
Cleanup code add logs (#56)
AgeManning 9a03f94
Further improve logging (#57)
AgeManning e031bce
Remove lru_time_cache_dep (#58)
AgeManning c7f0716
Various improvements (#60)
blacktemplar 9da2af7
Cache published message ids (#61)
blacktemplar 464c4da
use generic type for message data + cache message ids (#67)
blacktemplar 88ee95e
Adds a fast message id function and an additional cache for it (#68)
blacktemplar 238e5cf
Merge branch 'master' into gossipsub-v1.1
blacktemplar 6ee2c5f
export FastMessageId
blacktemplar 4c95f86
Gossipsub v1.1 bug fixes (#71)
blacktemplar c2c4a26
add subscription filters + some useful default filters + refactor tes…
blacktemplar 201d533
remove support for multi-topic messages (#73)
blacktemplar 87633a3
also consider allow self origin when using a published message ids di…
blacktemplar 0e28cba
fix clippy warnings (#83)
blacktemplar 9ba9b8a
Merge branch 'master' into gossipsub-v1.1
blacktemplar 6bb58ec
Merge latest master
AgeManning 7a316e8
Merge latest master
AgeManning d306455
Address reviewers comments (#88)
AgeManning 2d1170b
implement as_ref and as_static_ref to get a &str from PeerKind (#91)
blacktemplar 8bdc378
Merge latest master
AgeManning 34f58fb
Update to latest master
AgeManning 5157e70
only respond to IWANT if message got already validated (#96)
blacktemplar 82be02d
protocols/gossipsub: Review (#93)
mxinden ffee445
Merge latest master
AgeManning 23d7d04
Add optional compression to gossipsub (#100)
AgeManning 1b5a35e
Remove feature gating from gossipsub
AgeManning 1b19338
Merge latest master
AgeManning a15b246
Remove compression in favour of a more general data transform
AgeManning 4cca4d3
Loosen trait bounds on gossipsub
AgeManning 88ed4e5
Merge latest master
AgeManning f47ae78
Fix doclinks
AgeManning File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Add privacy and validation options in the config
- Loading branch information
commit 1ea2dd9d222ee5015c5624e970f967d40255d2f4
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I can tell none of the fields are treated special. Why not derive
Debug?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the derive cannot handle the
message_id_fnandfast_message_id_fntypes in general. So we exclude them in a custom implementation.