Commit graph

276 commits

Author SHA1 Message Date
Christopher Franko
87272925b9 Merge remote-tracking branch 'ethereum/master' into rebase-1.4.4 2016-05-17 17:41:14 -04:00
Felix Lange
8110671960 p2p/discover: prevent bonding self 2016-05-02 18:50:16 +02:00
Felix Lange
32bb280179 p2p: improve readability of dial task scheduling code 2016-05-02 18:50:15 +02:00
Felix Lange
6fdd0893c3 all: fix go vet warnings 2016-04-15 11:17:27 +02:00
Felix Lange
659c0cb9e8 p2p: enable EIP-8 handshake sending
With the Ethereum Homestead fork is now behind us, we can
assume that everyone runs an EIP-8 capable client.
2016-04-03 23:10:11 +02:00
Péter Szilágyi
64c8e2f2ca p2p/nat: fix #2291, NAT discovery did't abort on failure 2016-03-14 17:08:15 +02:00
Christopher Franko
153dd19ec1 Merge https://github.com/ethereum/go-ethereum into rebase-1.3.4 2016-03-02 11:54:34 -05:00
Felix Lange
4ce7970340 [release/1.3.4] p2p/discover: fix Windows-specific issue for larger-than-buffer packets
On Windows, UDPConn.ReadFrom returns an error for packets larger
than the receive buffer. The error is not marked temporary, causing
our loop to exit when the first oversized packet arrived. The fix
is to treat this particular error as temporary.

Fixes: #1579, #2087
Updates: #2082

Conflicts:
	p2p/discover/udp_test.go
2016-02-24 13:46:03 +01:00
Jeffrey Wilcke
0c17be92fb [release/1.3.4] p2p: backward fix for S256 curve 2016-02-24 13:45:59 +01:00
Felix Lange
b5a0cf488c [release/1.3.4] p2p: EIP-8 changes
Conflicts:
	p2p/rlpx.go
2016-02-24 13:45:56 +01:00
Felix Lange
b25da7c3f4 [release/1.3.4] p2p/discover: EIP-8 changes
Conflicts:
	p2p/discover/udp_test.go
2016-02-24 13:45:53 +01:00
Jeffrey Wilcke
483feb0d3f Merge pull request #2242 from jimenezrick/upstream-crypto
Closes #2241: Use Keccak-256 from golang.org/x/crypto/sha3 and mention explicitly
2016-02-24 12:57:57 +01:00
Péter Szilágyi
ac954f48bd p2p/discover: emphasize warning, add 10 min cooldown 2016-02-24 12:16:28 +02:00
Péter Szilágyi
b1908f6a16 psp/discovery: NTP sanity check clock drift in case of expirations 2016-02-24 12:14:15 +02:00
Ricardo Catalinas Jiménez
436fc8d76a all: Rename crypto.Sha3{,Hash}() to crypto.Keccak256{,Hash}()
As we aren't really using the standarized SHA-3
2016-02-21 22:34:34 +00:00
Felix Lange
7d8155714b p2p: EIP-8 changes 2016-02-19 11:14:48 +01:00
Felix Lange
ee1debda53 p2p/discover: EIP-8 changes 2016-02-19 11:14:42 +01:00
Felix Lange
2871781f64 p2p/discover: fix Windows-specific issue for larger-than-buffer packets
On Windows, UDPConn.ReadFrom returns an error for packets larger
than the receive buffer. The error is not marked temporary, causing
our loop to exit when the first oversized packet arrived. The fix
is to treat this particular error as temporary.

Fixes: #1579, #2087
Updates: #2082
2016-01-22 23:44:25 +01:00
Felix Lange
b3f1f4c673 p2p/discover: attempt to deflake TestUDP_responseTimeouts
The test expected the timeout to fire after a matcher for the response
was added, but the timeout is random and fired sooner sometimes.
2015-12-17 23:44:56 +01:00
Felix Lange
6c41e675ec p2p: resolve incomplete dial targets
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.
2015-12-17 23:39:49 +01:00
Felix Lange
04c6369a09 p2p, p2p/discover: track bootstrap state in p2p/discover
This change simplifies the dial scheduling logic because it
no longer needs to track whether the discovery table has been
bootstrapped.
2015-12-17 23:38:54 +01:00
Felix Lange
d1f507b7f1 p2p/discover: support incomplete node URLs, add Resolve 2015-12-17 23:38:54 +01:00
Péter Szilágyi
abb53644c6 p2p: always allow dynamic dials if network not disabled 2015-12-03 11:45:35 +02:00
Gustav Simonsson
c8ad64f33c crypto, crypto/ecies, crypto/secp256k1: libsecp256k1 scalar mult
thanks to Felix Lange (fjl) for help with design & impl
2015-11-30 13:43:32 +01:00
Christopher Franko
0f519942a4 Merge remote-tracking branch 'refs/remotes/ethereum/master' into rebase-1.3.2 2015-11-28 18:40:20 -05:00
Péter Szilágyi
9e1d9bff3b node: customizable protocol and service stacks 2015-11-27 11:06:12 +02:00
Jeffrey Wilcke
e165c2d23c Merge pull request #1934 from karalabe/polish-protocol-infos
eth, p2p, rpc/api: polish protocol info gathering
2015-11-04 11:59:31 +01:00
Christopher Franko
9cdd178759 Merge remote-tracking branch 'refs/remotes/ethereum/master' into rebase-1.3.1
Conflicts:
	Godeps/Godeps.json
	Godeps/_workspace/src/github.com/expanse-project/ethash/ethash_test.go
	Makefile
	VERSION
	cmd/gexp/blocktestcmd.go
	cmd/gexp/js.go
	cmd/gexp/js_test.go
	cmd/gexp/main.go
	cmd/utils/cmd.go
	cmd/utils/flags.go
	common/natspec/natspec.go
	common/natspec/natspec_e2e_test.go
	common/natspec/natspec_e2e_test.go.orig
	common/path.go
	common/registrar/registrar.go
	core/block_processor.go
	core/block_processor_test.go
	core/chain_manager.go
	core/chain_manager_test.go
	core/chain_util_test.go
	core/events.go
	core/execution.go
	core/filter.go
	core/state/errors.go
	core/state/statedb.go
	core/state_transition.go
	core/transaction_util.go
	core/types/bloom9.go
	core/types/common.go
	core/types/derive_sha.go
	core/types/receipt.go
	core/vm/common.go
	core/vm/environment.go
	core/vm/instructions.go
	core/vm/jit.go
	core/vm/jit_test.go
	core/vm/vm.go
	docker/Dockerfile
	docker/supervisord.conf
	eth/downloader/modes.go
	event/filter/eth_filter.go
	exp/backend.go
	exp/downloader/downloader.go
	exp/downloader/downloader_test.go
	exp/downloader/peer.go
	exp/downloader/queue.go
	exp/gasprice.go
	exp/handler.go
	exp/sync.go
	miner/worker.go
	rpc/api/admin.go
	rpc/api/debug.go
	rpc/api/eth.go
	rpc/api/eth_args.go
	rpc/api/miner.go
	rpc/api/personal.go
	rpc/comms/ipc.go
	rpc/comms/ipc_unix.go
	rpc/comms/ipc_windows.go
	tests/block_test_util.go
	tests/files/BlockchainTests/bcUncleTest.json
	trie/cache.go
	trie/fullnode.go
	trie/hashnode.go
	trie/secure_trie.go
	trie/shortnode.go
	trie/trie.go
	trie/trie_test.go
	trie/valuenode.go
	xeth/xeth.go
2015-11-03 18:25:50 -05:00
Felix Lange
f570b68ed1 p2p/nat: add docs for discover 2015-10-29 22:54:44 +01:00
Felix Lange
bf11a47f22 Godeps: upgrade github.com/huin/goupnp to 90f71cb5 2015-10-29 22:53:59 +01:00
Péter Szilágyi
e46ab3bdcd eth, p2p, rpc/api: polish protocol info gathering 2015-10-28 12:44:15 +02:00
Christopher Franko
6a6cd10299 rebase 1.2.2 2015-10-13 11:56:11 -04:00
Felix Lange
32dda97602 p2p/discover: ignore packet version numbers
The strict matching can get in the way of protocol upgrades.
2015-09-30 16:23:03 +02:00
Felix Lange
631bf36102 p2p/discover: remove unused lastLookup field 2015-09-30 16:23:03 +02:00
Felix Lange
b4374436f3 p2p/discover: fix race involving the seed node iterator
nodeDB.querySeeds was not safe for concurrent use but could be called
concurrenty on multiple goroutines in the following case:

- the table was empty
- a timed refresh started
- a lookup was started and initiated refresh

These conditions are unlikely to coincide during normal use, but are
much more likely to occur all at once when the user's machine just woke
from sleep. The root cause of the issue is that querySeeds reused the
same leveldb iterator until it was exhausted.

This commit moves the refresh scheduling logic into its own goroutine
(so only one refresh is ever active) and changes querySeeds to not use
a persistent iterator. The seed node selection is now more random and
ignores nodes that have not been contacted in the last 5 days.
2015-09-30 16:23:03 +02:00
Christopher Franko
164a9acc5d updated copyright headers 2015-09-12 18:17:11 -04:00
Christopher Franko
1c45431c53 update testnet block
update docker

update docker file

docker update 2

oi

docker again

update testnet block

update docker

update docker file

docker update 2

oi

docker again

update testnet block

update docker

update docker file

docker update 2

oi

docker again

docker2

docker3

fixed gvm

docker change

docking is meh

i hate docker

dockingsucks

update blockreward to 8

because its a lucky number 💃

update 60606 to 42786

60606 looks evil
42786 is my birthday

update jsre

replace eth for exp

update blocktime and test_genesis

fix test genesis
2015-09-07 20:25:05 -04:00
Christopher Franko
64ced6629a github update 2015-09-01 19:41:15 -04:00
Christopher Franko
9d6221444c test change lol 2015-09-01 18:24:03 -04:00
Péter Szilágyi
c51e153b5c eth, metrics, p2p: prepare metrics and net packets to eth/62 2015-08-21 10:30:57 +03:00
Jeffrey Wilcke
e2d44814a5 Merge pull request #1694 from obscuren/hide-fdtrack
fdtrack: hide message
2015-08-19 13:50:54 -07:00
Jeffrey Wilcke
269c5c7107 Revert "fdtrack: temporary hack for tracking file descriptor usage"
This reverts commit 5c949d3b3b.
2015-08-19 21:46:01 +02:00
Felix Lange
dd54fef898 p2p/discover: don't attempt to replace nodes that are being replaced
PR #1621 changed Table locking so the mutex is not held while a
contested node is being pinged. If multiple nodes ping the local node
during this time window, multiple ping packets will be sent to the
contested node. The changes in this commit prevent multiple packets by
tracking whether the node is being replaced.
2015-08-19 14:57:16 +02:00
Felix Lange
edccc7ae34 p2p: continue listening after temporary errors 2015-08-19 14:39:04 +02:00
Felix Lange
7d5ff770e2 p2p/discover: continue reading after temporary errors
Might solve #1579
2015-08-19 14:38:55 +02:00
Felix Lange
a89cfe92cc Merge pull request #1470 from ebuchman/encHandshake
p2p: validate recovered ephemeral pubkey
2015-08-13 11:59:27 +02:00
Felix Lange
0d10d5a0a5 p2p: fix value of DiscSubprotocolError
We had the wrong value (12) since forever.
2015-08-12 14:15:54 +02:00
Felix Lange
590c99a98f p2p/discover: fix UDP reply packet timeout handling
If the timeout fired (even just nanoseconds) before the deadline of the
next pending reply, the timer was not rescheduled. The timer would've
been rescheduled anyway once the next packet was sent, but there were
cases where no next packet could ever be sent due to the locking issue
fixed in the previous commit.

As timing-related bugs go, this issue had been present for a long time
and I could never reproduce it. The test added in this commit did
reproduce the issue on about one out of 15 runs.
2015-08-11 11:42:17 +02:00
Felix Lange
01ed3fa1a9 p2p/discover: unlock the table during ping replacement
Table.mutex was being held while waiting for a reply packet, which
effectively made many parts of the whole stack block on that packet,
including the net_peerCount RPC call.
2015-08-11 11:42:17 +02:00
Felix Lange
6ee908848c p2p/nat: disable UPnP test on windows 2015-08-06 17:18:59 +02:00