Jeffrey Wilcke
5b283663b4
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-18 10:12:13 +01:00
Jeffrey Wilcke
b6d88a0e9f
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
2016-02-18 10:11:48 +01:00
Jeffrey Wilcke
4f4d2b6474
tests: updated homestead tests
2016-02-18 10:08:18 +01:00
Gustav Simonsson
371871d685
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
2016-02-18 10:08:11 +01:00
Péter Szilágyi
1e806c4c77
cmd, common, core, eth, node, rpc, tests, whisper, xeth: use protocol stacks
2015-11-27 11:06:12 +02:00
Gustav Simonsson
220b0bf6e5
Update common test files
2015-11-20 12:53:36 +01:00
Péter Szilágyi
9dc5de51a2
tests: fix data race in bad-block-report disabling during tests
2015-11-05 13:29:50 +02:00
Drake Burroughs
05ea8926c3
cmd/utils, crypto: add --lightkdf flag for lighter KDF
2015-10-28 18:46:39 +01:00
Gustav Simonsson
145366c07e
tests: update JSON files, add new wrappers
2015-10-23 14:25:18 +02:00
Jeffrey Wilcke
80f26086ee
core, tests: get_hash fix
...
Make sure that we're fetching the hash from the current chain and not
the canonical chain.
2015-10-21 02:31:46 +02:00
Felix Lange
de8d5aaa92
core, core/state: move gas tracking out of core/state
...
The amount of gas available for tx execution was tracked in the
StateObject representing the coinbase account. This commit makes the gas
counter a separate type in package core, which avoids unintended
consequences of intertwining the counter with state logic.
2015-10-17 10:24:34 +02:00
Gustav Simonsson
1b1f293082
core/state, core, miner: handle missing root error from state.New
2015-10-16 02:22:06 +02:00
Gustav Simonsson
e1616f77c7
core, core/vm, cmd/evm: remove redundant balance check
2015-10-06 12:42:34 +02:00
Jeffrey Wilcke
7c7692933c
cmd/geth, cmd/utils, core, rpc: renamed to blockchain
...
* Renamed ChainManager to BlockChain
* Checkpointing is no longer required and never really properly worked
when the state was corrupted.
2015-10-04 01:13:56 +02:00
Jeffrey Wilcke
361082ec4b
cmd/evm, core/vm, test: refactored VM and core
...
* Moved `vm.Transfer` to `core` package and changed execution to call
`env.Transfer` instead of `core.Transfer` directly.
* core/vm: byte code VM moved to jump table instead of switch
* Moved `vm.Transfer` to `core` package and changed execution to call
`env.Transfer` instead of `core.Transfer` directly.
* Byte code VM now shares the same code as the JITVM
* Renamed Context to Contract
* Changed initialiser of state transition & unexported methods
* Removed the Execution object and refactor `Call`, `CallCode` &
`Create` in to their own functions instead of being methods.
* Removed the hard dep on the state for the VM. The VM now
depends on a Database interface returned by the environment. In the
process the core now depends less on the statedb by usage of the env
* Moved `Log` from package `core/state` to package `core/vm`.
2015-10-04 01:13:54 +02:00
Jeffrey Wilcke
49ae538506
Merge pull request #1405 from fjl/lean-trie
...
core, trie: new trie
2015-10-01 04:34:38 -07:00
Felix Lange
a2d5a60418
core, core/state: batch-based state sync
2015-09-22 22:57:37 +02:00
Gustav Simonsson
5621308949
tests: add test for StateTests/stCallCodes.json
2015-09-21 11:34:02 +02:00
Gustav Simonsson
47ca6904b3
tests: use lastblockhash field to validate reorgs and block headers
2015-09-18 17:48:31 +02:00
Gustav Simonsson
075815e5ff
tests: update common test wrappers and test files
2015-09-18 13:08:36 +02:00
Felix Lange
8c4dab77ba
all: move common.Database to package ethdb
2015-09-14 23:36:30 +02:00
Péter Szilágyi
cdc2662c40
core: split out TD from database and all internals
2015-09-11 17:42:25 +03:00
Gustav Simonsson
fe8093b71f
Add TestBcForkUncleTests and update JSON files
2015-08-31 16:45:00 +02:00
Gustav Simonsson
7324176f70
Add tests for uncle timestamps and refactor timestamp type
2015-08-25 04:46:11 +02:00
Jeffrey Wilcke
36f7fe61c3
core, tests: Double SUICIDE fix
2015-08-20 18:22:50 +02:00
Jeffrey Wilcke
9cacec70f9
cmd/evm, core/vm, tests: changed DisableVm to EnableVm
2015-08-11 18:43:22 +02:00
Jeffrey Wilcke
2fcf7f1241
Merge pull request #1604 from obscuren/db-merge
...
core, eth, trie, xeth: merged state, chain, extra databases in one
2015-08-09 05:16:37 -07:00
Jeffrey Wilcke
a23478c0be
core, eth, trie, xeth: merged state, chain, extra databases in one
2015-08-07 22:29:02 +02:00
Jeffrey Wilcke
ac697326a6
core/vm: reduced big int allocations
...
Reduced big int allocation by making stack items modifiable. Instead of
adding items such as `common.Big0` to the stack, `new(big.Int)` is
added instead. One must expect that any item that is added to the stack
might change.
2015-08-07 12:52:23 +02:00
Jeffrey Wilcke
184e9ae9a8
core, tests: reduced state copy by N calls
...
Reduced the amount of state copied that are required by N calls by doing
a balance check prior to any state modifications.
2015-08-07 12:52:23 +02:00
Jeffrey Wilcke
846f34f78b
core/vm, tests: implemented semi-jit vm
...
* changed stack and removed stack ptr. Let go decide on slice reuse.
2015-08-07 12:52:17 +02:00
Jeffrey Wilcke
71d32f54f7
core, miner: added difficulty bomb
2015-08-05 13:09:09 +02:00
Jeffrey Wilcke
03c39d4fc0
tests: updated
2015-07-29 15:01:42 +02:00
Jeffrey Wilcke
1fad8798ec
Merge pull request #1515 from fjl/license-fixes
...
all: fix license headers one more time
2015-07-28 04:29:42 -07:00
Jeffrey Wilcke
9afda6ab8c
core: 5 ether block reward
2015-07-25 17:47:20 +02:00
Felix Lange
bfbcfbe4a9
all: fix license headers one more time
...
I forgot to update one instance of "go-ethereum" in commit 3f047be5a.
2015-07-23 18:35:11 +02:00
Felix Lange
3f047be5aa
all: update license headers to distiguish GPL/LGPL
...
All code outside of cmd/ is licensed as LGPL. The headers
now reflect this by calling the whole work "the go-ethereum library".
2015-07-22 18:51:45 +02:00
Felix Lange
593b1b65e7
tests: document RLP tests
2015-07-17 15:42:23 +02:00
Felix Lange
5da82077d1
cmd/ethtest, tests: add support for RLP JSON tests
2015-07-17 15:13:24 +02:00
Jeffrey Wilcke
a32c51effd
cmd, core, eth, common: genesis preparation
...
Implemented the --genesis flag thru which we can set a custom genesis
block, including the official Ethereum genesis block.
2015-07-10 17:37:41 +02:00
Gustav Simonsson
b08abe64e4
Unskip SimpleTx3, check err in pre/post state validations
2015-07-08 13:09:22 +02:00
Gustav Simonsson
0b53a5c673
Update Ethereum JSON test files and wrappers
2015-07-08 13:08:42 +02:00
Felix Lange
bdae4fd573
all: add some godoc synopsis comments
2015-07-07 14:12:45 +02:00
Felix Lange
ea54283b30
all: update license information
2015-07-07 14:12:44 +02:00
Jeffrey Wilcke
35cd355c14
cmd,eth,rpc,tests: default coinbase
2015-07-07 10:32:05 +02:00
Gustav Simonsson
b7e8d954ef
Add TestBcGasPricer, comments and unskip tests
2015-07-06 13:56:56 +02:00
Jeffrey Wilcke
aa4502060b
Merge pull request #1400 from obscuren/badblock-reporting
...
core, miner, tests: added test, implemented bad block reporting
2015-07-06 02:03:50 -07:00
Jeffrey Wilcke
bcc1660abc
core, miner, tests: added test, implemented bad block reporting
2015-07-05 15:14:31 +02:00
Gustav Simonsson
0f04af5916
Fix core error forwarding, unify OOG VM err
2015-07-04 09:27:42 +02:00
Jeffrey Wilcke
ab16ce70fc
core, miner, tests: renamed state methods
...
* Update => SyncIntermediate
* Added SyncObjects
SyncIntermediate only updates whatever has changed, but, as a side
effect, requires much more disk space.
SyncObjects will only sync whatever is required for a block and will not
save intermediate state to disk. As drawback this requires more time
when more txs come in.
2015-07-04 02:51:36 +02:00
Gustav Simonsson
ff97059a99
Update Ethereum JSON tests, skip failing
2015-07-03 09:40:07 +02:00
Gustav Simonsson
4c490db6af
Use uint64 for block header timestamp
2015-06-30 10:52:11 +02:00
Felix Lange
1d42888d30
core/types: make blocks immutable
2015-06-29 18:51:47 +02:00
Felix Lange
654564e164
core/types: make transactions immutable
2015-06-29 18:51:47 +02:00
obscuren
398d08a8dd
tests: SetGasLimit
2015-06-21 17:09:19 +02:00
Taylor Gerring
0743243dce
Add --skip option to CLI
...
Disassociates hardcoded tests to skip when running via CLI. Tests still
skipped when running `go test`
2015-06-19 11:38:23 +02:00
Taylor Gerring
a9659e6dcf
recover test logic
2015-06-18 23:46:42 +02:00
Taylor Gerring
8d3faf69d0
Build error fixes
2015-06-18 22:38:17 +02:00
Taylor Gerring
baea8e87e5
Rebase cleanup
2015-06-18 22:27:44 +02:00
Taylor Gerring
01ec4dbb12
Add stdin option
2015-06-18 22:24:07 +02:00
Taylor Gerring
30444db020
Add lost rebase changes
2015-06-18 22:20:45 +02:00
Taylor Gerring
c941a39b75
Cleanup logging
2015-06-18 22:20:45 +02:00
Taylor Gerring
8507c867b9
Fix geth blocktest command
2015-06-18 22:20:45 +02:00
Taylor Gerring
6ff956394a
DRY file loading
2015-06-18 22:20:45 +02:00
Taylor Gerring
ac0637c413
More consistent test interfaces + test skipping
2015-06-18 22:20:44 +02:00
Taylor Gerring
b6d40a9312
Cleanup/reorg
2015-06-18 22:20:44 +02:00
Taylor Gerring
c5d6fcbaba
Return error up stack instead of passing testing var down
2015-06-18 22:20:44 +02:00
Taylor Gerring
24554629b1
DRY log check
2015-06-18 22:15:08 +02:00
Taylor Gerring
7c6ef0ddac
Separate and identify tests runners
2015-06-18 22:15:07 +02:00
Taylor Gerring
1b26d4f220
Flatten helper directory
2015-06-18 22:15:07 +02:00
Taylor Gerring
e82100367f
Fix paths
2015-06-18 22:13:42 +02:00
Taylor Gerring
a67a15528a
Split tests from helper code
2015-06-18 22:13:42 +02:00
Taylor Gerring
7b9fbb088a
Flatten vm directory
2015-06-18 22:13:41 +02:00
Jeffrey Wilcke
2cea410656
Merge pull request #1282 from obscuren/state-cleanup
...
core/state: cleanup & optimisations
2015-06-18 05:29:53 -07:00
obscuren
a977f3c0dc
xeth, tests: fixed api
2015-06-17 11:44:40 +02:00
obscuren
787a61bb27
core/state, core/vm: reworked storage get / set to use common.Hash
2015-06-17 11:24:40 +02:00
Gustav Simonsson
8f372c867d
Update Ethereum JSON test files
2015-06-16 12:09:25 +02:00
Jeffrey Wilcke
6609d45ef4
Merge pull request #1228 from obscuren/vm-optimisations
...
core/vm: optimisations
2015-06-11 03:32:39 -07:00
obscuren
38c61f6f25
core, core/vm: added structure logging
...
This also reduces the time required spend in the VM
2015-06-10 12:23:49 +02:00
obscuren
6a5c9aff3b
tests: check gas limit error
2015-06-09 22:49:33 +02:00
Gustav Simonsson
15166f880b
Skip BlockTests/bcValidBlockTests SimpleTx3
2015-06-09 15:53:31 +02:00
Gustav Simonsson
d8e55a5cc3
Skip VMTests RandomTests temporarily until they are fixed
2015-06-09 15:40:43 +02:00
Gustav Simonsson
e885a2912b
Update Ethereum JSON test files
2015-06-09 15:39:24 +02:00
obscuren
246db4250b
tests: use state logs instead own kept logs
2015-06-04 19:48:23 +02:00
Jeffrey Wilcke
122d2db095
Merge pull request #1150 from fjl/fix-jumpdest
...
core/vm: improve JUMPDEST analysis
2015-06-03 09:11:56 -07:00
Felix Lange
c9ed9d253a
tests/files: update tests to d309b4679a58d2
2015-06-03 16:25:06 +02:00
Gustav Simonsson
0fa9d2431f
Add new 0th gen uncle test
2015-06-02 14:47:23 +02:00
Gustav Simonsson
8a76b45253
Use older version of stSpecialTest until JUMPDEST fix is merged
2015-06-02 12:25:43 +02:00
Gustav Simonsson
8962af2e42
Update Ethereum JSON test files
2015-06-02 12:15:25 +02:00
Gustav Simonsson
5a692ba4f6
Update Ethereum JSON test files
2015-06-01 22:34:44 +02:00
Gustav Simonsson
b4818a003a
Update Ethereum JSON test files
2015-05-29 13:12:54 +02:00
obscuren
6c2f6f5b03
tests: removed missing block test
2015-05-26 13:48:10 +02:00
obscuren
03faccfb08
tests: updated
2015-05-26 13:48:10 +02:00
Gustav Simonsson
6ad817e17b
Add StateTests/RandomTests and VMTests/RandomTests
2015-05-21 23:04:46 +02:00
Gustav Simonsson
6a72cd45e2
Add wrapper for BlockTests/bcWalletTest.json
2015-05-18 16:28:54 +02:00
Gustav Simonsson
36419defd1
Update Ethereum JSON test files
2015-05-18 12:45:24 +02:00
obscuren
9617aa8e19
tests: added conditional skip on long running VM tests
...
Set the TEST_VM_COMPLEX env var to test complex vm tests which require a
lot of ram and quite some time.
2015-05-20 00:21:24 +02:00
obscuren
f5af1fdca8
core/vm: RETURN op code returns pointer to memory rather than copy
2015-05-20 00:21:23 +02:00
obscuren
648b352424
tests/vm: updated tests and skipped output for specific tests
...
Skipped tests due to large return value
2015-05-20 00:21:23 +02:00
Gustav Simonsson
619e8a4f03
Add StateTests/RandomTests but skip for now
2015-05-15 19:17:40 +02:00