go-ethereum/core
Felix Lange 46a527d014 [release/1.4.16] core/state: implement reverts by journaling all changes
This commit replaces the deep-copy based state revert mechanism with a
linear complexity journal. This commit also hides several internal
StateDB methods to limit the number of ways in which calling code can
use the journal incorrectly.

As usual consultation and bug fixes to the initial implementation were
provided by @karalabe, @obscuren and @Arachnid. Thank you!

(cherry picked from commit 1f1ea18b54)
2016-10-06 16:25:17 +02:00
..
state [release/1.4.16] core/state: implement reverts by journaling all changes 2016-10-06 16:25:17 +02:00
types [release/1.4.6] eth: enable bad block reports 2016-06-06 16:21:34 +03:00
vm [release/1.4.16] core/state: implement reverts by journaling all changes 2016-10-06 16:25:17 +02:00
.gitignore Renamed `chain` => `core` 2014-12-04 10:28:02 +01:00
asm.go all: fix go vet warnings 2016-04-15 11:17:27 +02:00
bench_test.go [release/1.4.10] accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-16 14:30:05 +03:00
block_validator.go [release/1.4.10] cmd, core, eth, miner, params, tests: finalize the DAO fork 2016-07-16 14:30:07 +03:00
block_validator_test.go [release/1.4.10] accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-16 14:30:05 +03:00
blockchain.go [release/1.4.14] core, eth, trie: reuse trie journals in all our code 2016-09-28 13:32:12 +03:00
blockchain_test.go [release/1.4.11] core: ensure the canonical block is written before the canonical hash is set 2016-08-18 15:25:16 +02:00
blocks.go remove 0x 2015-08-20 18:50:47 +02:00
chain_makers.go [release/1.4.16] core/state: implement reverts by journaling all changes 2016-10-06 16:25:17 +02:00
chain_makers_test.go [release/1.4.13] core/state: track all accounts in canon state 2016-09-26 10:31:18 +02:00
chain_pow.go core: separate and contain POW verifier, extensive tests 2015-09-21 10:24:49 +03:00
chain_pow_test.go [release/1.4.10] accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-16 14:30:05 +03:00
config.go [release/1.4.10] cmd, core, miner: add extradata validation to consensus rules 2016-07-16 14:29:59 +03:00
dao.go [release/1.4.10] cmd, core, eth, miner, params, tests: finalize the DAO fork 2016-07-16 14:30:07 +03:00
dao_test.go [release/1.4.10] accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-16 14:30:05 +03:00
database_util.go [release/1.4.11] core: ensure the canonical block is written before the canonical hash is set 2016-08-18 15:25:16 +02:00
database_util_test.go [release/1.4.16] tests: update test files from github.com/ethereum/tests @ 45bc1d21d3c1 2016-10-06 16:25:17 +02:00
default_genesis.go all: update license information 2016-04-15 09:48:05 +02:00
error.go Merge pull request #1889 from karalabe/fast-sync-rebase 2015-10-21 11:44:22 -07:00
events.go core, miner: add PendingStateEvent to track non-log updates 2016-02-29 11:24:58 +02:00
execution.go [release/1.4.16] core/state: implement reverts by journaling all changes 2016-10-06 16:25:17 +02:00
fees.go Merge pull request #1515 from fjl/license-fixes 2015-07-28 04:29:42 -07:00
filter_test.go all: fix license headers one more time 2015-07-23 18:35:11 +02:00
gaspool.go all: update license information 2016-04-15 09:48:05 +02:00
genesis.go core, eth: added json tag field for proper unmarshalling 2016-04-25 12:48:31 +02:00
headerchain.go [release/1.4.11] core: ensure the canonical block is written before the canonical hash is set 2016-08-18 15:25:16 +02:00
helper_test.go cmd/geth, cmd/utils, core, rpc: renamed to blockchain 2015-10-04 01:13:56 +02:00
state_processor.go [release/1.4.10] cmd, core, eth, miner, params, tests: finalize the DAO fork 2016-07-16 14:30:07 +03:00
state_transition.go core: transition db now also returns the required gas amount 2016-04-01 01:01:10 +02:00
tx_pool.go [release/1.4.16] core/state: implement reverts by journaling all changes 2016-10-06 16:25:17 +02:00
tx_pool_test.go core: added basic chain configuration 2016-04-01 01:01:10 +02:00
types.go all: update license information 2016-04-15 09:48:05 +02:00
vm_env.go [release/1.4.16] core/state: implement reverts by journaling all changes 2016-10-06 16:25:17 +02:00