140 Commits

Author SHA1 Message Date
vyzo
d0979258f7 shuffle IWANT list 2020-04-18 11:09:06 +03:00
vyzo
244a39f419 validate the threshold values 2020-04-18 11:09:06 +03:00
vyzo
d5e432a62b move score starting nil check inside the score implementation 2020-04-18 11:09:06 +03:00
vyzo
ff89a0e619 short-circuit score computation in peer selection filters 2020-04-18 11:09:06 +03:00
vyzo
39e65e8729 peer score parameter validation 2020-04-18 11:09:06 +03:00
vyzo
8d82c2bdec explicit Start for peer scoring to inject the router
so that we can unit test without a router.
2020-04-18 11:09:06 +03:00
vyzo
31a279b9f0 limit message retransmissions through IWANT requests 2020-04-18 11:09:06 +03:00
vyzo
f9d29c47b6 adaptive gossip dissemination 2020-04-18 11:09:06 +03:00
vyzo
8fb6924f7c select good peers for PX, tune the px related limits 2020-04-18 11:09:06 +03:00
vyzo
2ddc4b999f allow gossipsub to graylist peers based on score 2020-04-18 11:09:06 +03:00
vyzo
87bbe69a8b router.Publish doesn't need the source, it takes the whole message now 2020-04-18 11:09:06 +03:00
vyzo
75fd8826af backoff when we prune too, refuse to reGRAFT backed off peers 2020-04-18 11:09:06 +03:00
vyzo
56dbe5dc8a increase D_score to 4 2020-04-18 11:09:06 +03:00
vyzo
69e4102a6d correctly implement flood publishing
Only applies to messages that have been published by our own peer!
2020-04-18 11:09:06 +03:00
vyzo
4f6ca1b1b7 implement flood publishing option 2020-04-18 11:09:06 +03:00
vyzo
dc6af4bbe6 keep D peer when pruning for oversubscription 2020-04-18 11:09:06 +03:00
vyzo
712bab2c64 remove peers with negative score from fanout 2020-04-18 11:09:06 +03:00
vyzo
80f3b8c45b hook score into heartbeat maintenance 2020-04-18 11:09:06 +03:00
vyzo
487bbaf09f heartbeat doPX is a more complex decision 2020-04-18 11:09:06 +03:00
vyzo
f9ce661bda filter peers with negative score in initial mesh on join 2020-04-18 11:09:06 +03:00
vyzo
c13e9c07e4 hook peer score into control message handlers 2020-04-18 11:09:06 +03:00
vyzo
7d928697a2 peer score scaffolding 2020-04-18 11:09:06 +03:00
Yusef Napora
4c804a954a track changes to peer records in -core 2020-04-18 11:09:06 +03:00
vyzo
946f35c4d4 fix rebase artifacts 2020-03-24 15:52:34 +02:00
vyzo
ce1970d18d don't spawn a goroutine for scheduling connections 2020-03-24 15:52:34 +02:00
vyzo
0dec90571b shuffle peers when limiting px set 2020-03-24 15:52:34 +02:00
vyzo
17fd85f02c add limit to the number of peers to connect to from px 2020-03-24 15:52:34 +02:00
vyzo
f20f93004b connect to peers obtained through px 2020-03-24 15:52:34 +02:00
vyzo
85b455fa50 backoff grafting to peers that have pruned us 2020-03-24 15:52:34 +02:00
vyzo
6b80c4078d peer exchange on prune 2020-03-24 15:52:34 +02:00
vyzo
73af710419 protocol ID for gossipsub v1.1 2020-03-24 15:52:34 +02:00
Yusef Napora
559cf91dce renaming in error messages & local var 2020-03-24 15:52:34 +02:00
Yusef Napora
d860620a23 add missing continue to error case 2020-03-24 15:52:34 +02:00
Yusef Napora
23e30d529a fix import & var naming 2020-03-24 15:52:34 +02:00
Yusef Napora
919d81fd91 track changes to peer records in -core 2020-03-24 15:52:34 +02:00
vyzo
5b0ec14ea7 don't spawn a goroutine for scheduling connections 2020-03-24 15:52:34 +02:00
vyzo
efb09f2984 shuffle peers when limiting px set 2020-03-24 15:52:34 +02:00
vyzo
e4667b6073 add limit to the number of peers to connect to from px 2020-03-24 15:52:34 +02:00
vyzo
a4c5325665 make connection timeout a variable, set for 30s (instead of 10s) 2020-03-24 15:52:34 +02:00
vyzo
d118e1d554 connect to peers obtained through px 2020-03-24 15:52:34 +02:00
vyzo
806fd24a58 backoff grafting to peers that have pruned us 2020-03-24 15:52:34 +02:00
vyzo
6c59beedb8 peer exchange on prune 2020-03-24 15:52:34 +02:00
vyzo
6fc8050bac protocol ID for gossipsub v1.1 2020-03-24 15:52:34 +02:00
protolambda
6bd07a71fc
PR feedback: name change and account for different options order 2019-12-16 12:46:30 +01:00
protolambda
7981f9bfbd
fixes #247: implement msg id function as pubsub option 2019-12-16 03:54:40 +01:00
vyzo
958e09a5b3 remove useless nil check when initializing subsystem tracers 2019-11-15 20:42:04 +02:00
vyzo
67275a6382 tracing scaffolding 2019-11-15 20:42:04 +02:00
Adin Schmahmann
f9c26c2e68 Added libp2p discovery capabilities to PubSub.
When the WithDiscovery option is passed to PubSub then PubSub will be able to search for more peers that are interested in our topics.

This includes the ability for Publishes (via Topic.Publish()) to block until the router is ready to publish. When a router is ready is currently defined by a combination of a user defined MinTopicSize function (passed into topic.Publish via the WithReadiness publish option) and the properties of the pubsub router used. The discovery tests show example usage.
2019-10-31 16:39:18 -04:00
Raúl Kripalani
8d7838b031 rename queueGossip() to enqueueGossip(). 2019-10-12 21:50:20 +09:00
Raúl Kripalani
2a90debb89 rename pushGossip to queueGossip for accuracy. 2019-10-06 18:53:05 +09:00