547 Commits

Author SHA1 Message Date
James Ray
7032dd1234
Add a spec link for gossipsub 2018-07-05 15:24:04 +10:00
Steven Allen
eafbbe2249 gx publish 0.9.20 gx/v0.9.20 2018-06-26 16:30:50 -07:00
Steven Allen
27851d7d34 gx publish 0.9.19 gx/v0.9.19 2018-06-26 16:05:35 -07:00
Steven Allen
d95e515332 gx publish 0.9.18 gx/v0.9.18 2018-06-25 17:23:45 -07:00
Steven Allen
8524f0abc7
Merge pull request #79 from jamesray1/patch-1
Add and update info on gossipsub and implementations
2018-06-14 18:42:04 +00:00
vyzo
1b4fbb865d fix NewPubsub docstring 2018-06-12 08:00:17 -07:00
vyzo
1dc8405449 more docs for gossipsub router, expire fanout peers when we haven't published in a while 2018-06-12 08:00:17 -07:00
vyzo
b490d117f2 make heartbeat interval a parameter, turn all gossipsub parameters into variables 2018-06-12 08:00:17 -07:00
vyzo
d6dfe83ebe refactor nextSeqno out of Publish 2018-06-12 08:00:17 -07:00
vyzo
e8a91d330a document PubSubRouter interface 2018-06-12 08:00:17 -07:00
vyzo
c57d256a22 increase the flood length in TestGossipsubControlPiggyback 2018-06-12 08:00:17 -07:00
vyzo
a39184a0af smaller net sizes for tests that exercise full queues
so that travis doesn't get killed by OOM.
2018-06-12 08:00:17 -07:00
vyzo
2544ae7df9 announce retry should check the pubsub context for cancellation 2018-06-12 08:00:17 -07:00
vyzo
0824316326 finetune GraftPruneRetry test, so that it doesn't get OOM killed 2018-06-12 08:00:17 -07:00
vyzo
a71eec5c3a test control message retry piggybacking 2018-06-12 08:00:17 -07:00
vyzo
f5d6cf3bd1 TestGossipsubGraftPruneCoalesce is TestGossipsubGraftPruneRetry
it is really testing full queues (sized 32) and retries of control
messages and announces
2018-06-12 08:00:17 -07:00
vyzo
009efebdaf harden piggybackControl
don't create a control object if the graft/prune are stale and only assign
the relevant fields.
2018-06-12 08:00:17 -07:00
vyzo
bfb0664581 retry dropped ANNOUNCE messages
they are very important for correct topic state in the protocol, esp gossipsub
2018-06-12 08:00:17 -07:00
vyzo
af061f5040 refactor sendGraftPrune out of heartbeat 2018-06-12 08:00:17 -07:00
vyzo
285c1f0aa7 add test for graft/prune coalescing in heartbeat 2018-06-12 08:00:17 -07:00
vyzo
ef730627ad remove unnecessary and potentially harmful check from heartbeat
- the check is unnecessary because peers emit PRUNE on Leave
- the check is harmful, because the ANNOUNCE message might have
  benn lost (or reordered after the GRAFT depending on the retry
  strategy), which would leave the mesh in an inconsistent state.
2018-06-12 08:00:17 -07:00
vyzo
e8c5cf0914 test gossip propagation with IHAVE/IWANT cycle 2018-06-12 08:00:17 -07:00
vyzo
4667b0ae94 fanout sources should emit gossip too 2018-06-12 08:00:17 -07:00
vyzo
3ecfbc2a60 better test for fanout maintenance 2018-06-12 08:00:17 -07:00
vyzo
75787fb809 moar gossipsub tests 2018-06-12 08:00:17 -07:00
vyzo
5533949443 finetune gossip test, add join grafting test 2018-06-12 08:00:17 -07:00
vyzo
66fc8adac5 more gossipsub tests 2018-06-12 08:00:17 -07:00
vyzo
626b04f2a8 fix go vet issues in mcache test 2018-06-12 08:00:17 -07:00
vyzo
0a82522cf6 basic gossipsub tests 2018-06-12 08:00:17 -07:00
vyzo
1f5959bf54 fix slice bounds issues; getCount takes care of the slicing 2018-06-12 08:00:17 -07:00
vyzo
060a9bba62 mcache test 2018-06-12 08:00:17 -07:00
vyzo
599ccffecd shift the message history window at the end of the heartbeat 2018-06-12 08:00:17 -07:00
vyzo
64cdbbabbc remove pending gossip and control messages on RemovePeer 2018-06-12 08:00:17 -07:00
vyzo
bd29e81e3a history and gossip length are named constants 2018-06-12 08:00:17 -07:00
vyzo
c5fe290389 reduce gossip amplification; don't send to mesh peers 2018-06-12 08:00:17 -07:00
vyzo
0e288dc741 delete mesh before sending prunes on leave 2018-06-12 08:00:17 -07:00
vyzo
64d35994d1 shuffle peers 2018-06-12 08:00:17 -07:00
vyzo
8fbc4e1c70 implement mcache 2018-06-12 08:00:17 -07:00
vyzo
07875f149e implement flush 2018-06-12 08:00:17 -07:00
vyzo
74a10cfa70 piggybacking details 2018-06-12 08:00:17 -07:00
vyzo
7251c64e65 control message piggybacking logic 2018-06-12 08:00:17 -07:00
vyzo
78618fce23 maintain fanout peer lists on heartbeat 2018-06-12 08:00:17 -07:00
vyzo
bc25116516 clean peers that have left the topic on heartbeat 2018-06-12 08:00:17 -07:00
vyzo
73da341386 hearbeat preliminaries: overlay management 2018-06-12 08:00:17 -07:00
vyzo
34509d47b3 implement Join and Leave, refactor sendRPC 2018-06-12 08:00:17 -07:00
vyzo
e1fbe11c97 refactor Publish to use getPeers 2018-06-12 08:00:17 -07:00
vyzo
6a177a7396 handle gossipsub control messages 2018-06-12 08:00:17 -07:00
vyzo
dd50a31c40 add gossipsub control messages 2018-06-12 08:00:17 -07:00
vyzo
375c4176b9 gossipsub publish 2018-06-12 08:00:17 -07:00
vyzo
b867200fee gossipsub: heartbeat timer 2018-06-12 08:00:17 -07:00