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
subpackages:
* adapters:
* msgpipes for simulated test connections
* rlpx the RLPx adapter for normal non-test use
* inproc simulated in-process network adapter
* docker placeholder for docker cluster remote adapter
* protocols: easy-to-setup modular protocols
* simulations:
* generic network model
* journal, events, snapshots
* cytoscape visualisation plugin
* resourceful controller suite + REST API server
* example: connectivity UX backend
* testing: test resource drivers
* exchange: trigger/expect style driver for single node and its peers
* sessions: for unit testing protocols and protocol modules
* (network: for network testing, benchmarking, stats, correctness, fault tolerance)
* test peerpool
see more in the README-s in each subpackage
* p2p/server : conn/disconn hooks
* reporter remote client skeleton