Commit graph

15 commits

Author SHA1 Message Date
nolash
d219b0edb0 WIP 2017-05-17 22:45:17 -07:00
nolash
96331ac340 swarm, swarm/pss, swarm/network: pssclient rw reads and writes from websocket
pss is now separate package
pss event feed removed, multipile handlers allowed instead
NOTE! pss tests are removed and will be rewritten
remove pssclient outbox, psscache bug fix
WIP tests reinstation
2017-05-17 22:04:57 -07:00
Lewis Marshall
3ba68dc7af p2p: Change p2p.Server back to a concrete type 2017-05-16 20:57:31 -07:00
Lewis Marshall
91c198778c p2p/protocols: Refactor
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-16 20:57:31 -07:00
Lewis Marshall
12eb088e5b p2p/simulations: Refactor
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:25:00 +01:00
nolash
246eb00def p2p, p2p/adapters, p2p/testing: message reporting for simulation layer
Adds a MsgReporter struct that wraps MsgReadWriter that posts message read and write to an subscribable event.Feed
2017-05-06 14:25:00 +01:00
nolash
d5daa9a323 swarm/network: event feed/websockets pss msg notification
Adds pub/sub of incoming Pss messages using event.Feed,
and a websockets interface for pss send and notifications
through persistent connection using rpc.notifier.

Websocket RPC are started automatically on the swarm executable
if the --pss flag is present. If more instances are to be run,
alternate ws ports can be specified with the --pssport flag.

Current implementation also includes a shallow builtin ping/pong handler
with topic "pss" and version 1, to simplify POCs and testing against pss.
This will eventually be removed, so no code should be made dependent on it.
2017-05-06 14:25:00 +01:00
nolash
b8bf32bce3 swarm/network: pss 0.1
General:
    - Message encapsulation is temporary until integration with whisper

    Incoming message handling:
    - Implements a dispatcher for registering handler functions to pss topics
    - Handlers can be any sort of function, and can send/receive on p2p.MsgReadWriter
    - Actual p2p.Protocol handling now as pluggable convenience function

Sending and routing:
    - Added temporary cache solution based on message hash digest
    - Send and forward split up as separate methods
    - Send is now payload agnostic (p2p.Protocol replies massaged in p2p.MsgWriter)

Tests:
    - TestPssRandom...
	Sends PSS between randomly selected nodes in different population magnitudes
    - TestPssFullLinearEcho
        A->B->C->B->A ping/pong over pss, where A and C are running pss
    - TestPssFullRandom50Pct
        10 nodes where 5 are running pss, 5 sends to/from random nodes
        (messages currently get stuck in kad. routing, discarded by cache block)
    - Protocoltester tests status unknown
2017-05-06 14:25:00 +01:00
Lewis Marshall
c3dc00336e p2p/adapters: Use RPC with SimNodes
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:25:00 +01:00
Lewis Marshall
4c6648ef49 all: Fix logging
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:23:39 +01:00
Lewis Marshall
5dcae2e26e p2p/adapters: Remove Messenger abstraction
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:23:38 +01:00
zelig
b7860c7fc6 kademlia fixes 2017-05-06 14:23:38 +01:00
nolash
e0468e0442 swarm/network: pssmsg relay through pivotnode 2017-05-06 14:23:38 +01:00
nolash
9cad74910f swarm/network, p2p/testing: WIP first test of pss poc
Fails as hive insists on starting discovery even though we don't want it
2017-05-06 14:23:38 +01:00
nolash
d4a08fdf7e p2p/testing, p2p/protocols: refactored test session setup and driver 2017-05-06 14:23:38 +01:00
Renamed from p2p/testing/exchange.go (Browse further)