aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/dial_test.go
Commit message (Collapse)AuthorAgeFilesLines
* p2p: when peer is removed remove it also from dial history (#16060)Dmitry Shulyak2018-02-211-0/+44
| | | | | | | | | | | | | | | | | | This change removes a peer information from dialing history when peer is removed from static list. It allows to force a server to re-dial concrete peer if it is needed. In our case we are running geth node on mobile devices, and it is common for a network connection to flap on mobile. Almost every time it flaps or network connection is changed from cellular to wifi peers are disconnected with read timeout. And usually it takes 30 seconds (default expiration timeout) to recover connection with static peers after connectivity is restored. This change allows us to reconnect with peers almost immediately and it seems harmless enough.
* p2p: add network simulation framework (#14982)Lewis Marshall2017-09-251-1/+1
| | | | | | This commit introduces a network simulation framework which can be used to run simulated networks of devp2p nodes. The intention is to use this for testing protocols, performing benchmarks and visualising emergent network behaviour.
* p2p: if no nodes are connected, attempt dialing bootnodes (#13874)Péter Szilágyi2017-04-111-6/+94
|
* p2p, p2p/discover, p2p/discv5: add IP network restriction featureFelix Lange2016-11-231-5/+36
| | | | | | The p2p packages can now be configured to restrict all communication to a certain subset of IP networks. This feature is meant to be used for private networks.
* node, p2p: move network config out of ServerFelix Lange2016-05-181-1/+2
| | | | This silences a go vet message about copying p2p.Server in package node.
* p2p: resolve incomplete dial targetsFelix Lange2015-12-181-41/+87
| | | | | | This change makes it possible to add peers without providing their IP address. The endpoint of the target node is resolved using the discovery protocol.
* p2p, p2p/discover: track bootstrap state in p2p/discoverFelix Lange2015-12-181-20/+8
| | | | | | This change simplifies the dial scheduling logic because it no longer needs to track whether the discovery table has been bootstrapped.
* all: fix license headers one more timeFelix Lange2015-07-241-1/+1
| | | | I forgot to update one instance of "go-ethereum" in commit 3f047be5a.
* all: update license headers to distiguish GPL/LGPLFelix Lange2015-07-231-4/+4
| | | | | All code outside of cmd/ is licensed as LGPL. The headers now reflect this by calling the whole work "the go-ethereum library".
* all: update license informationFelix Lange2015-07-071-0/+16
|
* p2p: new dialer, peer management without locksFelix Lange2015-05-251-0/+482
The most visible change is event-based dialing, which should be an improvement over the timer-based system that we have at the moment. The dialer gets a chance to compute new tasks whenever peers change or dials complete. This is better than checking peers on a timer because dials happen faster. The dialer can now make more precise decisions about whom to dial based on the peer set and we can test those decisions without actually opening any sockets. Peer management is easier to test because the tests can inject connections at checkpoints (after enc handshake, after protocol handshake). Most of the handshake stuff is now part of the RLPx code. It could be exported or move to its own package because it is no longer entangled with Server logic.