Daniel Liu
6c5c8c13de
core, trie: rework trie committer #25320 ( #1103 )
...
* all: rework trie and trie committer
* all: get rid of internal cache in trie
* all: fixes
* trie: polish
* core, trie: address comments
* trie: fix imports
* core/state: address comments
* core/state/snapshot: polish
* trie: remove unused code
* trie: update tests
* trie: don't set db as nil
* trie: address comments
* trie: unskip test
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-08-31 15:58:48 +08:00
Daniel Liu
bbc4612d9f
core/state: remove notion of fake storage #24916 ( #1219 )
2025-08-29 05:24:28 +08:00
Daniel Liu
3926b08074
core/state: maintain destruction flag by default #26371 ( #1218 )
2025-08-28 18:51:36 +08:00
Daniel Liu
152e3d9923
core/state: return error when storage trie can't be opened #26350 ( #1216 )
...
This changes the StorageTrie method to return an error when the trie
is not available. It used to return an 'empty trie' in this case, but that's
not possible anymore under PBSS.
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-08-26 15:31:00 +08:00
Daniel Liu
4a4de2319f
core/state: fix typos and comments ( #1206 )
...
Co-authored-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com>
2025-08-26 15:22:37 +08:00
Daniel Liu
06d94520ba
core/state: fix some comments #21450 ( #1201 )
2025-08-21 13:36:45 +08:00
Daniel Liu
628e1e52bb
core/state: make GetCodeSize mirror GetCode implementation wise #21056 ( #1198 )
...
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2025-08-20 15:08:05 +08:00
Daniel Liu
3da4549e07
core/state: move state account to core/types + abstracted write account to trie #23567 ( #1072 )
2025-08-08 09:13:34 +08:00
Daniel Liu
cb888541c5
core, trie: add state metrics #23433 ( #1071 )
2025-08-04 11:19:42 +08:00
Daniel Liu
52f5766059
core: pre-allocate in Copy() #25279 ( #1213 )
2025-07-28 16:57:51 +08:00
Daniel Liu
6f84f67a15
core: rename CommitTrie to commitTrie #25896 ( #1214 )
2025-07-11 10:48:10 +08:00
Daniel Liu
495a8b919a
core/state: simplify meter code #24304 ( #1208 )
2025-07-11 10:15:16 +08:00
Daniel Liu
be97571471
core/state: fix state object deep copy #20100 ( #1190 )
2025-07-11 09:47:37 +08:00
Daniel Liu
801e92b56d
XDCx, consensus: fix some typos ( #1173 )
2025-07-02 14:12:11 +08:00
Daniel Liu
4c5d1bd95e
core: change handling of dirty objects in state #15225 #16485 #16491 ( #1171 )
...
* core: change handling of dirty objects in state #15225
* core/state: fix bug in copy of copy State #16485
* core/state: fix ripemd-cornercase in Copy #16491
2025-07-02 14:07:21 +08:00
Daniel Liu
ff7bcf8d15
core/state: separate hashes and committer, collapse on commit ( #20481 )
2025-03-28 22:34:59 +08:00
Daniel Liu
db4dc24094
core/state: accumulate writes and only update tries when must ( #19953 )
2025-03-28 22:34:59 +08:00
Daniel Liu
3fd025e814
core/state: optimize state object and storage iteration according to EIP-1283 ( #17383 )
2025-03-28 22:34:59 +08:00
Daniel Liu
c08d4ff4a6
core/state, core/vm: implement EIP 6780 ( #27189 )
2025-02-07 14:52:29 +08:00
Daniel Liu
ebb2c3b2ea
all: new empty trie with types.EmptyRootHash instead of null ( #27230 )
2025-02-07 13:04:45 +08:00
Daniel Liu
0f737b4725
core: replace suicide with selfdestruct to improve code consistency ( #27716 )
2025-01-24 16:54:12 +08:00
Daniel Liu
5b48621c36
accouts, core: fix some comments ( #21617 )
2025-01-24 16:18:30 +08:00
Daniel Liu
56e242b06c
core/state: optimize some internals during encoding ( #20038 )
2024-12-28 09:06:30 +08:00
Daniel Liu
2220156b9a
cmd, core, metrics: always report expensive metrics ( #29191 )
...
* cmd, core, metrics: always report expensive metrics
* core, metrics: report block processing metrics as resetting timer
* metrics: update reporter tests
2024-12-13 14:00:13 +08:00
Daniel Liu
db9487f1e8
core: split out detailed trie access metrics from insertion time ( #19316 )
2024-12-13 14:00:11 +08:00
Daniel Liu
464a89074b
all: use unified emptyRootHash and emptyCodeHash ( #26718 )
2024-10-21 17:55:16 +08:00
Wang Gerui
4178a97560
feat: extend eth_call api with state override;
...
extend statedb and state_object with necessary code
2024-04-30 15:57:42 +08:00
Daniel Liu
bbe08ac6e6
core/state: add function GetStorageRoot
2024-03-06 14:10:08 +08:00
Daniel Liu
7a55b9f788
core/state: remove unused methods ReturnGas ( #23092 )
2024-03-01 14:13:23 +08:00
olumuyiwadad
b5abbfed79
new EVM Upgrade
...
- Solidity Upgraded up to v0.8.0
- Fixed and Added eth_chainId
- Fix error in TransactionRecipet
- Reward halving issue fixed
2021-09-21 16:53:46 +05:30
olumuyiwadad
571c41f891
FIx Bad block error.
2021-09-17 17:59:06 +05:30
Péter Szilágyi
5d921fa3a0
core, params: polish net gas metering PR a bit
2018-09-18 16:29:51 +03:00
Martin Holst Swende
caa2c23a38
core,state: finish implementing Eip 1283
2018-09-18 13:08:32 +03:00
Martin Holst Swende
58374e28d9
core, state: initial implementation of Eip-1283
2018-09-18 13:08:28 +03:00
hadv
e3a993d774
core: fix typo in comment code
2018-06-05 09:56:45 +07:00
Felix Lange
b724d1aada
core/state: cache missing storage entries ( #16584 )
2018-04-27 12:13:23 +03:00
Péter Szilágyi
d985b9052a
core/state: avoid linear overhead on journal dirty listing
2018-03-28 09:32:02 +03:00
Martin Holst Swende
958ed4f3d9
core/state: rework dirty handling to avoid quadratic overhead
2018-03-28 09:29:28 +03: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
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
Felix Lange
207bd7d2cd
eth: add debug_storageRangeAt
2017-04-25 02:14:32 +02:00
gary rong
49437a02c9
core/state: make TestSnapshotRandom work again ( #3816 )
...
In `touch` operation, only `touched` filed has been changed. Therefore
in the related undo function, only `touched` field should be reverted.
In addition, whether remove this obj from dirty map should depend on
prevDirty flag.
2017-04-05 00:44:16 +02:00
Péter Szilágyi
94c71c171f
Merge pull request #3723 from karalabe/logger-updates-2
...
Logger updates
2017-02-28 16:55:37 +02:00
Felix Lange
5f7826270c
all: unify big.Int zero checks, use common/math in more places ( #3716 )
...
* common/math: optimize PaddedBigBytes, use it more
name old time/op new time/op delta
PaddedBigBytes-8 71.1ns ± 5% 46.1ns ± 1% -35.15% (p=0.000 n=20+19)
name old alloc/op new alloc/op delta
PaddedBigBytes-8 48.0B ± 0% 32.0B ± 0% -33.33% (p=0.000 n=20+20)
* all: unify big.Int zero checks
Various checks were in use. This commit replaces them all with Int.Sign,
which is cheaper and less code.
eg templates:
func before(x *big.Int) bool { return x.BitLen() == 0 }
func after(x *big.Int) bool { return x.Sign() == 0 }
func before(x *big.Int) bool { return x.BitLen() > 0 }
func after(x *big.Int) bool { return x.Sign() != 0 }
func before(x *big.Int) int { return x.Cmp(common.Big0) }
func after(x *big.Int) int { return x.Sign() }
* common/math, crypto/secp256k1: make ReadBits public in package math
2017-02-28 15:09:11 +01:00
Péter Szilágyi
b117da2db3
core/state: drop most of a logs (useless at this volume)
2017-02-28 15:51:30 +02:00
Péter Szilágyi
d4fd06c3dc
all: blidly swap out glog to our log15, logs need rework
2017-02-23 12:16:44 +02:00
Jeffrey Wilcke
024d41d0c2
core, core/state, core/vm: remove exported account getters ( #3618 )
...
Removed exported statedb object accessors, reducing the chance for nasty
bugs to creep in. It's also ugly and unnecessary to have these methods.
2017-02-22 23:29:59 +01:00
Felix Lange
c8695fae35
logger: remove Core verbosity level ( #3659 )
2017-02-15 10:14:44 +01:00
Jeffrey Wilcke
3fc7c97827
core, core/vm: implemented a generic environment ( #3348 )
...
Environment is now a struct (not an interface). This
reduces a lot of tech-debt throughout the codebase where a virtual
machine environment had to be implemented in order to test or run it.
The new environment is suitable to be used en the json tests, core
consensus and light client.
2016-12-06 02:16:03 +01:00
Jeffrey Wilcke
12d654a6fc
core, core/state: fixed consensus issue added touch revert
...
Implemented proper touch revert journal entries and copied a Parity
consensus bug in order to remain in sync with the current longest chain.
2016-11-24 22:12:54 +01:00