Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						295693759e 
					 
					
						
						
							
							core/vm: less allocations for various call variants  ( #21222 )  
						
						... 
						
						
						
						* core/vm/runtime/tests: add more benchmarks
* core/vm: initial work on improving alloc count for calls to precompiles
name                                  old time/op    new time/op    delta
SimpleLoop/identity-precompile-10M-6     117ms ±75%      43ms ± 1%  -63.09%  (p=0.008 n=5+5)
SimpleLoop/loop-10M-6                   79.6ms ± 4%    70.5ms ± 1%  -11.42%  (p=0.008 n=5+5)
name                                  old alloc/op   new alloc/op   delta
SimpleLoop/identity-precompile-10M-6    24.4MB ± 0%     4.9MB ± 0%  -79.94%  (p=0.008 n=5+5)
SimpleLoop/loop-10M-6                   13.2kB ± 0%    13.2kB ± 0%     ~     (p=0.357 n=5+5)
name                                  old allocs/op  new allocs/op  delta
SimpleLoop/identity-precompile-10M-6      382k ± 0%      153k ± 0%  -59.99%  (p=0.000 n=5+4)
SimpleLoop/loop-10M-6                     40.0 ± 0%      40.0 ± 0%     ~     (all equal)
* core/vm: don't allocate big.int for touch
name                                  old time/op    new time/op    delta
SimpleLoop/identity-precompile-10M-6    43.3ms ± 1%    42.4ms ± 7%     ~     (p=0.151 n=5+5)
SimpleLoop/loop-10M-6                   70.5ms ± 1%    76.7ms ± 1%   +8.67%  (p=0.008 n=5+5)
name                                  old alloc/op   new alloc/op   delta
SimpleLoop/identity-precompile-10M-6    4.90MB ± 0%    2.46MB ± 0%  -49.83%  (p=0.008 n=5+5)
SimpleLoop/loop-10M-6                   13.2kB ± 0%    13.2kB ± 1%     ~     (p=0.571 n=5+5)
name                                  old allocs/op  new allocs/op  delta
SimpleLoop/identity-precompile-10M-6      153k ± 0%       76k ± 0%  -49.98%  (p=0.029 n=4+4)
SimpleLoop/loop-10M-6                     40.0 ± 0%      40.0 ± 0%     ~     (all equal)
* core/vm: reduce allocs in staticcall
name                                  old time/op    new time/op    delta
SimpleLoop/identity-precompile-10M-6    42.4ms ± 7%    37.5ms ± 6%  -11.68%  (p=0.008 n=5+5)
SimpleLoop/loop-10M-6                   76.7ms ± 1%    69.1ms ± 1%   -9.82%  (p=0.008 n=5+5)
name                                  old alloc/op   new alloc/op   delta
SimpleLoop/identity-precompile-10M-6    2.46MB ± 0%    0.02MB ± 0%  -99.35%  (p=0.008 n=5+5)
SimpleLoop/loop-10M-6                   13.2kB ± 1%    13.2kB ± 0%     ~     (p=0.143 n=5+5)
name                                  old allocs/op  new allocs/op  delta
SimpleLoop/identity-precompile-10M-6     76.4k ± 0%      0.1k ± 0%     ~     (p=0.079 n=4+5)
SimpleLoop/loop-10M-6                     40.0 ± 0%      40.0 ± 0%     ~     (all equal)
* trie: better use of hasher keccakState
* core/state/statedb: reduce allocations in getDeletedStateObject
* core/vm: reduce allocations in all call derivates
* core/vm: reduce allocations in call variants
- Make returnstack `uint32`
- Use a `sync.Pool` of `stack`s
* core/vm: fix tests
* core/vm: goimports
* core/vm: tracer fix + staticcall gas fix
* core/vm: add back snapshot to staticcall
* core/vm: review concerns + make returnstack pooled + enable returndata in traces
* core/vm: fix some test tracer method signatures
* core/vm: run gencodec, minor comment polish
Co-authored-by: Péter Szilágyi <peterke@gmail.com > 
						
						
					 
					
						2020-07-16 15:06:19 +03:00 
						 
				 
			
				
					
						
							
							
								Paweł Bylica 
							
						 
					 
					
						
						
							
						
						d56dc038d2 
					 
					
						
						
							
							cmd/evm: Rework execution stats ( #20792 )  
						
						... 
						
						
						
						- Dump stats also for --bench flag.
- From memory stats only show number and size of allocations. This is what `test -bench` shows. I doubt others like number of GC runs are any useful, but can be added if requested.
- Now the mem stats are for single execution in case of --bench. 
						
						
					 
					
						2020-04-01 12:40:07 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						542df8898e 
					 
					
						
						
							
							core: initial version of state snapshots  
						
						
						
						
					 
					
						2020-02-25 12:51:04 +02:00 
						 
				 
			
				
					
						
							
							
								Paweł Bylica 
							
						 
					 
					
						
						
							
						
						49cf000df7 
					 
					
						
						
							
							cmd/evm: Add --bench flag for benchmarking ( #20330 )  
						
						... 
						
						
						
						The --bench flag uses the testing.B to execute the EVM bytecode many times and get the average exeuction time out of it. 
						
						
					 
					
						2019-12-18 09:43:18 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Forney 
							
						 
					 
					
						
						
							
						
						9e71f55bfa 
					 
					
						
						
							
							cmd/evm: Allow loading input from file ( #20273 )  
						
						... 
						
						
						
						Make it possible to load input from a file. Simlar to `--code` / `--codefile`, have `--input`/`--inputfile`. 
						
						
					 
					
						2019-11-17 15:45:54 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Forney 
							
						 
					 
					
						
						
							
						
						9c81387bef 
					 
					
						
						
							
							cmd/evm: remove surrounding whitespace in hex input code ( #20211 )  
						
						... 
						
						
						
						This way, the output of `evm compile` can be used directly in `evm
--codefile code.txt run`, without stripping the trailing newline first. 
						
						
					 
					
						2019-10-28 14:55:20 +01:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						16f0fb70f1 
					 
					
						
						
							
							cmd/evm: make evm default to all ethash protocol changes  
						
						
						
						
					 
					
						2019-09-13 22:32:20 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						2ca89ea479 
					 
					
						
						
							
							cmd/evm: evm input minor fixes ( #19740 )  
						
						... 
						
						
						
						* cmd/evm: evm input minor fixes, handle prefix, validate length, fixes  #18041 
* cmd/evm: remove whitespace 
						
						
					 
					
						2019-06-25 11:03:04 +03:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						1da5e0ebb0 
					 
					
						
						
							
							core/state, cmd/geth: streaming json output for dump command ( #15475 )  
						
						... 
						
						
						
						* core/state, cmd/geth: streaming json output dump cmd + optional code+storage
* dump: add option to continue even if preimages are missing
* core, evm: lint nits
* cmd: use local flags for dump, omit empty code/storage
* core/state: fix state dump test 
						
						
					 
					
						2019-06-24 17:16:44 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						054412e335 
					 
					
						
						
							
							all: clean up and proerly abstract database access  
						
						
						
						
					 
					
						2019-03-06 13:35:03 +02:00 
						 
				 
			
				
					
						
							
							
								Paweł Bylica 
							
						 
					 
					
						
						
							
						
						d37f987639 
					 
					
						
						
							
							cmd/evm: Add --vm.evm flag to support EVMC ( #18457 )  
						
						
						
						
					 
					
						2019-01-16 11:43:41 +01:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						42a914a84f 
					 
					
						
						
							
							cmd/evm, core/vm, eth: implement api methods to do stdjson dump to local filesystem  
						
						
						
						
					 
					
						2018-12-10 12:33:50 +02:00 
						 
				 
			
				
					
						
							
							
								Matthew Di Ferrante 
							
						 
					 
					
						
						
							
						
						3d21d455dc 
					 
					
						
						
							
							cmd/evm: commit statedb if dump is requested ( #18208 )  
						
						... 
						
						
						
						Add a call `statedb.Commit(true)` if the `Dump` flag is on, as otherwise the `storage` output in the dump is always empty. 
						
						
					 
					
						2018-11-29 09:29:12 +01:00 
						 
				 
			
				
					
						
							
							
								Kevin 
							
						 
					 
					
						
						
							
						
						3fec73500b 
					 
					
						
						
							
							cmd/evm: EVM prestate initialization ( #17685 )  
						
						... 
						
						
						
						* Bugfix #17216 : evm loads prestate file properly now
* code gofmted 
						
						
					 
					
						2018-09-20 08:24:53 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						83e2761c3a 
					 
					
						
						
							
							Revert "cmd/evm: change error msg output to stderr ( #17118 )"  
						
						... 
						
						
						
						This reverts commit fb9f7261ec 
						
						
					 
					
						2018-08-01 19:09:08 +03:00 
						 
				 
			
				
					
						
							
							
								Chen Quan 
							
						 
					 
					
						
						
							
						
						fb9f7261ec 
					 
					
						
						
							
							cmd/evm: change error msg output to stderr ( #17118 )  
						
						... 
						
						
						
						* cmd/evm: change error msg output to stderr
* cmd/evm: fix some linter error 
						
						
					 
					
						2018-07-31 10:48:27 +03:00 
						 
				 
			
				
					
						
							
							
								gary rong 
							
						 
					 
					
						
						
							
						
						7beccb29be 
					 
					
						
						
							
							all: get rid of error when creating memory database ( #16716 )  
						
						... 
						
						
						
						* all: get rid of error when create mdb
* core: clean up variables definition
* all: inline mdb definition 
						
						
					 
					
						2018-05-09 15:24:25 +03:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						8dfa4f46a9 
					 
					
						
						
							
							evm/main: use blocknumber from genesis  
						
						
						
						
					 
					
						2018-05-02 10:17:00 +02:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
							
						
						c7ab3e5544 
					 
					
						
						
							
							common: delete StringToAddress, StringToHash ( #16436 )  
						
						... 
						
						
						
						* common: delete StringToAddress, StringToHash
These functions are confusing because they don't parse hex, but use the
bytes of the string. This change removes them, replacing all uses of
StringToAddress(s) by BytesToAddress([]byte(s)).
* eth/filters: remove incorrect use of common.BytesToAddress 
						
						
					 
					
						2018-04-10 14:12:07 +03:00 
						 
				 
			
				
					
						
							
							
								dm4 
							
						 
					 
					
						
						
							
						
						3ebcf92b42 
					 
					
						
						
							
							cmd/evm: print vm output when debug flag is on ( #16326 )  
						
						
						
						
					 
					
						2018-04-06 12:43:36 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						b7e57ca1d0 
					 
					
						
						
							
							cmd/evm, core/vm, internal/ethapi: don't disable call gas metering  
						
						
						
						
					 
					
						2018-03-05 14:01:13 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						55599ee95d 
					 
					
						
						
							
							core, trie: intermediate mempool between trie and database ( #15857 )  
						
						... 
						
						
						
						This commit reduces database I/O by not writing every state trie to disk. 
						
						
					 
					
						2018-02-05 17:40:32 +01:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						286ec5df40 
					 
					
						
						
							
							cmd/evm, core/vm, internal/ethapi: Show error when exiting ( #14985 )  
						
						... 
						
						
						
						* cmd/evm, core/vm, internal/ethapi: Add 'err' to tracer interface CaptureEnd
* cmd/evm: fix nullpointer when there is no error 
						
						
					 
					
						2017-08-23 14:37:18 +03:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						3040243042 
					 
					
						
						
							
							cmd/evm: add --receiver, support code from stdin ( #14873 )  
						
						
						
						
					 
					
						2017-08-15 11:31:36 +02:00 
						 
				 
			
				
					
						
							
							
								Felix Lange 
							
						 
					 
					
						
						
							
						
						9e5f03b6c4 
					 
					
						
						
							
							core/state: access trie through Database interface, track errors ( #14589 )  
						
						... 
						
						
						
						With this commit, core/state's access to the underlying key/value database is
mediated through an interface. Database errors are tracked in StateDB and
returned by CommitTo or the new Error method.
Motivation for this change: We can remove the light client's duplicated copy of
core/state. The light client now supports node iteration, so tracing and storage
enumeration can work with the light client (not implemented in this commit). 
						
						
					 
					
						2017-06-27 15:57:06 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						9a44e1035e 
					 
					
						
						
							
							cmd/evm, core/vm: add --nomemory, --nostack to evm ( #14617 )  
						
						
						
						
					 
					
						2017-06-21 14:52:31 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						80f7c6c299 
					 
					
						
						
							
							cmd/evm: add --prestate, --sender, --json flags for fuzzing ( #14476 )  
						
						
						
						
					 
					
						2017-06-07 17:09:08 +02:00 
						 
				 
			
				
					
						
							
							
								Jeffrey Wilcke 
							
						 
					 
					
						
						
							
						
						3ee75bec9f 
					 
					
						
						
							
							cmd/evm: added mem/cpu profiling  
						
						
						
						
					 
					
						2017-05-23 10:17:55 +02:00 
						 
				 
			
				
					
						
							
							
								Jeffrey Wilcke 
							
						 
					 
					
						
						
							
						
						f30733c806 
					 
					
						
						
							
							cmd/evm: removed -sysstat and moved content to -debug flag  
						
						... 
						
						
						
						Added the ability to directly compile and run ethereum assembly using
the evm utility: `evm run <file>`. This is equivalant to `evm compile
<file> | evm run`. 
						
						
					 
					
						2017-03-01 11:52:57 +01:00 
						 
				 
			
				
					
						
							
							
								Jeffrey Wilcke 
							
						 
					 
					
						
						
							
						
						bf4155846c 
					 
					
						
						
							
							core/evm, core/vm: improved evm trace output  
						
						... 
						
						
						
						* Improved the standard evm tracer output and renamed it to WriteTrace
which now takes an io.Writer to write the logs to.
* Added WriteLogs which writes logs to the given writer in a readable
format.
* evm utility now also prints logs generated during the execution. 
						
						
					 
					
						2017-03-01 11:20:25 +01:00 
						 
				 
			
				
					
						
							
							
								Jeffrey Wilcke 
							
						 
					 
					
						
						
							
						
						230cf2ec91 
					 
					
						
						
							
							cmd/evm, core/asm: add EVM assembler ( #3686 )  
						
						... 
						
						
						
						The evm compile command implements a simple assembly language that compiles to
EVM bytecode. 
						
						
					 
					
						2017-03-01 01:11:24 +01:00