Commit Graph

73 Commits

Author SHA1 Message Date
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 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 958e09a5b3 remove useless nil check when initializing subsystem tracers 2019-11-15 20:42:04 +02:00
vyzo fd73973145 add tracing to floodsub/randomsub 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 49274b0e8a
migrate to consolidated types. (#185) 2019-05-26 17:19:03 +01:00
vyzo 96c5b40934 godoc cosmetics 2019-01-04 13:14:04 +02:00
Steven Allen bd1a4630b9 move to go-libp2p-pubsub
Updates for move from go-floodsub to go-libp2p-pubsub.

fixes https://github.com/libp2p/go-libp2p-pubsub/issues/4
2018-10-18 21:10:16 +01:00
Kevin Atkinson 0827f5e955 gx publish 0.9.31 2018-10-04 19:23:53 -04:00
Kevin Atkinson 1abb0209ce gx publish 0.9.30 2018-10-04 18:41:48 -04:00
vyzo 8680a79d3a add Join/Leave to PubSubRouter interface
advanced routers will want to know when they are subscribed to a topic as
they may want to send control messages.
2018-06-12 08:00:17 -07:00
Erin Swenson-Healey 75fcbf0c2c New -> NewFloodsubWithProtocols 2018-06-07 09:21:08 -07:00
Erin Swenson-Healey 6840b190db allow FloodSubRouter to be configured with protocols 2018-06-07 09:21:08 -07:00
vyzo 327e72d4fd demote erros per #62 2018-01-27 09:54:57 +02:00
vyzo e7b1fe6e75 modularized pubsub; Flooding is just a routing method. 2018-01-27 09:54:57 +02:00
Steven Allen 098f1d5819 demote errors/warnings to info
* dropped/killed connections are not errors.
* handleIncomingRPC/publishMessage do not return errors.
2018-01-26 15:00:47 -08:00
Steven Allen c82e67dcd3
Merge pull request #55 from libp2p/feat/validators
Message Validators
2018-01-24 06:03:20 +00:00
vyzo 3f4fc21228 fix comment, subscriptions don't have validators any more. 2018-01-18 20:09:09 +02:00
vyzo bbdec3fda2 implement per topic validators 2018-01-18 19:12:36 +02:00
Raghav Gulati 99a4f9e5ed Increase timeout in TestSubscribeMultipleTimes
Increase delay to 10ms; makes go test -race happy.
2018-01-16 11:46:33 +02:00
vyzo fceb00d234 improved comment about global validation throttle 2018-01-14 02:24:13 +02:00
vyzo 145a84a33b use a single channel for all validation results 2018-01-13 22:02:28 +02:00
vyzo f6081fb061 pushMsg should just call maybePublishMessage when it doesn't need validation 2018-01-13 21:56:57 +02:00
vyzo 473a5d2873 sendMsg should have a buffer 2018-01-13 21:39:35 +02:00
vyzo edcb251ad1 install global validation throttle, use reasonable defaults. 2018-01-13 21:15:40 +02:00
vyzo 856a25c8eb WithMaxConcurrency is WithValidatorConcurrency
and defaultMaxConcurrency is defaultValidateConcurrency.
2018-01-13 20:56:03 +02:00
vyzo bf2151ba5f the sendMsg channel should yield pointers for consistency 2018-01-13 20:47:28 +02:00
vyzo 5ef13c764e don't always spawn a goroutine for sending a new message 2018-01-13 20:11:32 +02:00
vyzo c95ed28496 add validation context for cancelation on aborts 2018-01-13 18:34:00 +02:00
vyzo fba445bc6d code cosmetics
reword pushMsg for less indentation nesting.
2018-01-13 14:44:33 +02:00
vyzo 982c4de960 per subscription validation throttle and more efficient dispatch logic 2018-01-13 14:31:34 +02:00
vyzo d2f6a0050f WithValidator and WithValidatorTimeout are subscription options 2018-01-13 12:33:03 +02:00
vyzo 4241241031 fix dangling maxConcurrency reference 2018-01-13 12:24:31 +02:00
keks 88274db0bb make maximum concurrency configurable, split loop 2018-01-13 12:15:27 +02:00
keks fe09d1eea3 make validator timeout configurable 2018-01-13 12:13:54 +02:00
keks 6e8b9f2d5c fix timeout 2018-01-13 12:13:54 +02:00
keks 02877cda71 complete validator functions
- make validators time out after 100ms
  - add context param to validator functions
  - add type Validator func(context.Context, *Message) bool
- drop message if more than 10 messages are already being validated
2018-01-13 12:13:54 +02:00
keks 197a5982a4 ungxify 2018-01-13 12:12:21 +02:00
keks 7dd4e0bfeb vet
used for range variable inside goroutine, now passed as argument
2018-01-13 12:12:21 +02:00
keks 1945f895a2 log when validator discards message 2018-01-13 12:12:21 +02:00
keks 930f264a27 typedef subscription options and fix typo 2018-01-13 12:12:21 +02:00
keks 647bb98655 optionally allow caller to validate messages 2018-01-13 12:12:21 +02:00
vyzo 95dce910ba narrow the message seqno to 64bit again
Uses the atomic counter initialized at instantiation time, which saves
a few bytes and a syscall per message.
2018-01-03 20:30:28 +02:00
vyzo 8a31b41b4c use atomic counter for message seqnos; timestamp is insufficient 2018-01-03 11:25:20 +02:00
Steven Allen 56ea7752e8 better worker cleanup
1. Don't hang marking a peer as dead if we're shutting down.
2. No need to "drain" the outgoing channel anymore. This may have been necessary
to prevent a deadlock where the main loop blocked on sending on sending a
message while we waited to tell the main loop that the peer was dead. However,
this is no longer an issue (we never block on sending).
2017-10-14 11:19:21 -07:00
Steven Allen d1d3a55404 Merge pull request #34 from libp2p/fix/go-ipfs/4066
drop messages to slow peers
2017-09-04 16:24:19 -07:00
Garrett Thornburg 2ac19f2157 Drop announce messages to peers when their buffer is full 2017-09-01 23:10:06 -04:00
Garrett Thornburg 63c977c815 Return false when we haven't subscribed to anything 2017-09-01 21:16:41 -04:00
Steven Allen e7faa78d7c log when dropping messages 2017-08-29 19:42:33 -07:00