Official Go implementation of the Ethereum protocol
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Marius van der Wijden
ddeea1e0c6
core: types: less allocations when hashing and tx handling ( #21265 )
...
* core, crypto: various allocation savings regarding tx handling
* core: reduce allocs for gas price comparison
This change reduces the allocations needed for comparing different transactions to each other.
A call to `tx.GasPrice()` copies the gas price as it has to be safe against modifications and
also needs to be threadsafe. For comparing and ordering different transactions we don't need
these guarantees
* core: added tx.GasPriceIntCmp for comparison without allocation
adds a method to remove unneeded allocation in comparison to tx.gasPrice
* core/types: pool legacykeccak256 objects in rlpHash
rlpHash is by far the most used function in core that allocates a legacyKeccak256 object on each call.
Since it is so widely used it makes sense to add pooling here so we relieve the GC.
On my machine these changes result in > 100 MILLION less allocations and > 30 GB less allocated memory.
* reverted some changes
* reverted some changes
* trie: use crypto.KeccakState instead of replicating code
Co-authored-by: Martin Holst Swende <martin@swende.se>
4 years ago
..
asm
core/asm: allow numbers in labels ( #20362 )
5 years ago
bloombits
core/bloombits, light: fix typos ( #17235 )
6 years ago
forkid
core: fix typo in comments ( #21181 )
4 years ago
rawdb
core/rawdb: fix high memory usage in freezer ( #21243 )
4 years ago
state
cmd/evm: add state transition tool for testing ( #20958 )
4 years ago
types
core: types: less allocations when hashing and tx handling ( #21265 )
4 years ago
vm
cmd/evm: add state transition tool for testing ( #20958 )
4 years ago
.gitignore
Renamed `chain` => `core`
10 years ago
bench_test.go
cmd, core, eth: background transaction indexing ( #20302 )
5 years ago
block_validator.go
core: use headers only where blocks are unnecessary
6 years ago
block_validator_test.go
cmd, core, eth: background transaction indexing ( #20302 )
5 years ago
blockchain.go
eth: interrupt chain insertion on shutdown ( #21114 )
5 years ago
blockchain_insert.go
all: simplify timestamps to uint64 ( #19372 )
6 years ago
blockchain_test.go
all: fix typos in comments ( #21118 )
5 years ago
blocks.go
core: typos and comments improve
8 years ago
chain_indexer.go
core: add check in AddChildIndexer to avoid double lock ( #20982 )
5 years ago
chain_indexer_test.go
core: fix chain indexer unit test ( #20506 )
5 years ago
chain_makers.go
core: initial version of state snapshots
5 years ago
chain_makers_test.go
cmd, core, eth: background transaction indexing ( #20302 )
5 years ago
dao_test.go
cmd, core, eth: background transaction indexing ( #20302 )
5 years ago
error.go
all: fix typos in comments ( #21118 )
5 years ago
events.go
eth/filters: remove use of event.TypeMux for pending logs ( #20312 )
5 years ago
evm.go
core/evm: less iteration in blockhash ( #20589 )
5 years ago
gaspool.go
miner: avoid unnecessary work ( #15883 )
7 years ago
gen_genesis.go
all: regenerate codecs with gencodec commit 90983d99de ( #15830 )
7 years ago
gen_genesis_account.go
all: regenerate codecs with gencodec commit 90983d99de ( #15830 )
7 years ago
genesis.go
cmd, core, params: inital support for yolo-v1 testnet ( #21154 )
4 years ago
genesis_alloc.go
cmd, core, params: inital support for yolo-v1 testnet ( #21154 )
4 years ago
genesis_test.go
cmd, core, eth: background transaction indexing ( #20302 )
5 years ago
headerchain.go
core: mirror full node reorg logic in light client too ( #20931 )
5 years ago
mkalloc.go
core/vm: 64 bit memory and gas calculations ( #19210 )
6 years ago
rlp_test.go
cmd, core, eth: background transaction indexing ( #20302 )
5 years ago
state_prefetcher.go
all: seperate consensus error and evm internal error ( #20830 )
5 years ago
state_processor.go
all: seperate consensus error and evm internal error ( #20830 )
5 years ago
state_transition.go
all: seperate consensus error and evm internal error ( #20830 )
5 years ago
tx_cacher.go
Comment error ( #18303 )
6 years ago
tx_journal.go
core: fix typos in comment ( #17531 )
6 years ago
tx_list.go
core: types: less allocations when hashing and tx handling ( #21265 )
4 years ago
tx_list_test.go
core: types: less allocations when hashing and tx handling ( #21265 )
4 years ago
tx_noncer.go
core: fix write concurrency in txpool ( #19835 )
5 years ago
tx_pool.go
core: types: less allocations when hashing and tx handling ( #21265 )
4 years ago
tx_pool_test.go
core: avoid double-lock in tx_pool_test ( #20984 )
5 years ago
types.go
core: prefetch next block state concurrently
6 years ago