Commit graph

8516 commits

Author SHA1 Message Date
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
b865560130 swarm/network: Trigger simulations checks on peer events
Signed-off-by: Lewis Marshall <lewis@lmars.net>
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
24dcc8d6e1 swarm/network: Pass p2p.Server to Hive.Start
Signed-off-by: Lewis Marshall <lewis@lmars.net>
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
nolash
29d3936af7 swarm/network: protocol test simplifications 2017-05-06 14:23:38 +01:00
zelig
a6a006c5e3 add peerpool 2017-05-06 14:23:38 +01:00
zelig
7f22abaead swarm/network, p2p: fixes 2017-05-06 14:23:38 +01:00
zelig
8cd9adcf38 extending kademlia with bootstrapping, refactor discovery from hive 2017-05-06 14:23:38 +01:00
zelig
01fb8ed943 overlay sim fix 2017-05-06 14:23:38 +01:00
zelig
7c0a205335 swarm/network: kademlia implementation initial commit 2017-05-06 14:23:38 +01:00
nolash
9822d7405e p2p/simulations: improvement and adding msg events
* Conceals rw in messenger type
* Adds generic remote control for nodes in network sim
* Adds msg type and event to sim, journal
* Msg http output, http options handler
* Msg event added to "cytoscape" for output to visualizer
* Msg event structure changed to fit "cytodata" logic
* Fix for handling CORS/PUT requests:
* fallthrough OPTIONS method handler
* Access-Control-Allow-Methods header added (note that the servermux panics if sent empty method value through http)
2017-05-06 14:23:38 +01:00
nolash
3c84c329f9 p2p/adapters: Removed pointer receiver for RLPxMessenger
Pointer rcvr incompatible with protocols.NewPeer

p2p: Removed duplicate declaration of Messenger interface

p2p/protocols,swarm/network: Codemap primitive type correction
Codemap was using uint for message types
But Messenger.SendMsg needs uint64
2017-05-06 14:23:38 +01:00
zelig
7a6ff56333 p2p: network testing framework and protocol abstraction
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
2017-05-06 14:23:38 +01:00
Péter Szilágyi
2ec5cf1673 Merge pull request #14423 from karalabe/bitutil
common/bitutil, consensus/ethash: reusable bitutil package
2017-05-05 18:23:08 +03:00
Péter Szilágyi
36a800a1d2
common/bitutil, consensus/ethash: reusable bitutil package 2017-05-05 16:00:11 +03:00
Péter Szilágyi
93832b633e
VERSION, params: begin 1.6.2 release cycle 2017-05-04 14:34:59 +03:00
Péter Szilágyi
021c3c2816
params: release Geth 1.6.1, Deripors of Ohratuu 2017-05-04 14:11:45 +03:00
Péter Szilágyi
ff2c966e7f Merge pull request #14418 from karalabe/rinkeby-flag
cmd, core, params: add --rinkeby flag for fast connectivity
2017-05-04 13:54:02 +03:00
Martin Holst Swende
14cc40a31a Hive-test fixes (#14419)
* core: Fix for consensus test gasLimit > 2^63-1 https://github.com/ethereum/tests/blob/develop/BlockchainTests/bcInvalidHeaderTest.json#L238

* core: fix testcase for uncle gasUsage > gasLimit : https://github.com/ethereum/tests/blob/develop/BlockchainTests/EIP150/bcUncleHeaderValiditiy.json#L986

* math/big: rename TTM63m1 -> MaxBig63, + go fmt

* core: documentation
2017-05-04 13:53:42 +03:00
Péter Szilágyi
881df0e629 Merge pull request #14413 from bas-vk/cli-chain-mngt
Migrate remaining flags/command to new style
2017-05-04 13:31:09 +03:00