plugeth/core/vm
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
..
runtime core/state: implement reverts by journaling all changes 2016-10-06 15:32:16 +02:00
analysis.go all: fix license headers one more time 2015-07-23 18:35:11 +02:00
asm.go all: fix go vet warnings 2016-04-15 11:17:27 +02:00
common.go core: Added EVM configuration options 2016-03-23 23:02:42 +01:00
contract.go cmd, core, internal, light, tests: avoid hashing the code in the VM 2016-10-01 16:01:58 +03:00
contracts.go core/vm: hide ecrecover error message 2016-08-05 23:12:52 +02:00
disasm.go all: fix license headers one more time 2015-07-23 18:35:11 +02:00
doc.go all: update license information 2016-04-15 09:48:05 +02:00
environment.go core/state: implement reverts by journaling all changes 2016-10-06 15:32:16 +02:00
errors.go parmas, crypto, core, core/vm: homestead consensus protocol changes 2016-02-18 10:08:11 +01:00
gas.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
instructions.go core/state: track all accounts in canon state 2016-09-26 10:09:52 +02:00
jit_optimiser.go all: update license information 2016-04-15 09:48:05 +02:00
jit_test.go core/state: implement reverts by journaling all changes 2016-10-06 15:32:16 +02:00
jit_util_test.go all: fix go vet warnings 2016-04-15 11:17:27 +02:00
jit_util.go all: update license information 2016-04-15 09:48:05 +02:00
jit.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
jump_table_test.go all: update license information 2016-04-15 09:48:05 +02:00
jump_table.go all: update license information 2016-04-15 09:48:05 +02:00
log_test.go core/types, core/vm: improve docs, add JSON marshaling methods 2016-08-04 03:55:33 +02:00
log.go core/types, core/vm: improve docs, add JSON marshaling methods 2016-08-04 03:55:33 +02:00
logger_test.go cmd, core, internal, light, tests: avoid hashing the code in the VM 2016-10-01 16:01:58 +03:00
logger.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
memory.go cmd/geth, cmd/utils, core, rpc: renamed to blockchain 2015-10-04 01:13:56 +02:00
opcodes.go core, core/vm, crypto: fixes for homestead 2016-02-18 10:11:48 +01:00
segments.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
stack.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
util_test.go all: update license information 2016-04-15 09:48:05 +02:00
virtual_machine.go core: Added EVM configuration options 2016-03-23 23:02:42 +01:00
vm_jit_fake.go core: added basic chain configuration 2016-04-01 01:01:10 +02:00
vm_jit.go core: various typos 2016-03-15 11:08:18 -07:00
vm.go cmd, core, internal, light, tests: avoid hashing the code in the VM 2016-10-01 16:01:58 +03:00