Commit graph

355 commits

Author SHA1 Message Date
nolash
d219b0edb0 WIP 2017-05-17 22:45:17 -07:00
nolash
aaeb8497a0 WIP 2017-05-17 22:05:07 -07:00
nolash
3a4aee8087 swarm/pss, p2p/testing, p2p/simulations/adapters: svcs sequence 2017-05-17 22:05:07 -07:00
nolash
dedc26bd2c swarm/pss, p2p/simulations/adapters: Multiple nodeadapter svcs + psstests 2017-05-17 22:05:07 -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
be0335c889 p2p/simulations: Disable message events
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-17 21:53:50 -07:00
Lewis Marshall
39992d5e1b p2p/simulations: Support stopping, starting and deleting networks
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-17 15:47:13 -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
zelig
c870e2be26 WIP network rewrite 2017-05-15 18:31:40 -07:00
zelig
b77b855f2c p2p/protocols: do handshake async w timeout 2017-05-15 18:31:40 -07:00
Lewis Marshall
135a858373 p2p/simulations: Switch network snapshot to a GET request
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-15 11:30:04 -07:00
Fabio Barone
145ec4ea73 p2p/simulations: scenarios support; HTTP OPTIONS support 2017-05-12 17:28:14 -05:00
Lewis Marshall
d7eb6b5a70 p2p/simulations: Snapshot support
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-12 08:57:07 -07:00
Lewis Marshall
cf462b7781 p2p/simulations: Add p2psim command-line API client
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-10 01:39:02 -07:00
Lewis Marshall
584f8b8cf4 p2p/simulations: Refactor events
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-10 01:39:02 -07:00
Lewis Marshall
cdab665475 p2p/simulations: Move PeerEvents to admin RPC namespace
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-08 10:51:55 +01:00
Lewis Marshall
6de09120d3 p2p/simulations: Disconnect peers on SimNode.Stop
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:25:01 +01:00
Lewis Marshall
1aa80c5012 p2p/simulations: Refactor simulation HTTP API
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:25:01 +01:00
zelig
d9af74e3fb swarm/network, p2p/protocols: fix kademlia crashes and msg asyncrony 2017-05-06 14:25:01 +01:00
Lewis Marshall
ff24b603d0 p2p/simulations: Don't allow connections to stopped SimNodes
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:25:01 +01:00
Lewis Marshall
d3543fb458 p2p/simulations: Track message events
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:25:01 +01: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
Lewis Marshall
247e40a36a p2p/simulations: Get peer events via RPC
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:25:00 +01:00
Fabio Barone
a4b52df32c p2p/simulations: LiveEvents DidConnect and DidDisconnect use GetOrCreateConn 2017-05-06 14:25:00 +01:00
Fabio Barone
c86d0f4d25 p2p/simuations: first attempt at event types 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
Fabio Barone
60a767790d p2p/simulations: removed GetResourceIdFromController 2017-05-06 14:23:39 +01:00
Fabio Barone
aa91242dee p2p/simulations: renamed all occurrence of cytoscape 2017-05-06 14:23:39 +01:00
Fabio Barone
f02b408dd2 p2p/simulations: GetResourceIdForController for ResourceController; GET /<networkId>/nodes/<nodeId> 2017-05-06 14:23:39 +01:00
Fabio Barone
9fc8097768 p2p/simulations: support GET requests with query string in URL 2017-05-06 14:23:39 +01:00
Lewis Marshall
20e91384bf p2p/simulations: event streams 2017-05-06 14:23:39 +01:00
Lewis Marshall
5b4702304a p2p/adapters: Add "docker" node adapter
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:23:39 +01:00
Lewis Marshall
4807103338 p2p/adapters: Add "exec" node adapter
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:23:39 +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
bcf2622f29 swarm/network: Don't require NodeAdapter to initialise bzz protocol
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2017-05-06 14:23:38 +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
Lewis Marshall
9407ac7566 p2p/simulations: Add simulation test framework
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
5401bf02f1 swarm/network: peersexchange massaging
added send peers to newly connected peer from already connected peer
removed peermsg expect
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
nolash
11aeaec420 swarm/network: WIP kademlia network sim tests 2017-05-06 14:23:38 +01:00
zelig
e26d672438 kademlia discovery working 2017-05-06 14:23:38 +01:00
zelig
1eedb4a2c8 swarm/network: WIP testing for protocol 2017-05-06 14:23:38 +01:00
nolash
140c7f7f23 swarm/network: WIP protocol testfixes 2017-05-06 14:23:38 +01:00