plugeth/core
Felix Lange bc42e88415
core: add basic chain history support in GenerateChain (#28428)
This change improves GenerateChain to support internal chain history access (ChainReader)
for the consensus engine and EVM.

GenerateChain takes a `parent` block and the number of blocks to create. With my changes,
the consensus engine and EVM can now access blocks from `parent` up to the block currently
being generated. This is required to make the BLOCKHASH instruction work, and also needed
to create real clique chains.  Clique uses chain history to figure out if the current signer is in-turn,
for example.

I've also added some more accessors to BlockGen. These are helpful when creating transactions:

- g.Signer returns a signer instance for the current block
- g.Difficulty returns the current block difficulty
- g.Gas returns the remaining gas amount

Another fix in this commit concerns the receipts returned by GenerateChain. The receipts now
have properly derived fields (BlockHash, etc.) and should generally match what would be
returned by the RPC API.
2023-10-31 12:39:25 +01:00
..
asm core: fix typos (#28218) 2023-09-29 10:52:22 +03:00
bloombits core: fix typos (#28218) 2023-09-29 10:52:22 +03:00
forkid core/forkid: add forkid test for holesky (#28193) 2023-09-25 17:02:19 +03:00
rawdb core/rawdb: add logging and fix comments around AncientRange function. (#28379) 2023-10-31 12:04:45 +01:00
state trie: use explicit errors in stacktrie (instead of panic) (#28361) 2023-10-25 14:53:50 +02:00
txpool txpool/legacypool: remove already known error in legacypool (#28400) 2023-10-23 18:36:11 +03:00
types core: fix typos (#28238) 2023-10-03 07:44:01 -04:00
vm crypto/kzg4844: use the new trusted setup file and format (#28383) 2023-10-22 16:05:04 +02:00
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
bench_test.go core: add basic chain history support in GenerateChain (#28428) 2023-10-31 12:39:25 +01:00
block_validator_test.go all: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +03:00
block_validator.go core/types: support for optional blob sidecar in BlobTx (#27841) 2023-08-14 10:13:34 +02:00
blockchain_insert.go core, eth, trie: expose more detailed dirty ram tracking for diff layers (#27971) 2023-08-23 14:08:39 +03:00
blockchain_reader.go all: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +03:00
blockchain_repair_test.go core/rawdb, ethdb/pebble: avoid fsync db in tests (#27836) 2023-08-23 20:43:55 +02:00
blockchain_sethead_test.go core/rawdb, ethdb/pebble: avoid fsync db in tests (#27836) 2023-08-23 20:43:55 +02:00
blockchain_snapshot_test.go core/rawdb, ethdb/pebble: avoid fsync db in tests (#27836) 2023-08-23 20:43:55 +02:00
blockchain_test.go core/blockchain: fix typos and grammar (#28295) 2023-10-23 15:23:41 +02:00
blockchain.go core/blockchain: fix typos and grammar (#28295) 2023-10-23 15:23:41 +02:00
blocks.go core: typos and comments improve 2017-05-25 17:14:33 +03:00
bloom_indexer.go core: preallocate batch size in bloomIndexer (#25289) 2022-08-03 17:02:09 +02:00
chain_indexer_test.go core: fix potential race in chainIndexerTest (#22346) 2021-03-19 13:32:57 +01:00
chain_indexer.go core,console: replace noarg fmt.Errorf with errors.New (#27332) 2023-05-25 08:24:09 -04:00
chain_makers_test.go core: add basic chain history support in GenerateChain (#28428) 2023-10-31 12:39:25 +01:00
chain_makers.go core: add basic chain history support in GenerateChain (#28428) 2023-10-31 12:39:25 +01:00
dao_test.go all: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +03:00
error.go all: replace data gas to blob gas in comments (#27825) 2023-08-01 10:07:25 +03: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: implement BLOBBASEFEE opcode (0x4a) (#28098) 2023-10-02 05:49:29 -04:00
forkchoice.go core: clarify code in forkchoice (#26257) 2022-11-28 11:07:25 +01:00
gaspool.go core, miner: revert block gas counter in case of invalid transaction (#26799) 2023-03-07 05:23:52 -05:00
gen_genesis_account.go tests: update for London (#22976) 2021-06-07 14:37:56 +02:00
gen_genesis.go all: rename dataGas to blobGas (#27789) 2023-07-27 16:53:28 +03:00
genesis_alloc.go cmd, core, params: add support for the Holesky testnet (#28007) 2023-08-25 18:11:40 +03:00
genesis_test.go cmd, core: resolve scheme from a read-write database (#28313) 2023-10-11 11:27:44 +03:00
genesis.go core, cmd/geth: add --override.* flags to geth init (#28407) 2023-10-27 10:15:14 +08:00
headerchain_test.go all: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +03:00
headerchain.go all: remove ethash pow, only retain shims needed for consensus and tests (#27178) 2023-05-03 12:58:39 +03:00
mkalloc.go cmd, core, params: add support for the Holesky testnet (#28007) 2023-08-25 18:11:40 +03:00
rlp_test.go all: cleanup tests (#25641) 2022-09-07 20:21:59 +02:00
sender_cacher.go all: refactor txpool into it's own package in prep for 4844 2022-10-24 16:35:53 +03:00
state_prefetcher.go core/types, params: add blob transaction type, RLP encoded for now (#27049) 2023-04-21 12:52:02 +03:00
state_processor_test.go core: add basic chain history support in GenerateChain (#28428) 2023-10-31 12:39:25 +01:00
state_processor.go core: add basic chain history support in GenerateChain (#28428) 2023-10-31 12:39:25 +01:00
state_transition.go core: implement BLOBBASEFEE opcode (0x4a) (#28098) 2023-10-02 05:49:29 -04:00
types.go core: use atomic type (#27011) 2023-03-30 06:53:32 -04:00