go-ethereum/core
Matthew Halpern 937417527c core: lookup txs by block number instead of block hash (#19431)
* core: lookup txs by block number instead of block hash

Transaction hashes now store a reference to their corresponding
block number as opposed to their hash. In benchmarks this was
shown to reduce storage by over 12 GB.

The main limitation of this approach is that transactions on
non-canonical blocks could never be looked up, however that is
currently not supported.

The database version has been upgraded to version 5 and the
transaction lookup process is backwards-compatible with the
prior two transaction lookup formats prexisting in the
database instance. Tests have been added to ensure this.

* core/rawdb: tiny review nit fixes
2019-04-25 17:24:55 +03:00
..
asm asm: remove unused parameter for function Lex (#18058) 2019-03-14 10:35:55 +01:00
bloombits core/bloombits, light: fix typos (#17235) 2018-07-24 11:24:27 +03:00
rawdb core: lookup txs by block number instead of block hash (#19431) 2019-04-25 17:24:55 +03:00
state core/state: fix state iterator (#19127) 2019-04-05 09:44:02 +03:00
types core/types: fix cummulative gas bug and legacy decoding tests 2019-04-16 09:50:11 +03:00
vm core/state: fix state iterator (#19127) 2019-04-05 09:44:02 +03:00
.gitignore Renamed `chain` => `core` 2014-12-04 10:28:02 +01:00
bench_test.go core, eth, les, light: scope receipt functionality a bit cleaner 2019-04-15 13:42:26 +03:00
block_validator.go core: use headers only where blocks are unnecessary 2019-03-13 12:32:47 +02:00
block_validator_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
blockchain.go core: lookup txs by block number instead of block hash (#19431) 2019-04-25 17:24:55 +03:00
blockchain_insert.go all: simplify timestamps to uint64 (#19372) 2019-04-02 23:28:48 +03:00
blockchain_test.go core, eth, les, light: scope receipt functionality a bit cleaner 2019-04-15 13:42:26 +03:00
blocks.go core: typos and comments improve 2017-05-25 17:14:33 +03:00
chain_indexer.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
chain_indexer_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
chain_makers.go core, eth, les, light: store transaction receipts without txHash and gasCost 2019-04-15 13:15:39 +03:00
chain_makers_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
dao_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
error.go core: make txpool operate on immutable state 2017-09-05 13:34:41 +03:00
events.go miner: regenerate mining work every 3 seconds (#17413) 2018-08-16 14:14:33 +03:00
evm.go all: simplify timestamps to uint64 (#19372) 2019-04-02 23:28:48 +03:00
gaspool.go miner: avoid unnecessary work (#15883) 2018-01-15 12:57:06 +02:00
gen_genesis.go all: regenerate codecs with gencodec commit 90983d99de (#15830) 2018-01-08 15:13:22 +02:00
gen_genesis_account.go all: regenerate codecs with gencodec commit 90983d99de (#15830) 2018-01-08 15:13:22 +02:00
genesis.go all: simplify timestamps to uint64 (#19372) 2019-04-02 23:28:48 +03:00
genesis_alloc.go cmd, core, params: add support for Goerli 2019-02-04 14:53:12 +02:00
genesis_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
headerchain.go all: simplify timestamps to uint64 (#19372) 2019-04-02 23:28:48 +03:00
helper_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
mkalloc.go core/vm: 64 bit memory and gas calculations (#19210) 2019-03-12 11:40:05 +02:00
state_prefetcher.go core: prefetch next block state concurrently 2019-04-01 11:06:15 +03:00
state_processor.go core/types: add block location fields to receipt (#17662) 2019-03-27 13:39:25 +01:00
state_transition.go core: fix comment typo (#17236) 2018-07-24 13:17:12 +03:00
tx_cacher.go Comment error (#18303) 2018-12-14 11:15:31 +01:00
tx_journal.go core: fix typos in comment (#17531) 2018-08-28 10:04:33 +03:00
tx_list.go core: fix some small typos on comment code (#17278) 2018-07-30 14:10:48 +03:00
tx_list_test.go all: switch gas limits from big.Int to uint64 2018-01-03 14:45:35 +02:00
tx_pool.go core: cache tx signature before obtaining lock 2019-03-29 12:01:29 +02:00
tx_pool_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
types.go core: prefetch next block state concurrently 2019-04-01 11:06:15 +03:00