Commit graph

2082 commits

Author SHA1 Message Date
Daniel Liu
bfbb024dc4
core/vm/program: evm bytecode-building utility #30725 (#1801)
In many cases, there is a need to create somewhat nontrivial bytecode. A
recent example is the verkle statetests, where we want a `CREATE2`- op
to create a contract, which can then be invoked, and when invoked does a
selfdestruct-to-self.

It is overkill to go full solidity, but it is also a bit tricky do
assemble this by concatenating bytes. This PR takes an approach that
has been used in in goevmlab for several years.

Using this utility, the case can be expressed as:
```golang
	// Some runtime code
	runtime := program.New().Ops(vm.ADDRESS, vm.SELFDESTRUCT).Bytecode()
	// A constructor returning the runtime code
	initcode := program.New().ReturnData(runtime).Bytecode()
	// A factory invoking the constructor
	outer := program.New().Create2AndCall(initcode, nil).Bytecode()
```

We have a lot of places in the codebase where we concatenate bytes, cast
from `vm.OpCode` . By taking tihs approach instead, thos places can be made a
bit more maintainable/robust.

Co-authored-by: Martin HS <martin@swende.se>
2025-12-08 13:01:55 +05:30
Daniel Liu
6450d5bbb9
core/rawdb: refactor func WriteChainConfig (#1805) 2025-12-08 13:00:25 +05:30
Daniel Liu
e3efe5e0bb
core: refactor read and write section head (#1809) 2025-12-08 12:59:23 +05:30
Daniel Liu
8129ac77cd
core/types: implement encode/decode for TxData interface #27841 (#1795) 2025-12-07 15:52:27 +05:30
Daniel Liu
4881c9445a
core, eth: for types with accurate size calcs, return uint64 #26046 (#1791) 2025-12-07 15:52:03 +05:30
Daniel Liu
1990e73b3c
core, eth/hooks, internal/ethapi: rename xdc sort package (#1707) 2025-12-07 15:47:49 +05:30
Daniel Liu
93d453c4c4
core/txpool: remove a redundant heap.Init #28910 (#1706) 2025-12-07 15:47:20 +05:30
Daniel Liu
62dbd3bceb
core: use slices package for sorting #27489 #27909 (#1701) 2025-12-07 15:43:24 +05:30
wit liu
5ada9b8866
core: fix unused warnings (#1811) 2025-12-07 15:39:31 +05:30
Daniel Liu
940fd2adbd
core, trie: port changes from pbss #26637 (#1127) 2025-12-07 15:38:38 +05:30
wit liu
66e96b507c
all: use 0x-prefix for Address type in log (#1830) 2025-12-07 15:36:36 +05:30
Daniel Liu
c6c5778632
params: define prague block #26481 #26880 (#1836) 2025-12-07 15:36:02 +05:30
Daniel Liu
4c098ddf1f
core/vm: fold EVMInterpreter into EVM #32352 (#1838) 2025-12-04 10:31:40 +05:30
Daniel Liu
ec08863ba0
all: use WaigGroup.Go() to simplify code (#1699) 2025-11-29 17:17:08 +05:30
wit liu
b8feb5cffc
core/state: reduce one alloc #33024 (#1784) 2025-11-24 11:00:15 +05:30
Daniel Liu
6235de71ba
all: rework statedb utils (#1785) 2025-11-18 11:26:28 +05:30
Daniel Liu
0050bef807
all: rework trc21 (#1777) 2025-11-18 11:24:56 +05:30
Daniel Liu
f8553d5871
core, miner: fix inconsistent tx blacklist enforcement, close XFN-98 (#1674) 2025-11-18 11:24:08 +05:30
Daniel Liu
3b3aa9b013
core, trie: prepare for path-based trie storage #26603 (#1126)
This PR moves some trie-related db accessor methods to a different file, and also removes the schema type. Instead of the schema type, a string is used to distinguish between hashbased/pathbased db accessors.
This also moves some code from trie package to rawdb package.

This PR is intended to be a no-functionality-change prep PR for #25963 .

---------

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2025-11-18 11:20:00 +05:30
Daniel Liu
d47260ea98
core, trie: clean up trie interface #26388 (#1125)
* all: cleanup trie interface

* eth, trie: address comments

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-11-18 11:19:27 +05:30
Daniel Liu
07328dcec4
core, eth, trie: abstract node scheme #25532 (#1123)
This PR introduces a node scheme abstraction. The interface is only implemented by `hashScheme` at the moment, but will be extended by `pathScheme` very soon.

Apart from that, a few changes are also included which is worth mentioning:

-  port the changes in the stacktrie, tracking the path prefix of nodes during commit
-  use ethdb.Database for constructing trie.Database. This is not necessary right now, but it is required for path-based used to open reverse diff freezer

Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2025-11-17 11:25:08 +05:30
wit liu
39eb15531d
all: fix whitespace error of golangci-lint, remove extra empty lines (#1676) 2025-11-17 11:16:09 +05:30
Daniel Liu
1fa780768f
core/rawdb: remove unused freezerdb (#1748) 2025-11-17 11:15:06 +05:30
Daniel Liu
73061af2c6
core/types: fix immutability guarantees in Block #27844, close XFN-82 (#1727) 2025-11-16 11:23:22 +05:30
Daniel Liu
b2664ec363
cmd, core, eth: disable prefetch by default, fix #1718 (#1719) 2025-11-16 11:22:48 +05:30
Daniel Liu
e34bbe10c6
core: persist bad blocks #21827 #27489 (#1771) 2025-11-15 16:51:21 +05:30
Daniel Liu
c66f8f9fb2
core/state: fix SetStorage override behavior #30185 (#1764) 2025-11-15 16:50:26 +05:30
Daniel Liu
71e8e27f84
all: remove mongodb support in XDCx (#1679)
* all: remove SDK node

* cmd: remove XDCXDBEngineFlag

* cmd: remove XDCXDBConnectionUrlFlag

* cmd, XDCx: remove XDCXDBReplicaSetNameFlag

* XDCx: remove ConnectionUrl

* all: remove mongodb support

* cmd: remove XDCXEnabledFlag
2025-11-15 16:50:02 +05:30
Daniel Liu
8f0ad36af6
core/state: get rid of field pointer in journal #30361 (#1761) 2025-11-15 16:48:52 +05:30
Daniel Liu
fc9ca96104
core/types, miner: remove unused parameter signers for NewTransactionsByPriceAndNonce() (#1732) 2025-11-14 22:37:20 +05:30
Daniel Liu
7a3ac998a3
eth: quick canceling block inserting when debug_setHead is invoked #32067, close XFN-142 (#1728) 2025-11-14 21:52:35 +05:30
Daniel Liu
eef5242fa3
all: pre-allocate memory for slices and maps, close XFN-148 (#1714) 2025-11-14 20:13:36 +05:30
wit liu
a9db265d4e
core/state: fix bug about getting stable LogsHash result #33082 (#1768) 2025-11-14 20:07:32 +05:30
Daniel Liu
7d4578496c
core: fix runtime error index out of range [0] with length 0, close #1765 (#1766) 2025-11-14 20:05:37 +05:30
wit liu
7641bcfd19
core: replace if-else chain with tagged switch on err (#1751) 2025-11-14 20:04:33 +05:30
wit liu
d48adc520f
core/types: remove unused var #32989 (#1753) 2025-11-14 20:03:48 +05:30
Daniel Liu
782a7ff5cb
all: fix typos, close XFN-23 (#1725) 2025-11-14 20:02:34 +05:30
wit liu
891a386a58
core/state: using maps.Clone #29365 (#1754) 2025-11-14 20:00:59 +05:30
wit liu
5b873ea522
core :use batch to write chain config (#1760) 2025-11-14 19:59:10 +05:30
Daniel Liu
1eec428928
blockchain: ensure state exists for prefetcher #20627, fix #1738 (#1742) 2025-11-14 19:58:35 +05:30
Daniel Liu
d5a03ab9e9
core, eth: fix overuse Of log.Crit, close XFN-102 (#1648)
* core: fix overuse Of `log.Crit`, close XFN-102

* eth: fix overuse Of `log.Crit`, close XFN-102
2025-11-14 16:28:36 +05:30
Daniel Liu
2c40021f71
core/state, internal/ethapi: GetAccountInfo handle error properly, close XFN-79 (#1663) 2025-11-14 16:28:18 +05:30
Daniel Liu
956ebb2b02
core, docs: add solidity document, close XFN-68 (#1670) 2025-11-14 16:25:42 +05:30
Daniel Liu
28a4f25166
cmd, core, eth, trie: track deleted nodes #22225 #25757 (#1120)
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-11-12 13:32:22 +05:30
Wanwiset Peerapatanapokin
7aaa541db1
consensus: implement DeepCopy() in PoolObj, close XFN-04 (#1723)
* add DeepCopy() for PoolObj

* PoolObj: use deepcopies and optimize locks

* optimize code
2025-11-10 21:56:10 +04:00
Wanwiset Peerapatanapokin
845137849d
consensus: change os.Exit to return error (#1653) 2025-11-10 21:55:45 +04:00
Daniel Liu
3af629078a
internal/ethapi: eth_simulateV1 #27720 (#1606) 2025-11-08 16:09:18 +05:30
Daniel Liu
13ed19bcf2
all: remove XDCx and XDCxlending public API, close XFN-74 XFN-134 (#1675)
* internal: remove XDCx public API

* XDCx, XDCxlending: remove api

* ethclient: remove SendOrderTransaction and SendLendingTransaction

* XDCx, XDCxlending: remove unused variables and function

* eth, internal/ethapi: remove function `OrderStats()`
2025-11-04 11:19:16 +05:30
Daniel Liu
851bdc45db
core: skip AddBalance for special-tx, close XFN-67 (#1629) 2025-11-04 11:16:26 +05:30
Daniel Liu
5732c4b11b
core/txpool: protect cache with mutex #27898, close XFN-65 (#1630) 2025-11-03 14:55:30 +05:30