Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							261a8077c4 
							
						 
					 
					
						
						
							
							p2p/discover: deflake TestUDP_successfulPing  
						
						
						
					 
					
						2015-06-10 13:08:21 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							612f01400f 
							
						 
					 
					
						
						
							
							p2p/discover: bond with seed nodes too (runs only if findnode failed)  
						
						
						
					 
					
						2015-05-26 23:30:41 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							3630432dfb 
							
						 
					 
					
						
						
							
							p2p/discovery: fix a cornercase loop if no seeds or bootnodes are known  
						
						
						
					 
					
						2015-05-26 23:30:40 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							f539ed1e66 
							
						 
					 
					
						
						
							
							p2p/discover: force refresh if the table is empty  
						
						
						
					 
					
						2015-05-26 23:30:40 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							5076170f34 
							
						 
					 
					
						
						
							
							p2p/discover: permit temporary bond failures for previously known nodes  
						
						
						
					 
					
						2015-05-26 23:30:40 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							6078aa08eb 
							
						 
					 
					
						
						
							
							p2p/discover: watch find failures, evacuate on too many, rebond if failed  
						
						
						
					 
					
						2015-05-26 23:30:40 +02:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							9f38ef5d97 
							
						 
					 
					
						
						
							
							p2p/discover: add ReadRandomNodes  
						
						
						
					 
					
						2015-05-25 01:17:14 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							cbd3ae6906 
							
						 
					 
					
						
						
							
							p2p/discover:  fix   #838 , evacuate self entries from the node db  
						
						
						
					 
					
						2015-05-21 19:41:46 +03:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							7fa2607bd1 
							
						 
					 
					
						
						
							
							p2p/discover: bump maxBondingPingPongs to 16  
						
						... 
						
						
						
						This should increase the speed a bit because all findnode
results (up to 16) can be verified at the same time. 
						
					 
					
						2015-05-14 14:53:29 +02:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							2adcc31bb4 
							
						 
					 
					
						
						
							
							p2p/discover: new distance metric based on sha3(id)  
						
						... 
						
						
						
						The previous metric was pubkey1^pubkey2, as specified in the Kademlia
paper. We missed that EC public keys are not uniformly distributed.
Using the hash of the public keys addresses that. It also makes it
a bit harder to generate node IDs that are close to a particular node. 
						
					 
					
						2015-05-06 16:10:41 +02:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							72ab6d3255 
							
						 
					 
					
						
						
							
							p2p/discover: track sha3(ID) in Node  
						
						
						
					 
					
						2015-04-30 15:02:23 +02:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							fc747ef4a6 
							
						 
					 
					
						
						
							
							p2p/discover: new endpoint format  
						
						... 
						
						
						
						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. 
						
					 
					
						2015-04-30 14:57:33 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							4992765032 
							
						 
					 
					
						
						
							
							p2p/discover: fix goroutine leak due to blocking on sync.Once  
						
						
						
					 
					
						2015-04-28 10:28:04 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							437cf4b3ac 
							
						 
					 
					
						
						
							
							p2p/discover: add node expirer and related tests  
						
						
						
					 
					
						2015-04-27 17:38:28 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							a136e2bb22 
							
						 
					 
					
						
						
							
							p2p/discover: parametrize nodedb version, add persistency tests  
						
						
						
					 
					
						2015-04-27 15:28:17 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							706da56f75 
							
						 
					 
					
						
						
							
							p2p/discover: wrap the pinger to update the node db too  
						
						
						
					 
					
						2015-04-27 14:56:42 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							8de8f61d36 
							
						 
					 
					
						
						
							
							p2p/discover: write the basic tests, catch RLP bug  
						
						
						
					 
					
						2015-04-27 12:33:06 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							0201c04b95 
							
						 
					 
					
						
						
							
							p2p/discovery: fix issues raised in the nodeDb PR  
						
						
						
					 
					
						2015-04-27 10:19:16 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							8646365b42 
							
						 
					 
					
						
						
							
							cmd/bootnode, eth, p2p, p2p/discover: use a fancier db design  
						
						
						
					 
					
						2015-04-24 18:04:41 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							6def110c37 
							
						 
					 
					
						
						
							
							cmd/bootnode, eth, p2p, p2p/discover: clean up the seeder and mesh into eth.  
						
						
						
					 
					
						2015-04-24 11:33:55 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							af923c965f 
							
						 
					 
					
						
						
							
							p2p/discovery: use the seed table for finding nodes, auto drop stale ones  
						
						
						
					 
					
						2015-04-24 11:23:20 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
						
						
							
						
						
							5f735d6fce 
							
						 
					 
					
						
						
							
							cmd, eth, p2p, p2p/discover: init and clean up the seed cache  
						
						
						
					 
					
						2015-04-24 11:23:20 +03:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							936c8e19ff 
							
						 
					 
					
						
						
							
							p2p/discover: store nodes in leveldb  
						
						
						
					 
					
						2015-04-24 11:23:20 +03:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							b8aeb04f6f 
							
						 
					 
					
						
						
							
							p2p/discover: remove unused field Node.activeStamp  
						
						
						
					 
					
						2015-04-13 17:44:14 +02:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							a77c431e37 
							
						 
					 
					
						
						
							
							p2p/discover: fix off by one error causing buckets to contain duplicates  
						
						
						
					 
					
						2015-04-01 17:00:12 +02:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							de7af720d6 
							
						 
					 
					
						
						
							
							p2p/discover: implement node bonding  
						
						... 
						
						
						
						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. 
						
					 
					
						2015-04-01 17:00:12 +02:00 
						 
				 
			
				
					
						
							
							
								zelig 
							
						 
					 
					
						
						
						
						
							
						
						
							e150832734 
							
						 
					 
					
						
						
							
							p2p: server>discover table Self=Node exported  
						
						
						
					 
					
						2015-03-15 13:38:41 +07:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							82f0bd9009 
							
						 
					 
					
						
						
							
							p2p/discover: code review fixes  
						
						
						
					 
					
						2015-02-13 11:39:31 +01:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							9915d3c3be 
							
						 
					 
					
						
						
							
							p2p/discover: deflake UDP tests  
						
						
						
					 
					
						2015-02-09 11:02:32 +01:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							028775a086 
							
						 
					 
					
						
						
							
							cmd/ethereum, cmd/mist: add flag for discovery bootstrap nodes  
						
						
						
					 
					
						2015-02-07 00:52:49 +01:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							8564eb9f7e 
							
						 
					 
					
						
						
							
							p2p/discover: add node URL functions, distinguish TCP/UDP ports  
						
						... 
						
						
						
						The discovery RPC protocol does not yet distinguish TCP and UDP ports.
But it can't hurt to do so in our internal model. 
						
					 
					
						2015-02-07 00:12:23 +01:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							739066ec56 
							
						 
					 
					
						
						
							
							p2p/discover: add some helper functions  
						
						
						
					 
					
						2015-02-06 00:00:36 +01:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
						
						
							
						
						
							12224c7f59 
							
						 
					 
					
						
						
							
							p2p/discover: new package implementing the Node Discovery Protocol  
						
						
						
					 
					
						2015-02-06 00:00:36 +01:00