aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/dial.go
Commit message (Collapse)AuthorAgeFilesLines
* p2p: when peer is removed remove it also from dial history (#16060)Dmitry Shulyak2018-02-211-0/+13
| | | | | | | | | | | | | | | | | | 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, swarm/network/kademlia: use IsZero to check for zero time (#15603)ferhat elmas2017-12-041-1/+1
|
* p2p/simulations: various stability fixes (#15198)Lewis Marshall2017-12-011-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | p2p/simulations: introduce dialBan - Refactor simulations/network connection getters to support avoiding simultaneous dials between two peers If two peers dial simultaneously, the connection will be dropped to help avoid that, we essentially lock the connection object with a timestamp which serves as a ban on dialing for a period of time (dialBanTimeout). - The connection getter InitConn can be wrapped and passed to the nodes via adapters.NodeConfig#Reachable field and then used by the respective services when they initiate connections. This massively stablise the emerging connectivity when running with hundreds of nodes bootstrapping a network. p2p: add Inbound public method to p2p.Peer p2p/simulations: Add server id to logs to support debugging in-memory network simulations when multiple peers are logging. p2p: SetupConn now returns error. The dialer checks the error and only calls resolve if the actual TCP dial fails.
* p2p: add network simulation framework (#14982)Lewis Marshall2017-09-251-3/+20
| | | | | | 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-2/+26
|
* p2p, p2p/discover, p2p/nat: rework logging using context keysFelix Lange2017-02-281-7/+6
|
* all: blidly swap out glog to our log15, logs need reworkPéter Szilágyi2017-02-231-9/+8
|
* p2p: remove trailing newlines from log messagesPéter Szilágyi2017-02-231-1/+1
|
* p2p, p2p/discover, p2p/discv5: add IP network restriction featureFelix Lange2016-11-231-7/+38
| | | | | | 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, internal: Add ability to remove peers via admin interfaceFirescar962016-07-151-0/+5
|
* p2p: resolve incomplete dial targetsFelix Lange2015-12-181-22/+88
| | | | | | 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-26/+7
| | | | | | This change simplifies the dial scheduling logic because it no longer needs to track whether the discovery table has been bootstrapped.
* Revert "fdtrack: temporary hack for tracking file descriptor usage"Jeffrey Wilcke2015-08-201-2/+0
| | | | This reverts commit 5c949d3b3ba81ea0563575b19a7b148aeac4bf61.
* fdtrack: temporary hack for tracking file descriptor usageFelix Lange2015-08-041-0/+2
| | | | | Package fdtrack logs statistics about open file descriptors. This should help identify the source of #1549.
* 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: instrument P2P networking layerPéter Szilágyi2015-06-241-1/+3
|
* p2p: throttle all discovery lookupsFelix Lange2015-06-221-15/+15
| | | | | | | | | | | | | | Lookup calls would spin out of control when network connectivity was lost. The throttling that was in place only took effect when the table returned zero results, which doesn't happen very often. The new throttling should not have a negative impact when the host is online. Lookups against the network take some time and dials for all results must complete or hit the cache before a new one is started. This usually takes longer than four seconds, leaving online lookups unaffected. Fixes #1296
* p2p: new dialer, peer management without locksFelix Lange2015-05-251-0/+276
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.