928 Commits

Author SHA1 Message Date
vyzo
ea314605d3 don't forward messages with source ourselves but not published by ourselves
per stebalien's request.
2020-04-18 11:09:06 +03:00
vyzo
0cab7f5e59 increase connection manager weight for mesh peers 2020-04-18 11:09:06 +03:00
vyzo
7a3848073e only retain negative scores 2020-04-18 11:09:06 +03:00
vyzo
c65a520799 topic score cap 2020-04-18 11:09:06 +03:00
vyzo
65cff1b421 godoc nits for parameter weights. 2020-04-18 11:09:06 +03:00
vyzo
bb279e3126 wrap topic param validation error 2020-04-18 11:09:06 +03:00
vyzo
1b387b0068 rename score debug option, address some comments around inspection
- Use nil for the never fire channel when there is no inspection
- Defer a score inspection for shutdown to get one final sample on shutdown
2020-04-18 11:09:06 +03:00
vyzo
adad40c764 reraise GossipSubPrunePeers to 16
so that bootstrappers can give us a good enough chunk of peers to connect to.
2020-04-18 11:09:06 +03:00
vyzo
71ab9c1d73 use a struct for aggregating score thresholds 2020-04-18 11:09:06 +03:00
vyzo
f6f34cfc99 make PX optional and disabled by default, gate by acceptPXThreshold 2020-04-18 11:09:06 +03:00
vyzo
375b66b0c1 move score parameter types to their own file 2020-04-18 11:09:06 +03:00
vyzo
9fc2fb1de1 gomod tidy 2020-04-18 11:09:06 +03:00
vyzo
8a5114c127 fix rebase artifacts 2020-04-18 11:09:06 +03:00
vyzo
90e6984148 track heartbeat ticks, only clear backoff every 15. 2020-04-18 11:09:06 +03:00
vyzo
f70dcbe77c check exact expiration date of backoff when pruning because of backoff 2020-04-18 11:09:06 +03:00
vyzo
6bcaacd74b add backoff when pruning because of negative score 2020-04-18 11:09:06 +03:00
vyzo
15d204cc14 refresh backoff when pruning during the backoff period 2020-04-18 11:09:06 +03:00
vyzo
d0979258f7 shuffle IWANT list 2020-04-18 11:09:06 +03:00
vyzo
588f7b85c0 add option to periodically inspect peer scores for debugging purposes 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
98671566a2 distinguish throttled validation because of a full worker queue. 2020-04-18 11:09:06 +03:00
vyzo
06d72b93da fix bug in WithEventTracer
wrong nil check.
2020-04-18 11:09:06 +03:00
vyzo
39e65e8729 peer score parameter validation 2020-04-18 11:09:06 +03:00
vyzo
4175342bc8 implement periodic maintenance 2020-04-18 11:09:06 +03:00
vyzo
f550385493 implement getIPs and refreshIPs 2020-04-18 11:09:06 +03:00
vyzo
38fbc7fa47 implement message delivery struct details 2020-04-18 11:09:06 +03:00
vyzo
7d862e2ee6 double check delivery to aboid duplicate counts 2020-04-18 11:09:06 +03:00
vyzo
48b7d01113 finetune sticky mesh failure penalty parameter 2020-04-18 11:09:06 +03:00
vyzo
f40b06e515 sticky mesh failure penalty parameter 2020-04-18 11:09:06 +03:00
vyzo
b7a49b2708 clean up the logic of mesh delivery window 2020-04-18 11:09:06 +03:00
vyzo
5fa0f9ed6a more logical code ordering 2020-04-18 11:09:06 +03:00
vyzo
ca6778bc83 simplify duplicate mesh delivery tracking 2020-04-18 11:09:06 +03:00
vyzo
9c0b96f4e7 comment cosmetics 2020-04-18 11:09:06 +03:00
vyzo
e17e266aa9 track message delivery time within the validation pipeline 2020-04-18 11:09:06 +03:00
vyzo
3610b05538 peer tracking 2020-04-18 11:09:06 +03:00
vyzo
283593fbc0 mesh tracking 2020-04-18 11:09:06 +03:00
vyzo
535c04481e minimize hash table accesses 2020-04-18 11:09:06 +03:00
vyzo
16eeacd798 message delivery tracking 2020-04-18 11:09:06 +03:00
vyzo
dd3ce7760c respect the time in mesh cap 2020-04-18 11:09:06 +03:00
vyzo
8c0deb877d respec decay to zero parameter in counter decay 2020-04-18 11:09:06 +03:00
vyzo
b1aff8d752 add nil check in Score function
necessary for when the score is not specified in gossipsub router.
2020-04-18 11:09:06 +03:00
vyzo
398fb82e5f fix peer IP tracking structure 2020-04-18 11:09:06 +03:00
vyzo
20e3cf02b1 peer score refresh: counter decay and mesh activation 2020-04-18 11:09:06 +03:00
vyzo
38883df429 peer score calculation 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
a02c4136b1 peer score parameters 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
5b55f0f78d track peer (re)transmissions in message cache 2020-04-18 11:09:06 +03:00