aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/discover
Commit message (Collapse)AuthorAgeFilesLines
* p2p/discover: use rlp.DecodeBytesFelix Lange2015-04-171-1/+1
|
* p2p/discover: improve timer handling for reply timeoutsFelix Lange2015-04-141-2/+3
|
* p2p/discover: remove unused field Node.activeStampFelix Lange2015-04-132-16/+0
|
* p2p/discover: don't log packet contentFelix Lange2015-04-101-3/+4
|
* p2p/discover: make packet processing less concurrentFelix Lange2015-04-101-6/+4
|
* Updated loggingobscuren2015-04-071-10/+9
|
* p2p/discover: fix off by one error causing buckets to contain duplicatesFelix Lange2015-04-012-1/+43
|
* p2p/discover: implement node bondingFelix Lange2015-04-015-383/+649
| | | | | | | | | | | | | | | | This a fix for an attack vector where the discovery protocol could be used to amplify traffic in a DDOS attack. A malicious actor would send a findnode request with the IP address and UDP port of the target as the source address. The recipient of the findnode packet would then send a neighbors packet (which is 16x the size of findnode) to the victim. Our solution is to require a 'bond' with the sender of findnode. If no bond exists, the findnode packet is not processed. A bond between nodes α and β is created when α replies to a ping from β. This (initial) version of the bonding implementation might still be vulnerable against replay attacks during the expiration time window. We will add stricter source address validation later.
* p2p/discover: add version number to ping packetFelix Lange2015-04-011-0/+8
| | | | | | The primary motivation for doing this right now is that old PoC 8 nodes and newer PoC 9 nodes keep discovering each other, causing handshake failures.
* %#x => %xobscuren2015-03-201-2/+2
|
* p2p: server>discover table Self=Node exportedzelig2015-03-151-3/+3
|
* p2p/discover: add NodeID.PubkeyFelix Lange2015-03-042-0/+33
|
* p2p/discover: fix pending replies iterationFelix Lange2015-02-171-1/+2
| | | | | | Range expressions capture the length of the slice once before the first iteration. A range expression cannot be used here since the loop modifies the slice variable (including length changes).
* p2p/discover: fix race in ListenUDPFelix Lange2015-02-131-24/+17
| | | | | udp.Table was assigned after the readLoop started, so packets could arrive and be processed before the Table was there.
* p2p/discover: map listening port using configured mechanismFelix Lange2015-02-132-13/+24
|
* p2p/discover: code review fixesFelix Lange2015-02-133-7/+9
|
* p2p/discover: deflake UDP testsFelix Lange2015-02-094-59/+123
|
* cmd/ethereum, cmd/mist: add flag for discovery bootstrap nodesFelix Lange2015-02-071-2/+2
|
* p2p/discover: add node URL functions, distinguish TCP/UDP portsFelix Lange2015-02-076-321/+527
| | | | | 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/discover: add some helper functionsFelix Lange2015-02-064-20/+41
|
* p2p/discover: new package implementing the Node Discovery ProtocolFelix Lange2015-02-064-0/+1428