plugeth/core
Felix Lange 1f1ea18b54 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!
2016-10-06 15:32:16 +02:00
..
state core/state: implement reverts by journaling all changes 2016-10-06 15:32:16 +02:00
types core/types: add core type marshal methods too 2016-09-08 18:16:53 +03:00
vm core/state: implement reverts by journaling all changes 2016-10-06 15:32:16 +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 accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
block_validator_test.go accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
block_validator.go cmd, core, eth, miner, params, tests: finalize the DAO fork 2016-07-15 16:52:55 +03:00
blockchain_test.go core: ensure the canonical block is written before the canonical hash is set 2016-08-16 15:21:22 +02:00
blockchain.go core, eth, trie: reuse trie journals in all our code 2016-09-28 11:27:31 +03:00
blocks.go remove 0x 2015-08-20 18:50:47 +02:00
chain_makers_test.go core/state: track all accounts in canon state 2016-09-26 10:09:52 +02:00
chain_makers.go core/state: implement reverts by journaling all changes 2016-10-06 15:32:16 +02:00
chain_pow_test.go accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
chain_pow.go core: separate and contain POW verifier, extensive tests 2015-09-21 10:24:49 +03:00
config.go cmd, core, miner: add extradata validation to consensus rules 2016-07-15 16:52:55 +03:00
dao_test.go accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
dao.go cmd, core, eth, miner, params, tests: finalize the DAO fork 2016-07-15 16:52:55 +03:00
database_util_test.go accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
database_util.go core: ensure the canonical block is written before the canonical hash is set 2016-08-16 15:21:22 +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 core/state: implement reverts by journaling all changes 2016-10-06 15:32:16 +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: improved chainDb using sequential keys 2016-06-07 16:38:56 +02:00
headerchain.go core: ensure the canonical block is written before the canonical hash is set 2016-08-16 15:21:22 +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 cmd, core, eth, miner, params, tests: finalize the DAO fork 2016-07-15 16:52:55 +03:00
state_transition.go core: added CheckNonce() to Message interface 2016-07-11 12:35:23 +02:00
tx_list_test.go core: abstract out a sorted transaction hash map 2016-09-02 14:15:40 +03:00
tx_list.go core: abstract out a sorted transaction hash map 2016-09-02 14:15:40 +03:00
tx_pool_test.go core: abstract out a sorted transaction hash map 2016-09-02 14:15:40 +03:00
tx_pool.go core/state: implement reverts by journaling all changes 2016-10-06 15:32:16 +02:00
types.go core, miner: move Backend to miner 2016-08-17 17:39:04 +02:00
vm_env.go core/state: implement reverts by journaling all changes 2016-10-06 15:32:16 +02:00