go-ethereum/core
lightclient 13b157a461
core,params: add fork readiness indicator in logs (#31340)
closes #31310 

This has been requested a few times in the past and I think it is a nice
quality-of-life improvement for users. At a predetermined interval,
there will now be a "Fork ready" log when a future fork is scheduled,
but not yet active.

It can only possibly print after block import, which kinda avoids the
scenario where the client isn't progressing or is syncing and the user
thinks it's "ready" because it sees a ready log.

New output:

```console
INFO [03-08|21:32:57.472] Imported new potential chain segment     number=7 hash=aa24ee..f09e62 blocks=1 txs=0 mgas=0.000 elapsed="874.916µs" mgasps=0.000 snapdiffs=973.00B triediffs=7.05KiB triedirty=0.00B
INFO [03-08|21:32:57.473] Ready for fork activation                fork=Prague date="18 Mar 25 19:29 CET" remaining=237h57m0s timestamp=1,742,322,597
INFO [03-08|21:32:57.475] Chain head was updated                   number=7 hash=aa24ee..f09e62 root=19b0de..8d32f2 elapsed="129.125µs"
```

Easiest way to verify this behavior is to apply this patch and run `geth
--dev --dev.period=12`

```patch
diff --git a/params/config.go b/params/config.go
index 9c7719d901..030c4f80e7 100644
--- a/params/config.go
+++ b/params/config.go
@@ -174,7 +174,7 @@ var (
                ShanghaiTime:            newUint64(0),
                CancunTime:              newUint64(0),
                TerminalTotalDifficulty: big.NewInt(0),
-               PragueTime:              newUint64(0),
+               PragueTime:              newUint64(uint64(time.Now().Add(time.Hour * 300).Unix())),
                BlobScheduleConfig: &BlobScheduleConfig{
                        Cancun: DefaultCancunBlobConfig,
                        Prague: DefaultPragueBlobConfig,
```
2025-04-17 10:46:47 +02:00
..
filtermaps core/filtermaps: fix map renderer reorg issue (#31642) 2025-04-16 23:30:13 +02:00
forkid params: add prague timestamp for mainnet (#31535) 2025-04-17 10:46:00 +02:00
history core: initialize history pruning in BlockChain (#31636) 2025-04-15 14:32:46 +02:00
rawdb core/filtermaps: fix map renderer reorg issue (#31642) 2025-04-16 23:30:13 +02:00
state core/state: fix log format (#31610) 2025-04-16 23:46:38 +02:00
stateless beacon, core, eth, miner: integrate witnesses into production Geth (#30069) 2024-09-20 16:43:42 +03:00
tracing core/tracing: stringer for gas and nonce change reasons (#31234) 2025-02-28 12:53:56 +01:00
txpool core: fix sync reset in pruned nodes (#31638) 2025-04-17 16:32:40 +08:00
types core/types: cleanup tx signer logic (#31434) 2025-03-19 16:05:44 +01:00
vm core/vm: optimize push2 opcode (#31267) 2025-04-08 19:57:45 +02:00
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
bench_test.go core, eth, node: use sync write option in pebble (#31519) 2025-04-03 16:03:03 +02:00
block_validator.go core/types: create block's bloom by merging receipts' bloom (#31129) 2025-02-13 18:05:58 +01:00
block_validator_test.go core: initialize history pruning in BlockChain (#31636) 2025-04-15 14:32:46 +02:00
blockchain.go core,params: add fork readiness indicator in logs (#31340) 2025-04-17 10:46:47 +02:00
blockchain_insert.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
blockchain_reader.go core: initialize history pruning in BlockChain (#31636) 2025-04-15 14:32:46 +02:00
blockchain_repair_test.go core, eth, node: use sync write option in pebble (#31519) 2025-04-03 16:03:03 +02:00
blockchain_sethead_test.go core, eth, node: use sync write option in pebble (#31519) 2025-04-03 16:03:03 +02:00
blockchain_snapshot_test.go core, eth, node: use sync write option in pebble (#31519) 2025-04-03 16:03:03 +02:00
blockchain_test.go core: initialize history pruning in BlockChain (#31636) 2025-04-15 14:32:46 +02:00
chain_makers.go core: process EL requests in GenerateVerkleChain (#31175) 2025-03-25 14:13:05 +01:00
chain_makers_test.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
dao_test.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
error.go core, eth/downloader: implement pruning mode sync (#31414) 2025-04-03 15:16:35 +02:00
events.go core, eth, ethstats: simplify chain head events (#30601) 2024-10-16 10:32:58 +03:00
evm.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +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.go core: go fmt (#29544) 2024-04-16 15:42:16 +03:00
genesis.go params: add hoodi testnet definition (#31406) 2025-03-18 12:07:49 +01:00
genesis_alloc.go params: add hoodi testnet definition (#31406) 2025-03-18 12:07:49 +01:00
genesis_test.go params: add hoodi testnet definition (#31406) 2025-03-18 12:07:49 +01:00
headerchain.go core, eth/downloader: implement pruning mode sync (#31414) 2025-04-03 15:16:35 +02:00
headerchain_test.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
mkalloc.go accounts, cmd/geth, core: close opened files (#29598) 2024-04-30 15:47:21 +02:00
rlp_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
sender_cacher.go core: use sync.Once for SenderCacher initialization (#31029) 2025-01-16 14:36:45 +01:00
state_prefetcher.go core: switch EVM tx context in ApplyMessage (#30809) 2024-11-29 15:39:42 +01:00
state_processor.go core: match on deposit contract log topic (#31317) 2025-03-05 11:04:24 +01:00
state_processor_test.go consensus/misc/eip4844: more changes for blob gas calculation (#31128) 2025-02-05 10:35:03 +01:00
state_transition.go core/vm: clean up EVM environmental structure (#31061) 2025-02-18 21:53:33 +08:00
stateless.go cmd/evm: improve block/state test runner (#30633) 2024-12-02 15:18:02 +01:00
txindexer.go core: fix sync reset in pruned nodes (#31638) 2025-04-17 16:32:40 +08:00
txindexer_test.go core: respect history cutoff in txindexer (#31393) 2025-03-21 11:29:51 +01:00
types.go all: implement flat deposit requests encoding (#30425) 2024-10-09 12:24:58 +02:00
verkle_witness_test.go core/tracing: state journal wrapper (#30441) 2025-02-05 13:58:25 +01:00