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