Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | p2p: instrument P2P networking layer | Péter Szilágyi | 2015-06-24 | 1 | -2/+4 |
| | |||||
* | p2p: throttle all discovery lookups | Felix Lange | 2015-06-22 | 1 | -0/+1 |
| | | | | | | | | | | | | | | 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: bump global write timeout to 20s | Felix Lange | 2015-06-09 | 1 | -1/+1 |
| | | | | | The previous value of 5 seconds causes timeouts for legitimate messages if large messages are sent. | ||||
* | p2p: fix Self() panic if listening is disabled | Péter Szilágyi | 2015-05-27 | 1 | -0/+9 |
| | |||||
* | cmd/geth, cmd/utils, eth, p2p: pass and honor a no discovery flag | Péter Szilágyi | 2015-05-27 | 1 | -8/+29 |
| | |||||
* | eth, p2p: start the p2p server even if maxpeers == 0 | Péter Szilágyi | 2015-05-26 | 1 | -3/+0 |
| | |||||
* | p2p: decrease frameReadTimeout to 30s | Felix Lange | 2015-05-25 | 1 | -4/+5 |
| | | | | | This detects hanging connections sooner. We send a ping every 15s and other implementation have similar limits. | ||||
* | p2p: new dialer, peer management without locks | Felix Lange | 2015-05-25 | 1 | -305/+361 |
| | | | | | | | | | | | | | | | | | | 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. | ||||
* | p2p: delete Server.Broadcast | Felix Lange | 2015-05-25 | 1 | -41/+0 |
| | |||||
* | p2p: bump maxAcceptConns and defaultDialTimout | Felix Lange | 2015-05-14 | 1 | -2/+2 |
| | | | | | On the test network, we've seen that it becomes harder to connect if the queues are so short. | ||||
* | p2p: drop connections with no matching protocols | Felix Lange | 2015-05-08 | 1 | -4/+9 |
| | |||||
* | p2p: use maxDialingConns instead of maxAcceptConns as dial limit | Felix Lange | 2015-05-08 | 1 | -1/+1 |
| | |||||
* | p2p: fix disconnect at capacity | Felix Lange | 2015-05-08 | 1 | -12/+17 |
| | | | | | | | With the introduction of static/trusted nodes, the peer count can go above MaxPeers. Update the capacity check to handle this. While here, decouple the trusted nodes check from the handshake by passing a function instead. | ||||
* | cmd, eth, p2p: introduce pending peer cli arg, add tests | Péter Szilágyi | 2015-05-07 | 1 | -7/+18 |
| | |||||
* | p2p: reduce the concurrent handshakes to 10/10 in/out | Péter Szilágyi | 2015-05-07 | 1 | -2/+2 |
| | |||||
* | p2p: fix dial throttling race condition | Péter Szilágyi | 2015-05-07 | 1 | -1/+1 |
| | |||||
* | p2p: fix a dialing race in the throttler | Péter Szilágyi | 2015-05-07 | 1 | -1/+1 |
| | |||||
* | p2p: limit the outbound dialing too | Péter Szilágyi | 2015-05-07 | 1 | -1/+11 |
| | |||||
* | Merge pull request #866 from fjl/p2p-last-minute | Jeffrey Wilcke | 2015-05-07 | 1 | -1/+1 |
|\ | | | | | Last minute p2p fixes | ||||
| * | p2p: stop dialing at half the maximum peer count | Felix Lange | 2015-05-07 | 1 | -1/+1 |
| | | |||||
* | | fixed merge issue | obscuren | 2015-05-07 | 1 | -18/+101 |
|\ \ | |/ |/| | |||||
| * | eth, p2p: add trusted node list beside static list | Péter Szilágyi | 2015-05-04 | 1 | -11/+21 |
| | | |||||
| * | p2p: add static node dialing test | Péter Szilágyi | 2015-05-04 | 1 | -13/+20 |
| | | |||||
| * | p2p: correct a leftover trusted -> static | Péter Szilágyi | 2015-05-01 | 1 | -4/+4 |
| | | |||||
| * | eth, p2p: rename trusted nodes to static, drop inbound extra slots | Péter Szilágyi | 2015-05-01 | 1 | -32/+32 |
| | | |||||
| * | cmd, eth, p2p: fix review issues enumerated by Felix | Péter Szilágyi | 2015-04-30 | 1 | -20/+11 |
| | | |||||
| * | p2p: add trust check to handshake, test privileged connectivity | Péter Szilágyi | 2015-04-30 | 1 | -3/+14 |
| | | | | | | | | | | Conflicts: p2p/server_test.go | ||||
| * | p2p: reduce the severity of a debug log | Péter Szilágyi | 2015-04-30 | 1 | -1/+1 |
| | | |||||
| * | cmd/geth, cmd/mist, cmd/utils, eth, p2p: support trusted peers | Péter Szilágyi | 2015-04-30 | 1 | -13/+77 |
| | | |||||
* | | p2p/discover: new endpoint format | Felix Lange | 2015-04-30 | 1 | -1/+1 |
|/ | | | | | | This commit changes the discovery protocol to use the new "v4" endpoint format, which allows for separate UDP and TCP ports and makes it possible to discover the UDP address after NAT. | ||||
* | cmd/bootnode, eth, p2p, p2p/discover: use a fancier db design | Péter Szilágyi | 2015-04-24 | 1 | -4/+4 |
| | |||||
* | cmd/bootnode, eth, p2p, p2p/discover: clean up the seeder and mesh into eth. | Péter Szilágyi | 2015-04-24 | 1 | -3/+3 |
| | |||||
* | cmd, eth, p2p, p2p/discover: init and clean up the seed cache | Péter Szilágyi | 2015-04-24 | 1 | -1/+5 |
| | |||||
* | p2p: return zero node from Self if the server is not running | Felix Lange | 2015-04-22 | 1 | -1/+6 |
| | | | | This helps with fixing the tests for cmd/geth to run without networking. | ||||
* | p2p: fix the dial timer | Felix Lange | 2015-04-17 | 1 | -3/+8 |
| | | | | | The dial timer was not reset properly when the peer count reached MaxPeers. | ||||
* | p2p: added limiter function to limit package broadcasting | obscuren | 2015-04-14 | 1 | -0/+13 |
| | |||||
* | p2p: fix unsynchronized map access during Server shutdown | Felix Lange | 2015-04-13 | 1 | -0/+2 |
| | | | | removePeer can be called even after listenLoop and dialLoop have returned. | ||||
* | p2p: limit number of lingering inbound pre-handshake connections | Felix Lange | 2015-04-10 | 1 | -1/+19 |
| | | | | | | | This is supposed to apply some back pressure so Server is not accepting more connections than it can actually handle. The current limit is 50. This doesn't really need to be configurable, but we'll see how it behaves in our test nodes and adjust accordingly. | ||||
* | p2p: use RLock instead of Lock for pre-dial checks | Felix Lange | 2015-04-10 | 1 | -10/+12 |
| | |||||
* | p2p: improve disconnect signaling at handshake time | Felix Lange | 2015-04-10 | 1 | -6/+10 |
| | | | | | | | As of this commit, p2p will disconnect nodes directly after the encryption handshake if too many peer connections are active. Errors in the protocol handshake packet are now handled more politely by sending a disconnect packet before closing the connection. | ||||
* | p2p: properly decrement peer wait group counter for setup errors | Felix Lange | 2015-04-10 | 1 | -0/+11 |
| | |||||
* | p2p: improve peer selection logic | Felix Lange | 2015-04-10 | 1 | -56/+61 |
| | | | | | | | This commit introduces a new (temporary) peer selection strategy based on random lookups. While we're here, also implement the TODOs in dialLoop. | ||||
* | Updated logging | obscuren | 2015-04-07 | 1 | -12/+12 |
| | |||||
* | p2p: use package rlp to encode messages | Felix Lange | 2015-03-19 | 1 | -3/+8 |
| | | | | | | | | | | Message encoding functions have been renamed to catch any uses. The switch to the new encoder can cause subtle incompatibilities. If there are any users outside of our tree, they will at least be alerted that there was a change. NewMsg no longer exists. The replacements for EncodeMsg are called Send and SendItems. | ||||
* | Merge branch 'frontier/js' into frontier/nodeadmin.js | zelig | 2015-03-16 | 1 | -3/+3 |
|\ | |||||
| * | Moved ethutil => common | obscuren | 2015-03-16 | 1 | -3/+3 |
| | | |||||
* | | p2p: server>discover table Self=Node exported | zelig | 2015-03-15 | 1 | -5/+9 |
|/ | |||||
* | Move MakeName to ethutil | Taylor Gerring | 2015-03-12 | 1 | -9/+1 |
| | |||||
* | eth, p2p: delete p2p.Blacklist | Felix Lange | 2015-03-04 | 1 | -59/+0 |
| | | | | | It is unused and untested right now. We can bring it back later if required. | ||||
* | p2p: restore read/write timeouts | Felix Lange | 2015-03-04 | 1 | -3/+15 |
| | | | | They got lost in the transition to rlpxFrameRW. | ||||
* | p2p: msg.Payload contains list data | Felix Lange | 2015-03-04 | 1 | -1/+2 |
| | | | | | | | | | With RLPx frames, the message code is contained in the frame and is no longer part of the encoded data. EncodeMsg, Msg.Decode have been updated to match. Code that decodes RLP directly from Msg.Payload will need to change. | ||||
* | p2p: use RLPx frames for messaging | Felix Lange | 2015-03-04 | 1 | -3/+4 |
| | |||||
* | p2p: emit JSON connect/disconnect events | Felix Lange | 2015-02-20 | 1 | -0/+13 |
| | |||||
* | p2p: initialize Server.ourHandshake before accepting connections | Felix Lange | 2015-02-20 | 1 | -8/+9 |
| | |||||
* | p2p: disable encryption handshake | Felix Lange | 2015-02-19 | 1 | -16/+22 |
| | | | | | | The diff is a bit bigger than expected because the protocol handshake logic has moved out of Peer. This is necessary because the protocol handshake will have custom framing in the final protocol. | ||||
* | Use a mutex write-lock for a write operation | obscuren | 2015-02-15 | 1 | -4/+4 |
| | |||||
* | p2p: ensure we don't dial ourself | Felix Lange | 2015-02-13 | 1 | -1/+4 |
| | | | | | addPeer doesn't allow self connects, but we can avoid opening connections in the first place. | ||||
* | p2p: add I/O timeout for encrytion handshake | Felix Lange | 2015-02-13 | 1 | -1/+3 |
| | |||||
* | p2p: fix goroutine leak for invalid peers | Felix Lange | 2015-02-13 | 1 | -6/+5 |
| | | | | | The deflect logic called Disconnect on the peer, but the peer never ran and wouldn't process the disconnect request. | ||||
* | p2p/discover: map listening port using configured mechanism | Felix Lange | 2015-02-13 | 1 | -2/+1 |
| | |||||
* | cmd/ethereum, cmd/mist, eth, p2p: use package p2p/nat | Felix Lange | 2015-02-13 | 1 | -59/+11 |
| | | | | This deletes the old NAT implementation. | ||||
* | cmd/ethereum, cmd/mist: add flag for discovery bootstrap nodes | Felix Lange | 2015-02-07 | 1 | -1/+1 |
| | |||||
* | cmd/mist, eth, javascript, p2p: use Node URLs for peer suggestions | Felix Lange | 2015-02-07 | 1 | -2/+2 |
| | |||||
* | p2p: fixes for actual connections | Felix Lange | 2015-02-07 | 1 | -1/+3 |
| | | | | The unit test hooks were turned on 'in production'. | ||||
* | p2p/discover: add node URL functions, distinguish TCP/UDP ports | Felix Lange | 2015-02-07 | 1 | -3/+4 |
| | | | | | The discovery RPC protocol does not yet distinguish TCP and UDP ports. But it can't hurt to do so in our internal model. | ||||
* | p2p: integrate p2p/discover | Felix Lange | 2015-02-06 | 1 | -159/+184 |
| | | | | | | | | | | | | Overview of changes: - ClientIdentity has been removed, use discover.NodeID - Server now requires a private key to be set (instead of public key) - Server performs the encryption handshake before launching Peer - Dial logic takes peers from discover table - Encryption handshake code has been cleaned up a bit - baseProtocol is gone because we don't exchange peers anymore - Some parts of baseProtocol have moved into Peer instead | ||||
* | Moved connection errors to DebugDetail level | obscuren | 2015-01-19 | 1 | -2/+2 |
| | |||||
* | Merge | obscuren | 2015-01-06 | 1 | -1/+5 |
| | |||||
* | p2p: fix call to Server.removePeer (might help with #209) | Felix Lange | 2014-12-16 | 1 | -7/+2 |
| | |||||
* | made mist in a compilable, workable state using the new refactored packages | obscuren | 2014-12-15 | 1 | -0/+1 |
| | |||||
* | p2p: API cleanup and PoC 7 compatibility | Felix Lange | 2014-11-22 | 1 | -367/+346 |
| | | | | | Whoa, one more big commit. I didn't manage to untangle the changes while working towards compatibility. | ||||
* | p2p: rework protocol API | Felix Lange | 2014-11-22 | 1 | -73/+77 |
| | |||||
* | all: fix rename breakage | Felix Lange | 2014-11-01 | 1 | -2/+2 |
| | |||||
* | initial commit of p2p package | zelig | 2014-10-23 | 1 | -0/+484 |