go-ethereum/core
rjl493456442 4d086430bd
core, ethdb, tests, trie: implement NewBatchWithSize API for batcher (#24392)
This PR adds an addtional API called `NewBatchWithSize` for db
batcher. It turns out that leveldb batch memory allocation is
super inefficient. The main reason is the allocation step of
leveldb Batch is too small when the batch size is large. It can
take a few second to build a leveldb batch with 100MB size.

Luckily, leveldb also offers another API called MakeBatch which can
pre-allocate the memory area. So if the approximate size of batch is
known in advance, this API can be used in this case.

It's needed in new state scheme PR which needs to commit a batch of
trie nodes in a single batch. Implement the feature in a seperate PR.
2022-02-15 15:15:13 +02:00
..
asm core/asm: change order of items in stringtokenTypes (#24153) 2021-12-26 14:58:17 +01:00
beacon all: separate catalyst package (#24280) 2022-01-31 14:22:35 +02:00
bloombits all: fix some go-critic linter warnings (#23709) 2021-10-13 17:31:02 +02:00
forkid eth/catalyst: implement kintsugi-spec v3 (#24067) 2021-12-17 15:38:58 +01:00
rawdb core, ethdb, tests, trie: implement NewBatchWithSize API for batcher (#24392) 2022-02-15 15:15:13 +02:00
state core/state: fix read-meters + simplify code (#24304) 2022-02-14 09:22:57 +01:00
types core/types: document JSON field name equivalents of DynamicFeeTx (#24143) 2021-12-22 15:32:17 +01:00
vm core/evm: RANDOM opcode (EIP-4399) (#24141) 2022-01-10 09:44:21 +02:00
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
bench_test.go core: fix benchmark tests (#23803) 2021-10-27 13:08:51 +02:00
block_validator_test.go all: core rework for the merge transition (#23761) 2021-11-26 13:23:02 +02:00
block_validator.go cmd, core, eth, miner: deprecate miner.gastarget flag (#23213) 2021-08-10 11:28:33 +03:00
blockchain_insert.go core: fix snapshot missing when recovery from crash (#23496) 2021-11-01 14:09:36 +01:00
blockchain_reader.go core, eth: improve delivery speed on header requests (#23105) 2021-12-07 17:50:58 +01:00
blockchain_repair_test.go core, miner, rpc, eth: fix goroutine leaks in tests (#24211) 2022-01-21 12:22:44 +01:00
blockchain_sethead_test.go eth: request id dispatcher and direct req/reply APIs (#23576) 2021-11-26 13:26:03 +02:00
blockchain_snapshot_test.go core: fix typo in comment (#23658) 2021-09-29 21:28:47 +02:00
blockchain_test.go core: fix typo in blockchain test (#24263) 2022-01-21 09:12:40 +01:00
blockchain.go Merge pull request #24197 from rjl493456442/periodically-flush-batch 2022-01-11 11:32:43 +02:00
blocks.go core: typos and comments improve 2017-05-25 17:14:33 +03:00
bloom_indexer.go eth: move eth.Config to a common package (#22205) 2021-02-05 13:51:15 +01:00
chain_indexer_test.go core: fix potential race in chainIndexerTest (#22346) 2021-03-19 13:32:57 +01:00
chain_indexer.go all: make logs a bit easier on the eye to digest (#22665) 2021-04-15 20:35:00 +03:00
chain_makers_test.go cmd, core, eth: background transaction indexing (#20302) 2020-05-11 18:58:43 +03:00
chain_makers.go eth: request id dispatcher and direct req/reply APIs (#23576) 2021-11-26 13:26:03 +02:00
dao_test.go accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038) 2021-06-15 13:56:14 +03:00
error.go core/vm: implement EIP-2681: Limit account nonce to 2^64-1 (#23853) 2021-11-11 15:00:58 +01:00
events.go eth/filters: remove use of event.TypeMux for pending logs (#20312) 2019-12-10 12:39:14 +01:00
evm.go core/evm: RANDOM opcode (EIP-4399) (#24141) 2022-01-10 09:44:21 +02:00
forkchoice.go all: core rework for the merge transition (#23761) 2021-11-26 13:23:02 +02:00
gaspool.go miner: avoid unnecessary work (#15883) 2018-01-15 12:57:06 +02:00
gen_genesis_account.go tests: update for London (#22976) 2021-06-07 14:37:56 +02:00
gen_genesis.go core: change baseFee into baseFeePerGas in genesis json 2021-06-14 14:04:44 +02:00
genesis_alloc.go cmd/geth: add support for sepolia testnet (#23730) 2021-11-08 13:06:01 +02:00
genesis_test.go cmd/geth: add support for sepolia testnet (#23730) 2021-11-08 13:06:01 +02:00
genesis.go core/evm: RANDOM opcode (EIP-4399) (#24141) 2022-01-10 09:44:21 +02:00
headerchain_test.go all: core rework for the merge transition (#23761) 2021-11-26 13:23:02 +02:00
headerchain.go core, eth: improve delivery speed on header requests (#23105) 2021-12-07 17:50:58 +01:00
mkalloc.go all: add go:build lines (#23468) 2021-08-25 18:46:29 +02:00
rlp_test.go core: fix benchmark tests (#23803) 2021-10-27 13:08:51 +02:00
state_prefetcher.go all: removed blockhash from statedb (#23126) 2021-06-30 15:17:01 +02:00
state_processor_test.go core/vm: implement EIP-2681: Limit account nonce to 2^64-1 (#23853) 2021-11-11 15:00:58 +01:00
state_processor.go all: removed blockhash from statedb (#23126) 2021-06-30 15:17:01 +02:00
state_transition.go core/evm: RANDOM opcode (EIP-4399) (#24141) 2022-01-10 09:44:21 +02:00
tx_cacher.go Comment error (#18303) 2018-12-14 11:15:31 +01:00
tx_journal.go core: transaction journal should not be executable (#23090) 2021-06-23 07:29:20 +03:00
tx_list_test.go core: fix benchmark tests (#23803) 2021-10-27 13:08:51 +02:00
tx_list.go core: fixed stale comment in txlist (#23825) 2021-10-28 14:59:51 +02:00
tx_noncer.go core: more efficient nonce-update in txpool (#22231) 2021-11-02 18:32:23 +01:00
tx_pool_test.go core: more efficient nonce-update in txpool (#22231) 2021-11-02 18:32:23 +01:00
tx_pool.go core: ignore basefee when comparing with pool gasprice in txpool (#24080) 2021-12-17 15:44:57 +01:00
types.go core: prefetch next block state concurrently 2019-04-01 11:06:15 +03:00