Commit graph

2240 commits

Author SHA1 Message Date
Daniel Liu
52f5766059
core: pre-allocate in Copy() #25279 (#1213) 2025-07-28 16:57:51 +08:00
Daniel Liu
2eac17980c
core/state: avoid statedb.dbErr due to emptyCode #21051 (#1197) 2025-07-28 16:55:29 +08:00
Daniel Liu
cdd48dd4de
core/state: fix staticcheck warnings #20357 (#1193) 2025-07-28 16:53:27 +08:00
Daniel Liu
77522e51ec
core, trie: decode the value for storage dump #19943 (#1189)
* core, trie: decode the value for storage dump

* core/state: address comment

Co-authored-by: gary rong <garyrong0905@gmail.com>
2025-07-28 16:52:06 +08:00
benjamin202410
db9c3de1dc
add syncinfo pool (#1236)
* add syncinfo message into pool for process later

* add missing file back

---------

Co-authored-by: liam.lai <liam.lai@us>
2025-07-28 01:43:41 -07:00
Daniel Liu
85f08c7732
eth: skip VerifyHeader in traceBlock to fix #1185 (#1265) 2025-07-26 18:18:50 +08:00
Daniel Liu
7bb2c7793b
core/vm: delete unused error #29062 (#1245) 2025-07-26 17:45:31 +08:00
Daniel Liu
6f6e08f83b
core/vm: prevent overflow #29023 (#1244) 2025-07-26 17:44:45 +08:00
Daniel Liu
42d3549e2c
core: using math.MaxUint64 instead of 0xffffffffffffffff #29022 #29024 (#1243) 2025-07-26 17:43:36 +08:00
Daniel Liu
5561c27308
core: fix typos (#1237)
fixes various typos in core

Co-authored-by: 0xbstn <bastien-bouge@hotmail.fr>
2025-07-26 17:42:50 +08:00
Daniel Liu
32b929e781
core/vm/runtime: add Random field to config #28001 (#1234) 2025-07-26 17:41:56 +08:00
Daniel Liu
8f76709a10
core/vm, go.mod: update uint256 to v1.3.2 and use faster method #30868 (#1241) 2025-07-17 17:56:53 +08:00
Daniel Liu
4b4980d949
core/vm: set basefee to 0 internally on eth_call #28470 (#1238) 2025-07-17 17:54:23 +08:00
Daniel Liu
dc01dba464
core/vm: minor code formatting #28199 (#1235)
Adding a space beween function opOrigin() and opcCaller() in instruciton.go.
Adding a space beween function opkeccak256()  and opAddress() in instruciton.go.

Co-authored-by: hzysvilla <ecjgvmhc@gmail.com>
2025-07-17 17:53:02 +08:00
Daniel Liu
c46302cf65
all: fix invalid signer list on checkpoint block for trace api #1185 (#1186) 2025-07-12 06:56:30 +08:00
Daniel Liu
ae006030c6
core: fill blockNumber in logs #26345 (#1215) 2025-07-11 10:53:48 +08:00
Daniel Liu
6f84f67a15
core: rename CommitTrie to commitTrie #25896 (#1214) 2025-07-11 10:48:10 +08:00
Daniel Liu
34a245fbc8
all: use common.FileExist for checking file existence #24748 (#1212) 2025-07-11 10:42:51 +08:00
Daniel Liu
f272ce1123
core/rawdb: add func HasCodeWithPrefix and HasTrieNode #24117 (#1210) 2025-07-11 10:37:10 +08:00
Daniel Liu
9a50df0b62
core/rawdb: do prefixed lookup first #24288 (#1209)
Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-07-11 10:22:26 +08:00
Daniel Liu
495a8b919a
core/state: simplify meter code #24304 (#1208) 2025-07-11 10:15:16 +08:00
Daniel Liu
906f07736e
core/state: remove unuseful code #23092 (#1207) 2025-07-11 10:09:56 +08:00
Daniel Liu
f98fbc7dc7
core/state: fix database leak and copy tests #19306 (#1192)
Co-authored-by: zcheng9 <zcheng9@hawk.iit.edu>
2025-07-11 09:58:59 +08:00
Daniel Liu
ef0fe4ed95
core/state: revert noop finalise, fix copy-commit-copy #20113 (#1191) 2025-07-11 09:52:31 +08:00
Daniel Liu
be97571471
core/state: fix state object deep copy #20100 (#1190) 2025-07-11 09:47:37 +08:00
Daniel Liu
16638e9e17
core/state: avoid unnecessary conversions #19870 (#1188) 2025-07-11 09:42:20 +08:00
Daniel Liu
220b2f4174
core/state: fix random test args #19255 (#1187)
Co-authored-by: Sheldon <11510383@mail.sustc.edu.cn>
2025-07-11 09:37:51 +08:00
Daniel Liu
618a8dd247
core, cmd: streaming json output for command #15475 (#1184) 2025-07-11 09:29:13 +08:00
Daniel Liu
9affb6a582
core/state: memory efficient, add AddPreimage test #16663 (#1182) 2025-07-02 14:53:00 +08:00
Daniel Liu
b4f4b95634
core/state: rename new variable #18301 (#1178) 2025-07-02 14:13:47 +08:00
Daniel Liu
957e9d8d05
core/state: remove lock #18065 (#1174) 2025-07-02 14:13:06 +08:00
Daniel Liu
801e92b56d
XDCx, consensus: fix some typos (#1173) 2025-07-02 14:12:11 +08:00
Daniel Liu
e24293a49c
core, eth: fix tracer dirty finalization #16588 (#1172) 2025-07-02 14:11:22 +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
JukLee0ira
87ed24a113
all: update to golangci-lint 1.61.0 #30587 (#1181)
Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-07-01 18:10:05 +08:00
Daniel Liu
dbe173e794
core, trie: speed up some tests with quadratic processing flaw #21987 (#1057) 2025-06-25 16:17:05 +08:00
JukLee0ira
a74b87307c
all: use strings.EqualFold for string comparison #24890 (#1134) 2025-06-23 16:00:32 +08:00
Daniel Liu
937b3d75e0
core, eth, trie: prepare trie sync for path based operation #21504 (#1046) 2025-06-21 08:30:25 +08:00
Daniel Liu
7feff61647
core/state: remove toAddr helper in tests #22772 (#1100) 2025-06-17 13:33:47 +08:00
Daniel Liu
6200e8d7de
core, trie: change format 0x%x to %#x #25221 (#1094) 2025-06-17 13:31:20 +08:00
Daniel Liu
f07824db20
core, ethdb, tests, trie: implement NewBatchWithSize API for batcher #24392 (#1085) 2025-06-17 13:26:50 +08:00
Daniel Liu
45d89bd4d1
trie: faster snapshot generation #22504 (#1062) 2025-06-17 13:13:14 +08:00
Daniel Liu
93c2745b7b
all: disable recording preimage of trie keys #21402 (#1054) 2025-06-17 13:10:47 +08:00
Daniel Liu
e8c9fdde0f
eth/downloader: refactor downloader + queue #21263 (#1041)
* eth/downloader: refactor downloader + queue

downloader, fetcher: throttle-metrics, fetcher filter improvements, standalone resultcache

downloader: more accurate deliverytime calculation, less mem overhead in state requests

downloader/queue: increase underlying buffer of results, new throttle mechanism

eth/downloader: updates to tests

eth/downloader: fix up some review concerns

eth/downloader/queue: minor fixes

eth/downloader: minor fixes after review call

eth/downloader: testcases for queue.go

eth/downloader: minor change, don't set progress unless progress...

eth/downloader: fix flaw which prevented useless peers from being dropped

eth/downloader: try to fix tests

eth/downloader: verify non-deliveries against advertised remote head

eth/downloader: fix flaw with checking closed-status causing hang

eth/downloader: hashing avoidance

eth/downloader: review concerns + simplify resultcache and queue

eth/downloader: add back some locks, address review concerns

downloader/queue: fix remaining lock flaw

* eth/downloader: nitpick fixes

* eth/downloader: remove the *2*3/4 throttling threshold dance

* eth/downloader: print correct throttle threshold in stats

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2025-06-17 13:01:06 +08:00
wgr523
e13265a7d7
record total minted into smart contract (#1026)
* feat: record total minted into smart contract

* feat: GetCurrentTotalMinted API
2025-06-16 02:31:33 -07:00
Daniel Liu
6395c15280
core/state, eth, trie: stabilize memory use, fix memory leak #21491 (#1040) 2025-05-20 15:14:47 +08:00
Daniel Liu
4fabc43a01
core/vm: fix invalid merkle root caused by PR #627 (#1033) 2025-05-14 16:47:53 +08:00
Daniel Liu
26a9ea539f
core, rpc: speed up tests #28461 (#1008) 2025-04-29 16:57:58 +08:00
Daniel Liu
57c40154be core: use atomic type #27011 2025-04-28 16:57:56 +08:00
Daniel Liu
9a06e129b8 core: simplify atomic store after writeBlockWithState #20798 2025-04-28 16:57:56 +08:00
Daniel Liu
1d3e5cb455 core: prefetch next block state concurrently #19328 2025-04-28 16:57:56 +08:00
Daniel Liu
c02ab17b17
core: use headers only where blocks are unnecessary #19261 (#984) 2025-04-28 06:46:40 +08:00
Daniel Liu
08dbbe705d core: fix error in block iterator #18986 2025-04-25 08:03:58 +08:00
Daniel Liu
ff435e081f core: rework blockchain import #17973 2025-04-25 08:03:58 +08:00
Daniel Liu
a997425b03
all: fix warning of DeepEqual on error #23624 (#960) 2025-04-24 18:31:47 +08:00
Daniel Liu
ab0ce75ede
core: simplify code of trading and lending state (#949) 2025-04-24 18:00:21 +08:00
Daniel Liu
733a1be4dc
common, core: add block age into info logs #17718 (#947) 2025-04-24 17:56:54 +08:00
Daniel Liu
e974d96977
core/txpool: accept non-local transaction with zero tip (#950) 2025-04-21 16:11:43 +08:00
Daniel Liu
b9a6c8c32d
cmd, core, eth, trie: add trie read caching layer (#18087) (#946) 2025-04-16 17:27:43 +08:00
Daniel Liu
734abb26dc Revert "core/types: fix wrong hash after EIP-1559 for EncodeIndex in PR #933 (#939)"
This reverts commit 0cc4813e48.
2025-04-12 11:30:50 +08:00
Daniel Liu
0cc4813e48
core/types: fix wrong hash after EIP-1559 for EncodeIndex in PR #933 (#939) 2025-04-09 00:05:21 +08:00
Daniel Liu
3eb9f63513 core/types: implement DerivableList interface for transactions and receipts (#21502) 2025-04-07 16:44:32 +08:00
Daniel Liu
5b8c267122 trie: use trie.NewStackTrie instead of new(trie.Trie) (#22246) 2025-04-07 16:44:32 +08:00
Daniel Liu
54f73e471f trie: Derivesha with stacktrie (#21407) 2025-04-07 16:44:32 +08:00
Daniel Liu
a4c7d7f458 all: clean duplicate constants in package common 2025-04-07 16:43:01 +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
c73a0aa929 core/state: fix state iterator (#19127) 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
f2f2044470 core/txpool: fix zero tip tx always pending 2025-03-25 11:56:46 +08:00
Daniel Liu
a9b9f53701 core, eth, trie: add a prefix to contract code (21080) 2025-03-24 22:31:03 +08:00
Daniel Liu
6285a4fe05 core: improve commit genesis 2025-03-20 14:15:09 +08:00
Daniel Liu
6ec0d13873 core/txpool, crypto, node: fix os.CreateTemp in test (#31172) 2025-03-19 18:02:46 +08:00
Daniel Liu
3856e16d8c core: initialize current block/fastblock atomics to nil (19352) 2025-03-19 17:46:12 +08:00
Daniel Liu
3837d0c2cc core, cmd/XDC: fix wrong hash caused by EIP-1559 number when init genesis 2025-03-13 16:55:09 +08:00
Daniel Liu
0273448333 core, eth/downloader: fix validation and downloader printout flaw (#17974) 2025-03-11 13:24:02 +08:00
Daniel Liu
2697703c0f core, eth, params: make indexer configurable (#17188) 2025-03-10 15:41:53 +08:00
Daniel Liu
f039b26e7a light: CHT and bloom trie indexers working in light mode (#16534) 2025-03-06 15:30:48 +08:00
Daniel Liu
3976617ac2 core, light, params: clean genesis hash 2025-03-05 14:30:39 +08:00
Daniel Liu
6e8fe5121d eth/downloader: speed up tests by generating chain only once (#17916) 2025-03-01 15:55:27 +08:00
Daniel Liu
588dcd35ce cmd, common, core, eth: optimize rollback by flag 2025-03-01 11:34:32 +08:00
Daniel Liu
3adec81483 downloader: different sync strategy (#18085) 2025-02-26 15:06:08 +08:00
Daniel Liu
cc5359e063 core: fix integer divide by zero in function ValidateHeaderChain 2025-02-26 14:30:57 +08:00
JukLee0ira
620eaa7443 core: remove the duplicate func getProcInterrupt 2025-02-26 14:27:21 +08:00
Daniel Liu
7017077508 cmd/XDC, core/rawdb: add db command inspect 2025-02-21 15:32:35 +08:00
Daniel Liu
b60396a233 core, internal/ethapi: improve function IsSpecialTransaction 2025-02-20 12:48:17 +08:00
Daniel Liu
4f8d11e11d core: fix BlockSigner tx cause debug API fail after EIP-1559 2025-02-20 12:35:24 +08:00
Daniel Liu
783d46f29e core/types: remove unused error variables 2025-02-20 11:46:49 +08:00
Daniel Liu
98cff5d6c2 all: remove network rinkeby 2025-02-19 15:52:29 +08:00
Daniel Liu
54b4be1aa2 cmd, core: add flag mainet and devnet 2025-02-19 14:24:20 +08:00
Daniel Liu
1d653e57ab cmd, core: merge flags testnet and apothem 2025-02-19 14:24:20 +08:00
Daniel Liu
30195e88ee core/vm: enable cancun instruction set 2025-02-19 14:20:45 +08:00
Daniel Liu
6eebfd340f core: tidy up genesis alloc 2025-02-19 14:15:09 +08:00
Daniel Liu
3fc7eeff8a params: print chain configuration in more detail 2025-02-17 10:05:50 +08:00
Daniel Liu
cfc8cca674 common: refactor constants 2025-02-17 09:13:40 +08:00
Daniel Liu
511a372f14 core/vm: BLOBHASH opcode 0x49 (#27356) 2025-02-11 18:31:30 +08:00
Daniel Liu
d8fb27b987 all: clean up and properly abstract database accesses (#19021) 2025-02-11 18:28:50 +08:00
Daniel Liu
af4a3b0f9f core/vm: implement BLOBBASEFEE opcode 0x4a (#28098) 2025-02-10 10:58:59 +08:00
Daniel Liu
c08d4ff4a6 core/state, core/vm: implement EIP 6780 (#27189) 2025-02-07 14:52:29 +08:00
Daniel Liu
186d49b1f3 core/vm: use types.EmptyCodeHash (#27729) 2025-02-07 13:50:48 +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
6d40cdf7c0 core/vm: implement EIP-5656, mcopy instruction (#26181) 2025-02-06 16:54:19 +08:00
Daniel Liu
240de84287 core/vm: define cancun + enable 1153 (tstore/tload) in cancun (#27663) 2025-02-05 18:16:17 +08:00
Daniel Liu
07fd1c64cf core/vm: order opcodes properly (#27113) 2025-02-05 18:16:17 +08:00
Daniel Liu
4bbcd988b2 params: remove EIP150Hash from chainconfig (#27087) 2025-02-05 18:16:17 +08:00
Daniel Liu
3f58066879 all: remove debug field from vm config (#27048) 2025-02-05 18:16:17 +08:00
joohhnnn
6473d18cdb core/vm: clarify comment (#27045) 2025-02-05 18:16:17 +08:00
Daniel Liu
551e3594cf core/vm: use atomic.Bool (#26951) 2025-02-05 18:16:17 +08:00
Daniel Liu
4190465c53 core/vm: expose jumptable constructors (#26880) 2025-02-05 18:16:17 +08:00
Daniel Liu
e7d8e14298 core: improve the format of report block 2025-02-05 12:59:20 +08:00
Daniel Liu
ef71887d7a accounts, cmd/geth, core: close opened files (#29598)
* fix: open file used up but not closed

* feat: more same case

* feat: accept conversation
2025-01-24 16:54:12 +08:00
Daniel Liu
b6f3007af1 core: move genesis alloc types to core/types (#29003) 2025-01-24 16:54:12 +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
5b10b2441c all: use T.TempDir to create temporary test directories (#24633) 2025-01-24 16:54:08 +08:00
Daniel Liu
fb85aca8d8 accounts/abi/bind: allow specifying signer on transactOpts (#21356) 2025-01-24 16:18:30 +08:00
Daniel Liu
2ff9f336ed core: improve contextual information on core errors (#21869) 2025-01-24 16:18:30 +08:00
Daniel Liu
d8c9ad3c9f all: replace RWMutex with Mutex in places where RLock is not used (#21622) 2025-01-24 16:18:30 +08:00
Daniel Liu
5b48621c36 accouts, core: fix some comments (#21617) 2025-01-24 16:18:30 +08:00
Daniel Liu
b0063d39b9 accounts/abi: ABI explicit difference between Unpack and UnpackIntoInterface (#21091)
* accounts/abi: refactored abi.Unpack

* accounts/abi/bind: fixed error

* accounts/abi/bind: modified template

* accounts/abi/bind: added ToStruct for conversion

* accounts/abi: reenabled tests

* accounts/abi: fixed tests

* accounts/abi: fixed tests for packing/unpacking

* accounts/abi: fixed tests

* accounts/abi: added more logic to ToStruct

* accounts/abi/bind: fixed template

* accounts/abi/bind: fixed ToStruct conversion

* accounts/abi/: removed unused code

* accounts/abi: updated template

* accounts/abi: refactored unused code

* contracts/checkpointoracle: updated contracts to sol ^0.6.0

* accounts/abi: refactored reflection logic

* accounts/abi: less code duplication in Unpack*

* accounts/abi: fixed rebasing bug

* fix a few typos in comments

* rebase on master

Co-authored-by: Guillaume Ballet <gballet@gmail.com>
2025-01-24 16:18:30 +08:00
Daniel Liu
6d17a42edb all: replace t.Log(); t.FailNow() with t.Fatal() (#19849) 2025-01-24 16:18:29 +08:00
Daniel Liu
002fac8b14 all: remove the duplicate 'the' in annotations (#17509) 2025-01-24 16:18:28 +08:00
Daniel Liu
85fc56733f core: lookup txs by block number instead of block hash (#19431) 2025-01-24 15:52:43 +08:00
Daniel Liu
2b8b7e68f7 all: avoid storing computable receipt metadata (#19345) 2025-01-24 15:52:43 +08:00
Daniel Liu
92f0d07e6d core: remove unnecessary fields in log (#17106 #19182) 2025-01-24 15:52:43 +08:00
Daniel Liu
97c50f97bb all: add read-only option to database 2025-01-24 14:24:39 +08:00
JukLee0ira
197291443f core, light: handle the nil return value of GetBlockNumber, fix #517 2025-01-23 13:57:07 +08:00
Daniel Liu
cbdf0e69f9 core: refactor function reorg (#23761, #24616, #24996, #30600) 2025-01-22 15:23:37 +08:00
Daniel Liu
adba311c5c
Merge pull request #788 from JukLee0ira/Migrate-to-rawdb
core/rawdb: separate raw database access to own package
2025-01-22 15:21:38 +08:00
JukLee0ira
653b59710e core/rawdb: separate raw database access to own package (#16666 #19345) 2025-01-22 15:19:39 +08:00
Daniel Liu
6794504d40 all: update files by 'go generate ./...' 2025-01-22 15:10:52 +08:00
Daniel Liu
5740ca1fe4 core/types: remove extra byte when EncodeRLP for Receipt 2025-01-22 15:07:10 +08:00
JukLee0ira
f7b591ffe3 eth/tracers: add a golang tracer to locate contracts (#23708) 2025-01-22 12:37:37 +08:00
Daniel Liu
588f61661c build: add imports for go generate tools (#24682) 2025-01-20 11:52:59 +08:00
Daniel Liu
47a67158e5 core/types: remove generate directive for gen_tx_json.go 2025-01-14 11:50:20 +08:00
Daniel Liu
911fe219df
Merge pull request #779 from gzliudan/core_blockchain
upgrade the core package for reorg
2024-12-28 13:05:40 +08:00
benjamin202410
3e62a4c611
Merge pull request #778 from XinFinOrg/release-br-v2.4.6-beta1-dev-upgrade
Release br v2.4.6 beta1 merge back to dev upgrade
2024-12-27 20:07:41 -08:00
Daniel Liu
c8c39efb63 core: remove unnecessary log copy (#27475) 2024-12-28 10:45:00 +08:00
Daniel Liu
d03859d49e core: update the fast block on chain import at the end of the fast sync phase (#23576) 2024-12-28 10:44:54 +08:00
Daniel Liu
2baadc6e87 core: improve shutdown synchronization in BlockChain (#22853) 2024-12-28 10:44:49 +08:00
Daniel Liu
2d5dc550d0 core/rawdb: rename WriteTxLookupEntries to WriteTxLookupEntriesByBlock (#21480) 2024-12-28 10:44:42 +08:00
Daniel Liu
d7e0e9d734 core: write chain data in atomic way (#20287) 2024-12-28 10:44:36 +08:00
Daniel Liu
1c555b2def core, light: get rid of the dual mutexes (#18436) 2024-12-28 10:44:30 +08:00
Daniel Liu
6e33633d28 common: drop BigMin and BigMax, they pollute our dep graph (#30645) 2024-12-28 09:06:31 +08:00
Daniel Liu
6ec35b9644 all: get rid of custom MaxUint64 and MaxUint64 (#30636) 2024-12-28 09:06:31 +08:00
Daniel Liu
ff13d16fe5 core/vm: make structlog/json-log stack hex again (#28628) 2024-12-28 09:06:31 +08:00
Daniel Liu
4cc2b2ea5f tests/fuzzers: move fuzzers into native packages (#28467) 2024-12-28 09:06:31 +08:00
Daniel Liu
441f8ed70c common: add variable MaxHash (#28306) 2024-12-28 09:06:31 +08:00
Péter Szilágyi
39e9d8f94d common/prque: generic priority queue (#26290) 2024-12-28 09:06:31 +08:00
Daniel Liu
28739d7863 common: remove usage of deprecated function (#21610) 2024-12-28 09:06:30 +08:00
Daniel Liu
56e242b06c core/state: optimize some internals during encoding (#20038) 2024-12-28 09:06:30 +08:00
Daniel Liu
cd1ff5d322 common: remove function Big() for type Address (#19210) 2024-12-28 09:06:30 +08:00
Daniel Liu
f19422e1c7 cmd/utils: relinquish GC cache to read cache in archive mode (#18991) 2024-12-28 09:06:30 +08:00
Daniel Liu
89c51c5e69 common: improve documentation comments (#16701) 2024-12-28 09:06:30 +08:00
Daniel Liu
240757a1ce all: remove empty function SaveData() 2024-12-28 09:04:02 +08:00
JukLee0ira
48d1f22fde all: simplify function TransitionDb (#20830) 2024-12-28 09:02:48 +08:00
liam.lai
77f9cc59ec merge from dev-upgrade 2024-12-27 10:03:54 -08:00
Daniel Liu
e2afaec8b0 core: remove unused variables in BlockChain struct 2024-12-25 17:25:51 +08:00
Daniel Liu
a5c48e77bd core: remove unused function writeHeader 2024-12-25 17:22:28 +08:00
Daniel Liu
6114a3a13b core: remove unused function reorgTxMatches 2024-12-25 17:17:25 +08:00
liam.lai
00785b096f fix tc cross epoch different masternode counts issue 2024-12-22 19:34:09 -08:00
Daniel Liu
82ff8c19a0 all: remove uses of untyped golang-lru 2024-12-21 14:39:26 +08:00
JukLee0ira
7491a7ba74 all: improve EstimateGas API (#20830) 2024-12-21 14:35:44 +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
35380508fc metrics, cmd/geth: informational metrics (prometheus, influxdb, opentsb) (#24877)
This chang creates a GaugeInfo metrics type for registering informational (textual) metrics, e.g. geth version number. It also improves the testing for backend-exporters, and uses a shared subpackage in 'internal' to provide sample datasets and ordered registry.

Implements #21783

---------

Co-authored-by: Martin Holst Swende <martin@swende.se>
2024-12-13 14:00:13 +08:00
Daniel Liu
1eb2ed8293 core, metrics, p2p: expose various counter metrics for grafana (#19692) 2024-12-13 14:00:11 +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
4202f23897 core: more detailed metrics for block processing (#18119) 2024-12-13 14:00:11 +08:00
Daniel Liu
ad5e7d6db3 crypto: add SignatureLength constant and use it everywhere (#19996) 2024-12-09 17:48:59 +08:00
Daniel Liu
92fc843683 crypto: switch over to upstream sha3 package (#18390) 2024-12-09 17:48:59 +08:00
Daniel Liu
733c298b0e core/vm: improve EVM reusability (#26341) 2024-12-09 17:47:05 +08:00
Daniel Liu
0d0ea46bfa core: implement EIP-3651, warm coinbase (#25819) 2024-12-09 17:44:30 +08:00
Daniel Liu
4855f19261 core: fix preCheck for RandomizeSMC after EIP-1559 2024-11-19 14:19:57 +08:00
Daniel Liu
4cac1865ba all: remove noop vm config flags (#23111) 2024-11-15 20:12:49 +08:00
Daniel Liu
ed242b4763 all: implement EIP-1153 transient storage (#26003) 2024-11-15 19:39:18 +08:00
Daniel Liu
aedfea681b all: make logs a bit easier on the eye to digest (#22665) 2024-11-15 10:02:41 +08:00
Daniel Liu
c254b08443 core/txpool: fix very high pending special transactions 2024-11-07 17:47:59 +08:00
Daniel Liu
da9d2e29f5 core/types: fix discrepancy in receipt.EffectiveGasPrice json encoding tags (#27114) 2024-11-01 11:36:53 +08:00
Daniel Liu
a294c2080d all: fix null effectiveGasPrice 2024-11-01 11:36:53 +08:00
Daniel Liu
2a9d450101 core/types: add EffectiveGasPrice in Receipt (#26713) 2024-11-01 11:36:53 +08:00
Daniel Liu
9b20ac785e consensus/misc: move eip1559 into a package (#27828) 2024-11-01 11:36:53 +08:00
Daniel Liu
f64aea4ba0 core/vm: implement EIP-3860: Limit and meter initcode (#23847) 2024-11-01 11:36:53 +08:00
Péter Szilágyi
cda663db64 core/types: rename tx files to group them better together (#26044) 2024-11-01 11:36:53 +08:00
Daniel Liu
8b2e8d9b3a all: refactor txpool into it's own package in prep for 4844 (#26038) 2024-11-01 11:36:53 +08:00
Martin Holst Swende
05797846fc core: fix datarace in txpool, fixes #25870 and #25869 (#25872)
core: fix datarace in txpool pendingnoce, fixes #25870
2024-11-01 11:36:53 +08:00
Seungbae Yu
66763aa8ae core: don't cache zero nonce in txNoncer (#25603)
This changes the nonce cache used by TxPool to not store cached
nonces for non-existing accounts.
2024-11-01 11:36:53 +08:00
Seungbae Yu
a410f7b38e core: preallocate maps in TxPool helper methods (#25737) 2024-11-01 11:36:53 +08:00
aaronbuchwald
7237811928 core: fix typo in txpool (#25149)
Fix typo in txPool truncateQueue comment
2024-11-01 11:36:53 +08:00
zhaochonghe
dc94ad52f6 core: fix the order of address in queue (#24908)
reverse the order of address in queue
2024-11-01 11:36:53 +08:00
Emmanuel T Odeke
59bc3bfd09 eth/tracers/logger: remove unnecessary comparisons in accessList.equal (#24663)
This change removes extraneous/unnecessary checks for equality
when comparing 2 accessList values A and B. Given that we validate that
their lengths of A and B are equal, if so and if every element in A is
in B, reflexively every element in B is already in A. If that weren't
the case and an element g existed in A but not in B, that would mean
that there is an extra element and hence a mathematical contradiction.

Fixes #24658
2024-11-01 11:36:53 +08:00
Daniel Liu
7cb33cc57d core/types: improve error for too short transaction / receipt encoding (#24256) 2024-11-01 11:36:53 +08:00
Daniel Liu
d1dc9e383c core/statedb: always clear out access list when setting a new one (#24515) 2024-11-01 11:36:53 +08:00
Daniel Liu
8eaa9e2c3b core/types: document JSON field name equivalents of DynamicFeeTx (#24143) 2024-11-01 11:36:53 +08:00
Daniel Liu
bdae20085a core: ignore basefee when comparing with pool gasprice in txpool (#24080) 2024-11-01 11:36:53 +08:00
Daniel Liu
6feb71e5c8 core: check effective tip in txpool pricelimit validation (#23855) 2024-11-01 11:36:53 +08:00
Martin Holst Swende
81dff92ced core: more efficient nonce-update in txpool (#22231)
* Adjust pending nonce update operation

Benchmark the speed of transaction insertion under multiple accounts

core: fix rebase issues + docstring

core: make benchmark test use sync:ed method

* core: address review comments

* core: add memreport to benchmark

Co-authored-by: WeiLoy <wei_loy@163.com>
2024-11-01 11:36:53 +08:00
Daniel Liu
a402cbf50e core/types: add MarshalBinary, UnmarshalBinary for Receipt (#22806) 2024-11-01 11:36:53 +08:00
Daniel Liu
e5fb0b4d73 core: remove unused error from TxPool.Pending (#23720) 2024-11-01 11:36:53 +08:00
Daniel Liu
17b62319c0 core/types: copy tx recipient address (#23376) 2024-11-01 11:36:53 +08:00
Daniel Liu
e18e6111af core: add change counter (#23095) 2024-11-01 11:36:53 +08:00
Daniel Liu
d850fc4081 core: only check sendernoeoa in non fake mode (#23424) 2024-11-01 11:36:53 +08:00
Daniel Liu
d6daac576d core: check if sender is EOA (#23303) 2024-11-01 11:36:53 +08:00
Daniel Liu
206175fb43 all: remove term whitelist in comments and log messages (#23294) 2024-11-01 11:36:52 +08:00
Daniel Liu
62a70f0cde internal/ethapi: fix panic in accesslist creation (#23225) 2024-11-01 11:36:52 +08:00
Daniel Liu
43a0cdf7ce core: fix pre-check for account balance under EIP-1559 (#23244) 2024-11-01 11:36:52 +08:00
Daniel Liu
5b01b23af6 internal: get pending and queued transaction by address (#22992) 2024-11-01 11:36:52 +08:00
Daniel Liu
b02922fc53 core, internal: expose effectiveGasPrice in receipts (#23050) 2024-11-01 11:36:52 +08:00
Daniel Liu
dbdca11501 accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038) 2024-11-01 11:36:52 +08:00
Daniel Liu
1cb1ba79d7 core: change baseFee into baseFeePerGas in genesis json (#23039) 2024-11-01 11:36:52 +08:00
Daniel Liu
05c11eb96e core: make genesis parse baseFee correctly (#23013) 2024-11-01 11:36:52 +08:00
Daniel Liu
6b67327a4b tests: update for London (#22976) 2024-11-01 11:36:52 +08:00
Daniel Liu
1c47afb286 core/vm/runtime: add function TestColdAccountAccessCost 2024-11-01 11:36:52 +08:00
Daniel Liu
c7d49072f1 core/vm: evm fix panic (#23047) 2024-11-01 11:36:52 +08:00
Daniel Liu
18bc355e89 core, internal: support various eth_call invocations post 1559 (#23027) 2024-11-01 11:36:52 +08:00
Daniel Liu
4c096de9b0 all: rename internal 1559 gas fields (#23010) 2024-11-01 11:36:52 +08:00
Daniel Liu
5a31888b19 core, eth, miner: enforce configured mining reward post 1559 too (#22995) 2024-11-01 11:36:52 +08:00
Daniel Liu
bfd1c0c9e0 core, eth, internal, les: RPC methods and fields for EIP 1559 (#22964) 2024-11-01 11:36:52 +08:00
Daniel Liu
4f0317cb1f core: add new eip-1559 tx constraints (#22970) 2024-11-01 11:36:52 +08:00
Daniel Liu
f6a4769084 EIP-1559 tx pool support (#22898) 2024-11-01 11:36:52 +08:00
Daniel Liu
d88d2670e5 core: make txpool free space calculation more accurate (#22933) 2024-11-01 11:36:52 +08:00
Daniel Liu
684afd0b18 EIP-1559: miner changes (#22896) 2024-11-01 11:36:52 +08:00
Daniel Liu
4e7fd897d8 core: fix failing tests (#22888) 2024-11-01 11:36:52 +08:00
Daniel Liu
e18553b855 all: implement eip-1559 (#22837) 2024-11-01 11:36:52 +08:00
Daniel Liu
6a3b818069 core, params: implement EIP-3529 (#22733) 2024-11-01 11:36:52 +08:00
Martin Holst Swende
b5fe81f093 core/vm: make gas cost reporting to tracers correct (#22702)
Previously, the makeCallVariantGasCallEIP2929 charged the cold account access cost directly, leading to an incorrect gas cost passed to the tracer from the main execution loop.
This change still temporarily charges the cost (to allow for an accurate calculation of the available gas for the call), but then afterwards refunds it and instead returns the correct total gas cost to be then properly charged in the main loop.
2024-11-01 11:36:52 +08:00
Daniel Liu
6c77d63dc2 core/types: replace core.SetReceiptsData with receipts.DeriveFields 2024-11-01 11:36:52 +08:00
Daniel Liu
e561f2842e core/types: drop type v4StoredReceiptRLP 2024-11-01 11:36:52 +08:00
Daniel Liu
b7154dd450 core: fix staticcheck warning S1006: use for {} for infinite loops 2024-10-31 16:49:56 +08:00
Daniel Liu
11285be830 all: fix staticcheck warning SA2002: must call T.Fatalf in same goroutine 2024-10-31 10:38:38 +08:00
Daniel Liu
6b6f0bd891 core, XDCxlending/lendingstate: fix staticcheck warning SA5001: must check error before rpcClient.Close() 2024-10-31 10:28:21 +08:00
Daniel Liu
371c3b6874 fix tautological condition: non-nil != nil 2024-10-31 09:01:12 +08:00
Daniel Liu
2306ceafb2 fix impossible condition: nil != nil 2024-10-31 09:01:12 +08:00
Daniel Liu
212daafe17 core: fix staticcheck warning SA6005: should use strings.EqualFold 2024-10-30 21:13:58 +08:00
Daniel Liu
181b23a767 core, XDCxlending/lendingstate: fix staticcheck warning S1002: omit comparison to bool constant 2024-10-30 21:02:41 +08:00
Daniel Liu
fbecb8c5a5 all: fix staticcheck warning ST1006: don't use generic name self
The name of a method’s receiver should be a reflection of its identity;
often a one or two letter abbreviation of its type suffices (such as
“c” or “cl” for “Client”). Don’t use generic names such as “me”, “this”
or “self”, identifiers typical of object-oriented languages that place
more emphasis on methods as opposed to functions. The name need not be
as descriptive as that of a method argument, as its role is obvious and
serves no documentary purpose. It can be very short as it will appear
on almost every line of every method of the type; familiarity admits
brevity. Be consistent, too: if you call the receiver “c” in one method,
don’t call it “cl” in another.
2024-10-25 21:30:54 +08:00
Daniel Liu
b68b9c64ea
Merge pull request #685 from gzliudan/emptyroot
all: use unified emptyRootHash and emptyCodeHash
2024-10-25 15:28:51 +08:00
Daniel Liu
87a6b5f4c3
Merge pull request #689 from gzliudan/fix-st1005
all: fix staticcheck warning ST1005
2024-10-25 15:28:07 +08:00
Daniel Liu
c6e4e880ea all: fix staticcheck warning SA4006: never used value 2024-10-24 17:37:19 +08:00
Daniel Liu
a79411fa06 all: fix staticcheck warning ST1005: incorrectly formatted error string 2024-10-24 09:48:20 +08:00
Daniel Liu
464a89074b all: use unified emptyRootHash and emptyCodeHash (#26718) 2024-10-21 17:55:16 +08:00
Daniel Liu
8c077345d0 all: removed blockhash from statedb (#23126) 2024-10-18 09:24:52 +08:00
Daniel Liu
1c84a31bb6 core/vm: deepcopy jumptable when enabling extra eips (#26137) 2024-10-17 11:23:04 +08:00
Daniel Liu
4482ea4d84 core/vm: fix docstrings 2024-10-17 11:23:04 +08:00
Daniel Liu
480adaf960 core/vm: minor trivial clean up (#25880) 2024-10-17 11:23:04 +08:00
Daniel Liu
69cb57a0f4 core/vm: not deep copy return data slice upon call completion (#25183) 2024-10-17 11:23:04 +08:00
Daniel Liu
ee5dd8673f core/vm: remove empty lines 2024-10-17 11:23:04 +08:00
Daniel Liu
16f2aabc64 core/vm: more linters (#24783) 2024-10-17 11:23:04 +08:00
Paweł Bylica
be6631beb0 core/vm: optimize jumpdest analysis (#23500)
core/vm: optimize PUSH opcode discrimination
2024-10-17 11:23:04 +08:00
Daniel Liu
1fa9e81870 core/vm: reduce overhead in instructions-benchmark (#24860) 2024-10-17 11:23:04 +08:00
Daniel Liu
c78b9e6245 core/vm: for tracing, do not report post-op memory (#24867) 2024-10-17 11:23:04 +08:00
Daniel Liu
45c644c43d core/vm: update benchmark to use Errorf instead of Sprintf (#24845) 2024-10-17 11:23:04 +08:00
Daniel Liu
6fa968201f core/vm: fix some typos 2024-10-17 11:23:04 +08:00
Daniel Liu
224caa5a08 core/vm: avoid memory expansion check for trivial ops (#24048) 2024-10-17 11:23:04 +08:00
Daniel Liu
532137c37b core/vm: use golang native big.Int (#26834) 2024-10-17 10:36:53 +08:00
Daniel Liu
8e15f825ce core/vm: use optimized bigint (#26021) 2024-10-17 10:36:53 +08:00
Daniel Liu
c87b7c3135 common/math: optimized modexp (#25525) 2024-10-17 10:36:53 +08:00
Daniel Liu
b653dbc60c core/vm, protocol_params: implement eip-2565 modexp repricing (#21607) 2024-10-17 10:36:53 +08:00
Daniel Liu
a8ea86e40c
Merge pull request #644 from gzliudan/format-0x
all: change format 0x%x to %#x
2024-10-17 10:35:34 +08:00
Daniel Liu
693190e5b9 core: fix wrong blockHash for eth_getLogs (#650) 2024-10-16 11:00:58 +08:00
Daniel Liu
edace6ac6c all: change format 0x%x to %#x (#25221) 2024-09-27 15:24:31 +08:00
JukLee0ira
47d27fed3b all: replace uses of ioutil with io and os (#24869) 2024-09-27 15:14:17 +08:00
Daniel Liu
4f9501f12c common, crypto: move fuzzers out of core (#22029) 2024-09-22 19:25:37 +08:00
Daniel Liu
a5531a2470 core/vm: remove redundant conversions (#21903) 2024-09-22 18:42:11 +08:00
Daniel Liu
67b5b2bf9a core/vm: less allocations for various call variants (#21222) 2024-09-22 18:42:11 +08:00
Daniel Liu
a575d731d3 core/vm: combine function precompile and precompile2 2024-09-21 22:40:57 +08:00
Daniel Liu
5470485450 all: split vm.Context into BlockContext and TxContext (#21672) 2024-09-21 22:18:10 +08:00
Daniel Liu
05e52efbad core/vm: marshall returnData as hexstring in trace logs (#21715) 2024-09-21 22:14:47 +08:00
Daniel Liu
4e832ee6f0 core/vm: avoid map lookups for accessing jumpdest analysis (#21411) 2024-09-21 22:01:56 +08:00
Daniel Liu
a020259bb5 core/vm: fix Byzantium address list (#22603) 2024-09-19 13:04:55 +08:00
Wanwiset Peerapatanapokin
0e9052b2e5
Merge branch 'master' into dev-upgrade-fix-merge 2024-09-11 14:06:38 +04:00
Daniel Liu
3e4932e408 core/vm: surface some internal methods (#20958) 2024-08-30 12:50:04 +08:00
Daniel Liu
1f45af089a core/vm: implement EIP 3541 (#22809) 2024-08-26 11:59:28 +08:00
Daniel Liu
c47819c7d6 core, cmd: add generic LRU implementation (#26162) 2024-08-26 11:17:23 +08:00
Daniel Liu
6f1d1b6688 core/vm: implement EIP-2681: Limit account nonce to 2^64-1 (#23853) 2024-08-26 09:04:15 +08:00
Wanwiset Peerapatanapokin
2b8eb6f98e
Merge pull request #619 from XinFinOrg/revert-2464-short
Revert EIP 2464
2024-08-25 02:23:46 +07:00
Daniel Liu
8c78a80771 core: fix race conditions in txpool (#23474) 2024-08-24 23:12:32 +08:00
wanwiset25
cb792ef34f Revert EIP-2464 2024-08-24 02:31:27 +07:00
Daniel Liu
45e57e41b4 internal/ethapi: refactor func ToMessage for CallArgs 2024-08-21 15:15:53 +08:00
JukLee0ira
3f40987cca core/rawdb: rearranging function order 2024-08-19 22:32:20 +08:00
JukLee0ira
544190f584 core: cache block hash and number 2024-08-07 14:59:36 +08:00
JukLee0ira
074095b1d5 core: fix writeBlock 2024-08-07 14:59:36 +08:00
wgr523
52077f18f3
support for golang tracers + add golang callTracer (#558)
* feat: rename Tracer interface to EVMLogger;
minor changes in API
refine api_tracer.go
refine Tracer interface

* fix: broken tracer tests

* feat: add BenchmarkTransactionTrace

* feat: tracer CaptureEnter CaptureExit in evm

* feat: upgrade js tracers with geth upstream

* chore: clean test

* feat: eth/tracers: support for golang tracers + add golang callTracer
cf. https://github.com/ethereum/go-ethereum/pull/23708

* chore: clean testdata json

* fix: change test due to IntrinsicGas is not upgraded

* feat: make native Tracer the default Tracer

* fix: update tracers.New in api

* fix: addr prefix in callTracer

* fix: remove `native` in BenchmarkTracers

* fix: return consensus error of InsufficientBalance for tx, instead of vmerr

* chore: drop js tracers: call and noop
2024-08-06 00:14:04 -07:00
JukLee0ira
9a40c26bf8 core,eth,light: remove duplicated functions 2024-08-03 10:03:22 +08:00
JukLee0ira
bea4431f6f eth/filters: avoid block body retrieval when no matching logs (#25199) 2024-08-03 10:03:22 +08:00
JukLee0ira
09d3ede8c0 core: cleanup tests (#25641) 2024-08-03 10:03:22 +08:00
JukLee0ira
ad71d706fb all: add global block logs cache (#25459) 2024-08-03 10:03:22 +08:00
JukLee0ira
f8a2b00505 core/rawdb,eth: use lightweight accessor for log filtering (#23147) 2024-08-03 10:03:22 +08:00
JukLee0ira
83782e5368 eth/filters: remove use of event.TypeMux for pending logs (#20312) 2024-08-03 10:03:22 +08:00
Daniel Liu
4976b7cbb3
Fix some panic cuased by nil block, statedb, header (#578)
* fix panic during rollback

* eth/hooks: check nil stateDB to fix issue #271

* internal/ethapi: fix eth_call crash

* all: check nil statedb

* eth: check nil block for tracer api

* internal/ethapi: check nil header and block
2024-08-02 17:05:53 -07:00
Daniel Liu
31098e717a
core: save new blocks during reorg (#599) 2024-08-02 16:55:41 -07:00
Daniel Liu
e9e94e640d
core: save new blocks during reorg (#596) 2024-08-02 16:53:49 -07:00
wanwiset25
4be4f2eeb1 fix tests 2024-06-28 18:35:47 +04:00
wanwiset25
57b11ab4c9 try use insertblock in fetcher 2024-06-28 11:33:04 +04:00
wanwiset25
c9ee3240fb fix tests 2024-06-28 11:33:04 +04:00
Martin Holst Swende
8f4a269437 eth, les: add sanity checks for unbounded block fields (#19573)
This PR adds some hardening in the lower levels of the protocol stack, to bail early on invalid data. Primarily, attacks that this PR protects against are on the "annoyance"-level, which would otherwise write a couple of megabytes of data into the log output, which is a bit resource intensive.
2024-06-28 11:33:04 +04:00
Péter Szilágyi
3f87990a71 core/forkid: add two clauses for more precise validation (#20220) 2024-06-28 11:33:04 +04:00
wanwiset25
ae52ca6e83 eth: eth/64 - extend handshake with with fork id (#20140) 2024-06-28 11:31:06 +04:00
Shane Bammel
4707d1c549 core/forkid: fix off-by-one bug (#22879)
* forkid: added failing test

* forkid: fixed off-by-one bug
2024-06-28 11:30:31 +04:00
Péter Szilágyi
8e998ecabe core/forkid: implement the forkid EIP, announce via ENR (#19738)
* eth: chain config (genesis + fork) ENR entry

* core/forkid, eth: protocol independent fork ID, update to CRC32 spec

* core/forkid, eth: make forkid a struct, next uint64, enr struct, RLP

* core/forkid: change forkhash rlp encoding from int to [4]byte

* eth: fixup eth entry a bit and update it every block

* eth: fix lint

* eth: fix crash in ethclient tests
2024-06-28 11:30:31 +04:00
Daniel Liu
3e9bd359df ethclient: serialize negative block number as "pending" (#21177) 2024-06-20 15:52:32 +08:00
Daniel Liu
aa88078dd1 core/types: convert status type from uint to uint64 (#16784) 2024-06-20 15:52:32 +08:00
JukLee0ira
2d89951e5b all: use errrors.New instead of empty fmt.Errorf 2024-06-14 19:19:21 +08:00
JukLee0ira
15bbb5d3d5 XDCx,core,XDCxlending,miner: reduce duplicate calls 2024-06-06 19:33:59 +08:00
JukLee0ira
9ffacc595d core: simplify code expression 2024-06-06 19:33:59 +08:00
JukLee0ira
0aab4ced98 common: add binary variables for system contract 2024-06-06 19:33:59 +08:00
JukLee0ira
21c62f9ef0 XDCx,XDCxlending,consensus,core: not compare adresss by String 2024-06-06 19:33:39 +08:00
Daniel Liu
fd8811cc9e core, backends: rename callmsg to callMsg 2024-05-14 23:27:23 +08:00
Daniel Liu
e82bef5b87 core/types: remove duplication in eip2930 signer (#27860) 2024-05-14 23:27:23 +08:00
Daniel Liu
7a95b4f907 core, eth, internal/ethapi: create access list RPC API (#22550) 2024-05-14 23:27:23 +08:00
Daniel Liu
5cb014b60f core, eth/tracer: initialize tracer statedb in CaptureStart (#22333) 2024-05-14 23:27:23 +08:00
Derek Chiang
5edfd8f9eb core: fix method comment for txpool.requestReset (#22543) 2024-05-14 23:27:23 +08:00
Daniel Liu
349dc1bacd core/types: improve comments in new EIP-2718 code (#22402) 2024-05-14 23:15:35 +08:00
Daniel Liu
0ccf119cd7 core/types: reduce allocations in GasPriceCmp (#22456) 2024-05-14 23:15:35 +08:00
Daniel Liu
01e1728a94 all: add support for EIP-2718, EIP-2930 transactions (#21502) 2024-05-14 23:15:35 +08:00
Marius van der Wijden
76b29b2f25 core: reset txpool state on sethead (#22247)
fixes an issue where local transactions that were included in the chain before a SetHead were rejected if resubmitted, since the txpool had not reset the state to the current (older) state.
2024-05-14 11:44:26 +08:00
gary rong
289304f876 core/txpool: remove "local" notion from the txpool price heap (#21478)
* core: separate the local notion from the pricedHeap

* core: add benchmarks

* core: improve tests

* core: address comments

* core: degrade the panic to error message

* core: fix typo

* core: address comments

* core: address comment

* core: use PEAK instead of POP

* core: address comments
2024-05-14 11:08:53 +08:00
Martin Holst Swende
a6d591b01b core: fix txpool off-by-one error (#21683) 2024-05-14 10:09:43 +08:00
Marius van der Wijden
6935687790 core: more detailed metering for reorgs (#21420) 2024-05-13 22:07:04 +08:00
Hao Duan
28baf9f1fd core: avoid modification of accountSet cache in tx_pool (#21159)
* core: avoid modification of accountSet cache in tx_pool

when runReorg, we may copy the dirtyAccounts' accountSet cache to promoteAddrs
in which accounts will be promoted, however, if we have reset request at the
same time, we may reuse promoteAddrs and modify the cache content which is
against the original intention of accountSet cache. So, we need to make a new
slice here to avoid modify accountSet cache.

* core: fix flatten condition + comment

Co-authored-by: Felix Lange <fjl@twurst.com>
2024-05-13 22:07:04 +08:00
Daniel Liu
b9f373fb57 core: fix queued transaction eviction #21300 2024-05-13 22:07:04 +08:00
Martin Holst Swende
ff246355a2 core: transaction pool optimizations (#21328)
* core: added local tx pool test case

* core, crypto: various allocation savings regarding tx handling

* core/txlist, txpool: save a reheap operation, avoid some bigint allocs

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2024-05-13 22:07:03 +08:00
Daniel Liu
48f9bbed50 core: types: less allocations when hashing and tx handling (#21265) 2024-05-13 22:07:03 +08:00
Hao Duan
1776bf1313 core: filter out txs with invalid signatures as soon as possible (#21170)
Once we detect an invalid transaction during recovering signatures, we should
directly exclude this transaction to avoid validating the signatures hereafter.

This should optimize the validations times of transactions with invalid signatures
to only one time.
2024-05-13 22:07:03 +08:00
chenglin
cf41742040 core: collect NewTxsEvent items without holding reorg lock (#21145) 2024-05-13 22:07:03 +08:00
Daniel Liu
624371433e core: fix typos in comments (#21118) 2024-05-13 22:07:03 +08:00
Daniel Liu
7179efd4da core: announce based transaction propagation (#20234) 2024-05-13 22:07:03 +08:00
Martin Holst Swende
d972bbd681 core: set max tx size down to 2 slots (64KB) 2024-05-13 22:07:03 +08:00
Daniel Liu
b7f4362c57 core: count tx size in slots, bump max size ot 4x32KB (#20352) 2024-05-13 22:07:03 +08:00
Péter Szilágyi
d1415837cf core: fix tx dedup return error count (#20085) 2024-05-13 22:07:03 +08:00
Daniel Liu
bef2c34e44 core: dedup known transactions without global lock, track metrics (#20081) 2024-05-13 22:07:03 +08:00
Martin Holst Swende
656f2a6167 core: smaller txpool status locking (#20080)
* txpool: smaller lock portion

* core/tx_pool: fix data race
2024-05-13 22:07:03 +08:00
Daniel Liu
19fb6103c0 fix: rename func AddRemoteSync to addRemoteSync 2024-05-13 22:07:03 +08:00
Daniel Liu
7cce425000 Revert "core, light, params: implement eip2028 (#19931)"
This reverts commit 67825d860b.
2024-05-11 06:11:46 +08:00
Daniel Liu
742a7f9348 core, metrics: switch some invalid counters to gauges (#20047) 2024-05-10 19:48:10 +08:00
Daniel Liu
67825d860b core, light, params: implement eip2028 (#19931) 2024-05-10 19:48:10 +08:00
Daniel Liu
b708614470 core, les: fix les unit tests (#19823) 2024-05-10 19:48:10 +08:00
Daniel Liu
edaed4fd92 core: fix write concurrency in txpool (#19835) 2024-05-10 19:48:10 +08:00
Daniel Liu
6338a4195b core: kill off managed state, use own tiny noncer for txpool (#19810) 2024-05-10 19:48:10 +08:00
Daniel Liu
74c72363d0 core: move TxPool reorg and events to background goroutine (#19705) 2024-05-10 19:48:10 +08:00
Daniel Liu
ddbf5d2782 core: expose various counter metrics for grafana (#19692) 2024-05-10 19:48:10 +08:00
Daniel Liu
65baaaaf80 core: cache tx signature before obtaining lock (#19351) 2024-05-10 19:48:10 +08:00
Daniel Liu
c5b22fbc32 core: make txpool handle reorg due to setHead (#19308) 2024-05-09 19:00:41 +08:00
Daniel Liu
676c4e8ec7 core: sanitize more TxPoolConfig fields (#17210) 2024-05-09 18:39:32 +08:00
Daniel Liu
6b87c07876 core: fix comment typo (#18144) 2024-05-09 18:38:27 +08:00
Daniel Liu
a6664651c7 core: fix a typo (#17733) 2024-05-09 18:38:27 +08:00
Daniel Liu
ec50ca36d9 core, eth, trie: use common/prque (#17508) 2024-05-09 18:38:27 +08:00
Daniel Liu
6c657ef6af core: priority mining (#17472) 2024-05-09 18:38:27 +08:00
Daniel Liu
41b29a8cf8 Fixed typo addresssByHeartbeat -> addressesByHeartbeat (#17243) 2024-05-09 18:38:27 +08:00
Daniel Liu
241201cf0e core: fixed typo (#17214) 2024-05-09 18:38:27 +08:00
Daniel Liu
5b883dee30 core/tx_pool: reduce judgement levels (#16980) 2024-05-09 18:38:27 +08:00
Daniel Liu
859308c03f core: change comment to match code more closely (#16963) 2024-05-09 18:38:27 +08:00