gary rong 
							
						 
					 
					
						
						
							
						
						43c278cdf9 
					 
					
						
						
							
							core/state: disable snapshot iteration if it's not fully constructed ( #21682 )  
						
						... 
						
						
						
						* core/state/snapshot: add diskRoot function
* core/state/snapshot: disable iteration if the snapshot is generating
* core/state/snapshot: simplify the function
* core/state: panic for undefined layer 
						
						
					 
					
						2020-10-28 14:27:37 +02:00 
						 
				 
			
				
					
						
							
							
								gary rong 
							
						 
					 
					
						
						
							
						
						18145adf08 
					 
					
						
						
							
							core/state: maintain one more diff layer ( #21730 )  
						
						... 
						
						
						
						* core/state: maintain one more diff layer
* core/state: address comment 
						
						
					 
					
						2020-10-28 14:00:22 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						6487c002f6 
					 
					
						
						
							
							all: implement EIP-2929 (gas cost increases for state access opcodes) + yolo-v2 ( #21509 )  
						
						... 
						
						
						
						* core/vm, core/state: implement EIP-2929 + YOLOv2
* core/state, core/vm: fix some review concerns
* core/state, core/vm: address review concerns
* core/vm: address review concerns
* core/vm: better documentation
* core/vm: unify sload cost as fully dynamic
* core/vm: fix typo
* core/vm/runtime: fix compilation flaw
* core/vm/runtime: fix renaming-err leftovers
* core/vm: renaming
* params/config: use correct yolov2 chainid for config
* core, params: use a proper new genesis for yolov2
* core/state/tests: golinter nitpicks 
						
						
					 
					
						2020-10-23 08:26:57 +02:00 
						 
				 
			
				
					
						
							
							
								mr_franklin 
							
						 
					 
					
						
						
							
						
						66c3eb2f1a 
					 
					
						
						
							
							accouts, consensus, core: fix some comments ( #21617 )  
						
						
						
						
					 
					
						2020-10-12 15:02:38 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						a15d71a255 
					 
					
						
						
							
							core/state/snapshot: stop generator if it hits missing trie nodes ( #21649 )  
						
						... 
						
						
						
						* core/state/snapshot: exit Geth if generator hits missing trie nodes
* core/state/snapshot: error instead of hard die on generator fault
* core/state/snapshot: don't enable logging on the tests 
						
						
					 
					
						2020-10-05 11:52:36 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						eeaf191633 
					 
					
						
						
							
							core, eth, trie: prepare trie sync for path based operation  
						
						
						
						
					 
					
						2020-09-02 13:21:32 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						d8da0b3d81 
					 
					
						
						
							
							core/state, eth, trie: stabilize memory use, fix memory leak  
						
						
						
						
					 
					
						2020-08-26 13:05:06 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						3ee91b9f2e 
					 
					
						
						
							
							core/state/snapshot: reduce disk layer depth during generation  
						
						
						
						
					 
					
						2020-08-24 13:22:36 +03:00 
						 
				 
			
				
					
						
							
							
								gary rong 
							
						 
					 
					
						
						
							
						
						87c0ba9213 
					 
					
						
						
							
							core, eth, les, trie: add a prefix to contract code ( #21080 )  
						
						
						
						
					 
					
						2020-08-21 15:10:40 +03:00 
						 
				 
			
				
					
						
							
							
								Giuseppe Bertone 
							
						 
					 
					
						
						
							
						
						2ff464b29d 
					 
					
						
						
							
							core/state: fixed some comments ( #21450 )  
						
						
						
						
					 
					
						2020-08-19 09:54:21 +03:00 
						 
				 
			
				
					
						
							
							
								gary rong 
							
						 
					 
					
						
						
							
						
						93da0cf8a1 
					 
					
						
						
							
							cmd, core, eth, light, trie: dump clean cache periodically ( #20391 )  
						
						... 
						
						
						
						* cmd, core, eth, light, trie: dump clean cache periodically
* eth: update config
* trie: minor fix
* core, trie: address comments
* eth: remove useless
* trie: print clean cache dump start too
Co-authored-by: Péter Szilágyi <peterke@gmail.com > 
						
						
					 
					
						2020-07-28 16:30:31 +03:00 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								gary rong 
							
						 
					 
					
						
						
							
						
						6eef141aef 
					 
					
						
						
							
							les: historical data garbage collection ( #19570 )  
						
						... 
						
						
						
						This change introduces garbage collection for the light client. Historical
chain data is deleted periodically. If you want to disable the GC, use
the --light.nopruning flag. 
						
						
					 
					
						2020-07-13 11:02:54 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						e376d2fb31 
					 
					
						
						
							
							cmd/evm: add state transition tool for testing ( #20958 )  
						
						... 
						
						
						
						This PR implements the EVM state transition tool, which is intended
to be the replacement for our retesteth client implementation.
Documentation is present in the cmd/evm/README.md file.
Co-authored-by: Felix Lange <fjl@twurst.com > 
						
						
					 
					
						2020-06-30 10:12:51 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						80e887d7bf 
					 
					
						
						
							
							core/state: avoid escape analysis fault when accessing cached state  
						
						
						
						
					 
					
						2020-06-08 16:11:37 +03:00 
						 
				 
			
				
					
						
							
							
								Martin Michlmayr 
							
						 
					 
					
						
						
							
						
						4f2784b38f 
					 
					
						
						
							
							all: fix typos in comments ( #21118 )  
						
						
						
						
					 
					
						2020-05-25 10:21:28 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						0b2edf05bb 
					 
					
						
						
							
							core/state: make GetCodeSize mirror GetCode implementation wise  
						
						
						
						
					 
					
						2020-05-11 10:28:56 +03:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						82f9ed49fa 
					 
					
						
						
							
							core/state: avoid statedb.dbErr due to emptyCode ( #21051 )  
						
						... 
						
						
						
						* core/state: more verbose stateb errors
* core/state: fix flaw
* core/state: fixed lint
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de > 
						
						
					 
					
						2020-05-08 21:52:20 +03:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						b0b65d017f 
					 
					
						
						
							
							core/state: abort commit if read errors have occurred ( #21039 )  
						
						... 
						
						
						
						This finally adds the error check that the documentation of StateDB.dbErr
promises to do. dbErr was added in 9e5f03b6c 
						
						
					 
					
						2020-05-07 15:13:34 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						1152f45849 
					 
					
						
						
							
							core/state: include zero-address in state dump if present ( #21038 )  
						
						... 
						
						
						
						* Include 0x0000 address into the dump if it is present
* core/state: go fmt
Co-authored-by: Alexey Akhunov <akhounov@gmail.com > 
						
						
					 
					
						2020-05-07 16:06:31 +03:00 
						 
				 
			
				
					
						
							
							
								gary rong 
							
						 
					 
					
						
						
							
						
						85944c2561 
					 
					
						
						
							
							core/state/snapshot: fix typo ( #21037 )  
						
						
						
						
					 
					
						2020-05-07 10:07:59 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						90af6dae6e 
					 
					
						
						
							
							core/state/snapshot: don't create storage list for non-existing accounts  
						
						
						
						
					 
					
						2020-05-06 17:22:38 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						da59147014 
					 
					
						
						
							
							core/state/snapshot: release iterator after verification  
						
						
						
						
					 
					
						2020-05-04 15:14:08 +03:00 
						 
				 
			
				
					
						
							
							
								gary rong 
							
						 
					 
					
						
						
							
						
						2337aa64eb 
					 
					
						
						
							
							core/state/snapshot: fix trie generator reporter ( #21004 )  
						
						
						
						
					 
					
						2020-04-30 10:43:50 +03:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						4b6f6ffe23 
					 
					
						
						
							
							core/state/snapshot: fix journal nil deserialziation  
						
						
						
						
					 
					
						2020-04-29 18:00:29 +03:00 
						 
				 
			
				
					
						
							
							
								gary rong 
							
						 
					 
					
						
						
							
						
						26d271dfbb 
					 
					
						
						
							
							core/state/snapshot: implement storage iterator ( #20971 )  
						
						... 
						
						
						
						* core/state/snapshot: implement storage iterator
* core/state/snapshot, tests: implement helper function
* core/state/snapshot: fix storage issue
If an account is deleted in the tx_1 but recreated in the tx_2,
the it can happen that in this diff layer, both destructedSet
and storageData records this account. In this case, the storage
iterator should be able to iterate the slots belong to new account
but disable further iteration in deeper layers(belong to old account)
* core/state/snapshot: address peter and martin's comment
* core/state: address comments
* core/state/snapshot: fix test 
						
						
					 
					
						2020-04-29 12:53:08 +03:00 
						 
				 
			
				
					
						
							
							
								gary rong 
							
						 
					 
					
						
						
							
						
						8a2e8faadd 
					 
					
						
						
							
							core/state/snapshot: fix binary iterator ( #20970 )  
						
						
						
						
					 
					
						2020-04-24 14:43:49 +03:00 
						 
				 
			
				
					
						
							
							
								gary rong 
							
						 
					 
					
						
						
							
						
						b9df7ecdc3 
					 
					
						
						
							
							all: seperate consensus error and evm internal error ( #20830 )  
						
						... 
						
						
						
						* all: seperate consensus error and evm internal error
There are actually two types of error will be returned when
a tranaction/message call is executed: (a) consensus error
(b) evm internal error. The former should be converted to
a consensus issue, e.g. The sender doesn't enough asset to
purchase the gas it specifies. The latter is allowed since
evm itself is a blackbox and internal error is allowed to happen.
This PR emphasizes the difference by introducing a executionResult
structure. The evm error is embedded inside. So if any error
returned, it indicates consensus issue happens.
And also this PR improve the `EstimateGas` API to return the concrete
revert reason if the transaction always fails
* all: polish
* accounts/abi/bind/backends: add tests
* accounts/abi/bind/backends, internal: cleanup error message
* all: address comments
* core: fix lint
* accounts, core, eth, internal: address comments
* accounts, internal: resolve revert reason if possible
* accounts, internal: address comments 
						
						
					 
					
						2020-04-22 11:25:36 +03:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						c036fe35a8 
					 
					
						
						
							
							core/state/snapshot: make difflayer account iterator seek operation inclusive  
						
						
						
						
					 
					
						2020-04-21 16:26:02 +02:00 
						 
				 
			
				
					
						
							
							
								Boqin Qin 
							
						 
					 
					
						
						
							
						
						7599999dcd 
					 
					
						
						
							
							snapshot: add Unlock before return ( #20948 )  
						
						... 
						
						
						
						* Forget Unlock in snapshot
* Remove Unlock before panic 
						
						
					 
					
						2020-04-21 11:11:38 +03:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						6402c42b67 
					 
					
						
						
							
							all: simplify and fix database iteration with prefix/start ( #20808 )  
						
						... 
						
						
						
						* core/state/snapshot: start fixing disk iterator seek
* ethdb, rawdb, leveldb, memorydb: implement iterators with prefix and start
* les, core/state/snapshot: iterator fixes
* all: remove two iterator methods
* all: rename Iteratee.NewIteratorWith -> NewIterator
* ethdb: fix review concerns 
						
						
					 
					
						2020-04-15 14:08:53 +03:00 
						 
				 
			
				
					
						
							
							
								Wenbiao Zheng 
							
						 
					 
					
						
						
							
						
						03fe9de2cb 
					 
					
						
						
							
							eth: add debug_accountRange API ( #19645 )  
						
						... 
						
						
						
						This new API allows reading accounts and their content by address range.
Co-authored-by: Martin Holst Swende <martin@swende.se >
Co-authored-by: Felix Lange <fjl@twurst.com > 
						
						
					 
					
						2020-03-31 12:08:44 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						76eed9e50d 
					 
					
						
						
							
							snapshotter/tests: verify snapdb post-state against trie ( #20812 )  
						
						... 
						
						
						
						* core/state/snapshot: basic trie-to-hash implementation
* tests: validate snapshot after test
* core/state/snapshot: fix review concerns 
						
						
					 
					
						2020-03-31 10:25:41 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						074efe6c8d 
					 
					
						
						
							
							core: fix two snapshot iterator flaws, decollide snap storage prefix  
						
						... 
						
						
						
						* core/state/snapshot/iterator: fix two disk iterator flaws
* core/rawdb: change SnapshotStoragePrefix to avoid prefix collision with preimagePrefix 
						
						
					 
					
						2020-03-23 12:34:27 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						fab0ee3bfa 
					 
					
						
						
							
							core/state/snapshot: fix various iteration issues due to destruct set  
						
						
						
						
					 
					
						2020-03-04 15:06:04 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						eff7cfbb03 
					 
					
						
						
							
							core/state/snapshot: handle deleted accounts in fast iterator  
						
						
						
						
					 
					
						2020-03-04 14:38:55 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						328de180a7 
					 
					
						
						
							
							core/state: fix resurrection state clearing and access  
						
						
						
						
					 
					
						2020-03-04 10:22:48 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						dcb22a9f99 
					 
					
						
						
							
							core/state: fix account root hash update point  
						
						
						
						
					 
					
						2020-03-03 16:55:06 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						a4cf279494 
					 
					
						
						
							
							core/state: extend snapshotter to handle account resurrections  
						
						
						
						
					 
					
						2020-03-03 15:52:00 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						6e05ccd845 
					 
					
						
						
							
							core/state/snapshot, tests: sync snap gen + snaps in consensus tests  
						
						
						
						
					 
					
						2020-03-03 09:17:13 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						92ec07d63b 
					 
					
						
						
							
							core/state: fix an account resurrection issue  
						
						
						
						
					 
					
						2020-02-27 15:03:10 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						06d4470b41 
					 
					
						
						
							
							core: fix broken tests due to API changes + linter  
						
						
						
						
					 
					
						2020-02-25 12:51:16 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						19099421dc 
					 
					
						
						
							
							core/state/snapshot: faster account iteration, CLI integration  
						
						
						
						
					 
					
						2020-02-25 12:51:15 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						6ddb92a089 
					 
					
						
						
							
							core/state/snapshot: full featured account iteration  
						
						
						
						
					 
					
						2020-02-25 12:51:14 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						e570835356 
					 
					
						
						
							
							core/state/snapshot: implement iterator priority for fast direct data lookup  
						
						
						
						
					 
					
						2020-02-25 12:51:14 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						e567675473 
					 
					
						
						
							
							core/state/snapshot: move iterator out into its own files  
						
						
						
						
					 
					
						2020-02-25 12:51:13 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						7e38996301 
					 
					
						
						
							
							core/state/snapshot: implement snapshot layer iteration  
						
						
						
						
					 
					
						2020-02-25 12:51:12 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						22c494d399 
					 
					
						
						
							
							core/state/snapshot: bloom, metrics and prefetcher fixes  
						
						
						
						
					 
					
						2020-02-25 12:51:11 +02:00 
						 
				 
			
				
					
						
							
							
								Martin Holst Swende 
							
						 
					 
					
						
						
							
						
						3ad4335acc 
					 
					
						
						
							
							core/state/snapshot: node behavioural difference on bloom content  
						
						
						
						
					 
					
						2020-02-25 12:51:11 +02:00 
						 
				 
			
				
					
						
							
							
								Péter Szilágyi 
							
						 
					 
					
						
						
							
						
						fd39f722a3 
					 
					
						
						
							
							core: journal the snapshot inside leveldb, not a flat file  
						
						
						
						
					 
					
						2020-02-25 12:51:10 +02:00