6890 Commits

Author SHA1 Message Date
Jeffrey Wilcke
4044a8cea4 Merge pull request #2258 from obscuren/release/1.3.4
Homestead Release Candidate
v1.3.4
2016-02-29 15:05:37 +01:00
Jeffrey Wilcke
61be63bb9b [release/1.3.4] cmd/utils, params: homestead block
(cherry picked from commit e22fd22c97b4f5d4af118dca3fb2cb6292a520a6)

Conflicts:
	cmd/utils/flags.go
2016-02-29 14:59:30 +01:00
Jeffrey Wilcke
5f7e74d5c8 [release/1.3.4] cmd/utils: lower the min accepted gas price for relay and GPO to 20 shannon
(cherry picked from commit ab92678fb39300d5823857a170be6638b1c2b2c5)
2016-02-29 14:59:20 +01:00
Péter Szilágyi
2be2842758 [release/1.3.4] eth/downloader: fix premature exit before notifying all part fetchers
(cherry picked from commit 64ee5763eebe7e57e761be840f0b80ed7be93ca7)
2016-02-29 13:44:34 +01:00
Felix Lange
c2df9d356a [release/1.3.4] crypto/secp256k1: remove dependency on libgmp
Turns out we actually don't need it, USE_NUM_NONE works
because we also set USE_FIELD_INV_BUILTIN.

Conflicts:
	Makefile
	crypto/secp256k1/secp256.go
2016-02-29 13:32:26 +01:00
Felix Lange
a4f4846fff [release/1.3.4] eth/downloader: fix header download limiting
Fixes #2201
(cherry picked from commit 26e72b2ccd728b00e08bd692bdd7241ff0bfe2cc)
2016-02-29 13:24:33 +01:00
Jeffrey Wilcke
7f83e68b13 [release/1.3.4] eth: fixed homestead tx check
When a block is queried for retrieval we should add a check whether the
block falls within the frontier rules. If we'd always use `From`
retrieving transaction might fail. This PR temporarily changes
everything to `FromFrontier` (safe!).

This is a backport of c616391df2dda2c21b0a8eed03531a7d44669421
2016-02-29 13:24:33 +01:00
Jeffrey Wilcke
5570b11398 [release/1.3.4] params: settle the Pi vs Tau dispute
This commit increases the artificial gas floor to 4712388
(cherry picked from commit f954a8b6660792cce6e4e44a204b01a2dac87d0d)
2016-02-29 13:24:33 +01:00
Jeffrey Wilcke
e7fb300053 [release/1.3.4] cmd/geth: bump version v1.3.4 2016-02-29 13:24:32 +01:00
Jeffrey Wilcke
4e0fe48e20 [release/1.3.4] xeth: backward fix for messages 2016-02-24 13:46:37 +01:00
Jeffrey Wilcke
bcf565730b [release/1.3.4] core: Added new TD strategy which mitigate the risk for selfish mining
Assuming the following scenario where a miner has 15% of all hashing
power and the ability to exert a moderate control over the network to
the point where if the attacker sees a message A, it can't stop A from
propagating, but what it **can** do is send a message B and ensure that
most nodes see B before A. The attacker can then selfish mine and
augment selfish mining strategy by giving his own blocks an advantage.

This change makes the time at which a block is received less relevant
and so the level of control an attacker has over the network no longer
makes a difference.

This change changes the current td algorithm `B_td > C_td` to the new
algorithm `B_td > C_td || B_td == C_td && rnd < 0.5`.
2016-02-24 13:46:33 +01:00
Jeffrey Wilcke
587bafaa9f [release/1.3.4] core, core/vm, crypto: fixes for homestead
* Removed some strange code that didn't apply state reverting properly
* Refactored code setting from vm & state transition to the executioner
* Updated tests

Conflicts:
	common/registrar/ethreg/api.go
	core/tx_pool.go
	core/vm/jit_test.go
2016-02-24 13:46:30 +01:00
Jeffrey Wilcke
7bb496f737 [release/1.3.4] tests: updated homestead tests 2016-02-24 13:46:23 +01:00
Gustav Simonsson
61404979ed [release/1.3.4] parmas, crypto, core, core/vm: homestead consensus protocol changes
* change gas cost for contract creating txs
* invalidate signature with s value greater than secp256k1 N / 2
* OOG contract creation if not enough gas to store code
* new difficulty adjustment algorithm
* new DELEGATECALL op code

Conflicts:
	core/vm/environment.go
	crypto/crypto.go
	crypto/secp256k1/secp256.go
	eth/api.go
2016-02-24 13:46:11 +01:00
Péter Szilágyi
300f1e2abf [release/1.3.4] core, core/types, miner: fix transaction nonce-price combo sort 2016-02-24 13:46:06 +01: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
Felix Lange
93077941d3 [release/1.3.4] rlp: add "tail" struct tag 2016-02-24 13:44:56 +01:00
Felix Lange
8cb69b9e9b [release/1.3.4] crypto/ecies: make authenticated shared data work
The s2 parameter was not actually written to the MAC.
2016-02-24 13:44:37 +01:00
Jeffrey Wilcke
c541b38fb3 VERSION, cmd/geth: bumped version number 1.3.3 v1.3.3 2016-01-05 13:02:07 +01:00
Péter Szilágyi
336a4d7b8d core: fix transaction reorg issues within the tx pool 2016-01-05 13:02:07 +01:00
Péter Szilágyi
8938768f75 core, eth/downloader: ensure state presence in ancestor lookup 2016-01-05 12:31:45 +01:00
Jeffrey Wilcke
5490437942 Merge branch 'develop' into release/1.3.2
Conflicts:
	VERSION
	cmd/geth/main.go
v1.3.2
2015-11-24 13:48:47 +01:00
Jeffrey Wilcke
b0fb48c389 Merge pull request #1988 from bas-vk/issue1971
miner: bugfix where blockhash in receipts and logs is left empty
2015-11-24 10:55:07 +01:00
Gustav-Simonsson
ae9e9efa31 Merge pull request #1991 from Gustav-Simonsson/common_tests
Update common test files
2015-11-23 10:26:21 +01:00
Jeffrey Wilcke
6bb29aebee Merge pull request #1666 from obscuren/create-transaction
rpc/api, xeth: added signTransaction method
2015-11-20 21:36:56 +01:00
Jeffrey Wilcke
314c031ff2 Merge pull request #1995 from karalabe/parametrize-crosscompile-go
Makefile: individual platforms, configurable Go runtime
2015-11-20 21:10:21 +01:00
Péter Szilágyi
fea819f74f Makefile: individual platforms, configurable Go runtime 2015-11-20 16:06:35 +02:00
Gustav Simonsson
220b0bf6e5 Update common test files 2015-11-20 12:53:36 +01:00
Jeffrey Wilcke
f16fab91c8 Merge pull request #1953 from karalabe/switch-to-fast-peers
eth/downloader: fetch data proportionally to peer capacity
2015-11-19 18:48:53 +01:00
Bas van Kervel
98cbe1356e miner: bugfix were blockhash in receipts and logs is left empty 2015-11-19 16:02:49 +01:00
Péter Szilágyi
b6f5523bdc eth/downloader: fetch data proportionally to peer capacity 2015-11-19 17:01:39 +02:00
Jeffrey Wilcke
4c2933ad82 Merge pull request #1993 from obscuren/remove-legalese
cmd/geth, cmd/utils: removed legalese
2015-11-19 15:29:49 +01:00
Jeffrey Wilcke
7399b138a8 Merge pull request #1923 from karalabe/cleanup-receipt-data-access
core, eth, miner, xeth: clean up tx/receipt db accessors
2015-11-19 15:28:15 +01:00
Jeffrey Wilcke
65bb07fb4e Merge pull request #1980 from fjl/downloader-deliver-hang
eth/downloader: don't hang for spurious deliveries
2015-11-19 15:19:21 +01:00
Péter Szilágyi
e86e0ecdc8 core, eth, miner, xeth: clean up tx/receipt db accessors 2015-11-19 16:03:32 +02:00
Felix Lange
dd09af27af eth/downloader: run tests in parallel 2015-11-19 14:18:35 +01:00
Felix Lange
b7b62d4b3c eth/downloader: also drain stateCh, receiptCh in eth/61 mode
State and receipt deliveries from a previous eth/62+ sync can hang if
the downloader has moved on to syncing with eth/61. Fix this by also
draining the eth/63 channels while waiting for eth/61 data.

A nicer solution would be to take care of the channels in a central
place, but that would involve a major rewrite.
2015-11-19 14:18:35 +01:00
Felix Lange
db52a6a0ff eth: remove workaround for asynchronous processing in the downloader 2015-11-19 14:18:34 +01:00
Felix Lange
900da3d800 eth/downloader: don't hang for spurious deliveries
Unexpected deliveries could block indefinitely if they arrived at the
right time. The fix is to ensure that the cancellation channel is
always closed when the sync ends, unblocking any deliveries. Also remove
the atomic check for whether a sync is currently running because it
doesn't help and can be misleading.

Cancelling always seems to break the tests though. The downloader
spawned d.process whenever new data arrived, making it somewhat hard to
track when block processing was actually done. Fix this by running
d.process in a dedicated goroutine that is tied to the lifecycle of the
sync. d.process gets notified of new work by the queue instead of being
invoked all the time. This removes a ton of weird workaround code,
including a hairy use of atomic CAS.
2015-11-19 14:18:34 +01:00
Jeffrey Wilcke
1c63d08ed1 cmd/geth, cmd/utils: removed legalese
Removed the legalese confirmation dialog. This closes #1992
2015-11-19 12:03:33 +01:00
Jeffrey Wilcke
ae37a8013d Merge pull request #1917 from obscuren/validator-interface
core, eth, rpc: split out block validator and state processor
2015-11-19 10:57:00 +01:00
Jeffrey Wilcke
23f42d9463 Merge pull request #1964 from obscuren/evm-runtime
core/vm/runtime: added simple execution runtime
2015-11-18 17:39:27 +01:00
Jeffrey Wilcke
1372b991c3 core/vm/runtime: added simple execution runtime
The runtime environment can be used for simple basic execution of
contract code without the requirement of setting up a full stack and
operates fully in memory.
2015-11-18 16:50:20 +01:00
Jeffrey Wilcke
a1d9ef48c5 core, eth, rpc: split out block validator and state processor
This removes the burden on a single object to take care of all
validation and state processing. Now instead the validation is done by
the `core.BlockValidator` (`types.Validator`) that takes care of both
header and uncle validation through the `ValidateBlock` method and state
validation through the `ValidateState` method. The state processing is
done by a new object `core.StateProcessor` (`types.Processor`) and
accepts a new state as input and uses that to process the given block's
transactions (and uncles for rewords) to calculate the state root for
the next block (P_n + 1).
2015-11-18 14:24:42 +01:00
Felix Lange
4a938406dc Merge pull request #1990 from karalabe/fix-whisper-autocomplete
rpc/api: fix #1986, newIdentity autocomplete
2015-11-18 12:32:39 +01:00
Péter Szilágyi
53f28e71dc rpc/api: fix #1986, newIdentity autocomplete 2015-11-18 13:03:20 +02:00
Jeffrey Wilcke
10475f444c Merge pull request #1984 from fjl/secp256k1-recover-id-verify
crypto/secp256k1: verify recovery ID before calling libsecp256k1
2015-11-17 19:39:42 +01:00