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
Raúl Kripalani
9103afa349
emitGossip: gossip to D peers.
2019-10-06 18:52:11 +09:00
Raúl Kripalani
cd94989155
emitGossip: rename param name for clarity.
2019-10-06 18:50:40 +09:00
vyzo
2bac4705dc
fix very minor bug in gossipsub
2019-08-13 12:01:55 +03:00
Topper Bowers
5e883d794c
also check for nil peers (h/t @brandonwestcott)
2019-05-28 12:09:08 -04:00