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
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
af061f5040
refactor sendGraftPrune out of 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
4667b0ae94
fanout sources should emit gossip too
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
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
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
375c4176b9
gossipsub publish
2018-06-12 08:00:17 -07:00
vyzo
b867200fee
gossipsub: heartbeat timer
2018-06-12 08:00:17 -07:00
vyzo
448f380722
gossipsub: router outline
2018-06-12 08:00:17 -07:00