Skip to content

Commit 487ae1d

Browse files
committed
Retain vanity specific logic back through second latest Mainnet fork
To avoid accumulating vanity code, define a policy to retire old logic.
1 parent b11e001 commit 487ae1d

File tree

4 files changed

+20
-51
lines changed

4 files changed

+20
-51
lines changed

beacon_chain/consensus_object_pools/block_pools_types.nim

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# beacon_chain
2-
# Copyright (c) 2018-2024 Status Research & Development GmbH
2+
# Copyright (c) 2018-2025 Status Research & Development GmbH
33
# Licensed and distributed under either of
44
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
55
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
@@ -22,11 +22,11 @@ import
2222
from ../spec/datatypes/capella import TrustedSignedBeaconBlock
2323
from ../spec/datatypes/deneb import TrustedSignedBeaconBlock
2424

25-
from "."/vanity_logs/vanity_logs import VanityLogs
25+
from "."/vanity_logs/vanity_logs import LogProc, VanityLogs
2626

2727
export
2828
sets, tables, hashes, helpers, beacon_chain_db, era_db, block_dag,
29-
block_pools_types_light_client, validator_monitor, VanityLogs
29+
block_pools_types_light_client, validator_monitor, LogProc, VanityLogs
3030

3131
# ChainDAG and types related to forming a DAG of blocks, keeping track of their
3232
# relationships and allowing various forms of lookups

beacon_chain/consensus_object_pools/blockchain_dag.nim

Lines changed: 13 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2410,7 +2410,6 @@ proc updateHead*(
24102410

24112411
let
24122412
lastHeadStateRoot = getStateRoot(dag.headState)
2413-
lastHeadMergeComplete = dag.headState.is_merge_transition_complete()
24142413
lastHeadKind = dag.headState.kind
24152414
lastKnownValidatorsChangeStatuses = getBlsToExecutionChangeStatuses(
24162415
dag.headState, knownValidators)
@@ -2432,26 +2431,20 @@ proc updateHead*(
24322431

24332432
dag.head = newHead
24342433

2435-
if dag.headState.is_merge_transition_complete() and not
2436-
lastHeadMergeComplete and
2437-
dag.vanityLogs.onMergeTransitionBlock != nil:
2438-
dag.vanityLogs.onMergeTransitionBlock()
2439-
24402434
if dag.headState.kind > lastHeadKind:
2441-
case dag.headState.kind
2442-
of ConsensusFork.Phase0 .. ConsensusFork.Bellatrix:
2443-
discard
2444-
of ConsensusFork.Capella:
2445-
if dag.vanityLogs.onUpgradeToCapella != nil:
2446-
dag.vanityLogs.onUpgradeToCapella()
2447-
of ConsensusFork.Deneb:
2448-
if dag.vanityLogs.onUpgradeToDeneb != nil:
2449-
dag.vanityLogs.onUpgradeToDeneb()
2450-
of ConsensusFork.Electra:
2451-
if dag.vanityLogs.onUpgradeToElectra != nil:
2452-
dag.vanityLogs.onUpgradeToElectra()
2453-
of ConsensusFork.Fulu:
2454-
discard
2435+
proc logForkUpgrade(consensusFork: ConsensusFork, handler: LogProc) =
2436+
if handler != nil and
2437+
dag.headState.kind >= consensusFork and
2438+
lastHeadKind < consensusFork:
2439+
handler()
2440+
2441+
# Policy: Retain back through Mainnet's second latest fork.
2442+
ConsensusFork.Capella.logForkUpgrade(
2443+
dag.vanityLogs.onUpgradeToCapella)
2444+
ConsensusFork.Deneb.logForkUpgrade(
2445+
dag.vanityLogs.onUpgradeToDeneb)
2446+
ConsensusFork.Electra.logForkUpgrade(
2447+
dag.vanityLogs.onUpgradeToElectra)
24552448

24562449
if dag.vanityLogs.onKnownBlsToExecutionChange != nil and
24572450
checkBlsToExecutionChanges(
@@ -2567,13 +2560,6 @@ proc updateHead*(
25672560

25682561
dag.db.updateFinalizedBlocks(newFinalized)
25692562

2570-
let oldBlockHash = dag.loadExecutionBlockHash(oldFinalizedHead.blck)
2571-
if oldBlockHash.isSome and oldBlockHash.unsafeGet.isZero:
2572-
let newBlockHash = dag.loadExecutionBlockHash(dag.finalizedHead.blck)
2573-
if newBlockHash.isSome and not newBlockHash.unsafeGet.isZero:
2574-
if dag.vanityLogs.onFinalizedMergeTransitionBlock != nil:
2575-
dag.vanityLogs.onFinalizedMergeTransitionBlock()
2576-
25772563
# Pruning the block dag is required every time the finalized head changes
25782564
# in order to clear out blocks that are no longer viable and should
25792565
# therefore no longer be considered as part of the chain we're following

beacon_chain/consensus_object_pools/vanity_logs/vanity_logs.nim

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,9 @@ import chronicles
1212
from std/os import `/`
1313

1414
type
15-
LogProc = proc() {.gcsafe, raises: [].}
15+
LogProc* = proc() {.gcsafe, raises: [].}
1616

1717
VanityLogs* = object
18-
# Upon the merge activating, these get displayed, at least once when the
19-
# head becomes post-merge and then when the merge is finalized. If chain
20-
# reorgs happen around the initial merge onMergeTransitionBlock might be
21-
# called several times.
22-
onMergeTransitionBlock*: LogProc
23-
onFinalizedMergeTransitionBlock*: LogProc
24-
2518
# Gets displayed on upgrade to Capella. May be displayed multiple times
2619
# in case of chain reorgs around the upgrade.
2720
onUpgradeToCapella*: LogProc
@@ -44,10 +37,8 @@ type
4437

4538
# Created by https://beatscribe.com (beatscribe#1008 on Discord)
4639
# These need to be the main body of the log not to be reformatted or escaped.
47-
48-
proc bellatrixMono*() = notice "\n" & staticRead("bellatrix" / "mono.txt")
49-
proc bellatrixColor*() = notice "\n" & staticRead("bellatrix" / "color.ans")
50-
proc bellatrixBlink*() = notice "\n" & staticRead("bellatrix" / "blink.ans")
40+
#
41+
# Policy: Retain retired art files in the directory, but don't link them anymore
5142

5243
proc capellaMono*() = notice "\n" & staticRead("capella" / "mono.txt")
5344
proc capellaColor*() = notice "\n" & staticRead("capella" / "color.ans")

beacon_chain/nimbus_beacon_node.nim

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -146,28 +146,20 @@ func getVanityLogs(stdoutKind: StdoutLogKind): VanityLogs =
146146
of StdoutLogKind.Auto: raiseAssert "inadmissable here"
147147
of StdoutLogKind.Colors:
148148
VanityLogs(
149-
onMergeTransitionBlock: bellatrixColor,
150-
onFinalizedMergeTransitionBlock: bellatrixBlink,
151149
onUpgradeToCapella: capellaColor,
152150
onKnownBlsToExecutionChange: capellaBlink,
153151
onUpgradeToDeneb: denebColor,
154152
onUpgradeToElectra: electraColor,
155153
onKnownCompoundingChange: electraBlink)
156154
of StdoutLogKind.NoColors:
157155
VanityLogs(
158-
onMergeTransitionBlock: bellatrixMono,
159-
onFinalizedMergeTransitionBlock: bellatrixMono,
160156
onUpgradeToCapella: capellaMono,
161157
onKnownBlsToExecutionChange: capellaMono,
162158
onUpgradeToDeneb: denebMono,
163159
onUpgradeToElectra: electraMono,
164160
onKnownCompoundingChange: electraMono)
165161
of StdoutLogKind.Json, StdoutLogKind.None:
166162
VanityLogs(
167-
onMergeTransitionBlock:
168-
(proc() = notice "🐼 Proof of Stake Activated 🐼"),
169-
onFinalizedMergeTransitionBlock:
170-
(proc() = notice "🐼 Proof of Stake Finalized 🐼"),
171163
onUpgradeToCapella:
172164
(proc() = notice "🦉 Withdrowls now available 🦉"),
173165
onKnownBlsToExecutionChange:
@@ -182,7 +174,7 @@ func getVanityLogs(stdoutKind: StdoutLogKind): VanityLogs =
182174
func getVanityMascot(consensusFork: ConsensusFork): string =
183175
case consensusFork
184176
of ConsensusFork.Fulu:
185-
"not decided yet?"
177+
""
186178
of ConsensusFork.Electra:
187179
"🦒"
188180
of ConsensusFork.Deneb:

0 commit comments

Comments
 (0)