go-ethereum/eth
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
..
catalyst core, eth, miner: start propagating and consuming blob txs (#28243) 2023-10-04 12:36:36 +03:00
downloader cmd/devp2p, eth: drop eth/66 (#28239) 2023-10-03 15:03:19 +03:00
ethconfig cmd, core: resolve scheme from a read-write database (#28313) 2023-10-11 11:27:44 +03:00
fetcher eth/fetcher: downgrade stale txs log from warn to debug (#28364) 2023-10-17 19:52:53 +03:00
filters core: add basic chain history support in GenerateChain (#28428) 2023-10-31 12:39:25 +01:00
gasprice all: update golang/x/ext and fix slice sorting fallout (#27909) 2023-08-12 00:04:12 +02:00
protocols core, eth, trie: filter out boundary nodes and remove dangling nodes in stacktrie (#28327) 2023-10-23 18:31:56 +03:00
tracers all: use rlp.DecodeBytes instead of rlp.Decode where possible (#27994) 2023-08-24 11:47:42 +03:00
api_admin.go eth: ignore genesis block on importChain (#27956) 2023-08-21 13:32:34 -04:00
api_backend.go core, eth, miner: start propagating and consuming blob txs (#28243) 2023-10-04 12:36:36 +03:00
api_debug_test.go core/state: simplify storage trie update and commit (#28030) 2023-08-31 14:33:18 -04:00
api_debug.go eth: abort on api operations not available in pbss-mode (#28104) 2023-09-14 03:10:37 -04:00
api_miner.go core/txpool: make transaction validation reusable across packages (pools) (#27429) 2023-06-06 12:53:29 +03:00
api.go les, eth: fix typo in comment (#27369) 2023-05-30 14:55:03 +02:00
backend.go cmd, core: resolve scheme from a read-write database (#28313) 2023-10-11 11:27:44 +03:00
bloombits.go eth: move eth.Config to a common package (#22205) 2021-02-05 13:51:15 +01:00
handler_eth_test.go core, eth, miner: start propagating and consuming blob txs (#28243) 2023-10-04 12:36:36 +03:00
handler_eth.go eth: enforce announcement metadatas and drop peers violating the protocol (#28261) 2023-10-10 11:35:51 +03:00
handler_snap.go eth: check snap satelliteness, delegate drop to eth (#22235) 2021-02-02 10:44:36 +02:00
handler_test.go core, eth, miner: start propagating and consuming blob txs (#28243) 2023-10-04 12:36:36 +03:00
handler.go eth: enforce announcement metadatas and drop peers violating the protocol (#28261) 2023-10-10 11:35:51 +03:00
peer.go eth: remove admin.peers[i].eth.head and difficulty (#26804) 2023-03-06 09:27:46 +02:00
peerset.go eth: when snap is complaining for missing eth, be verbose about the details (#28249) 2023-10-04 12:37:04 +03:00
state_accessor.go core, eth, trie: expose more detailed dirty ram tracking for diff layers (#27971) 2023-08-23 14:08:39 +03:00
sync_test.go cmd/devp2p, eth: drop eth/66 (#28239) 2023-10-03 15:03:19 +03:00
sync.go core, accounts, eth, trie: handle genesis state missing (#28171) 2023-09-28 10:00:53 +03:00